Consenso all'uso dei cookies

SITO1 -- SITO2 -- Forum2 -- CercaGlobale -- Informativa su Cookie e Privacy

Questo Forum1 è in sola lettura -- Usa il Forum2


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
[RISOLTO] acrobat script di calcolo personalizzato
#1
salve a tutti,
ho creato un pdf editabile
in un modulo in testa al pdf inserisco una data

sotto ho creato altri moduli in formato data nominandoli campo1, campo2 ecc.
ho provato ad inserire uno scrpt di calcolo personalizzato nel campo2 dove incrementa di un giorno la data del campo1 e così via per i restanti campi.

ho provato ad inserire questo script ma non ottengo il risultato voluto

\\script inserito in campo2
var v1 = getField("Campo1").value;
event.value = v1 + 1;

in una normale addizione lo script mi funziona ma formattando il campo con data non funziona
dove sbaglio?
Cita messaggio
#2
Il codice è questo
http://forum.planetpdf.com/wb/default.as...022&fid=52
il problema è che foxit reader non riesce ad eseguire il codice correttamente, non so come si comporta con adobe acrobat.
Cita messaggio
#3
Aggiungo: scarica questo file di esempio
http://www.planetpdf.com/forumarchive/DateAdd7.pdf
Cita messaggio
#4
grazie
ho provato a modificare il codice
ma, se cambio l'impostazione da "mm/dd/yyyy" in "dd/mm/yyy"
non ottengo la data corretta
dove sbaglio?
allego codice
/* Create a date object containing the date form the InputDate field. */
var d1 = new Date(this.getField("InputDate").value);
/* num contains the numeric representation of the current date. */
var num = d1.valueOf();
/* Add 7 days to Date1. */
/* 1000 ms / sec; 60 sec / min; 60 min / hour; 24 hours / day / 7 days*/
num += 1000 * 60 * 60 * 24 + 1;
/* Create our new date that is one day ahead of the current date. */
var d2 = new Date(num);
/* Put the input date plus 7 days using util.printd into InputDate7 */
this.getField("InputDate7").value =util.printd("dd/mm/yy", d2);

/* Add another 7 days to Date1. 14 total */
/* 1000 ms / sec; 60 sec / min; 60 min / hour; 24 hours / day / 7 days*/
num += 1000 * 60 * 60 * 24 + 1;
/* Create our new date that is one day ahead of the current date. */
var d2 = new Date(num);
/* Put the input date plus 14 days using util.printd into InputDate14 */
this.getField("InputDate14").value =util.printd("dd/mm/yy", d2);

/* Add another 7 days to Date1. 21 total */
/* 1000 ms / sec; 60 sec / min; 60 min / hour; 24 hours / day / 7 days*/
num += 1000 * 60 * 60 * 24 + 1;
/* Create our new date that is one day ahead of the current date. */
var d2 = new Date(num);
/* Put the input date plus 21 days using util.printd into InputDate21 */
this.getField("InputDate21").value =util.printd("dd/mm/yy", d2);

/* if no input date balnk out other date fields */
if (event.value == "") {
this.getField("InputDate7").value = "";
this.getField("InputDate14").value = "";
this.getField("InputDate21").value = "";
}
Cita messaggio
#5
Foxit mi sta dando un pò di noie nell'inserimento del codice e modifica, quelllo che non va bene nel codice è quel +1:
1000 * 60 * 60 * 24 + 1;

Vedo di scaricare adobe acrobat e ti fornisco il codice corretto.
Cita messaggio
#6
Modicato il codice ma c'è un piccolo limite che mi sta facendo innervosire e non poco.

Codice:
/* Create a date object containing the date form the InputDate field. */
var d1 = new Date(this.getField("InputDate").value);
/* num contains the numeric representation of the current date. */
var num = d1.valueOf();
/* Add one day to Date1. */
/* 24 hours / day; 60 min / hour; 60 sec / min; 1000 ms / sec;  */
num = num + (24 * 60 * 60 * 1000);
/* Create our new date that is one day ahead of the current date. */
var d2 = new Date(num);
/* Put the input date plus 1 days using util.printd into InputDate7 */
this.getField("InputDate7").value =util.printd("dd/mm/yyyy", d2);

