Page 1 of 1

Favor ayuda con DTPICKER

PostPosted: Fri Apr 09, 2021 2:39 pm
by remtec
Amigos, muy buen dia.

Tengo un problema, en este codigo pido fecha inicial y final, para informes por periodo.

El problema es que el usuario, aun cuando esta la opcion de usar el calendario, le es mas comodo digitar ambas fechas, use lo que me recomendaron en el foro de como en la medida que vaya digitando el dia, mes y año, vaya automaticamente avanzando al siguiente, para este caso, en la fecha inicial, se cumple correctamente, pero al digitar fecha final, el dia no se puede, solo lo hacer correctamente al digitar el mes y luego digitar el dia.

Alguien sabe a que se debe esto?

Muchos Saludos.

Antonio

Dejo el codigo:
Code: Select all  Expand view

Function Pide_Fecha()
        Local oDlg4,oSay1,oFecha1,oFon1,oFon2,oFon3,otitu1,oFecha2

        Public Mensa:="",  dFecha2:=Date(),dFecha1:=Date()

        DEFINE FONT oFon1 NAME "TAHOMA" SIZE 0,-14  BOLD
        DEFINE FONT oFon2 NAME 'TAHOMA' SIZE 0,-12   BOLD
        DEFINE FONT oFon3 NAME 'TAHOMA' SIZE 0,24   BOLD

    DEFINE DIALOG oDlg4 SIZE 460,250 PIXEL TRUEPIXEL FONT oFon1   STYLE nOr( WS_POPUP, WS_VISIBLE, WS_DLGFRAME )
        @ 10,70 SAY otitu1 PROMPT " PERIODO DE INFORME "  PIXEL OF oDlg4 COLORS RGB(0,100,0)   FONT oFon3

        @ 060,020 SAY "Ingrese Fecha Inicial"       SIZE 160,20 PIXEL OF oDlg4  RIGHT  FONT oFon1
        @ 060,200 DTPICKER oFecha1 VAR dFecha1 OF oDlg4 SIZE 120,30 PIXEL PICTURE "@d" UPDATE
      oFecha1:bChange = { || If( oFecha1:lClosed .and. oFecha1:lFocused, oFecha1:PostMsg( WM_KEYDOWN, VK_RIGHT ),) }

        @ 125,020 SAY "Ingrese Fecha Final"         SIZE 160,20 PIXEL OF oDlg4  RIGHT  FONT oFon1
        @ 125,200 DTPICKER oFecha2 VAR dFecha2 OF oDlg4 SIZE 120,30 PIXEL PICTURE "@d" UPDATE         // <-- Aqui no permite digitar el dia Primero
      oFecha2:bChange = { || If( oFecha2:lClosed .and. oFecha2:lFocused, oFecha2:PostMsg( WM_KEYDOWN, VK_RIGHT ),) }


    @ 180,150 BTNBMP SIZE 70, 50 PROMPT "PROCESA"  OF oDlg4 PIXEL 2007 Resource "#8002"  FONT oFon2 ;
            ToolTip  "PROCESA DATOS";
                ACTION IF(!ValidaFechas(dFecha1,dFecha2),(MsgInfo( Mensa,"ATENCION" ),.F.),(oFecha1:Refresh(),oFecha2:Refresh(),Eje_Pro:=.T.,oDlg4:End(), .T.) )

    @ 180,300 BTNBMP SIZE 70, 50 PROMPT "VOLVER"  OF oDlg4 PIXEL 2007 Resource "#8028"  FONT oFon2 ;
            ToolTip  "VOLVER";
          ACTION Eje_Pro:=.F.,oDlg4:End()

        ACTIVATE DIALOG oDlg4 CENTERED

        RELEASE FONT oFon1,oFon2,oFon3
        Return

 

Re: Favor ayuda con DTPICKER

PostPosted: Fri Apr 09, 2021 4:10 pm
by AngelSalom
Ajustando tu ejemplo para que funcione autocontenido :

Code: Select all  Expand view
#include "fivewin.ch"
#include "dtpicker.ch"

Memvar Mensa, dFecha2, dFecha1, Eje_Pro

Function main()
        Local oDlg4,oSay1,oFecha1,oFon1,oFon2,oFon3,otitu1,oFecha2

        SET DATE BRITISH
       
        Mensa:=""
        dFecha2:=Date()
        dFecha1:=Date()
       

        DEFINE FONT oFon1 NAME "TAHOMA" SIZE 0,-14  BOLD
        DEFINE FONT oFon2 NAME 'TAHOMA' SIZE 0,-12   BOLD
        DEFINE FONT oFon3 NAME 'TAHOMA' SIZE 0,24   BOLD

    DEFINE DIALOG oDlg4 SIZE 460,250 PIXEL TRUEPIXEL FONT oFon1   STYLE nOr( WS_POPUP, WS_VISIBLE, WS_DLGFRAME )
        @ 10,70 SAY otitu1 PROMPT " PERIODO DE INFORME "  PIXEL OF oDlg4 COLORS RGB(0,100,0)   FONT oFon3

        @ 060,020 SAY "Ingrese Fecha Inicial"       SIZE 160,20 PIXEL OF oDlg4  RIGHT  FONT oFon1
        @ 060,200 DTPICKER oFecha1 VAR dFecha1 OF oDlg4 SIZE 120,30 PIXEL PICTURE "@d" UPDATE
      oFecha1:bChange = { || If( oFecha1:lClosed .and. oFecha1:lFocused, oFecha1:PostMsg( WM_KEYDOWN, VK_RIGHT ),) }

        @ 125,020 SAY "Ingrese Fecha Final"         SIZE 160,20 PIXEL OF oDlg4  RIGHT  FONT oFon1
        @ 125,200 DTPICKER oFecha2 VAR dFecha2 OF oDlg4 SIZE 120,30 PIXEL PICTURE "@d" UPDATE         // <-- Aqui no permite digitar el dia Primero
      oFecha2:bChange = { || If( oFecha2:lClosed .and. oFecha2:lFocused, oFecha2:PostMsg( WM_KEYDOWN, VK_RIGHT ),) }


    @ 180,150 BTNBMP SIZE 70, 50 PROMPT "PROCESA"  OF oDlg4 PIXEL 2007 Resource "#8002"  FONT oFon2 ;
            ToolTip  "PROCESA DATOS";
                ACTION IF(!ValidaFechas(dFecha1,dFecha2),(MsgInfo( Mensa,"ATENCION" ),.F.),(oFecha1:Refresh(),oFecha2:Refresh(),Eje_Pro:=.T.,oDlg4:End(), .T.) )

    @ 180,300 BTNBMP SIZE 70, 50 PROMPT "VOLVER"  OF oDlg4 PIXEL 2007 Resource "#8028"  FONT oFon2 ;
            ToolTip  "VOLVER";
          ACTION Eje_Pro:=.F.,oDlg4:End()

        ACTIVATE DIALOG oDlg4 CENTERED

        RELEASE FONT oFon1,oFon2,oFon3

Return ( nil )

function validafechas()
return (.t.)


Está funcionando correctamente añadiendo un

Code: Select all  Expand view
SET DATE BRITISH


Image

Re: Favor ayuda con DTPICKER

PostPosted: Fri Apr 09, 2021 5:00 pm
by remtec
Hola Angel.

Muchas gracias por tu ayuda.

Ahora si funciona correctamente.

Muchos Saludos.

Antonio