FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Favor ayuda, necesito agregar Boton adicional para Dtpicker
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Favor ayuda, necesito agregar Boton adicional para Dtpicker
Posted: Sat Mar 06, 2021 03:07 PM
Hola Amigos.

Tengo el ingreso de 2 fechas por GET, pero además necesito agregar un boton con icono calendario a un costado del get, para dar la posibilidad que el usuario no digite la fecha y la obtenga seleccionando desde el calendario y que asigne la fecha a la variable del GET.

Desde ya muchas gracias.

Antonio

Codigo:
Code (fw): Select all Collapse
Static Function Pide_Fecha()
        Local oDlg4,oSay1,oFecha1,oFon1,oFon2,oFon3,otitu1,oFecha2
        Local dFecha2:=Ctod("  /  /    "),dFecha1:=Ctod("  /  /    ")

        Public Mensa:=""


        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

        //                       Ancho,Alto
    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 GET oFecha1    Var dFecha1  SIZE 110,25     PIXEL OF oDlg4   PICTURE "@d" COLOR RGB(0,0,128)   FONT oFon1 UPDATE


        @ 125,020 SAY "Ingrese Fecha Final"         SIZE 160,20 PIXEL OF oDlg4  RIGHT  FONT oFon1

        @ 120,200 GET oFecha2    Var dFecha2  SIZE 110,25     PIXEL OF oDlg4   PICTURE "@d" COLOR RGB(0,0,128)   FONT oFon1 UPDATE


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

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

        ACTIVATE DIALOG oDlg4 CENTERED

        RELEASE FONT oFon1,oFon2,oFon3

        Return

Static Function ValidaFechas(Fech1,Fech2)
                    If Empty(Fech2).or.Empty(Fech1)
                            Mensa:="Debe Ingresar una Fecha Valida"
                         Return .f.
                    Endif
                    If fech1>Fech2
                            Mensa:="Fecha Inicial Debe ser Menor que Fecha Final"
                         Return .f.
                    Endif
                    Busca_Info(Fech1,Fech2)  // Mando a buscar informacion

                    Return .t.
FWH 22.10 - HARBOUR - PELLES C
Posts: 257
Joined: Mon Jun 10, 2013 06:40 PM
Re: Favor ayuda, necesito agregar Boton adicional para Dtpicker
Posted: Sat Mar 06, 2021 04:20 PM

Por que no utilizas DtPicker

INCLUDE "DtPicker.CH"

Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Re: Favor ayuda, necesito agregar Boton adicional para Dtpicker
Posted: Sat Mar 06, 2021 04:38 PM
VitalJavier wrote:Por que no utilizas DtPicker

#INCLUDE "DtPicker.CH"


Hola como estas.

Se lo presente como tu me indicas, pero al clientes le gusta mas un GET y un boton, ya que le molestaba digitar en DtPicker el dia, luego moverse con la fecha o mouse al mes y luego al año. Cosas de usuarios. A menos que el se pueda modificar el get de DtPicker y se pueda digitar la fecha completa como en los Get.

Saludos.

Antonio
FWH 22.10 - HARBOUR - PELLES C
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Favor ayuda, necesito agregar Boton adicional para Dtpicker
Posted: Sat Mar 06, 2021 07:24 PM
remtec wrote:Hola Amigos.

Tengo el ingreso de 2 fechas por GET, pero además necesito agregar un boton con icono calendario a un costado del get, para dar la posibilidad que el usuario no digite la fecha y la obtenga seleccionando desde el calendario y que asigne la fecha a la variable del GET.

Desde ya muchas gracias.

Antonio

Codigo:
Code (fw): Select all Collapse
Static Function Pide_Fecha()
        Local oDlg4,oSay1,oFecha1,oFon1,oFon2,oFon3,otitu1,oFecha2
        Local dFecha2:=Ctod("  /  /    "),dFecha1:=Ctod("  /  /    ")

        Public Mensa:=""


        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

        //                       Ancho,Alto
    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 GET oFecha1    Var dFecha1  SIZE 110,25     PIXEL OF oDlg4   PICTURE "@d" COLOR RGB(0,0,128)   FONT oFon1 UPDATE


        @ 125,020 SAY "Ingrese Fecha Final"         SIZE 160,20 PIXEL OF oDlg4  RIGHT  FONT oFon1

        @ 120,200 GET oFecha2    Var dFecha2  SIZE 110,25     PIXEL OF oDlg4   PICTURE "@d" COLOR RGB(0,0,128)   FONT oFon1 UPDATE


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

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

        ACTIVATE DIALOG oDlg4 CENTERED

        RELEASE FONT oFon1,oFon2,oFon3

        Return

Static Function ValidaFechas(Fech1,Fech2)
                    If Empty(Fech2).or.Empty(Fech1)
                            Mensa:="Debe Ingresar una Fecha Valida"
                         Return .f.
                    Endif
                    If fech1>Fech2
                            Mensa:="Fecha Inicial Debe ser Menor que Fecha Final"
                         Return .f.
                    Endif
                    Busca_Info(Fech1,Fech2)  // Mando a buscar informacion

                    Return .t.



