es recomendable mostrar "AM" y "PM" en textbox ??

743 views
Skip to first unread message

Saul Piña Hernandez

unread,
Feb 26, 2016, 7:39:13 PM2/26/16
to Comunidad de Visual Foxpro en Español
Tengo dos textbox donde se debe ingresar la hora de inicio y la hora termina

pero me gustaria que para el usuario sea un poco mas comprensible para capturar. 

y es que veo que estan muy acostumbrados a decir "las 2 PM "  que lo correcto sería "las 14:00 hrs" 


mi duda es, asi como lo tengo esta bien? o me hace falta algo mas?


gracias por las sugerencias

les dejo una imagen:


Antonio Meza

unread,
Feb 26, 2016, 8:00:25 PM2/26/16
to Comunidad de Visual Foxpro en Español
Lo correcto es a las Mil cuatrocientas jajajaja es broma así lo maneja el ejercito o marina jajaj

Por ahí pusieron ejemplos para capturar la fecha y hora porque juntos es una pesadilla para el usuario.

saludos!!!

Elides Paredes

unread,
Feb 26, 2016, 8:13:10 PM2/26/16
to Comunidad de Visual Foxpro en Español
Estimado amigo.

Mis saludos cordiales,

Lo bonito, a mi juicio en todo ésto de programar es que las reglas puedes crearlas tu mismo. Opino que la fecha con hora depende del tipo de dato que se registre, si hago una compra - por ejemplo - sólo me importa la fecha. La hora es irrelevante. Pero como en mi caso si registro la entrada de un vehículo, es importante registrar la hora- Mis formularios llaman a  otra clase formulario con calendario el usuario busca solo la fecha y el sistema le coloca la hora. (del sistema) Y claro, los únicos que manejan las horas en formatos de 24 horas son los militares, y de paso la una es a las 1.300 no dicen las 13:00, pero es porque se la dan de gran cosa.. Jajaja, aquí en Venezuela ya le tenemos rabia.. 

Pero, volviendo al tema que nos ocupa, en lo personal prefiero con am y pm. Y así esta en mis formularios. Es  mas comprensible para cualquiera
 
Saludos de 
Elides Paredes
Barquisimeto-Venezuela

Víctor Hugo Espínola Domínguez

unread,
Feb 26, 2016, 8:40:07 PM2/26/16
to publice...@googlegroups.com
Esos textbox deberían ser invisibles, su función sería enlazar con el controlsource. La fecha y la hora debes atraparlos con text box separados y si deseas puedes incluir un control visual date picker y otro time picker


Este es el que usa Windows 7

Imagen integrada 1

Tengo uno parecido si te interesa puedo prepararte este fin de semana.
Imagen integrada 2



Saludos,
Víctor.
Lambaré - Paraguay.

Saul Piña Hernandez

unread,
Feb 26, 2016, 8:43:17 PM2/26/16
to Comunidad de Visual Foxpro en Español
exacto, algo asi como el windows 7 es lo que necesito... como puedo lograrlo en VFP ?

Saul Piña Hernandez

unread,
Feb 26, 2016, 8:44:37 PM2/26/16
to Comunidad de Visual Foxpro en Español
si, victor, te tomo la palabra...es para agendar eventos tu sabes...  hora en que inicia y hora en que termina.

Saul Piña Hernandez

unread,
Feb 26, 2016, 8:45:26 PM2/26/16
to Comunidad de Visual Foxpro en Español
Es que junto viene en el foxShedule del Prof Guillermo Carrero...

Saul Piña Hernandez

unread,
Feb 26, 2016, 8:47:02 PM2/26/16
to Comunidad de Visual Foxpro en Español



El viernes, 26 de febrero de 2016, 19:00:25 (UTC-6), Antonio Meza escribió:

Saúl Piña

unread,
Feb 26, 2016, 9:25:07 PM2/26/16
to Comunidad de Visual Foxpro en Español
Si revisan la agenda del ejemplo del prof Guillermo carrero viene fecha y hora juntos en el textbox