/* Add one day to Date1. */
/* 24 hours / day; 60 min / hour; 60 sec / min; 1000 ms / sec;  */
num = num + (24 * 60 * 60 * 1000);
/* Create our new date that is one day ahead of the current date. */
var d2 = new Date(num);
/* Put the input date plus 1 days using util.printd into InputDate14 */
this.getField("InputDate14").value =util.printd("dd/mm/yyyy", d2);

/* Add one day to Date1. */
/* 24 hours / day; 60 min / hour; 60 sec / min; 1000 ms / sec;  */
num = num + (24 * 60 * 60 * 1000);
/* Create our new date that is one day ahead of the current date. */
var d2 = new Date(num);
/* Put the input date plus 1 days using util.printd into InputDate21 */
this.getField("InputDate21").value =util.printd("dd/mm/yyyy", d2);

/* if no input date blank out other date fields */
if (event.value == "") {
this.getField("InputDate7").value = "";
this.getField("InputDate14").value = "";
this.getField("InputDate21").value = "";
}
Il codice va inserito su prima casella di testo InputField, su scheda Calcolo, Script di calcolo personalizzato.
Funziona correttamente, l'unico limite è che la prima casella di testo deve essere formattata (obbligatorio!!) come Data mm/dd/yyyy, se provi a cambiare il formato(dd/mm/yyyy) sballa la data nelle altre caselle di testo.
Allego file di esempio


Allegati
.pdf   Aggiungi1Giorno.pdf (Dimensione: 31,08 KB / Download: 16)
Cita messaggio
#7
grazie
ma purtroppo questo foglio deve essere compilato da diverse persone, pertanto è difficile che possano imparare ad inserire la data mm/dd/yyyy
devo studiare la possibilità di poter far inserire la data in formato italiano
ci aggiorniamo
Cita messaggio
#8
Questo codice per esempio inserisce la data odierna in automatico, chi deve compilarlo non deve inserire la data e aggiunge un giorno nelle altre textbox
Codice:
var today = new Date() ;
this.getField("InputDate").value = util.printd("dd/mm/yyyy", today) ; // fills field for today
this.getField("InputDate7").value = util.printd("dd/mm/yyyy", new Date(today.getFullYear(),today.getMonth(),today.getDate()+2)) ; // fills field for today in one day
this.getField("InputDate14").value = util.printd("dd/mm/yyyy", new Date(today.getFullYear(),today.getMonth(),today.getDate()+3)) ; // fills field for today two days
this.getField("InputDate21").value = util.printd("dd/mm/yyyy", new Date(today.getFullYear(),today.getMonth(),today.getDate()+4)) ; // fills field for today in three days

Puoi inserire un pulsante "Aggiorna" e il codice javascript su Azioni, esegui codice javascript.
Oppure nella prima textbox, custom calculation scripts altrimenti Validate-Custom validation script, vedi dove si aggiorna la data in automatico.


Allegati
.pdf   Aggiungi1Giorno.pdf (Dimensione: 21,5 KB / Download: 30)
Cita messaggio
#9
Grazie, funziona
purtroppo questo codice serve per impostare dei fogli terapia farmacologica, pertanto la data può non essere today
Cita messaggio
#10
Eccoti la soluzione, ci tenevo ad aiutarti e mi sono iscritta con un profilo fake su forum acrobat arrossire .
Allego esempio, questo va che è una meraviglia.
Se hai trovato la soluzione ti chiedo Di aggiungere [RISOLTO] al titolo del primo post, grazie.
Codice:
codice allegato


EDIT: eliminato link diretto thread e il codice tra i tag ma l'ho allegato.


Allegati
.pdf   Aggiungi1Giorno.pdf (Dimensione: 20,93 KB / Download: 51)
.txt   Codice.txt (Dimensione: 1,33 KB / Download: 42)
Cita messaggio


Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)