Date-Type textbox problem

Topic Specific Tutorials and Tips.

Moderator: Rathinagiri

Post Reply
ROBROS
Posts: 99
Joined: Thu May 25, 2017 6:30 pm
DBs Used: DBF
Has thanked: 39 times
Been thanked: 7 times

Date-Type textbox problem

Post by ROBROS » Thu May 10, 2018 11:57 am

Hi friends,
I played around with a date-type textbox and need help. See the code:

Code: Select all

#include "hmg.ch"

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

FUNCTION Main()

local cDat, cDatum

 DEFINE WINDOW Date_1 ;
 AT 120,120 ;
 WIDTH 400 ;
 HEIGHT 150 ;
 TITLE "Textbox Date" ;
 MAIN 
 END WINDOW
 
 On Key F10 of date_1 action showdat() 

 @ 50,50 LABEL datum ;
 PARENT Date_1 ;
 VALUE "Datum" ;

 @ 50,160 TEXTBOX date ;
   PARENT Date_1 ;
   WIDTH 120 ;
   HEIGHT 30 ;
   date 
   inputmask "99.99.9999" 
   VALUE Date()
   
 ACTIVATE WINDOW Date_1
 RETURN NIL
 
 function showdat
 cDat:=dtoc(Date_1.date.value)
 cDatum:=right(cDat,4)+substr(cDat,4,2)+left(cDat,2)
 
 MsgInfo(cDat)
 MsgInfo(cDatum)

return 
It seems inputmask does not work with date-textbox, and the date format setting is ignored too.
Btw: Why do I not get a syntax error because of the semicolon at value of label datum and why do I get a syntax error at the date statement in textbox?

Thank you for your help

Robert

PS: How can I append a screenshot to show you the result of my code?
Attachments
TextboxDate1.png
TextboxDate1.png (106.38 KiB) Viewed 402 times
TextboxDate.png
TextboxDate.png (81.6 KiB) Viewed 408 times
Last edited by ROBROS on Thu May 10, 2018 1:45 pm, edited 2 times in total.

ROBROS
Posts: 99
Joined: Thu May 25, 2017 6:30 pm
DBs Used: DBF
Has thanked: 39 times
Been thanked: 7 times

Post by ROBROS » Thu May 10, 2018 1:41 pm

As you can see from the attached screen shot, the typed in date is not validated, but the MsgInfo shows nothing (blank).

The sequence of the attached files is wrong. Sorry for that.
Last edited by ROBROS on Thu May 10, 2018 1:47 pm, edited 1 time in total.

User avatar
mustafa
Posts: 664
Joined: Fri Mar 20, 2009 11:38 am
Location: Alicante - Spain
Been thanked: 70 times

Post by mustafa » Thu May 10, 2018 1:45 pm

Hello Friend ROBROS :
write with this order and it works

Code: Select all

#include "hmg.ch"

FUNCTION Main()

local cDat, cDatum

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

 DEFINE WINDOW Date_1 ;
 AT 120,120 ;
 WIDTH 400 ;
 HEIGHT 150 ;
 TITLE "Textbox Date" ;
 MAIN 
 END WINDOW
 
 On Key F10 of date_1 action showdat() 

 @ 50,50 LABEL datum ;
 PARENT Date_1 ;
 VALUE "Datum" ;

 @ 50,160 TEXTBOX date ;
   PARENT Date_1 ;
   WIDTH 120 ;
   HEIGHT 30 ;
   VALUE dtoc( Date() ) ;
   inputmask "99.99.9999" 


 ACTIVATE WINDOW Date_1
 RETURN NIL
 
 function showdat
  cDat:= (Date_1.date.value)    //dtoc(Date_1.date.value)        
 cDatum:=right(cDat,4)+substr(cDat,4,2)+left(cDat,2)
 
 MsgInfo(cDat)
 MsgInfo(cDatum)

return 

Regards
Mustafa
Attachments
date.jpg
date.jpg (5.94 KiB) Viewed 400 times

edk
Posts: 304
Joined: Thu Oct 16, 2014 11:35 am
Location: Poland
Has thanked: 81 times
Been thanked: 233 times

Post by edk » Thu May 10, 2018 2:02 pm

ROBROS wrote:
Thu May 10, 2018 11:57 am
Hi friends,
I played around with a date-type textbox and need help. See the code:

Code: Select all

#include "hmg.ch"

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

FUNCTION Main()

