DATEPICKER PROBLEM

General Help regarding HMG, Compilation, Linking, Samples

Moderator: Rathinagiri

Post Reply
viren092002
Posts: 17
Joined: Mon Apr 01, 2013 12:15 pm

DATEPICKER PROBLEM

Post by viren092002 »

WHEN WE ARE ENTER DATE IN OLD DOS BASED CLIPPER PROGRAM, WE JUST HAVE TO TYPE THE DATE

BUT NOW WE ARE USING HARBOUR WITH WINDOWS BASED SOFTWARE EXPERIENCE, DATEPICKER CONTROL IS NOT SO GOOD BEACUSE WE HAVE TO PRESS TAB OR ARROW KEYS FOR MOVING WITHIN CONTROL, HOW TO CHANGE THIS IN DATEPICKER ?????????????????

I HAVE SET DATE FORMAT AS DD/MM/YYYY AND TRY TEXTBOX WITH INPUTMASK AS 99/99/9999 BUT THIS IS NOT AS GOOD AS OLD CLIPPER DATE ENTRY

I AM USING HMG 3.1.1

ANYONE HAVE ANY SOLUTION THEN PLEASE HELP
User avatar
andyglezl
Posts: 1461
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Contact:

Re: DATEPICKER PROBLEM

Post by andyglezl »

Quieres SELECCIONAR (DatePicker) o solo TECLEAR (TEXTBOX) la fecha ?
*-----------------------------------------------------------------------------------------
Do you want to SELECT (DatePicker) or just KEY (TEXTBOX) the date?
TEXTBOX ( Date Type ):
@ <nRow>, <nCol>
TEXTBOX <ControlName>
[ OF | PARENT <ParentWindowName> ]
[ HEIGHT <nHeight> ]
[ WIDTH <nWidth> ]
[ FIELD <FieldName> ]
[ VALUE <cValue> ]
[ READONLY ]
[ FONT <cFontName> SIZE <nFontSize> ]
[ BOLD ] [ ITALIC ] [ UNDERLINE ] [ STRIKEOUT ]
[ TOOLTIP <ToolTipText> ]
[ BACKCOLOR <aBackColor> ]
[ FONTCOLOR <aFontColor> ]
[ DISABLEDBACKCOLOR <aDisabledBackColor> ]
[ DISABLEDFONTCOLOR <aDisabledFontColor> ]
< DATE >
[ ON CHANGE <OnChangeProcedure> ]
[ ON GOTFOCUS <OnGotFocusProcedure> ]
[ ON LOSTFOCUS <OnLostFocusProcedure> ]
[ ON ENTER <OnEnterProcedure> ]
[ RIGHTALIGN ]
[ INVISIBLE ]
[ NOTABSTOP ]
[ HELPID <nHelpId> ]

\HMG\3.4.4\DOC\data\index.htm
Andrés González López
Desde Guadalajara, Jalisco. México.
ROBROS
Posts: 256
Joined: Thu May 25, 2017 6:30 pm
DBs Used: DBF
Location: D 83071 Stephanskirchen

Re: DATEPICKER PROBLEM

Post by ROBROS »

Some time ago I experimented with date textbox, see attached code, maybe its useful for you.

Code: Select all

#include "hmg.ch"

FUNCTION Main()

local cDat, cDatum

set language to german
set century on
set date to german
set date format to "DD.MM.YYYY"
set navigation extended

************************************

 DEFINE WINDOW Date_1 ;
  AT 120,120 ;
  WIDTH 600 ;
  HEIGHT 400 ;
  TITLE "Wochentag eines Datums" ;
  MAIN ;
  FONT 'ARIAL'  Size 14  
 END WINDOW
 
 On Key F10 of date_1 action showdat() 


