FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Favor ayuda con DTPICKER
Posts: 719
Joined: Fri May 12, 2017 02:50 PM

Favor ayuda con DTPICKER

Posted: Fri Apr 09, 2021 02:39 PM
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 (fw): Select all Collapse
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
FWH 22.10 - HARBOUR - PELLES C
Posts: 728
Joined: Fri Oct 07, 2005 07:38 AM

Re: Favor ayuda con DTPICKER

Posted: Fri Apr 09, 2021 04:10 PM
Ajustando tu ejemplo para que funcione autocontenido :

Code (fw): Select all Collapse
#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 (fw): Select all Collapse
SET DATE BRITISH


Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
Posts: 719
Joined: Fri May 12, 2017 02:50 PM

Re: Favor ayuda con DTPICKER

Posted: Fri Apr 09, 2021 05:00 PM

Hola Angel.

Muchas gracias por tu ayuda.

Ahora si funciona correctamente.

Muchos Saludos.

Antonio

FWH 22.10 - HARBOUR - PELLES C

Continue the discussion