Víctor Hugo Espínola Domínguez

unread,
Feb 26, 2016, 9:37:46 PM2/26/16
to publice...@googlegroups.com
Y si metes una fecha u hora incorrecta sale el emensaje de error "Invalid Date/Time", Guillermo (QEPD) te regaló la chancha, obtener los chanchitos queda a tu cargo.


Saludos,
Víctor.
Lambaré - Paraguay.


Saúl Piña

unread,
Feb 27, 2016, 8:08:41 AM2/27/16
to Comunidad de Visual Foxpro en Español
Voy a probar meter hora y que aparezca am ó pm con TTOC

Será?

Víctor Hugo Espínola Domínguez

unread,
Feb 27, 2016, 10:22:13 PM2/27/16
to publice...@googlegroups.com
Ahí va lo prometido, revisa y prueba.
 

Saludos,
Víctor.
Lambaré - Paraguay.


Agenda._rar

Saul Piña Hernandez

unread,
Feb 28, 2016, 1:51:33 PM2/28/16
to Comunidad de Visual Foxpro en Español
Gracias Victor, es excelente tu clase...me ayuda en mucho....


voy a implementar...


Saul Piña Hernandez

unread,
Feb 28, 2016, 3:02:42 PM2/28/16
to Comunidad de Visual Foxpro en Español
Victor de nuevo te agradezco, ahora ya lo tengo implementado en el formulario...

supongo que la validacion para evitar que no se "empalme" o "junte" en el mismo horario y fecha otro evento (en el caso de que ya existe un evento)  seria asi:


select fecha, horaini, horafin ;
from eventos ;
where fecha = _fecha and horaIni=>_horaIni and horaFin=<_horaFin 
into cursor EventoRegistrado


gracias por todo!!



Víctor Hugo Espínola Domínguez

unread,
Feb 28, 2016, 3:39:51 PM2/28/16
to publice...@googlegroups.com
No, ese código cubre una sola posibilidad y hay otras.

0)                |---------------|----------------|
1)      +++++++++++++++++++
2)                                     ***********************
3)                     =================
4)            #####################################################

0) Agendado desde 12:00 a 14:00
1) Primer error:    desde 09:00 hasta 12:30
2) Segundo error: desde 13:15 hasta 14:30
3) Tercer error:     desde 12:15 hasta 13:20
4) Cuarto error:    desde 11:45 hasta 15:00

Tu código solo detecta el cuarto error.
 
Para hacer las validaciones es importante que decidas si las quieres hacer por separado (primero validar _HoraIni y luego _HoraFin) o validar ambos datos a la vez (_HoraIni y _HoraFin en una sola consulta)


Saludos,
Víctor.
Lambaré - Paraguay.


Saul Piña Hernandez

unread,
Feb 28, 2016, 4:05:43 PM2/28/16
to Comunidad de Visual Foxpro en Español
Saludos Victor,

me guastaria que fuere en ambos datos hora_ini y horaFin

podria ser asi? :


select fecha, horaini, horafin ;
from eventos ;
where fecha = _fecha and horaIni between(_horaIni, _horaFin) and horaFin between(_horaIni, _horaFin) 
into cursor EventoRegistrado


thanks

Víctor Hugo Espínola Domínguez

unread,
Feb 28, 2016, 4:51:45 PM2/28/16
to publice...@googlegroups.com
Ahí estás detectando solo el tercer error, deben ser cuatro condiciones unidas por OR. Usa el gráfico como guía. Ya tienes las expresiones para el tercer y cuarto error, solo faltan el primero y el segundo.




Saludos,
Víctor.
Lambaré - Paraguay.


Víctor Hugo Espínola Domínguez

unread,
Feb 28, 2016, 5:12:15 PM2/28/16
to publice...@googlegroups.com
select fecha, horaini, horafin ;
from eventos ;
where fecha = _fecha and horaIni between(_horaIni, _horaFin) and horaFin between(_horaIni, _horaFin) 
into cursor EventoRegistrado

