Favor ayuda con DTPICKER

Favor ayuda con DTPICKER

Postby remtec » Fri Apr 09, 2021 2: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: 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

 
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 717
Joined: Fri May 12, 2017 2:50 pm

Re: Favor ayuda con DTPICKER

Postby AngelSalom » Fri Apr 09, 2021 4:10 pm

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
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
 
Posts: 708
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España

Re: Favor ayuda con DTPICKER

Postby remtec » Fri Apr 09, 2021 5:00 pm

Hola Angel.

Muchas gracias por tu ayuda.

Ahora si funciona correctamente.

Muchos Saludos.

Antonio
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 717
Joined: Fri May 12, 2017 2:50 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 87 guests