2014-04-03 2 views
0

내 Xpage는 워크 플로우에 대해 5 개의 섹션을 가지고 있습니다. 섹션 1 제출 버튼이 정상적으로 작동합니다. 두 번째 섹션 제출 버튼에 대해 xe : 대화 상자 (ssjs 사용)를 호출하여 일부 사용자가 접속하지 못하게하고 xe : 대화 상자를 엽니 다. 하지만 원본 문서가 현재 읽기 모드이고 제출 버튼이 보이지 않습니다.xpage를 열기위한 xpage ssjs 코드 대화 상자는 대화 상자를 열지 않고 문서 모드를 편집에서 읽을 수 있도록 변경합니다.

섹션 1을 제거하면 섹션 2 버튼이 대화 상자를 열고 원본 문서의 문서 모드를 변경하지 않습니다.

다음은 대화 상자와 버튼이있는 xpage의 샘플 코드입니다.

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view 
    xmlns:xp="http://www.ibm.com/xsp/core" 
    xmlns:xe="http://www.ibm.com/xsp/coreex" 
    dojoTheme="true" 
    dojoParseOnLoad="true"> 
    <xp:this.resources> 
     <xp:dojoModule 
      name="dijit.Dialog"></xp:dojoModule> 
     <xp:dojoModule 
      name="dijit.form.Button"></xp:dojoModule> 
     <xp:dojoModule 
      name="dijit.form.TextBox"></xp:dojoModule> 
    </xp:this.resources> 
    <xp:br></xp:br> 
    <xp:this.data> 
     <xp:dominoDocument 
      var="document1" 
      formName="MetalWorking"> 
     </xp:dominoDocument> 
    </xp:this.data> 
    <xp:panel> 
     <xp:panel> 

      &#160; 
      <xp:button 
       value="Lab Man Approval" 
       id="button4"> 
       <xp:this.rendered><![CDATA[#{javascript:document1.isEditable() & (document1.getItemValueDate("Section1DateCompleted")!=null) & (document1.getItemValueDate("Section2DateCompleted") == null) 
}]]></xp:this.rendered> 
       <xp:eventHandler 
        event="onclick" 
        submit="true" 
        refreshMode="complete" 
        immediate="false" 
        save="true"> 
        <xp:this.action> 
         <xp:executeScript> 
          <xp:this.script><![CDATA[#{javascript:var d=getComponent('dialog2'); 
d.show();}]]></xp:this.script> 
         </xp:executeScript> 
        </xp:this.action> 
       </xp:eventHandler> 
      </xp:button> 
      &#160; &#160;<xp:br></xp:br> 
      <xe:dialog 
       id="dialog2"> 
       <xp:panel 
        style="background-color:rgb(226,226,226)"> 
        <xp:table> 
         <xp:tr> 
          <xp:td> 
           <xp:label 
            value="Response" 
            id="responseArea_Label1" 
            for="responseArea1"> 
           </xp:label> 
          </xp:td> 
          <xp:td> 
           <xp:inputText 
            id="responseArea1"> 
           </xp:inputText> 
          </xp:td> 
         </xp:tr> 
        </xp:table> 
       </xp:panel> 
      </xe:dialog> 
     </xp:panel> 
    </xp:panel> 
    <xp:table> 
     <xp:tr> 
      <xp:td> 
       <xp:label 
        value="Doc history:" 
        id="docHistory_Label1" 
        for="docHistory1"> 
       </xp:label> 
      </xp:td> 
      <xp:td> 
       <xp:inputText 
        value="#{document1.DocHistory}" 
        id="docHistory1"> 
       </xp:inputText> 
      </xp:td> 
     </xp:tr> 
    </xp:table> 
</xp:view> 
+0

사람들이 귀하의 700 개가 넘는 코드 줄을 들여다 보길 기대할 수는 없습니다. 문제를 이해하는 데 필요한 코드 예제를 자르십시오. –

+0

이 질문은 사람들이 파헤칠 수있는 코드가 너무 많아 주제와는 거리가 먼 것처럼 보입니다. –

답변

0

"document1.isEditable()"때문에 확실한가요? 귀하의 명세서에있는 다른 모든 부분 때문이 아닌가요?

난 그냥 버튼이 꽤 많이 보이

<xp:this.rendered><![CDATA[#{javascript: document1.isEditable() }]]></xp:this.rendered>

처럼 렌더링 코드를 변경하는 경우.

+0

문서가 편집 모드 일 때 단추가 표시됩니다. xe : 대화 상자를 호출하고 xe : 대화 상자가 document1.isEditable() = false를 닫으면. 상위 버튼의 편집 버튼을 클릭하면 onComplete 이벤트 대화 상자 버튼이 추가되어 정상적으로 동작합니다. 하지만 부모 xpage의 호출 버튼에 나머지 코드를 실행하는 것은 도움이되지 않는다는 것을 깨달았습니다. 이상적인 대화 저장 버튼은 대화 상자를 닫고 제어를 호출 버튼으로 다시 전송해야합니다. 가능한가? –