formato de fecha en Grid tipo DateTime en formato Date

357 views
Skip to first unread message

integral

unread,
Mar 10, 2023, 8:20:21 PM3/10/23
to Comunidad de Visual Foxpro en Español
Que Tal Amigos :

Tengo un cursor el cual esta enlazado en un Grid . Necesito en una columna del Grid  que esta enlazado a un campo Datetime , mostrar dicho campo solo en formato Date (10/03/2023) con el formato dd/mm/yy ( año en cuatro dígitos ) . 
 Probe el Comando TTOD pero me cambia el nombre de Dicha Columna . 
Cual seria la manera correcta de hacerlo ? . gracias 

Aqui les muestro el codigo que estoy utilizando.

SQLEXEC(cn, 'SELECT * FROM dbo.Gen_Stock', 'Cur_Grid_Registro_02')
SELECT Cur_Grid_Registro_02
  IF RECCOUNT() > 0
      SELECT ruta_prod, TTOD(fech_act), registro, desc_gene, prod_name, hora_act, st_act        FROM Cur_Grid_Registro_02 ORDER BY registro INTO CURSOR Cur_ResulPro 
    ...
    ...
 Endif

PD : Cuando migre las tablas DBF los campos eran de tipo Date en SQL Server se convirtieron en DateTime

Cuando exporto al Excel parece que no me respeta el TTOD y aparece en formato DateTime.

Agradezco sus comentarios y sugerencias.

Saludos,

Integral 

HernanCano

unread,
Mar 10, 2023, 11:11:39 PM3/10/23
to Comunidad de Visual Foxpro en Español
Intenta cambiando el SELECT (sql) bajo el IF RECCOUNT() por algo como
 
 SELECT ruta_prod, TTOD(fech_act) as Fech_Act, registro, desc_gene, prod_name, hora_act, st_act        FROM Cur_Grid_Registro_02 ORDER BY registro INTO CURSOR Cur_ResulPro
  
Y nos cuentas si se comporta mejor.

HernanCano

unread,
Mar 10, 2023, 11:12:43 PM3/10/23
to Comunidad de Visual Foxpro en Español
¿Cómo haces el "exportar a Excel"?

¿Con COPY TO...?

integral

unread,
Mar 10, 2023, 11:50:25 PM3/10/23
to Comunidad de Visual Foxpro en Español

Que tal Amigo Hernan

Lo estaba intentando de la forma como lo planteas, pero pensé quizás exista otra forma...

Estoy tratando de la siguiente forma :

 SELECT ruta_prod, LEFT(STUFF(TTOC(fech_act), 7, 2, ""), 8) As FECH_ACT, registro, desc_gene, prod_name, hora_act, st_act FROM Cur_Grid_Registro_02 INTO CURSOR Cur_ResulPro

Un ejemplo de  Código que encontré en la Web pero el campo Fech_Act lo muestra en 8 dígitos Ej. 10/03/23. 
Trate de hacer que lo muestre en 10 dígitos ósea 10/03/2023 y nada...

Referente a la Exportacion utilizo el...
COPY TO cArchivo XL5

Es mas rapido...

Atte.,

Integral

Cristian Novoa

unread,
Mar 11, 2023, 7:32:18 AM3/11/23
to Comunidad de Visual Foxpro en Español
.grid1.fingreso.ControlSource = "TTOD(cProductosSinCosto.fecha_ingreso)"

Gerardo Cagnola

unread,
Mar 11, 2023, 9:40:05 AM3/11/23
to publice...@googlegroups.com
TTOD(fech_act) as fech_act
te cambia el nombre porque vos no se lo especificas...

no es mucho más simple cambiar el tipo de columna de datetime a date en la base de datos sql server???


--
Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/48cd37f5-711b-48a1-8c9a-9966e9df78c1n%40googlegroups.com.

integral

unread,
Mar 11, 2023, 10:25:48 AM3/11/23
to Comunidad de Visual Foxpro en Español