Hola, Antonio.
Desde hace mucho lo he hecho de la manera siguiente con resultados satisfactorios. ( Probado hasta la version 1204 )
Intenta asi:

Code (fw): Select all Collapse
       @ 060,020 SAY "Ingrese Fecha Inicial"       SIZE 160,20 PIXEL OF oDlg4  RIGHT  FONT oFon1
        @ 060,200 GET oFecha1    Var dFecha1  SIZE 110,25     PIXEL OF oDlg4   PICTURE "@d" COLOR RGB(0,0,128)   FONT oFon1 UPDATE ;
                 ACTION Calend(@dFecha1,Self,2) BITMAP "FIND16x16"

        @ 125,020 SAY "Ingrese Fecha Final"         SIZE 160,20 PIXEL OF oDlg4  RIGHT  FONT oFon1
        @ 120,200 GET oFecha2    Var dFecha2  SIZE 110,25     PIXEL OF oDlg4   PICTURE "@d" COLOR RGB(0,0,128)   FONT oFon1 UPDATE ;
                 ACTION Calend(@dFecha2,Self,2) BITMAP "FIND16x16"


//-------------------------//Llama a Classe TCalend (incluir calendar.ch)
FUNCTION Calend( dFecha, oGet, nSide )
LOCAL oDlg, oCal, aRect, nPos
LOCAL lOk := .f.

DEFAULT  nSide := 1  // posic derecha

aRect := GetWndRect( oGet:hWnd )

DEFINE DIALOG oDlg FROM 0,0 TO 145,224 PIXEL TITLE "FAPSOFTWARE" // STYLE nor( WS_POPUP,WS_VISIBLE,WS_BORDER)
@-10,-20 CALENDAR oCal VAR dFecha OF oDlg PIXEL DAYSTATE SIZE 150,89 DBLCLICK (lOk:=.t.,oDlg:End())  
oCal:bKeyDown := {|nkey| IF( nKey = 13 .OR. nKey = 32, (lOk:=.t.,oDlg:End()), ) }
oDlg:oClient := oCal

if nSide == 1
   nPos :=aRect[2]
else
   nPos :=aRect[2]-(oDlg:nWidth-oGet:nWidth)
endif

ACTIVATE DIALOG oDlg ;
     ON INIT (oCal:show(),oDlg:Move(aRect[1] + oGet:nHeight + 4, nPos)) ;
     VALID IF( lOk .AND. ! GetKeyState( VK_ESCAPE ), (oGet:cText := dFecha, oGet:refresh(), .T. ), .t. )

RETURN NIL
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 257
Joined: Mon Jun 10, 2013 06:40 PM
Re: Favor ayuda, necesito agregar Boton adicional para Dtpicker
Posted: Sat Mar 06, 2021 08:04 PM
Lo hice asi en un dialogo

#INCLUDE "Calendar.CH"

En el dialogo el "Calendar" esta oculto

Code (fw): Select all Collapse
        REDEFINE GET        oGet VAR dVar ID 4001 OF oDlg1 PICTURE "@d"
        REDEFINE BUTTON oBtn ID 4002 ACTION oCal:Show()
        REDEFINE CALENDAR oCal VAR oDTal ID 4003 OF oDlg1 DBLCLICK (oCal:Hide(),dVar := oDTal, oGet:Refresh())
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Re: Favor ayuda, necesito agregar Boton adicional para Dtpicker
Posted: Sat Mar 06, 2021 08:25 PM

Hola Francisco y VitalJavier.

Muchas gracias a ambos.

He aplicado la solución que me dio Francisco, funciona muy bien.

Muy Agradecido y muchos saludos.

Antonio

FWH 22.10 - HARBOUR - PELLES C
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Favor ayuda, necesito agregar Boton adicional para Dtpicker
Posted: Sun Mar 07, 2021 12:37 AM

Me alegra que te haya funcionado.
Saludos.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Favor ayuda, necesito agregar Boton adicional para Dtpicker
Posted: Sun Mar 07, 2021 12:12 PM
Hola Antonio
Se lo presente como tu me indicas, pero al clientes le gusta mas un GET y un boton, ya que le molestaba digitar en DtPicker el dia, luego moverse con la fecha o mouse al mes y luego al año. Cosas de usuarios. A menos que el se pueda modificar el get de DtPicker y se pueda digitar la fecha completa como en los Get.

con éste código se evita pulsar la flecha o el mouse con DtPicker
Code (fw): Select all Collapse
          REDEFINE DTPICKER oFEC VAR oSQL:FECHAING ID 104 OF oDlg3 
      oFEC:bChange = { || If( oFEC:lClosed .and. oFEC:lFocused, oFEC:PostMsg( WM_KEYDOWN, VK_RIGHT ),) }


Es otra opción.
Saludos,



Adhemar C.

Continue the discussion