Que aparezca fecha urgente

Saben tengo un formulario donde quiero que la fecha aparezca del windows.. Cuando cuando cambie la fecha del windows también cambie del formulario... Y se pueda grabar
Como hago eso

1 respuesta

Respuesta
1
Para que la fecha de la computadora te aparezca en un formulario lo puedes hacer de dos maneras:
1. Si tienes en tu datawindow un campo llamado "fecha" de tipo date o datetime, entonces la fecha de la PC lo asignas a ese campo:
//Este código lo pones en el Evento Clicked() de un botón Nuevo o Agregar para el ingreso de nuevos registros:
dw_1.object.fecha.current[dw_1.getrow()]=date(today()) //le asigno la fecha actual de la computadora al campo "fecha"
2. Con un control st_1.text o sle_1.text colocado en el formulario:
//Este código lo puedes poner en el Evento Open() del formulario o en el Evento Clicked() de un Botón Nuevo o Agregar para el ingreso de nuevos registros:
st_1.text=string(today(),"dd/mm/yyyy") //La fecha en un control st_1.text
sle_1.text=string(today(),"dd/mm/yyyy") //La fecha en un control sle_1.text
3. Ahora si quieres asociar la fecha y hora y mostrarlo en un control st_1.text o sle_1.text, entonces harías:
st_1.text=string(today(),"dd/mm/yyyy")+" "+string(now(),"hh:mm:ss am/pm")
sle_1.text=string(today(),"dd/mm/yyyy")+" "+string(now(),"hh:mm:ss am/pm")
4. Para actualizar la fecha y hora de nuestro formulario al cambiar la fecha y hora de la computadora, simplemente tienes cerrar y volver abrir el formulario o cancelar y volver a presionar el botón Nuevo o Agregar.
Suerte
Gracias por tu ayuda .. pero me olvide de aclara que no estoy utilizando dta windows.. solo estoy utilizando lo botón de herramientas... el sle_13.text es donde tiene aq paraser la fecha.
Yo eporgramdo de esta manera
Date fecha
Time hora
fecha= today( )
hora=now()
sle_13.text=string(datetime(fecha,hora),"dd/mm/yyyy  hh:mm:ss am/pm") y se muestra la fecha el problema es que cuando  doy en el btob buscar me sale asi 2010-06-2..pero en el sql  no esta asi ..esta de esta forma 02/06/2010 en el power builder 10.5 lo muestra al reves...y cuando  doy guardar tampoco me guarda me sale un error sqlstate=22005 obdc sql server driver Valor de caracter no valida para especificaion cast.
Ya vi en sql .. esta en spanish, y la fecha es del windows en el query del sql le programe así SET DATEFORMAT dmy.
¿La pregunta es por que el power me cambia la fecha?
¿Y por que se le ese error?
Por que cundo pongo la fecha de esta manera 2010-06-01 no tengo ningún problema.. pero donde vivo así no se trabaja..
muchisisimamamaas gracias por la ayuda
*Una Observacion cuando quieras grabar la fecha desde el sle_13.text que tiene almacenada la fecha y hora, tienes que quitarle "am/pm", es decir quedara asi:
sle_13.text=string(datetime(fecha,hora),"dd/mm/yyyy  hh:mm:ss")
*La Base de Datos no lo Acepta, Cuando tu pones "am/pm" le estas diciendo que me presente la fecha y hora en formato de 12 horas, es decir si hoy es "dos de junio del dos mil diez con dos y cinco minutos de la tarde"  poniendo con "am/pm" la fecha y hora te mostrar asi: "02/06/2010 02:05:00", si quitas "am/pm" la misma fecha y hora te mostrara: "02/06/2010 14:05:00" que es lo que la base de datos acepta, es decir la base de datos acepta el formato de 24 horas.
*No te compliques declarando variable, todo lo anterior lo puedes hacer asi y sin declarar ninguna variable:
st_13.text=string(datetime(today(),now()),"dd/mm/yyyy  hh:mm:ss")
*Con respecto al formato de fecha:
1. El Powerbuilder no cambia el formato de fecha, lo que hace el powerbuilder es jalar los datos tal como están en la base de datos, normalmente la fecha en la base de datos tiene el formato "yyyy-mm-dd", es decir "año-mes-día", nosotros por medio de la programación en powerbuilder podemos modificarlo en los datawindows.
2. Si tu tienes datawindows con la fecha en orden "yyyy-mm-dd" en su propiedad del campo tendrás que cambiarle [Edit-->EditMask-->Format-->pones:"dd/mm/yyyy hh:mm:ss"]. Ojo: solo se cambia el modo de visualizar la fecha en el datawindow, no significa que en la base de datos se cambie.
3. Otra opción seria programar en la base de datos para cambiar la fecha cuando hacemos una vista o procedimiento almacenado, usando la Opción: CONVERT ( data_type [ ( length ) ], expression [ , style ] ), Investiga como hacerlo.
4. Otro punto muy importante que tienes que tener en cuenta es el tipo de dato que tiene definido la fecha en la base de datos, es decir si en la base de datos la fecha esta definida como tipo date o datetime, cuando quieras grabar la fecha desde el sle_13.text tendrás que convertirlo a date o datetime y viceversa.
5. Por ultimo tanto los datawindow como los controles cuando jalan la fecha u otros datos lo hacen como están en la base de datos, eso ya depende del programador ponerle formato para una mejor visualización.
Revisa bien estos puntos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas