!DISCLAIMER:
! The following program was made in the USA at Gunite Corporation.
! It is not for sale. Gunite Corporation makes no gaurantee implied
! or otherwise that this program will work. User takes full
! responsbility of the results it may produce.
!
!ACCOMPLISHMENTS:
!
! 1. The user keys in data, presses the return key.
! 2. The user keys in data, positions the mouse at the next field
! to edit and clicks.
! 3. The user doesn't key in data, positions the mouse at the next
! field to edit and clicks.
! 4. The user doesn't key in data and presses the return key.
!
! MOUSE.WKS translated MOUSE.MAP
! MOUSE.RTN translated MOUSE.COM
++INCLUDE WKS:CURTME.WKS
++INCLUDE WKS:MOUSE.WKS
CALL CUR'TIME ! In house routine to get current
! date and time
SYEAR=CUR'YEAR
!
! Determine if terminal is a GUI terminal
CALL INIT'HOT'SPOT ! Refer to Peter Winters MOUSE.COM
FIELD1="1" : FIELD2="2" : FIELD3="3"
! Define the hot spots.
! "{" is used to decern a mouse click from the user pressing
! the return key. It must be before the first carriage return
! and can be any character the programmer wants, but should
! be uniquie.
HOT'SPOT(1) ="030102"+"{"+CHR(13)+FIELD1+CHR(13)
HOT'SPOT(2) ="050102"+"{"+CHR(13)+FIELD2+CHR(13)
HOT'SPOT(3) ="070102"+"{"+CHR(13)+FIELD3+CHR(13)
CALL SET'HOT'SPOT ! Refer to Peter Winters MOUSE.COM
?TAB(3,1);: ? USING "1) ##",SYEAR
?TAB(5,1);: ? USING "2) \XXX\",QUOTE'NUMBER
?TAB(7,1);: ? USING "3) \XX\",VENDOR'NUMBER
PROMPT:
! UCRT is a product of UltraSoft Corporation
! According to Peter Winter INFLD, which is a product of
! MicroSabio, will work also. I have yet to prove it.
!
! Definition of fields in UCRT
! ROW,COL,TYPE - STRING INPUT, MIN SIZE, MAX SIZE,
! FLAGS - WHAT TO DO ON ENTRY, INPUT FIELD NAME,
! CODE - RETURN GIVEN ex up arrow etc
!
! The maximum size of the field is one chracter greater to
! facilitate the special character we're using.
DSP1:
STR'ENTRY=SYEAR USING "#Z"
?TAB(3,4);:? USING "\\",STR'ENTRY
XCALL UCRT,3,4,"*",1,3,"",STR'ENTRY,CODE
CALL CHECK'MOUSE
IF MOUSE'SW=0 SYEAR=VAL(STR'ENTRY) &
: ?TAB(3,4);:? USING "##",SYEAR &
: goto DSP2
IF DSP'STRING="" goto DSP1A
SYEAR=VAL(DSP'STRING)
DSP1A:
?TAB(3,4);:? USING "## ",SYEAR
IF STR'ENTRY=FIELD1 goto DSP1
IF STR'ENTRY=FIELD2 goto DSP2
IF STR'ENTRY=FIELD3 goto DSP3
goto DSP1
DSP2:
STR'ENTRY=QUOTE'NUMBER
?TAB(5,4);:? USING "\XXX\",STR'ENTRY
XCALL UCRT,5,4,"*",1,6,"",STR'ENTRY,CODE
CALL CHECK'MOUSE
IF MOUSE'SW=0 QUOTE'NUMBER=STR'ENTRY USING "#####" &
: ?TAB(5,4);:? USING "\XXX\",QUOTE'NUMBER &
: goto DSP3
IF DSP'STRING="" goto DSP2A
QUOTE'NUMBER=STR'ENTRY USING "#####"
DSP2A:
?TAB(5,4);:? USING "\XXX\",QUOTE'NUMBER
IF STR'ENTRY=FIELD1 goto DSP1
IF STR'ENTRY=FIELD2 goto DSP2
IF STR'ENTRY=FIELD3 goto DSP3
goto DSP2
DSP3:
STR'ENTRY=VENDOR'NUMBER
?TAB(7,4);:? USING "\XX\",STR'ENTRY
XCALL UCRT,7,4,"*",1,5,"",STR'ENTRY,CODE
CALL CHECK'MOUSE
IF MOUSE'SW=0 VENDOR'NUMBER=STR'ENTRY USING "####" &
: ?TAB(7,4);:? USING "\XX\",VENDOR'NUMBER &
: goto ENDIT
?TAB(7,4);:? USING "\XX\",VENDOR'NUMBER
IF STR'ENTRY=FIELD1 goto DSP1
IF STR'ENTRY=FIELD2 goto DSP2
IF STR'ENTRY=FIELD3 goto DSP3
goto DSP3
ENDIT:
CALL CLEAR'HOT'SPOT
?TAB(23,1);SYEAR;
END
++INCLUDE RTN:CURTME.RTN
++INCLUDE RTN:MOUSE.RTN
CHECK'MOUSE:
MOUSE'SW=0
STRING'THERE=0
STRING'THERE=INSTR(1,STR'ENTRY,"{") ! See if our special
! character is in the string
XCALL STRIP,STR'ENTRY
CSTR=LEN(STR'ENTRY) ! Obtain number of characters
! are in the string.
IF STRING'THERE=>1 goto CHK'MSE1 ! Mouse Click or Return?
return
CHK'MSE1:
! Mouse Click
MOUSE'SW=1
!
! If our special character is the first character of the
! string, the user didn't key in any data and our character
! overlayed part of the string.
!
! If our specail character isn't the first character, the
! user keyed in information and clicked the mouse to advance
! to another field so we'll strip off the special character
! and put the results in DSP'STRING
IF STRING'THERE=1 DSP'STRING="" else &
: DSP'STRING=STR'ENTRY[1,(CSTR-1)]
!
! Another input statement is needed to handle the second
! carriage return we defined while setting up the Hot Spots.
! The "O" is overlay. It's needed.
XCALL UCRT,23,1,"*",1,10,"O",STR'ENTRY,CODE
return