****************************************************************
 DEFINE LABEL datum_0
  PARENT Date_1 
  ROW 40 
  COL 10 
  width 300
  height 50
  FONTNAME 'ARIAL' 
  FONTSIZE 12
  FONTUNDERLINE .T.
  autosize .T.
 VALUE "Find out the CDOW() of a date" 
 END LABEL  
 
 DEFINE LABEL datum 
  PARENT Date_1 
  ROW 150
  COL 10 
  width 300
  height 50
  FONTNAME 'ARIAL' 
  FONTSIZE 12
  autosize .T.
  VALUE "Enter date, go on with RETURN or F-10" 
 END LABEL 
 
 DEFINE LABEL endprog
  PARENT Date_1 
  ROW 180
  COL 10 
  width 300
  height 50
  FONTNAME 'ARIAL' 
  FONTSIZE 12   
  autosize .T.
  VALUE "An empty or invalid date will terminate the program" 
 END LABEL 
 
  @ 210,10 TEXTBOX date ;
   PARENT Date_1 ;
   WIDTH 120 ;
   HEIGHT 30 ;
   Font 'ARIAL' SIZE 14 ;
   value nil ;  
   date  ;
   On Enter showdat() 
   
       DEFINE BUTTON showdat
            PARENT date_1
            ROW 210 
            COL 140
            CAPTION 'F-10'  
            ONCLICK showdat()
			Fontname 'ARIAL'
			FontSize 14
            WIDTH 60 
            HEIGHT 30
      END BUTTON
  
    
 ACTIVATE WINDOW Date_1
 date_1.maximize
 RETURN NIL
 *****************************************************
 //CDOW() is shown in German. :-)
 
 function showdat
 cDat:=dtos(Date_1.date.value)
 cDatum:=dtoc(Date_1.date.value)
 
 if empty(cDat)
	MsgInfo('No valid date')
 else
	MsgInfo(cDat)
	MsgInfo(cDatum) 
	MsgInfo(cDatum+' = '+cdow(Date_1.date.value))
 endif
 Date_1.release
return 
Regards
Robert
User avatar
serge_girard
Posts: 3364
Joined: Sun Nov 25, 2012 2:44 pm
DBs Used: 1 MySQL - MariaDB
2 DBF
Location: Belgium
Contact:

Re: DATEPICKER PROBLEM

Post by serge_girard »

Thanks for sharing Robert, good sample ! Could be handy for emulate DOS-like applications.

Serge
There's nothing you can do that can't be done...
viren092002
Posts: 17
Joined: Mon Apr 01, 2013 12:15 pm

Re: DATEPICKER PROBLEM

Post by viren092002 »

andyglezl wrote: Fri Apr 17, 2020 3:45 pm Quieres SELECCIONAR (DatePicker) o solo TECLEAR (TEXTBOX) la fecha ?
*-----------------------------------------------------------------------------------------
Do you want to SELECT (DatePicker) or just KEY (TEXTBOX) the date?
TEXTBOX ( Date Type ):
@ <nRow>, <nCol>
TEXTBOX <ControlName>
[ OF | PARENT <ParentWindowName> ]
[ HEIGHT <nHeight> ]
[ WIDTH <nWidth> ]
[ FIELD <FieldName> ]
[ VALUE <cValue> ]
[ READONLY ]
[ FONT <cFontName> SIZE <nFontSize> ]
[ BOLD ] [ ITALIC ] [ UNDERLINE ] [ STRIKEOUT ]
[ TOOLTIP <ToolTipText> ]
[ BACKCOLOR <aBackColor> ]
[ FONTCOLOR <aFontColor> ]
[ DISABLEDBACKCOLOR <aDisabledBackColor> ]
[ DISABLEDFONTCOLOR <aDisabledFontColor> ]
< DATE >
[ ON CHANGE <OnChangeProcedure> ]
[ ON GOTFOCUS <OnGotFocusProcedure> ]
[ ON LOSTFOCUS <OnLostFocusProcedure> ]
[ ON ENTER <OnEnterProcedure> ]
[ RIGHTALIGN ]
[ INVISIBLE ]
[ NOTABSTOP ]
[ HELPID <nHelpId> ]
YES, I JUST WANT TO TYPE DATE, AND THIS IS GOOD SYNTEX FOR THIS, BUT I HAVE SEEN SOME SOFTWARE HAVE MORE POWERFUL DATEPICKER,

YOU CAN TYPE THE DATE AS WELL AS YOU CAN SELECT THE DATE FROM DROP DOWN CALENDER

ONE MORE ERROR IN THIS TEXT BOX IS THAT YOU CAN NOT USE BACK SPACE KEY IF YOU TYPE WRONG DATE,
WHEN PRESSING BACKSPACE IT STOP AT "DATE SEPARETOR" - "/ OR ."
WE HAVE TO USE ARROW KEY TO MOVE INSIDE TEXTBOX DATE FUNCTION, WE CAN NOT USE BACKSPACE

CAN ANY ONE HAVE IDEA HOW TO DEVLOP THIS TYPE OF CODE

\HMG\3.4.4\DOC\data\index.htm
viren092002
Posts: 17
Joined: Mon Apr 01, 2013 12:15 pm

Re: DATEPICKER PROBLEM

Post by viren092002 »

ROBROS wrote: Fri Apr 17, 2020 8:20 pm Some time ago I experimented with date textbox, see attached code, maybe its useful for you.

Code: Select all

#include "hmg.ch"

FUNCTION Main()

local cDat, cDatum

set language to german
set century on
set date to german
set date format to "DD.MM.YYYY"
set navigation extended