fecha = _fecha and horaIni=>_horaIni and horaFin=<_horaFin


0)                |---------------|----------------|
1)      +++++++++++++++++++
2)                               
      ***********************
3)                     =================
4)            ##############################
#######################


Saludos,
Víctor.
Lambaré - Paraguay.


Saul Piña Hernandez

unread,
Feb 28, 2016, 5:15:31 PM2/28/16
to Comunidad de Visual Foxpro en Español
yes,  oks

Víctor Hugo Espínola Domínguez

unread,
Feb 28, 2016, 5:31:47 PM2/28/16
to publice...@googlegroups.com
En realidad los dos códigos que mostraste detectan el cuarto error.

A continuación los código con sus respectivos gráficos:

0)                |---------------|----------------|

1)      +++++++++++++++++++
                 (horaIni > _horaIni and horaFin > _horaFin)

2)                               
      ***********************
                 (horaIni < _horaIni and horaFin < _horaFin)

3)                     =================
(_horaIni between(horaIni, horaFin) and _horaFin between(horaIni, horaFin))

4)            ##############################
#######################
                 (horaIni >= _horaIni and horaFin <= _horaFin)
    (horaIni between(_horaIni, _horaFin) and horaFin between(_horaIni, _horaFin))



Saludos,
Víctor.
Lambaré - Paraguay.


Saul Piña Hernandez

unread,
Feb 28, 2016, 5:35:39 PM2/28/16
to Comunidad de Visual Foxpro en Español
Saludos Victor...
mira como andaba de perdido...jeje..

select fecha, hinicia, htermina ;

   
from eventos ;
   
where fecha = _fecha ;

   
and  ( _horaFin>hInicia or _horaIni<hTermina or ;
    BETWEEN
(_horaIni, hInicia, hTermina) and BETWEEN(_horaFin, hInicia, hTermina)) ;
   
into cursor EventoRegistrado
        IF RECCOUNT
()>0
            SELECT
EventoRegistrado
            BROWSE
        ELSE
        WAIT window
"todo ok"
        ENDIF


Saul Piña Hernandez

unread,
Feb 28, 2016, 5:42:09 PM2/28/16
to Comunidad de Visual Foxpro en Español
nunca habia realizado tana union en un solo select, me marca error el Select y no lo encuentro...

select fecha, hinicia, htermina ;
   
from eventos ;
   
where fecha = _fecha ;

   
and  (hInicia > _horaIni and hTermina > _horaFin or ;
    hInicia
< _horaIni and hTermina < _horaFin or ;
    _horaIni between
(hInicia, hTermina) and _horaFin between(hInicia, hTermina) or ;
    hInicia
>= _horaIni and hTermina <= _horaFin or ;
        hInicia between
(_horaIni, _horaFin) and hTermina between(_horaIni, _horaFin));

Víctor Hugo Espínola Domínguez

unread,
Feb 28, 2016, 5:42:25 PM2/28/16
to publice...@googlegroups.com
Otro detalle importante a tener en cuenta es si los datos que estás validando son de una alta o modificación y si ya están en el cursor/tabla Eventos.

Saludos,
Víctor.
Lambaré - Paraguay.


Saul Piña Hernandez

unread,
Feb 28, 2016, 5:45:42 PM2/28/16
to Comunidad de Visual Foxpro en Español
Todo lo que se valida, es sobre datos dados de alta en la tabla eventos

en el caso de alguna modificacion....voy a pasar por alto, salvo que el id a modificar no se encuentra dentro de la consulta

Víctor Hugo Espínola Domínguez

unread,
Feb 28, 2016, 6:09:34 PM2/28/16
to publice...@googlegroups.com
Te devuelvo tu código mejor organizado, no controlé la lógica pero casi seguro que hay error (NO de compilación) puesto que tienes 4 OR y solo deben ser 3!

Local lcSelect
Text To m.lcSelect Textmerge Noshow Pretext 15

