Page 1 of 1
Un get de fecha con consulta de calendario
Posted: Mon Dec 12, 2016 3:00 am
by lubin
Buenas noches
Una duda simple les tengo:
Queria consultarles como se usa el Get de una variable tipo fecha donde el Get tenga un botón para mostrar un calendario y seleccionar una fecha
como debo hacerlo, con que clase ese posible ?
Gracias de antemano
Lubin
Re: Un get de fecha con consulta de calendario
Posted: Mon Dec 12, 2016 4:28 am
by FranciscoA
Hola Lubin.
Esta function Calend() la tomé de aqui del foro (no recuerdo de quien es), con algunos retoques, pero me ha funcionado hasta el momento.
Aqui te la dejo.
Code: Select all
REDEFINE GET oFecha VAR dFecha ID 202 OF oDlg ;
ACTION Calend(@dFecha,Self,2) BITMAP "FIND" ;
VALID !empty(dFecha)
oFecha:lBtnTransparent := .t.
//-------------------------//Llama a Classe TCalend
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 "CALEND" // 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
Espero te sea util.
Saludos.
Re: Un get de fecha con consulta de calendario
Posted: Mon Dec 12, 2016 5:43 am
by lubin
Gracias Francisco, le dare una mirada
Re: Un get de fecha con consulta de calendario
Posted: Mon Dec 12, 2016 4:24 pm
by Armando
Lubin:
La clase en cuestión es la DatePicker
Aquí un ejemplo:
Code: Select all
#Include "DtPicker.ch"
....
....
REDEFINE dtPicker aGets[01] VAR oHdr:FDE ID 101 OF oDlg UPDATE;
VALID ValFde();
MESSAGE "Fecha de emisión del comprobante"
Y en Recursos utilizas el control Date-Time
Saludos