local cDat, cDatum

 DEFINE WINDOW Date_1 ;
 AT 120,120 ;
 WIDTH 400 ;
 HEIGHT 150 ;
 TITLE "Textbox Date" ;
 MAIN 
 END WINDOW
 
 On Key F10 of date_1 action showdat() 

 @ 50,50 LABEL datum ;
 PARENT Date_1 ;
 VALUE "Datum" ;

 @ 50,160 TEXTBOX date ;
   PARENT Date_1 ;
   WIDTH 120 ;
   HEIGHT 30 ;
   date 
   inputmask "99.99.9999" 
   VALUE Date()
   
 ACTIVATE WINDOW Date_1
 RETURN NIL
 
 function showdat
 cDat:=dtoc(Date_1.date.value)
 cDatum:=right(cDat,4)+substr(cDat,4,2)+left(cDat,2)
 
 MsgInfo(cDat)
 MsgInfo(cDatum)

return 
It seems inputmask does not work with date-textbox, and the date format setting is ignored too.
Btw: Why do I not get a syntax error because of the semicolon at value of label datum and why do I get a syntax error at the date statement in textbox?

Thank you for your help

Robert

PS: How can I append a screenshot to show you the result of my code?
Wrong syntax of TextBox. When you define a TextBox with the DATE option, you can not use INPUTMASK.
Also, you must set century and date format locate in to FUNCTION Main(), not before.

Code: Select all

#include "hmg.ch"

FUNCTION Main()

local cDat, cDatum

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

 DEFINE WINDOW Date_1 ;
 AT 120,120 ;
 WIDTH 400 ;
 HEIGHT 150 ;
 TITLE "Textbox Date" ;
 MAIN 
 END WINDOW
 
 On Key F10 of date_1 action showdat() 

 @ 50,50 LABEL datum ;
 PARENT Date_1 ;
 VALUE "Datum" ;

 @ 50,160 TEXTBOX date ;
   PARENT Date_1 ;
   WIDTH 120 ;
   HEIGHT 30 ;
   VALUE Date();
   DATE
   
 ACTIVATE WINDOW Date_1
 RETURN NIL
 
 function showdat
 cDat:=dtoc(Date_1.date.value)
 cDatum:=right(cDat,4)+substr(cDat,4,2)+left(cDat,2)
 
 MsgInfo(cDat)
 MsgInfo(cDatum)

return 

ROBROS
Posts: 99
Joined: Thu May 25, 2017 6:30 pm
DBs Used: DBF
Has thanked: 39 times
Been thanked: 7 times

Post by ROBROS » Thu May 10, 2018 2:16 pm

Hi friend Mustafa,

I compiled and of course it works, thank you, but I have not yet found the difference to my code.;)

Anyway: Thank you
Robert

User avatar
mustafa
Posts: 664
Joined: Fri Mar 20, 2009 11:38 am
Location: Alicante - Spain
Been thanked: 70 times

Post by mustafa » Thu May 10, 2018 2:23 pm

your code with arrangement

Code: Select all

#include "hmg.ch"

FUNCTION Main()

local cDat, cDatum

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

 DEFINE WINDOW Date_1 ;
 AT 120,120 ;
 WIDTH 400 ;
 HEIGHT 150 ;
 TITLE "Textbox Date" ;
 MAIN 
 END WINDOW
 
 On Key F10 of date_1 action showdat() 

 @ 50,50 LABEL datum ;
 PARENT Date_1 ;
 VALUE "Datum" ;

 @ 50,160 TEXTBOX date ;
   PARENT Date_1 ;
   WIDTH 120 ;
   HEIGHT 30 ;
   date 
   inputmask "99.99.9999" 
   VALUE Date()

     ACTIVATE WINDOW Date_1
 RETURN NIL
 
 function showdat
 cDat:=dtoc(Date_1.date.value)
 cDatum:=right(cDat,4)+substr(cDat,4,2)+left(cDat,2)
 
 MsgInfo(cDat)
 MsgInfo(cDatum)

return 

Regards
Mustafa

User avatar
mustafa
Posts: 664
Joined: Fri Mar 20, 2009 11:38 am
Location: Alicante - Spain
Been thanked: 70 times

Post by mustafa » Thu May 10, 2018 2:29 pm

*------------------ Your code -------------------*
#include "hmg.ch"

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

FUNCTION Main()

local cDat, cDatum

DEFINE WINDOW Date_1 ;
.....
*----------------- My code ------------------------*

#include "hmg.ch"

FUNCTION Main()

local cDat, cDatum

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

DEFINE WINDOW Date_1 ;
....

ROBROS
Posts: 99
Joined: Thu May 25, 2017 6:30 pm
DBs Used: DBF
Has thanked: 39 times
Been thanked: 7 times

Post by ROBROS » Thu May 10, 2018 4:21 pm

One of my replies got lost on the way to the board,

I always looked for the error inside the main function.

@ edk: Thank you.

@ Mustafa: edk's reply showed me the difference.

Thx again.

Robert

Post Reply