lunedì 7 luglio 2008

Ho pubblicato la prima bozza del testo su LiveCycle Designer.
Al momento è liberamente scaricabile dal seguente link:
Livecycle Designer, Alfa Version

E' ancora in versione beta, ma può già essere un grande aiuto per chi si avvicina a questo recente applicativo sviluppato da Adobe.
Prossimamente aggiornerò il file suddetto.

Ringrazio fortemente il mio "maestro", Stefano Maestri per la sua proverbiale disponibilità.

Cordiali saluti,
Roberto Bellarmino

4 commenti:

Roberto ha detto...

Alcune funzioni utili quando si lavora con LiveCycle Designer:

function isUndefined(a)
//true se a è il valore undefined.
{
return typeof a == 'undefined';
}

function is_Null(a)
//true se a è il valore null.
{
return typeof a == 'object' && !a ;
}


//true se la stringa passata in ingresso ha uno dei valori presenti nella guardia dell'if.
//false per qualsiasi altro valore o se la stringa non esiste
function nullString(stringa) {
return ((stringa == 'null') || (stringa == 'undefined') || (stringa == 'Empty') || (stringa == "") || (stringa === null) || (stringa === undefined));
}

function isFunction(a) {
//true se a è una funzione.
return typeof a == 'function';
}

/*
* Resituisce true solo se il parmaetro a è un oggetto, un array o una funzione.
* Se è un tipo di dato primitivo restituisce false.
*/

function isObject(a) {
return (typeof a == 'object' && !!a) || isFunction(a);
}

function getObjectValueField(oggetto) {
/*
* A differenza della sua "sorella" getObjectValue prende in input un oggetto di tipo Field e se questo è definito ne resitutisce il valore contenuto;
* diversamente restituisce una stringa vuota.
*/
if ( (isUndefined(oggetto)) || (is_Null(oggetto)) )
{
return "";
} else {
if (nullString(oggetto.rawValue))
{
return "";
} else {
return oggetto.rawValue;
}
}
}

function getObjectValueFromString(stringa) {
/*
* Prende in input una stringa che descrive un percorso SOM xfa.data.x.y.z..., ne crea un oggetto e se questo è definito ne resitutisce il valore contenuto;
* diversamente restituisce una stringa vuota o "stringa nulla" se la stringa in ingresso è un'espressione SOM non valida.
* Utile quando si vuole popolare i campi di un modulo.
*/
var oggetto;
if (!nullString(stringa)) {
oggetto = xfa.resolveNode(stringa);
if ( (isUndefined(oggetto)) || (is_Null(oggetto)) )
{
return "";
} else {
if (nullString(oggetto.value))
{
return "";
} else {
return oggetto.value;
}
}
} else {
//utile per debug, ma attenzione a quando la si usa
return "stringa nulla";
}
}//end of getObjectValueFromString

Roberto ha detto...
Questo commento è stato eliminato dall'autore.
Roberto ha detto...

http://www.adobe.com/products/acrobat/readstep2.html?promoid=BUIGO

Attenzione perché con le versioni precedenti alla ES di LC Designer ho riscontrato dei problemi di funzionamento.

Ciao,
R

Roberto ha detto...

Mi sono imbattuto in un comportamento poco simpatico anche se, forse, era prevedibile:
l'istruzione
xyz.break.after = "auto";
dove il valore "auto" è stato scelto a caso tra quelli documentati, fa si che venga nuovamente sollevato l'evento "layout:ready".
L'utilizzare la suddetta istruzione nell'evento appena citato comporta l'innescarsi di un loop infinito in fase di rendering del documento.
Per questo motivo non è possibile utilizzare la suddetta istruzione in quell'evento senza l'utilizzo di opportuni accorgimenti quali tecniche di test and set.