
LOGICAL
CALLAGAIN,
PAGE'EJECT;
INTEGER
ARRAY
BASE'IDS,
DBBUF,
DSET'LIST,
DATA'BASE'LIST,
LINEBUF,
REGARR,
USERSTOR,
USERPARAM,
DATA'BASE'NAME,
DATA'SET'NAME;
INTEGER
CALL'NUM,
LINES'LEFT,
PAGENO,
NUM'DSETS,
NUM'DBASES;
BEGIN
BYTE
ARRAY
FMTDATE
(0:16),
BLINEBUF
(*)
=
LINEBUF;
DOUBLE
POINTER
D'DATE;
DOUBLE
ARRAY
D'DAY
(0:0),
D'YEAR
(0:0);
INTEGER
ARRAY
DAY
(*)
=
D'DAY,
YEAR
(*)
=
D'YEAR;
DOUBLE
HOLD;
INTEGER
JDATE;
INTRINSIC
FMTCALENDAR;
<<------------------------------------------------------- ->>
<<
THERE
ARE
TWO
DATES
IN
THE
DATA
BASE
TO
BE
FORMATTED.
>>
<<
ONE
IS
IN
THE
ORDER-D
DATA
SET,
THE
OTHER
IS
IN
THE
>>
<<
SHIP-D
DATA
SET.
BECAUSE
THE
SETS
HAVE
BEEN
JOINED,
>>
<<
IT
IS
POSSIBLE
TO
GET
BOTH
DATES
AND
FORMAT
THEM.
>>
<<
NOTE:
IT
IS
THE
APPLICATION'S
RESPONSIBILITY
TO
KNOW
>>
<<
WHERE
IN
THE
DATA
BUFFER
THE
VALUE
IS
LOCATED.
>>
<<------------------------------------------------------- ->>
<<------------------------------------------------------- ->>
<<
THE
DATE
IS
IN
A
TWO
WORD
INTEGER
AND
NEEDS
TO
BE
RE-
>>
<<
FORMATTED
BEFORE
PASSING
TO
FMTCALENDAR.
>>
<<------------------------------------------------------- ->>
<<------------------------------------------------------- ->>
<<
IF
CALL'NUM
IS
ONE
THEN
WE
CAN
ASSUME
THE
ENTRY
IS
>>
<<
FROM
THE
ORDER-D
DATA
SET,
SINCE
IT
IS
THE
FIRST
DATA
>>
<<
SET
MENTIONED
IN
THE
JOIN
COMMAND.
IF
CALL'NUM
IS
NOT
>>
<<
ONE
THEN
WE
CAN
ASSUME
THAT
THE
PROCEDURE
HAS
BEEN
>>
<<
CALLED
AGAIN,
AND
WE
NOW
HAVE
THE
ENTRY
FROM
THE
>>
<<
SHIP-D
DATA
SET.
>>
<<------------------------------------------------------- ->>
IF
CALL'NUM
=1
THEN
<<
FIRST
DATE
>>
@D'DATE
:=
@DBBUF(3)
ELSE
<<
SECOND
DATE
>>
@D'DATE
:=
@DBBUF(5);
D'YEAR
:=
D'DATE
/
1000D;
<<
ISOLATE
YEAR
>>
HOLD
:=
D'YEAR
*
1000D;
D'DAY
:=
D'DATE
-
HOLD;
JDATE
:=
DAY
(1);
<<
DAY
IN
BITS
0-6
>>
JDATE.(0:7)
:=
YEAR
(1);
<<
YEAR
IN
BITS
7-15
>>
FMTCALENDAR
(JDATE,
FMTDATE);
<<------------------------------------------------------- ->>
<<
PUT
THE
FORMATTED
DATE
INTO
THE
OUTPUT
BUFFER
USED
BY
>>
<<
QUERY
FOR
THE
REPORT
OUTPUT
LINE.
AGAIN,
CALL'NUM
IS
>>
<<
USED
TO
DETERMINE
WHERE
IN
THE
OUTPUT
BUFFER
TO
PLACE
>>
<<
THE
VALUE.
ALSO,
IF
CALL'NUM
IS
ONE
THEN
WE
NEED
TO
>>
<<
SET
THE
DATA
BASE
NAME,
THE
DATA
SET
NAME,
AND
THE
>>
<<
CALLAGAIN
PARAMETERS
IN
ORDER
TO
GET
THE
ENTRY
FROM
>>
USER-DEFINED
PROCEDURES
F-7
Summary of Contents for QUERY
Page 10: ......
Page 17: ...Figure 1 1 ORDERS Data Base Structure Figure 1 2 Sample Entry Values INTRODUCING QUERY V 1 7 ...
Page 20: ...Figure 1 3 IMAGE QUERY Environments 1 10 INTRODUCING QUERY V ...
Page 36: ......
Page 165: ...REPORT G1 GROUP TITLE 11 END QUERY V COMMANDS 3 129 ...
Page 199: ...XEQ TF TOTAL DUE 9 SPACE B2 SKIP A TF R0 70 E2 S PURCH DATE END QUERY V COMMANDS 3 163 ...
Page 200: ......
Page 244: ......
Page 278: ......
Page 279: ...G ASCII CHARACTER SET This appendix is not available in this edition ASCII CHARACTER SET G 1 ...
Page 280: ......