2009-07-22 2 views
2

양식이 렌더링되는 다른 요일에 변경되는 URL을 가리키는 Livecycle Form에서 하이퍼 링크를 만드는 방법을 알아 내려고하고 있습니다. 일일에 예를 들어 나는 하이퍼 링크를 가리 키도록 할 수 있습니다 :라이브 사이클 양식의 동적 하이퍼 링크

mywebsite/마이 페이지 옵션 = XXX

나는 그것을 가리 할 다른 날에 :

mywebsite/마이 페이지 ? option = YYY

XXX와 YYY는 XML로 쉽게 폼의 데이터로 전달 될 수 있지만 하이퍼 링크가 이에 맞게 변경되도록하는 방법을 모르겠습니다.

제안 사항?

답변

3

이 작업은 LiveCycle Designer의 JavaScript로 수행 할 수 있습니다. Form의 docReady 이벤트에 배치 된 다음 스크립트를 사용하면 텍스트 객체의 URL을 동적으로 변경할 수 있습니다.

form1::docReady - (JavaScript, client) 
// If this code is running on the server, you don't want it to run any code 
// that might force a relayout, or you could get stuck in an infinite loop 
if (xfa.host.name != "XFAPresentationAgent") { 

    // You would load the URL that you want into this variable, based on 
    // whatever XML data is being passed into your form 
    var sURL = "www.stackoverflow.com"; // mywebsite/mypage?option=xxx 

    // URLs are encoded in XHTML. In order to change the URL, you need 
    // to create the right XHTML string and push it into the Text object's 
    // <value> node. This is a super simple XHTML shell for this purpose. 
    // You could add all sorts of markup to make your hyperlink look pretty 
    var sRichText = "<body><p><a href=\"" + sURL + "\">Foo</a></p></body>"; 

    // Assuming you have a text object called "Text1" on the form, this 
    // call will push the rich text into the node. Note that this call   
    // will force a re-layout of the form 
    this.resolveNode("Text1").value.exData.loadXML(sRichText, false, true); 
} 

몇 가지주의 사항이 있습니다. Acrobat의 URL은 Acrobat 9.0 이상에서만 지원됩니다. 따라서 이전 버전의 Acrobat을 사용하는 사람이 양식을 열면 URL이 작동하지 않습니다.

또한 "if (xfa.host.name! = ...)"행에서 볼 수 있듯이 서버에서 양식을 생성하는 경우이 코드가 제대로 실행되지 않습니다. docReady 중 양식을 레이아웃하면 특정 이전 버전의 LiveCycle 서버에서 문제가 발생할 수 있습니다. 서버에서이 스크립트를 실행해야하는 경우 다른 이벤트를 선택하고 다음을 작성해야합니다. docReady.

0

PDF 하이퍼 링크를 조작하기 위해 제 3 자 구성 요소를 사용하여 종료했습니다.이 솔루션은 비용이 $ 1000 정도이므로 더 나은 해결책이 있기를 바랍니다.

1

나는 WorkSpace 사용자가 여러 링크를 클릭하면 WorkSpace 양식이 손실되어 동일한 탭에서 열렸으며 Designer 11에서이를 변경할 수있는 옵션이 없다는 불만이 많았습니다. 너에게도 효과가있을거야.

나는 테두리가없이 배경 버튼을 만들어, 그들의 클릭 이벤트에을 선택하는 몇 가지 논리를 쉽게 추가 할 것

app.launchURL("http:/stackoverflow.com/", true);

(클라이언트에서 실행 자바 스크립트에서)이 줄을이 오른쪽 URL은 요일을 기반으로하며 양식을 다시 렌더링하지 않습니다.

하이퍼 링크가 다른 텍스트와 일치하는 일부 지점에서는 링크의 파란색과 밑줄이 그어진 있지만 하이퍼 링크가없는 상태로 단추 위에 아무 배경도없고 테두리도없고 캡션도 없습니다. 위치가 정해져 있고 흐름이없는 하위 형식이 필요하므로 레이아웃에 따라 다소 복잡 할 수 있습니다.

와우, 나는 파티에 늦게 슈퍼입니다. 글쎄, ES4를 사용하는 사람은 비슷한 문제에 직면합니다. . .