Как динамически загружать изображения и фрагменты в формах LiveCycle Designer? - PullRequest
0 голосов
/ 12 апреля 2010

Я создал пару общих шаблонов (.xdp), которые будут использоваться несколькими клиентами. Очевидно, что у каждого клиента есть собственный логотип, и я хотел бы установить логотип при создании формы.

Мне удалось изменить логотип динамически, хотя я не уверен, что мой подход хорош.

В источнике данных xml у меня есть этот элемент:

<ClientID>SomeNumber</ClientId>

В самой форме я установил изображение href с помощью этого кода javascript:

SomeHiddenTextField::calculate
HeaderLogo.value.image.href = $record.ClientID + "_logo.jpg";

Я храню логотипы на сервере в той же папке, что и общие шаблоны.

Это правильный подход для динамической загрузки логотипов?

Я пытался добиться такого же динамического поведения с каждым фрагментом нижнего колонтитула клиента, но я не смог понять, как загрузить их по требованию. Я мог бы сделать каждый фрагмент нижнего колонтитула изображением, но я хотел бы избежать этого, если это возможно.

1 Ответ

1 голос
/ 02 ноября 2010

Обычно я знаю, что для динамической загрузки изображений мне нужно было сделать следующее:

Создание службы SOAP, которая возвращает байт [] с данными изображения (base64)

Позвоните в сервис из LiveCycle:

var cURL = "http://host/path/MyService?wsdl"
var oService = SOAP.connect(cURL);
try {
    var cText = "";
    var myRequest;
    var cSOAPAction;
myRequest = { 
 myMethod: { 
 Param1:value
 };
cSOAPAction= "http://mynamespace/myMethod";
}
    var myNamespace = "http://mynamespace";

    var oResults = SOAP.request ({
        cURL: cURL,
        oRequest: oGetNameByIdRequest,
        cAction: cSOAPAction,
        bEncoded: false,  // If false then document/literal encoding will be used.
        cNamespace: myNamespace,
        cResponseStyle: SOAPMessageStyle.Message
    }); 
    HeaderLogo.rawValue = oResults[0].soapValue[0].soapValue;
...
...