Select  fecha
      , hinicia
      , htermina
    From eventos
    Where fecha = _fecha
        And (    (hinicia > _horaIni And htermina > _horaFin)
              Or (hinicia < _horaIni And htermina < _horaFin)
              Or (_horaIni Between hinicia And htermina And _horaFin Between hinicia And htermina)
              Or (hinicia >= _horaIni And htermina <= _horaFin)
              Or (hinicia Between _horaIni And _horaFin And htermina Between _horaIni And _horaFin)
            )
    Into Cursor EventoRegistrado

Endtext

Execscript(m.lcSelect)

If Reccount() > 0
    Select EventoRegistrado
    Browse
Else
    Wait Window "todo ok"
Endif

Estas condiciones son equivalentes, elije una de ellas
              Or (hinicia >= _horaIni And htermina <= _horaFin)
              Or (hinicia Between _horaIni And _horaFin And htermina Between _horaIni And _horaFin)


Saludos,
Víctor.
Lambaré - Paraguay.


Saul Piña Hernandez

unread,
Feb 28, 2016, 6:22:45 PM2/28/16
to Comunidad de Visual Foxpro en Español
le agregé algunas cosas ya que el codigo es en VFP  y aun asi m
LOCAL _fecha as Date, _horaIni as Integer, _horaFin as Integer
_fecha        
= Thisform.Fecha
_horaIni    
= Thisform.txthoraIni.Value
_horaFin    
= Thisform.txthoraFin.Value  

Local lcSelect
Text To m.lcSelect Textmerge Noshow Pretext 15

Select  fecha
     
, hinicia
     
, htermina
   
From eventos
   
Where fecha = <<_fecha>>
       
And (    (hinicia > <<_horaIni>> And htermina > <<_horaFin>>)
             
Or (hinicia < <<_horaIni>> And htermina < <<_horaFin>>)

             
Or (<<_horaIni>> Between hinicia And htermina And <<_horaFin>> Between hinicia And htermina)

             
Or (hinicia >= <<_horaIni>> And htermina <= <<_horaFin>>)

             
           
)

   
Into Cursor EventoRegistrado

Endtext

Execscript(m.lcSelect)

If Reccount() > 0
   
Select EventoRegistrado
   
Browse
Else
   
Wait Window "todo ok"

ENDIF

e da error de operator/ operant data type mismatch

Víctor Hugo Espínola Domínguez

unread,
Feb 28, 2016, 6:26:13 PM2/28/16
to publice...@googlegroups.com
_HoraIni y _HoraFin de qué tipo son?


Saludos,
Víctor.
Lambaré - Paraguay.


Saul Piña Hernandez

unread,
Feb 28, 2016, 6:28:26 PM2/28/16
to Comunidad de Visual Foxpro en Español
numericos

Víctor Hugo Espínola Domínguez

unread,
Feb 28, 2016, 6:28:45 PM2/28/16
to publice...@googlegroups.com
El primer error está en <<_fecha>>


Where fecha = <<_fecha>>
       