Que tal Amigo :

Buena Observación planteada, pero no es tan simple la solución como parece...

Estoy intentando ahora cambiar a tipo Date desde el SQL Server 2008R2 

Y no me acepta el cambio, me marca el siguiente error..(Ver Imagen adjunta)

Alguna sugerencia en cuanto al problema presentado...

Atte.,

Integral
ERROR_AL_MODIFICAR_TIPO_FECHA_SQLSERVER.jpg

Gerardo Cagnola

unread,
Mar 11, 2023, 10:49:41 AM3/11/23
to publice...@googlegroups.com
obvio que te tira ese error!!
create un campo temporal date
con un simple update del campo datetime al date se realiza la conversión implícita de datos
eliminas el campo datetime y al temporal lo renombras...
igualmente utilizar por separado fecha y hora es dilapidar recursos, tenés fecha_act y hora_act...

por experiencia, nunca pasé las bases fox a sql server o postgresql directamente... 
aprovecho la posibilidad para crear una base mejorada, siempre hay errores para corregir en la definición de datos

utilizá la potencia de una base de datos y usá nombres descriptivos con longitudes mayores a 10 caracteres:
fecha_act -> fecha_actual ó fecha

prod_name -> producto_nombre
producto_id ó id_producto 


integral

unread,
Mar 11, 2023, 5:47:12 PM3/11/23
to Comunidad de Visual Foxpro en Español

Listo Amigo :

Opte como solución mas practica hacer el cambio en SQL Server. 

Cambiar el campo Fech_Act del formato DateTime al formato Date

Buscando información logre hallar la solución al error que se me presento en SQL Server


Saludos,

Integral

(Lima-Perú) 

CAMBIO REALIZADO A DATE.jpg

integral

unread,
Mar 12, 2023, 1:18:11 PM3/12/23
to Comunidad de Visual Foxpro en Español
Que tal amigo Hernán Cano

Anoche buscando información encontré el siguiente link que tal vez te pueda interesar..

Cómo extraer una subcadena en Excel (usando fórmulas de TEXTO)

Aqui el link.

https://trumpexcel.com/extract-a-substring-in-excel/

Saludos,

Integral

integral

unread,
Mar 12, 2023, 2:03:57 PM3/12/23
to Comunidad de Visual Foxpro en Español
Que tal Amigos :

Hace unos días buscando información en el Internet, encontré la clase vfpexcel.vcx

Si alguno desea utilizarla.

Aquí la pongo adjunto.

Atte.,

Integral
vfpExcel._ar

José Antonio Peña Martínez

unread,
Mar 12, 2023, 9:25:52 PM3/12/23
to publice...@googlegroups.com
Gracias Integral, en estos tiempos es de agradecer siempre las buenas intenciones de todos aquellos que ofrecen apoyo desinteresadamente ... ya quedamos pocos! ...

Saludos!



--
Desarrollo de Sistemas TecnoPro
José Antonio Peña

Saludos!

Ramón Rodríguez Martínez

unread,
Mar 16, 2023, 12:30:41 AM3/16/23
to publice...@googlegroups.com
Si entendí bien, el problema es que te cambia el nombre del campo, eso lo puede resolver como el código de Gerardo aunque con algunos cambios.

IF SQLEXEC(" SELECT ruta_prod, TTOD(fech_act) AS el_nombre_de_tu_campo, registro, desc_gene, prod_name, hora_act, st_act  FROM dbo.Gen_Stock Where tu_condicion ORDER BY registro", "Cur_ResulPro")>0 THEN
   IF _TALLY>0 tHEN
.   *-- Hay éxito en la consulta
.
   ENDIF
ENDIF

Es una mala práctica utilizar el select *, y además sin condiciones, no quiero ni pensar lo que pasaría en un ambiente multiusuario con muchos trabajando a la vez.

Saludos Cordiales
Ramón Rodríguez Martinez.
Zacatlán, Puebla, México

Reply all
Reply to author
Forward
0 new messages