************************************

 DEFINE WINDOW Date_1 ;
  AT 120,120 ;
  WIDTH 600 ;
  HEIGHT 400 ;
  TITLE "Wochentag eines Datums" ;
  MAIN ;
  FONT 'ARIAL'  Size 14  
 END WINDOW
 
 On Key F10 of date_1 action showdat() 


****************************************************************
 DEFINE LABEL datum_0
  PARENT Date_1 
  ROW 40 
  COL 10 
  width 300
  height 50
  FONTNAME 'ARIAL' 
  FONTSIZE 12
  FONTUNDERLINE .T.
  autosize .T.
 VALUE "Find out the CDOW() of a date" 
 END LABEL  
 
 DEFINE LABEL datum 
  PARENT Date_1 
  ROW 150
  COL 10 
  width 300
  height 50
  FONTNAME 'ARIAL' 
  FONTSIZE 12
  autosize .T.
  VALUE "Enter date, go on with RETURN or F-10" 
 END LABEL 
 
 DEFINE LABEL endprog
  PARENT Date_1 
  ROW 180
  COL 10 
  width 300
  height 50
  FONTNAME 'ARIAL' 
  FONTSIZE 12   
  autosize .T.
  VALUE "An empty or invalid date will terminate the program" 
 END LABEL 
 
  @ 210,10 TEXTBOX date ;
   PARENT Date_1 ;
   WIDTH 120 ;
   HEIGHT 30 ;
   Font 'ARIAL' SIZE 14 ;
   value nil ;  
   date  ;
   On Enter showdat() 
   
       DEFINE BUTTON showdat
            PARENT date_1
            ROW 210 
            COL 140
            CAPTION 'F-10'  
            ONCLICK showdat()
			Fontname 'ARIAL'
			FontSize 14
            WIDTH 60 
            HEIGHT 30
      END BUTTON
  
    
 ACTIVATE WINDOW Date_1
 date_1.maximize
 RETURN NIL
 *****************************************************
 //CDOW() is shown in German. :-)
 
 function showdat
 cDat:=dtos(Date_1.date.value)
 cDatum:=dtoc(Date_1.date.value)
 
 if empty(cDat)
	MsgInfo('No valid date')
 else
	MsgInfo(cDat)
	MsgInfo(cDatum) 
	MsgInfo(cDatum+' = '+cdow(Date_1.date.value))
 endif
 Date_1.release
return 
Regards
Robert

THANKS FOR SHARING YOUR CODE,
User avatar
mol
Posts: 3817
Joined: Thu Sep 11, 2008 5:31 am
Location: Myszków, Poland
Contact:

Re: DATEPICKER PROBLEM

Post by mol »

I don't understand - datePicker allows you to to enter date manually, you can change year, month and day by keyboard arrow keys. You can also select it by mouse - by clicking left and right arrow you can select previous/next month, by clickich mont or year, you can clickly change to month select, year select or even ten years period select.

In my opinion it's enough powerful.
Attachments
calendar.png
calendar.png (23.66 KiB) Viewed 2716 times
Last edited by mol on Sat Apr 18, 2020 2:13 pm, edited 3 times in total.
User avatar
andyglezl
Posts: 1461
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Contact:

Re: DATEPICKER PROBLEM

Post by andyglezl »

ONE MORE ERROR IN THIS TEXT BOX IS THAT YOU CAN NOT USE BACK SPACE KEY IF YOU TYPE WRONG DATE,

Porque usar BACKSPACE ??? Intentaste de esta forma ?
*--------------------------------------------------------------------
Why use BACKSPACE ??? Did you try this way ?

Code: Select all

		@ 050 , 060 DATEPICKER Mifecha OF Main1  VALUE DATE() WIDTH 120 HEIGHT 25 FONT "Verdana" SIZE 9  ;
					TOOLTIP "+ Suma    - Resta" UPDOWN  RIGHTALIGN FORMAT "dd/MM/yyyy"
Andrés González López
Desde Guadalajara, Jalisco. México.
ROBROS
Posts: 256
Joined: Thu May 25, 2017 6:30 pm
DBs Used: DBF
Location: D 83071 Stephanskirchen

Re: DATEPICKER PROBLEM

Post by ROBROS »

Today users are quite different from old Dos users like many of us are. I even doubt whether they know about the existence of the backspace key.:-) What will they do? They make a double click on the entered date and voilà: they can enter the date from the mostleft position.

Robert
@ andy: I will give your code a try.
viren092002
Posts: 17
Joined: Mon Apr 01, 2013 12:15 pm

Re: DATEPICKER PROBLEM

Post by viren092002 »

THANK YOU ALL FOR YOUR KIND REPLY
Post Reply