And (    (hinicia > <<_horaIni>> And htermina > <<_horaFin>>)

Reemplaza por:

Where
fecha = ?_fecha
       
And (    (hinicia > ?_horaIni And htermina > ?_horaFin)

y así sucesivamente



Saludos,
Víctor.
Lambaré - Paraguay.


Saul Piña Hernandez

unread,
Feb 28, 2016, 6:29:10 PM2/28/16
to Comunidad de Visual Foxpro en Español
vendría siendo los valores del ejemplo 3 del project Agenda... que me enviaste... y que asu vez se llama "text1"



El domingo, 28 de febrero de 2016, 17:28:26 (UTC-6), Saul Piña Hernandez escribió:
numericos

Víctor Hugo Espínola Domínguez

unread,
Feb 28, 2016, 6:32:25 PM2/28/16
to publice...@googlegroups.com
El error estaba en <<_fecha>>

Las variables _Fecha y _Hora?? deben ser declaradas como private.

Si las declaras como locales sustituye el EXECSCRIPT por macrosustitución.


Saludos,
Víctor.
Lambaré - Paraguay.


Saul Piña Hernandez

unread,
Feb 28, 2016, 6:36:18 PM2/28/16
to Comunidad de Visual Foxpro en Español
probando...

Saul Piña Hernandez

unread,
Feb 28, 2016, 6:44:32 PM2/28/16
to Comunidad de Visual Foxpro en Español
Creo que ya funcionó... solo haria falta revisar haciendo pruebas guardando registros en diferentes horarios...
el codigo:
PRIVATE _fecha as Date, _horaIni as Integer, _horaFin as Integer
_fecha        
= Thisform.Fecha

_horaIni    
= Thisform.txthoraIni.Value
_horaFin    
= Thisform.txthoraFin.Value  

Local lcSelect
Text To m.lcSelect Textmerge Noshow Pretext 15

Select  fecha
     
, hinicia
     
, htermina
   
From
eventos
   
Where fecha = ?_fecha
       
And (    (hinicia >  ?_horaIni And htermina > ?_horaFin)
             
Or (hinicia > ?_horaIni And htermina < ?_horaFin)
             
Or (?_horaIni Between hinicia And htermina And ?_horaFin Between hinicia And htermina)
             
Or (hinicia >= ?_horaIni And htermina <= ?_horaFin)

             
           
)
   
Into Cursor EventoRegistrado

Endtext

Execscript(m.lcSelect)

If Reccount() > 0
   
Select EventoRegistrado
   
Browse
Else
   
Wait Window "todo ok"
ENDIF


Gracias Victor!!! 

Víctor Hugo Espínola Domínguez

unread,
Feb 28, 2016, 6:46:05 PM2/28/16
to publice...@googlegroups.com
👍

Saludos,
Víctor.
Lambaré - Paraguay.


Antonio Meza

unread,
Feb 28, 2016, 8:08:19 PM2/28/16
to Comunidad de Visual Foxpro en Español
Saul, te aseguro que no tienes idea de porque marco error en esta linea, o me equivoco??

Where fecha = <<_fecha>>

y solo copiaste y pegaste el código del buen Victor Hugo!!!! jajajajaja

Where fecha = ?_fecha


saludos
Antonio Meza

Víctor Hugo Espínola Domínguez

unread,
Feb 28, 2016, 8:17:55 PM2/28/16
to publice...@googlegroups.com
La verdad que yo simplemente adiviné, porque no estaba igual a como le había pasado, tampoco entiendo porqué da error de tipo de datos.


Saludos,
Víctor.
Lambaré - Paraguay.


Antonio Meza

unread,
Feb 28, 2016, 8:38:37 PM2/28/16
to Comunidad de Visual Foxpro en Español
El error es porque al decirle where fecha = <<_fecha>> es como si le dices:

where fecha = 01/01/2015 

ya que TEXT pasa el valor directamente y pues marca error de tipo de dato, un ejemplo mas sencillo:

_texto = "HOLA"
Text ....
    where saludo = <<_texto>>
endtext

Esto seria como hacer 
where saludo = HOLA

Por lo que VFP pensara que HOLA es una variable y no una cadena, para hacerlo manual se tendría que escribir entre comillas, algo así where saludo = '<<_texto>>' entonces ya obtienes where saludo = 'HOLA', pero al usar "?" ya estas pasando la variable y evitas convertir los datos según su tipo.

saludos
Antonio Meza

Saúl Piña

unread,
Feb 28, 2016, 9:04:27 PM2/28/16
to Comunidad de Visual Foxpro en Español
Jejeje....me quedo callado...

Víctor Hugo Espínola Domínguez

unread,
Feb 28, 2016, 9:18:48 PM2/28/16
to publice...@googlegroups.com
OK, pero fecha es tipo date y 01/01/2015 de qué tipo es?


Saludos,
Víctor.
Lambaré - Paraguay.


Antonio Meza

unread,
Feb 29, 2016, 10:21:30 AM2/29/16
to Comunidad de Visual Foxpro en Español
Si a una variable le asignas un valor por ejemplo a = 01/01/2015, Vfp te lo reconoce como Numérico, pero representado por 0.00, en la ventana de comandos de VFP teclea lo siguiente

a =  01/01/2015 
? a
? vartype(a)

saludos
Antonio Meza

Víctor Hugo Espínola Domínguez

unread,
Feb 29, 2016, 10:27:53 AM2/29/16
to publice...@googlegroups.com
Estás en lo cierto, esa expresión es numérica y su valor es el resultado de 1 dividido 1 dividio 2015 (0,0004962779156330),
y si Set("Date") fuera Italian el valor sería -2015.


Saludos,
Víctor.
Lambaré - Paraguay.


Saúl Piña

unread,
Feb 29, 2016, 10:30:07 AM2/29/16
to Comunidad de Visual Foxpro en Español
Buenos dias, bueno, me puse a analizar y realicé estos cambios, siguiendo la guia que me dejaste Victor. 
el codigo quedó como sigue:

Local lcSelect
Text To m.lcSelect Textmerge Noshow Pretext 15

Select  num, fecha
     
, hinicia
     
, htermina
   
From eventos
   
Where fecha = ?_fecha
   
And (      (?_horaIni < hInicia And ?_horaFin < hTermina)
           
Or (?_horaIni > hInicia And ?_horaFin > hTermina)
           
Or (?_horaIni Between hinicia And htermina And ?_horaFin Between hinicia And htermina) )
           
Or (?_horaIni < hInicia And ?_horaFin > hTermina)

   
Into Cursor EventoRegistrado

Endtext

Execscript(m.lcSelect)

If Reccount() > 0
   
Select EventoRegistrado

    LOCAL _id
as Integer
        MESSAGEBOX
("Ya existe un Evento agendado en esta fecha y horario",0+64,"Agenda ocupada por evento")
    DO FORM formas
\mostrarEvento1 WITH _fecha, _horaIni, _horaFin
ELSE
    MESSAGEBOX
("Fecha y horario libre para agendar",0+64,"Agendar Evento")
ENDIF


Pero, veo que la clase, en ocasiones, al iniciar el form, me aparece los horarios en "ceros" o algo desfasado del horario actual.
A que se deberá esto? 

y una ultima pregunta más, que mas bien podría aceptar sugerencia... ¿ Donde es lo correcto para validar si ya existe algun evento: que exista un botón para validar o al momento de guardar dicho evento ?



Gracias.






El domingo, 28 de febrero de 2016, 20:18:48 (UTC-6), Víctor Hugo escribió:

Víctor Hugo Espínola Domínguez

unread,
Feb 29, 2016, 11:13:05 AM2/29/16
to publice...@googlegroups.com
En esta porción del código veo algunos errores

    Where fecha = ?_fecha
   
And (      (?_horaIni < hInicia And ?_horaFin < hTermina)
           
Or (?_horaIni > hInicia And ?_horaFin > hTermina)
           
Or (?_horaIni Between hinicia And htermina And ?_horaFin Between hinicia And htermina) )
           
Or (?_horaIni < hInicia And ?_horaFin > hTermina)
   
Into Cursor EventoRegistrado

Cambia por:
    Where fecha = ?_fecha
    And (      (?_horaIni < hInicia And ?_horaFin < hTermina)
           Or (?_horaIni > hInicia And ?_horaFin > hTermina)
           Or (?_horaIni Between hinicia And htermina And ?_horaFin Between hinicia And htermina)
           Or (?_horaIni <= hInicia And ?_horaFin >= hTermina)
       
)
    Into Cursor
EventoRegistrado

>Pero, veo que la clase, en ocasiones, al iniciar el form, me aparece los horarios en "ceros" o algo desfasado del horario actual.
>A que se deberá esto? 

Sin mirar el formulario es imposible contestar, convierte tu formulario a .sc2 y envíalo
DO FoxBin2Prg WITH "tuformulario.scx"

>y una ultima pregunta más, que mas bien podría aceptar sugerencia... ¿ Donde es lo correcto para validar si ya existe algun evento: que >exista un botón para validar o al momento de guardar dicho evento ?

Lo correcto es en cualquier lugar, depende del gusto tuyo o de tu jefe o del usuario.

El estilo web es permitirle al usuario que cargue cualquier chorrada y validar todos los datos al dar [OK] o [Guardar].
Otra opción es validar en el evento Valid de cada control y ante un error obligarle a dar un dato correcto o sustituirlo por un default.
En este caso como la validación depende de los valores de dos controles puedes llamar a un método HMIniFinValido al cual invocarás en ambos eventos Valid solo si ambos controles tienen datos.
Otra opción es validar por separado las horas de inicio y final, pero la consulta sql que estás probando no sirve, el código correspondiente ya te lo envié (twice).
 


Saludos,
Víctor.
Lambaré - Paraguay.


Saúl Piña

unread,
Feb 29, 2016, 11:46:47 AM2/29/16
to Comunidad de Visual Foxpro en Español

Ok Victor, anotado tu sugerencia, ahora bien, en caso de encontrarse un evento registrado, lo que hago es mostrar ese evento en un grid....
pero como sabes, los datos de hInicia y hTermina los estoy guardando como tipo numericos, el asunto es que al mostrar el horario en las columnas, tengo problema al mostrar aquellos valores de 3 digitos.
por ejemplo: 915 (que vendría siendo "9:15")  como podria anteponer un cero ? 

el codigo para la consulta es:

LPARAMETERS _fecha, _horaInicia, _horaTermina

PRIVATE _fecha1
as Date, _horaIni1 as Integer, _horaFin1 as Integer
_fecha1    
= _fecha
_horaIni1    
= _horaInicia
_horaFin1    
= _horaTermina

Local lcSelect
Text To m.lcSelect Textmerge Noshow Pretext 15

Select SUBSTR(ALLTRIM(STR(hinicia)),1,2)+':'+SUBSTR(ALLTRIM(STR(hinicia)),3,2) as hInicia
             
, SUBSTR(ALLTRIM(STR(hTermina)),1,2)+':'+SUBSTR(ALLTRIM(STR(hTermina)),3,2) as hTermina
             
, fecha
             
, num
   
From eventos
   
Where fecha = ?_fecha1
   
And (      (?_horaIni1 < hInicia And ?_horaFin1 < hTermina)
           
Or (?_horaIni1 > hInicia And ?_horaFin1 > hTermina)
           
Or (?_horaIni1 Between hinicia And htermina And ?_horaFin1 Between hinicia And htermina) )
           
Or (?_horaIni1 < hInicia And ?_horaFin1 > hTermina)
   
Into Cursor cEventos

Endtext

Execscript(m.lcSelect)



gracias


Víctor Hugo Espínola Domínguez

unread,
Feb 29, 2016, 12:08:49 PM2/29/16
to publice...@googlegroups.com
No hay necesidad de transformar los datos numéricos de las horas, para rellenar con ceros a la izquierda e insertar el ":" se usan las propiedades de las columnas Format = "RL" e InputMask = 99:99

Fíjate en el formulario Agenda_3 del proyecto que te envié.

LPARAMETERS _fecha
, _horaInicia, _horaTermina

PRIVATE _fecha1
as Date, _horaIni1 as Integer, _horaFin1 as Integer
_fecha1    
= _fecha
_horaIni1    
= _horaInicia
_horaFin1    
= _horaTermina

Local lcSelect
Text To m.lcSelect Textmerge Noshow Pretext 15

Select         hinicia
             
, hTermina
             
, fecha
             
, num
   
From eventos
   
Where fecha = ?_fecha1
   
And (      (?_horaIni1 < hInicia And ?_horaFin1 < hTermina)
           
Or (?_horaIni1 > hInicia And ?_horaFin1 > hTermina)
           
Or (?_horaIni1 Between hinicia And htermina And ?_horaFin1 Between hinicia And htermina) )
           
Or (?_horaIni1 <= hInicia And ?_horaFin1 >= hTermina)
   
Into Cursor cEventos

Endtext

Execscript(m.lcSelect)


Saludos,
Víctor.
Lambaré - Paraguay.


Saúl Piña

unread,
Feb 29, 2016, 4:21:00 PM2/29/16
to Comunidad de Visual Foxpro en Español

Victor, disculpa, pero no se si esto pueda afectar en el ejecutable del programa que utiliza la clase, al momento de crear el ejecutable me apareció estos errores que aparecen eln la imagen

Víctor Hugo Espínola Domínguez

unread,
Feb 29, 2016, 4:39:53 PM2/29/16
to publice...@googlegroups.com
En tu programa principal agrega al final el siguiente código:
*
***********
Function GetDefaultPrinterAPI()
***********
Declare Integer GetDefaultPrinter In winspool.drv;
    STRING  @ pszBuffer,;
    INTEGER @ pcchBuffer

* returns default printer name (WinNT)
nBufsize = 250
cPrinter = Replicate(Chr(0), nBufsize)

= GetDefaultPrinter(@cPrinter, @nBufsize)
cPrinter = Substr(cPrinter, 1, At(Chr(0),cPrinter)-1)
Return(cPrinter)
Endfunc

********
Function ChangePrinterWinAPI(pszPrinter)
*******
Declare Integer SetDefaultPrinter In winspool.drv As apiSetDefaultPrinter ;
    String  pszPrinter
Return apiSetDefaultPrinter(m.pszPrinter)
ENDFUNC

***********
Function WAITABIT(lndelay)
***********
Declare Sleep In kernel32 Integer
dwmilliseconds = lndelay * 1000
Sleep(dwmilliseconds)
Clear Dlls 'SLEEP'
Return
Endfunc
*

Esa imagen se usa en la clase vhessCmdDatePicker en __ssClasses.vcx, puedes modificar y dejar en None la propiedad Picture, y asignar Caption = 6 y FonName = WebDings, que más bonito que la imagen.


Saludos,
Víctor.
Lambaré - Paraguay.


Drop.bmp

integral

unread,
Jun 30, 2026, 4:17:49 PM (4 days ago) Jun 30
to Comunidad de Visual Foxpro en Español
Que tal amigos del Foro

Muy Buenas Tardes

Me gustaria implementar en un formulario la clase calendario que se muestra en la imagen

Pero dicha clase tiene los nombres de los dias y los meses en Ingles, se podra cambiar a castellano         

CALENDARIO.jpg

Agradezco sus comentarios y sugerencias.

Saludos,

Integral

Zarlu

unread,
Jun 30, 2026, 5:08:30 PM (4 days ago) Jun 30
to Comunidad de Visual Foxpro en Español
Buenas tardes Integral!

Tendrías que entrar a la clase y modificar las labels y/o el código que haga referencia a ellas

Suerte
zarlu
Chetumal, Quintana Roo, México

Víctor Hugo Espínola Domínguez

unread,
Jun 30, 2026, 8:03:21 PM (4 days ago) Jun 30
to publice...@googlegroups.com
Solo debes copiar los archivos vfp9r.dll y vfp9resn.dll en la carpeta del .exe del tu sistema

Saludos,
Víctor.
Lambaré - Paraguay.


--
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 este debate, visita https://groups.google.com/d/msgid/publicesvfoxpro/9a06b82d-dd8e-48f1-be49-622388f38183n%40googlegroups.com.

Víctor Hugo Espínola Domínguez

unread,
Jun 30, 2026, 8:05:48 PM (4 days ago) Jun 30
to publice...@googlegroups.com
image.png

Saludos,
Víctor.
Lambaré - Paraguay.


Reply all
Reply to author
Forward
0 new messages