2010-07-16 18 views
5

El objetivo es que un formulario de Acrobat llene un campo de fecha ("Fecha de reunión") con la fecha de hoy cuando el usuario lo abra. Si el usuario guarda el formulario como está y lo abre unos días más tarde, la fecha anterior aún debe estar allí, no reemplazada por la fecha actual. Si el usuario cambia la fecha en el campo, esa fecha debe guardarse y no debe reemplazarse cuando se abre el formulario más tarde.Rellenar campo de fecha de formulario de Acrobat con la fecha de hoy solo si el campo está vacío

que tienen una secuencia de comandos de cálculo personalizado para un campo de fecha ("MeetingDate") que hace todo esto, pero con un problema:

if (event.value != "") 
then 
event.value = util.printd ("m/d/yyyy", new Date()) 
endif 

Esto funciona bien, excepto que después de entrar en el guión, rellenos fecha de hoy en el campo Fecha de reunión y el valor se guarda. Eso tiene sentido, pero quiero que el campo se llene automáticamente con la fecha de Hoy cuando el usuario abre el formulario. En cambio, si el usuario abre el formulario mañana (16/7/2010) tendrá 7/15/2010 en el campo porque esa es la fecha en que guardé el formulario.

Creo que la respuesta puede ser ingresar un script como JavaScript de documento (Proceso de documento avanzado | JavaScripts de documento), ya que los scripts de documento se ejecutan cuando se abre el formulario, pero todos mis intentos causan una fecha ingresada por el usuario se sobrescribirá cuando el formulario se abra días después. ¡Gracias por la ayuda!

+0

Acerca de la secuencia de comandos: event.value se refiere al valor de un evento (no tiene nada que ver con el valor de tu campo). Siempre disparará, y tu cláusula siempre será verdadera. Es por eso que el campo siempre se restablece. Ver mi respuesta a continuación. –

Respuesta

10

eliminamos su guión y sustituirlo por el siguiente documento javascript:

var f = this.getField("wells_datefield"); 
if (!f.value) f.value = util.printd ("m/d/yyyy", new Date()); 

Guarde su forma y lo abre, y la fecha debe estallar a la derecha en ese país.

Al hacer el documento javascript, recuerde que no lo puso dentro de una función. Una forma de hacerlo es la siguiente. En el menú de Acrobat:

  1. avanzadas-> Documento de procesarse> Documento Javascripts ...
  2. En el cuadro de diálogo que aparece, introduzca un nombre de secuencia de comandos (por ejemplo "populate_date") y haga clic en Añadir ...
  3. En el cuadro de diálogo del script que aparece: ELIMINE todo ("function populate_date() {}") y pegue el script anterior.
  4. Haga clic en Aceptar y luego en Cerrar.
  5. Guarde el formulario, ciérrelo y vuélvalo a abrir.
  6. ¡No hay paso 6! :>
+0

Paque, esto funciona a la perfección! Muchas gracias. Cuando se abre el formulario, el documento Javascript ahora inserta la fecha de hoy si el campo está en blanco pero no sobrescribe el campo si ya tiene una fecha. He duplicado el código para otros campos de fecha: var g = ...; var h = ...; ¡Gracias! (Cuando tenga suficientes puntos votaré esta respuesta, si puedo). –

+0

¡Feliz de ayudar! (Creo que todo lo que tiene que hacer es hacer clic en la flecha hacia arriba y marcar la casilla que aparece: Aceptar esto como respuesta "...:>) –

1

espero que no le importa si añado esta edición de su código para los usuarios británicos (y los novatos como yo)

var f = this.getField("date"); 
if (!f.value) f.value = util.printd ("dd/mmm/yyyy", new Date()); 

Este código se llena el campo de fecha de la siguiente manera ...

03/Jan/2013 
0

Desafortunadamente, cuando agrego var f = this.getField ("DatepPrinted"); if (! F.value) f.value = util.printd ("dd/mmmm/aaaa", nueva Fecha()); a mi golpe de teclado personalizado en un formulario me devuelve "0" en lugar de 02-abril-2015 ... ¿alguien sabe por qué?

+0

Esto parece una pregunta diferente publicada como respuesta. Publique esto como un nuevo pregunta, si es. – rfornal

1

@ pozos-Anderson

sólo tiene que quitar la sentencia if:

event.target.value = util.printd("m/d/yyyy", new Date()); 
Cuestiones relacionadas