tnef 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ext/tnef/AUTHORS +7 -0
- data/ext/tnef/BUGS.in +5 -0
- data/ext/tnef/COPYING +340 -0
- data/ext/tnef/ChangeLog +1550 -0
- data/ext/tnef/INSTALL +234 -0
- data/ext/tnef/Makefile.am +7 -0
- data/ext/tnef/Makefile.in +699 -0
- data/ext/tnef/NEWS +177 -0
- data/ext/tnef/README +39 -0
- data/ext/tnef/THANKS +1 -0
- data/ext/tnef/TODO +7 -0
- data/ext/tnef/acinclude.m4 +47 -0
- data/ext/tnef/aclocal.m4 +1012 -0
- data/ext/tnef/configure +6815 -0
- data/ext/tnef/configure.in +67 -0
- data/ext/tnef/depcomp +584 -0
- data/ext/tnef/doc/FAQ +25 -0
- data/ext/tnef/doc/Makefile.am +6 -0
- data/ext/tnef/doc/Makefile.in +623 -0
- data/ext/tnef/doc/file-format.tex +139 -0
- data/ext/tnef/doc/tnef.1.in +183 -0
- data/ext/tnef/doc/www/Makefile.am +14 -0
- data/ext/tnef/doc/www/Makefile.in +542 -0
- data/ext/tnef/doc/www/cgi-bin/Makefile.am +14 -0
- data/ext/tnef/doc/www/cgi-bin/Makefile.in +340 -0
- data/ext/tnef/doc/www/htdocs/Makefile.am +14 -0
- data/ext/tnef/doc/www/htdocs/Makefile.in +340 -0
- data/ext/tnef/extconf.rb +3 -0
- data/ext/tnef/install-sh +507 -0
- data/ext/tnef/missing +367 -0
- data/ext/tnef/mkinstalldirs +161 -0
- data/ext/tnef/src/Makefile.am +48 -0
- data/ext/tnef/src/Makefile.in +700 -0
- data/ext/tnef/src/alloc.c +107 -0
- data/ext/tnef/src/alloc.h +54 -0
- data/ext/tnef/src/attr.c +270 -0
- data/ext/tnef/src/attr.h +74 -0
- data/ext/tnef/src/common.h +101 -0
- data/ext/tnef/src/config.h.in +111 -0
- data/ext/tnef/src/date.c +66 -0
- data/ext/tnef/src/date.h +43 -0
- data/ext/tnef/src/debug.c +45 -0
- data/ext/tnef/src/debug.h +32 -0
- data/ext/tnef/src/file.c +259 -0
- data/ext/tnef/src/file.h +48 -0
- data/ext/tnef/src/main.c +386 -0
- data/ext/tnef/src/mapi-names.data +430 -0
- data/ext/tnef/src/mapi-types.data +19 -0
- data/ext/tnef/src/mapi_attr.c +419 -0
- data/ext/tnef/src/mapi_attr.h +78 -0
- data/ext/tnef/src/mkdata.awk +100 -0
- data/ext/tnef/src/options.c +32 -0
- data/ext/tnef/src/options.h +67 -0
- data/ext/tnef/src/path.c +397 -0
- data/ext/tnef/src/path.h +34 -0
- data/ext/tnef/src/replace/Makefile.am +8 -0
- data/ext/tnef/src/replace/Makefile.in +435 -0
- data/ext/tnef/src/replace/basename.c +45 -0
- data/ext/tnef/src/replace/dummy.c +7 -0
- data/ext/tnef/src/replace/getopt_long.c +940 -0
- data/ext/tnef/src/replace/getopt_long.h +141 -0
- data/ext/tnef/src/replace/malloc.c +41 -0
- data/ext/tnef/src/replace/strdup.c +51 -0
- data/ext/tnef/src/rtf.c +362 -0
- data/ext/tnef/src/rtf.h +36 -0
- data/ext/tnef/src/tnef-names.data +34 -0
- data/ext/tnef/src/tnef-types.data +12 -0
- data/ext/tnef/src/tnef.c +396 -0
- data/ext/tnef/src/tnef.h +45 -0
- data/ext/tnef/src/util.c +112 -0
- data/ext/tnef/src/util.h +42 -0
- data/ext/tnef/src/write.c +136 -0
- data/ext/tnef/src/write.h +25 -0
- data/ext/tnef/src/xstrdup.c +41 -0
- data/ext/tnef/tests/Makefile.am +4 -0
- data/ext/tnef/tests/Makefile.in +530 -0
- data/ext/tnef/tests/cmdline/AUTHORS +8 -0
- data/ext/tnef/tests/cmdline/AUTHORS.baseline +8 -0
- data/ext/tnef/tests/cmdline/Makefile.am +33 -0
- data/ext/tnef/tests/cmdline/Makefile.in +455 -0
- data/ext/tnef/tests/cmdline/basic.baseline +4 -0
- data/ext/tnef/tests/cmdline/basic.test +39 -0
- data/ext/tnef/tests/cmdline/body-test.html.baseline +95 -0
- data/ext/tnef/tests/cmdline/body.baseline +929 -0
- data/ext/tnef/tests/cmdline/body.test +55 -0
- data/ext/tnef/tests/cmdline/debug.baseline +155 -0
- data/ext/tnef/tests/cmdline/debug.test +14 -0
- data/ext/tnef/tests/cmdline/directory.baseline +3 -0
- data/ext/tnef/tests/cmdline/directory.test +35 -0
- data/ext/tnef/tests/cmdline/help.baseline +63 -0
- data/ext/tnef/tests/cmdline/help.test +12 -0
- data/ext/tnef/tests/cmdline/interactive.test +5 -0
- data/ext/tnef/tests/cmdline/list.baseline +5 -0
- data/ext/tnef/tests/cmdline/list.test +21 -0
- data/ext/tnef/tests/cmdline/maxsize.baseline +828 -0
- data/ext/tnef/tests/cmdline/maxsize.test +43 -0
- data/ext/tnef/tests/cmdline/message.html.baseline +95 -0
- data/ext/tnef/tests/cmdline/mime-types.baseline +3 -0
- data/ext/tnef/tests/cmdline/mime-types.test +11 -0
- data/ext/tnef/tests/cmdline/overwrite.baseline +8 -0
- data/ext/tnef/tests/cmdline/overwrite.test +40 -0
- data/ext/tnef/tests/cmdline/rtf-test.rtf.baseline +0 -0
- data/ext/tnef/tests/cmdline/stdin.baseline +2 -0
- data/ext/tnef/tests/cmdline/stdin.test +18 -0
- data/ext/tnef/tests/cmdline/test.tnef +0 -0
- data/ext/tnef/tests/cmdline/triples-test-2.rtf.baseline +0 -0
- data/ext/tnef/tests/cmdline/triples-test-2.txt.baseline +0 -0
- data/ext/tnef/tests/cmdline/triples-test.txt.baseline +0 -0
- data/ext/tnef/tests/cmdline/use-path.baseline +0 -0
- data/ext/tnef/tests/cmdline/use-path.test +5 -0
- data/ext/tnef/tests/cmdline/verbose.baseline +5 -0
- data/ext/tnef/tests/cmdline/verbose.test +19 -0
- data/ext/tnef/tests/cmdline/version.baseline +17 -0
- data/ext/tnef/tests/cmdline/version.test +14 -0
- data/ext/tnef/tests/files/MAPI_ATTACH_DATA_OBJ.test +9 -0
- data/ext/tnef/tests/files/MAPI_OBJECT.test +9 -0
- data/ext/tnef/tests/files/Makefile.am +16 -0
- data/ext/tnef/tests/files/Makefile.in +636 -0
- data/ext/tnef/tests/files/baselines/AUTHORS.baseline +8 -0
- data/ext/tnef/tests/files/baselines/AUTOEXEC.BAT.baseline +0 -0
- data/ext/tnef/tests/files/baselines/CONFIG.SYS.baseline +0 -0
- data/ext/tnef/tests/files/baselines/MAPI_ATTACH_DATA_OBJ-body.rtf.baseline +0 -0
- data/ext/tnef/tests/files/baselines/MAPI_ATTACH_DATA_OBJ.baseline +229 -0
- data/ext/tnef/tests/files/baselines/MAPI_OBJECT-body.rtf.baseline +0 -0
- data/ext/tnef/tests/files/baselines/MAPI_OBJECT.baseline +153 -0
- data/ext/tnef/tests/files/baselines/Makefile.am +35 -0
- data/ext/tnef/tests/files/baselines/Makefile.in +361 -0
- data/ext/tnef/tests/files/baselines/README.baseline +31 -0
- data/ext/tnef/tests/files/baselines/TechlibDEC99-JAN00.doc.baseline +0 -0
- data/ext/tnef/tests/files/baselines/TechlibDEC99.doc.baseline +0 -0
- data/ext/tnef/tests/files/baselines/TechlibNOV99.doc.baseline +0 -0
- data/ext/tnef/tests/files/baselines/Untitled_Attachment.baseline +0 -0
- data/ext/tnef/tests/files/baselines/VIA_Nytt_1402.doc.baseline +0 -0
- data/ext/tnef/tests/files/baselines/VIA_Nytt_1402.pdf.baseline +0 -0
- data/ext/tnef/tests/files/baselines/VIA_Nytt_14021.htm.baseline +1914 -0
- data/ext/tnef/tests/files/baselines/body-body.html.baseline +95 -0
- data/ext/tnef/tests/files/baselines/body.baseline +124 -0
- data/ext/tnef/tests/files/baselines/boot.ini.baseline +6 -0
- data/ext/tnef/tests/files/baselines/data-before-name-body.rtf.baseline +0 -0
- data/ext/tnef/tests/files/baselines/data-before-name.baseline +213 -0
- data/ext/tnef/tests/files/baselines/garbage-at-end.baseline +73 -0
- data/ext/tnef/tests/files/baselines/generpts.src.baseline +1691 -0
- data/ext/tnef/tests/files/baselines/long-filename-body.rtf.baseline +26 -0
- data/ext/tnef/tests/files/baselines/long-filename.baseline +218 -0
- data/ext/tnef/tests/files/baselines/message.rtf.baseline +0 -0
- data/ext/tnef/tests/files/baselines/missing-filenames-body.rtf.baseline +20 -0
- data/ext/tnef/tests/files/baselines/missing-filenames.baseline +252 -0
- data/ext/tnef/tests/files/baselines/multi-name-property.baseline +243 -0
- data/ext/tnef/tests/files/baselines/one-file.baseline +155 -0
- data/ext/tnef/tests/files/baselines/rtf-body.rtf.baseline +0 -0
- data/ext/tnef/tests/files/baselines/rtf.baseline +167 -0
- data/ext/tnef/tests/files/baselines/triples-body.rtf.baseline +0 -0
- data/ext/tnef/tests/files/baselines/triples.baseline +254 -0
- data/ext/tnef/tests/files/baselines/two-files.baseline +186 -0
- data/ext/tnef/tests/files/body.test +9 -0
- data/ext/tnef/tests/files/data-before-name.test +9 -0
- data/ext/tnef/tests/files/datafiles/MAPI_ATTACH_DATA_OBJ.list +4 -0
- data/ext/tnef/tests/files/datafiles/MAPI_ATTACH_DATA_OBJ.tnef +0 -0
- data/ext/tnef/tests/files/datafiles/MAPI_OBJECT.list +2 -0
- data/ext/tnef/tests/files/datafiles/MAPI_OBJECT.tnef +0 -0
- data/ext/tnef/tests/files/datafiles/Makefile.am +27 -0
- data/ext/tnef/tests/files/datafiles/Makefile.in +351 -0
- data/ext/tnef/tests/files/datafiles/body.list +1 -0
- data/ext/tnef/tests/files/datafiles/body.tnef +0 -0
- data/ext/tnef/tests/files/datafiles/data-before-name.list +4 -0
- data/ext/tnef/tests/files/datafiles/data-before-name.tnef +0 -0
- data/ext/tnef/tests/files/datafiles/garbage-at-end.list +0 -0
- data/ext/tnef/tests/files/datafiles/garbage-at-end.tnef +0 -0
- data/ext/tnef/tests/files/datafiles/long-filename.list +1 -0
- data/ext/tnef/tests/files/datafiles/long-filename.tnef +0 -0
- data/ext/tnef/tests/files/datafiles/missing-filenames.list +1 -0
- data/ext/tnef/tests/files/datafiles/missing-filenames.tnef +0 -0
- data/ext/tnef/tests/files/datafiles/multi-name-property.list +0 -0
- data/ext/tnef/tests/files/datafiles/multi-name-property.tnef +0 -0
- data/ext/tnef/tests/files/datafiles/one-file.list +1 -0
- data/ext/tnef/tests/files/datafiles/one-file.tnef +0 -0
- data/ext/tnef/tests/files/datafiles/rtf.list +1 -0
- data/ext/tnef/tests/files/datafiles/rtf.tnef +0 -0
- data/ext/tnef/tests/files/datafiles/triples.list +1 -0
- data/ext/tnef/tests/files/datafiles/triples.tnef +0 -0
- data/ext/tnef/tests/files/datafiles/two-files.list +2 -0
- data/ext/tnef/tests/files/datafiles/two-files.tnef +0 -0
- data/ext/tnef/tests/files/file-util.sh +38 -0
- data/ext/tnef/tests/files/garbage-at-end.test +9 -0
- data/ext/tnef/tests/files/long-filename.test +9 -0
- data/ext/tnef/tests/files/missing-filenames.test +9 -0
- data/ext/tnef/tests/files/multi-name-property.test +9 -0
- data/ext/tnef/tests/files/one-file.test +9 -0
- data/ext/tnef/tests/files/rtf.test +9 -0
- data/ext/tnef/tests/files/triples.test +9 -0
- data/ext/tnef/tests/files/two-files.test +9 -0
- data/ext/tnef/tests/util.sh +32 -0
- data/ext/tnef/tnef.spec.in +44 -0
- data/lib/tnef.rb +30 -0
- data/lib/tnef/executable.rb +27 -0
- data/lib/tnef/version.rb +3 -0
- metadata +243 -0
|
@@ -0,0 +1,1691 @@
|
|
|
1
|
+
*PROC CIRREQ01
|
|
2
|
+
*-----------------------------------------------------------------------------
|
|
3
|
+
*
|
|
4
|
+
* Title: Patron Request Report
|
|
5
|
+
* File: PATRQT01.PRC
|
|
6
|
+
* Author: Information Dimensions, Inc. (TD)
|
|
7
|
+
*
|
|
8
|
+
* Description: A list of patron requests
|
|
9
|
+
*
|
|
10
|
+
* Input Parameters:
|
|
11
|
+
* OUTPUT - may be 'REVIEW','PRINT'. Review displays report
|
|
12
|
+
* on screen, print outputs to file for printing.
|
|
13
|
+
*
|
|
14
|
+
* START_DATE/END_DATE - find where CIRC_REQUEST.ADD_DT
|
|
15
|
+
* is in range
|
|
16
|
+
*
|
|
17
|
+
* CIRC_SORT_KEY - option to sort by title, patron name,
|
|
18
|
+
* or patron id
|
|
19
|
+
*
|
|
20
|
+
* HOLD_SORT_KEY - option to sort by title, patron id,
|
|
21
|
+
* patron name, or call number.
|
|
22
|
+
*
|
|
23
|
+
* Other Selection Criteria:
|
|
24
|
+
* LIBR_KEY - Restrict to certain libraries.
|
|
25
|
+
*
|
|
26
|
+
* ALL - Boolean value; set true by Slang if no params entered
|
|
27
|
+
*
|
|
28
|
+
* Output File: patrqt01.rpt
|
|
29
|
+
*
|
|
30
|
+
* Record Types Referenced:
|
|
31
|
+
* TEMPLATE, COPY, CAT, CIRC_REQUEST
|
|
32
|
+
* Buffers: @A @B @C @D
|
|
33
|
+
*
|
|
34
|
+
* Report Name: Cairculation Requests
|
|
35
|
+
*
|
|
36
|
+
* Report No.: PATRQT01
|
|
37
|
+
*
|
|
38
|
+
* Menu Access: CATALOG REPORTS
|
|
39
|
+
*
|
|
40
|
+
* Parameter
|
|
41
|
+
* Input Screen: CATRPT12
|
|
42
|
+
*
|
|
43
|
+
* Templates: REPORT_HDR, BIB_PATRON, COPY_NOCIRC, COPY_NOCIRC_S,
|
|
44
|
+
* PATRON_REQUEST.
|
|
45
|
+
*
|
|
46
|
+
*------------------------------------------------------------------------------
|
|
47
|
+
*
|
|
48
|
+
* Revision History:
|
|
49
|
+
*
|
|
50
|
+
* Date Revised By Description
|
|
51
|
+
* -------- ---------- -----------
|
|
52
|
+
* 11/20/89 DeFrench Initial Version
|
|
53
|
+
* 03/28/91 Sandstrom Add LIBR_KEY to find commands.
|
|
54
|
+
* 04/25/91 Sandstrom Add MATERIAL_TYPE to FIND commands.
|
|
55
|
+
* 07/03/91 MChung Substitute tabs with 8 spaces and
|
|
56
|
+
* spelling checks
|
|
57
|
+
*
|
|
58
|
+
*------------------------------------------------------------------------------
|
|
59
|
+
*
|
|
60
|
+
START:
|
|
61
|
+
ACQUIRE/PV MESSAGE 46707, C2=MSG
|
|
62
|
+
TELL MSG,$B
|
|
63
|
+
ON/BREAK BREAKERR
|
|
64
|
+
ON/EXCEPTION EXCEPTION
|
|
65
|
+
ON/SYNTAX SYNTAXERR
|
|
66
|
+
SET/DEFAULT RESULT = N
|
|
67
|
+
SET/PV PV_TODAY = $YYYYMMDD
|
|
68
|
+
SET/PV PRINTTOP = 1
|
|
69
|
+
SET/PV RPTNM = 'PATRQT01'
|
|
70
|
+
SET/PV RPTTTL = 'Circulation/Holds report'
|
|
71
|
+
SET/PV PGNO = 0
|
|
72
|
+
* Set up for desired output method
|
|
73
|
+
SELECT (OUTPUT)
|
|
74
|
+
CASE 'REVIEW'
|
|
75
|
+
SET/PV MAXLINES = 20
|
|
76
|
+
SET/PV PV_FILEID = ''
|
|
77
|
+
CASE 'PRINT'
|
|
78
|
+
SET/PV MAXLINES = 60
|
|
79
|
+
OPEN/F patrqt01.rpt, FID=A, INTENT=WRITE, +
|
|
80
|
+
CARRIAGE=YES, ERR=OPENERR
|
|
81
|
+
SET/PV PV_FILEID = ',FID=A'
|
|
82
|
+
END_SELECT
|
|
83
|
+
*
|
|
84
|
+
GET/VIEW [TEMPLATE_KEY = 'REPORT_HDR']TEMPLATE@A, ERR = VIEWERR
|
|
85
|
+
ASSIGN/PV HEADER = TEXT@A
|
|
86
|
+
GET/VIEW [TEMPLATE_KEY='REQ_HDR']TEMPLATE@A, ERR=VIEWERR
|
|
87
|
+
ASSIGN/PV REQ_HDR = TEXT@A
|
|
88
|
+
GET/VIEW [TEMPLATE_KEY = 'PATRON_REQUEST']TEMPLATE@A, ERR = VIEWERR
|
|
89
|
+
ASSIGN/PV RQTINFO = TEXT@A
|
|
90
|
+
GET/VIEW [TEMPLATE_KEY = 'BIB_PATRON']TEMPLATE@A, ERR = VIEWERR
|
|
91
|
+
ASSIGN/PV CATINFO = TEXT@A
|
|
92
|
+
GET/VIEW [TEMPLATE_KEY = 'COPY_NOCIRC']TEMPLATE@A, ERR = VIEWERR
|
|
93
|
+
ASSIGN/PV COPYINFO = TEXT@A
|
|
94
|
+
GET/VIEW [TEMPLATE_KEY = 'COPY_NOCIRC_S']TEMPLATE@A, ERR = VIEWERR
|
|
95
|
+
ASSIGN/PV SCOPYINFO = TEXT@A
|
|
96
|
+
SET/PV CALLOC = 'CATR'
|
|
97
|
+
*
|
|
98
|
+
* Begin construction of FIND command.
|
|
99
|
+
*
|
|
100
|
+
SET/PV PV_FINDCMD = 'FIND CIRC_REQUEST,CATR,COPY,material_type ' //+
|
|
101
|
+
'WHERE CIRC_REQUEST.CATNO:=CATR.CATNO ' //+
|
|
102
|
+
'AND CIRC_REQUEST.ITEMID:=COPY.ITEMID ' //+
|
|
103
|
+
'AND MATERIAL_TYPE.TYPE:=CATR.MTYPE '//+
|
|
104
|
+
'AND CIRC_REQUEST.REQUEST_TYPE=''C'' '
|
|
105
|
+
*
|
|
106
|
+
* Add Library to find.
|
|
107
|
+
*
|
|
108
|
+
DELETE/GV OUTLC
|
|
109
|
+
DELETE/GV OUTSTR
|
|
110
|
+
DELETE/GV INSTR
|
|
111
|
+
SET/GV INSTR = LIBR_KEY
|
|
112
|
+
@/PL='$TLP_PROC/generpts' QTBLKS01, VFLDNM='COPY.LIBR_KEY'
|
|
113
|
+
SET/PV SAVE_OUTSTR = '(' //OUTSTR
|
|
114
|
+
SET/PV PV_FINDCMD = PV_FINDCMD // 'AND (' // OUTSTR //' '
|
|
115
|
+
*
|
|
116
|
+
DELETE/GV OUTLC
|
|
117
|
+
DELETE/GV OUTSTR
|
|
118
|
+
DELETE/GV INSTR
|
|
119
|
+
SET/GV INSTR = LIBR_KEY
|
|
120
|
+
@/PL='$TLP_PROC/generpts' QTBLKS01, +
|
|
121
|
+
VFLDNM='CIRC_REQUEST.PLACED_LIBR_KEY'
|
|
122
|
+
SET/PV SAVE_OUTSTR = SAVE_OUTSTR// ' OR ' //OUTSTR //') '
|
|
123
|
+
SET/PV PV_FINDCMD = PV_FINDCMD // 'OR ' // OUTSTR //') '
|
|
124
|
+
*
|
|
125
|
+
* Add the date fields if they were passed.
|
|
126
|
+
*
|
|
127
|
+
IF (START_DATE <> '')
|
|
128
|
+
SET/PV PV_FINDCMD = PV_FINDCMD //+
|
|
129
|
+
' AND CIRC_REQUEST.ADD_DT = '//START_DATE//':'//END_DATE//' '
|
|
130
|
+
END_IF
|
|
131
|
+
*
|
|
132
|
+
* Append FIND for sort options.
|
|
133
|
+
*
|
|
134
|
+
SET/PV PV_FINDCMD = PV_FINDCMD //+
|
|
135
|
+
' ORDER BY !CIRC_SORT_KEY!, CATR.TI,CATR.PUBL, COPY.YEAR, ' //+
|
|
136
|
+
'COPY.LIBR_KEY, COPY.ITEMID, COPY.COPY'
|
|
137
|
+
*
|
|
138
|
+
* If output option is equal to 'PRINT', then delete the records
|
|
139
|
+
* as they are printed.
|
|
140
|
+
*
|
|
141
|
+
IF OUTPUT = 'PRINT'
|
|
142
|
+
START/TRANS SW=CIRC_REQUEST
|
|
143
|
+
END_IF
|
|
144
|
+
*
|
|
145
|
+
* Execute Find and set up for report generation
|
|
146
|
+
*
|
|
147
|
+
!PV_FINDCMD! END REF=NO
|
|
148
|
+
ACQUIRE/PV MEMBERS, N1 = PV_NUMMEM
|
|
149
|
+
ACQUIRE/PV LASTSET, N1 = PV_FOUNDSET
|
|
150
|
+
JUMPIF (PV_NUMMEM = 0), DO_HOLDS
|
|
151
|
+
*
|
|
152
|
+
* Write initial header.
|
|
153
|
+
*
|
|
154
|
+
IF OUTPUT = 'REVIEW'
|
|
155
|
+
CLEAR/SCREEN
|
|
156
|
+
SET/PV LINE_CNT =2
|
|
157
|
+
ELSE
|
|
158
|
+
TYPE $P, MEMBERS=1, SET=!PV_FOUNDSET! !PV_FILEID!
|
|
159
|
+
END_IF
|
|
160
|
+
*
|
|
161
|
+
SET/PV PGNO = PGNO + 1
|
|
162
|
+
TYPE !HEADER!, $S2, LABELS = N, SKIP = 0, +
|
|
163
|
+
SET = !PV_FOUNDSET!, MEMBERS = 1 !PV_FILEID!
|
|
164
|
+
TYPE !REQ_HDR!, $S2, LABELS = N, SKIP = 0, +
|
|
165
|
+
SET = !PV_FOUNDSET!, MEMBERS = 1 !PV_FILEID!
|
|
166
|
+
SET/PV LINE_CNT = 8
|
|
167
|
+
*
|
|
168
|
+
* Step through members of set, generating correct output for each.
|
|
169
|
+
*
|
|
170
|
+
FOR PV_Q = 1, PV_NUMMEM
|
|
171
|
+
*
|
|
172
|
+
GET/VIEW [!PV_FOUNDSET!,!PV_Q!]CIRC_REQUEST@D, ERR = VIEWERR
|
|
173
|
+
GET/VIEW [!PV_FOUNDSET!,!PV_Q!]CATR@B, ERR = VIEWERR
|
|
174
|
+
GET/VIEW [!PV_FOUNDSET!,!PV_Q!]COPY@C, ERR = VIEWERR
|
|
175
|
+
*
|
|
176
|
+
ASSIGN/PV CATDOC = CATR.DOC@B
|
|
177
|
+
IF CATDOC = 'SER'
|
|
178
|
+
TYPE !CATINFO!,!SCOPYINFO!,!RQTINFO!,LABELS=NO, SKIP=1, +
|
|
179
|
+
SET = !PV_FOUNDSET!, MEMBERS = !PV_Q! !PV_FILEID!
|
|
180
|
+
SET/PV LINE_CNT = LINE_CNT + 12
|
|
181
|
+
ELSE
|
|
182
|
+
TYPE !CATINFO!,!COPYINFO!,!RQTINFO!,LABELS=NO, SKIP=1, +
|
|
183
|
+
SET = !PV_FOUNDSET!, MEMBERS = !PV_Q! !PV_FILEID!
|
|
184
|
+
SET/PV LINE_CNT = LINE_CNT + 12
|
|
185
|
+
END_IF
|
|
186
|
+
IF OUTPUT = 'PRINT'
|
|
187
|
+
DELETE [!PV_FOUNDSET!,!PV_Q!]CIRC_REQUEST
|
|
188
|
+
END_IF
|
|
189
|
+
*
|
|
190
|
+
* Check for a page break.
|
|
191
|
+
*
|
|
192
|
+
IF LINE_CNT > MAXLINES
|
|
193
|
+
IF OUTPUT = 'REVIEW'
|
|
194
|
+
ACQUIRE/PV MESSAGE 46710, C2=MSG
|
|
195
|
+
INQUIRE/PV PV_QUIT, '!MSG!'
|
|
196
|
+
JUMPIF PV_QUIT[1] = 'N' OR PV_QUIT[1] = 'n',QUIT
|
|
197
|
+
CLEAR/SCREEN
|
|
198
|
+
SET/PV LINE_CNT =2
|
|
199
|
+
ELSE
|
|
200
|
+
TYPE $P, MEMBERS=1, SET=!PV_FOUNDSET! !PV_FILEID!
|
|
201
|
+
END_IF
|
|
202
|
+
*
|
|
203
|
+
SET/PV PGNO = PGNO + 1
|
|
204
|
+
TYPE !HEADER!, $S2, LABELS = N, SKIP = 0, +
|
|
205
|
+
SET = !PV_FOUNDSET!, MEMBERS = 1 !PV_FILEID!
|
|
206
|
+
SET/PV LINE_CNT = 7
|
|
207
|
+
END_IF
|
|
208
|
+
*
|
|
209
|
+
END_FOR
|
|
210
|
+
*****************************************************
|
|
211
|
+
*****************************************************
|
|
212
|
+
DO_HOLDS:
|
|
213
|
+
*
|
|
214
|
+
* Begin construction of the HOLDS FIND command.
|
|
215
|
+
*
|
|
216
|
+
SET/PV PV_FINDCMD = 'FIND CIRC_REQUEST,CATR,COPY,MATERIAL_TYPE ' //+
|
|
217
|
+
'WHERE CIRC_REQUEST.CATNO:=CATR.CATNO ' //+
|
|
218
|
+
'AND CIRC_REQUEST.ITEMID:=COPY.ITEMID ' //+
|
|
219
|
+
'AND MATERIAL_TYPE.TYPE:=CATR.MTYPE '//+
|
|
220
|
+
'AND CIRC_REQUEST.REQUEST_TYPE=''H'' '//+
|
|
221
|
+
'AND ' // SAVE_OUTSTR // ' '
|
|
222
|
+
*
|
|
223
|
+
* Add the date fields if they were passed.
|
|
224
|
+
*
|
|
225
|
+
IF (START_DATE <> '')
|
|
226
|
+
SET/PV PV_FINDCMD = PV_FINDCMD //+
|
|
227
|
+
' AND CIRC_REQUEST.ADD_DT = '//START_DATE//':'//END_DATE//' '
|
|
228
|
+
END_IF
|
|
229
|
+
*
|
|
230
|
+
* Append FIND for sort options.
|
|
231
|
+
*
|
|
232
|
+
SET/PV PV_FINDCMD = PV_FINDCMD //+
|
|
233
|
+
' ORDER BY !HOLD_SORT_KEY!, CATR.TI,CATR.PUBL, COPY.YEAR, ' //+
|
|
234
|
+
'COPY.LIBR_KEY, COPY.ITEMID, COPY.COPY'
|
|
235
|
+
*
|
|
236
|
+
* Execute Find and set up for report generation
|
|
237
|
+
*
|
|
238
|
+
!PV_FINDCMD! END REF=NO
|
|
239
|
+
ACQUIRE/PV MEMBERS, N1 = PV_NUMMEM
|
|
240
|
+
ACQUIRE/PV LASTSET, N1 = PV_FOUNDSET
|
|
241
|
+
JUMPIF (PV_NUMMEM = 0), CLEANUP
|
|
242
|
+
*
|
|
243
|
+
* Write initial header.
|
|
244
|
+
*
|
|
245
|
+
IF OUTPUT = 'REVIEW'
|
|
246
|
+
ACQUIRE/PV MESSAGE 46710, C2=MSG
|
|
247
|
+
INQUIRE/PV PV_QUIT, '!MSG!'
|
|
248
|
+
JUMPIF PV_QUIT[1] = 'N' OR PV_QUIT[1] = 'n',QUIT
|
|
249
|
+
CLEAR/SCREEN
|
|
250
|
+
SET/PV LINE_CNT =2
|
|
251
|
+
ELSE
|
|
252
|
+
TYPE $P, MEMBERS=1, SET=!PV_FOUNDSET! !PV_FILEID!
|
|
253
|
+
END_IF
|
|
254
|
+
*
|
|
255
|
+
SET/PV PGNO = PGNO + 1
|
|
256
|
+
TYPE !HEADER!, $S2, LABELS = N, SKIP = 0, +
|
|
257
|
+
SET = !PV_FOUNDSET!, MEMBERS = 1 !PV_FILEID!
|
|
258
|
+
SET/PV LINE_CNT = 7
|
|
259
|
+
*
|
|
260
|
+
* Step through members of set, generating correct output for each.
|
|
261
|
+
*
|
|
262
|
+
FOR PV_Q = 1, PV_NUMMEM
|
|
263
|
+
*
|
|
264
|
+
GET/VIEW [!PV_FOUNDSET!,!PV_Q!]CIRC_REQUEST@D, ERR = VIEWERR
|
|
265
|
+
GET/VIEW [!PV_FOUNDSET!,!PV_Q!]CATR@B, ERR = VIEWERR
|
|
266
|
+
GET/VIEW [!PV_FOUNDSET!,!PV_Q!]COPY@C, ERR = VIEWERR
|
|
267
|
+
*
|
|
268
|
+
ASSIGN/PV HOLDTYPE = CIRC_REQUEST.HOLD_TYPE@D
|
|
269
|
+
SET/PV RHOLDTYPE = $RAISE(HOLDTYPE)
|
|
270
|
+
IF RHOLDTYPE = 'COPY'
|
|
271
|
+
TYPE $S2, 'COPY level hold for:' +
|
|
272
|
+
SET = !PV_FOUNDSET!, MEMBERS = 1 !PV_FILEID!
|
|
273
|
+
ELSE
|
|
274
|
+
TYPE $S2, 'CAT level hold for:' +
|
|
275
|
+
SET = !PV_FOUNDSET!, MEMBERS = 1 !PV_FILEID!
|
|
276
|
+
END_IF
|
|
277
|
+
*
|
|
278
|
+
* Choose the serials copy info if item is a serial.
|
|
279
|
+
*
|
|
280
|
+
ASSIGN/PV CATDOC = CATR.DOC@B
|
|
281
|
+
IF CATDOC = 'SER'
|
|
282
|
+
TYPE !CATINFO!,!SCOPYINFO!,!RQTINFO!,LABELS=NO, SKIP=1, +
|
|
283
|
+
SET = !PV_FOUNDSET!, MEMBERS = !PV_Q! !PV_FILEID!
|
|
284
|
+
SET/PV LINE_CNT = LINE_CNT + 12
|
|
285
|
+
ELSE
|
|
286
|
+
TYPE !CATINFO!,!COPYINFO!,!RQTINFO!,LABELS=NO, SKIP=1, +
|
|
287
|
+
SET = !PV_FOUNDSET!, MEMBERS = !PV_Q! !PV_FILEID!
|
|
288
|
+
SET/PV LINE_CNT = LINE_CNT + 12
|
|
289
|
+
END_IF
|
|
290
|
+
*
|
|
291
|
+
* Delete the occurrence if print is selected
|
|
292
|
+
*
|
|
293
|
+
IF OUTPUT = 'PRINT'
|
|
294
|
+
DELETE [!PV_FOUNDSET!,!PV_Q!]CIRC_REQUEST
|
|
295
|
+
END_IF
|
|
296
|
+
*
|
|
297
|
+
* Check for a page break.
|
|
298
|
+
*
|
|
299
|
+
IF LINE_CNT > MAXLINES
|
|
300
|
+
IF OUTPUT = 'REVIEW'
|
|
301
|
+
ACQUIRE/PV MESSAGE 46710, C2=MSG
|
|
302
|
+
INQUIRE/PV PV_QUIT, '!MSG!'
|
|
303
|
+
JUMPIF PV_QUIT[1] = 'N' OR PV_QUIT[1] = 'n',QUIT
|
|
304
|
+
CLEAR/SCREEN
|
|
305
|
+
SET/PV LINE_CNT =2
|
|
306
|
+
ELSE
|
|
307
|
+
TYPE $P, MEMBERS=1, SET=!PV_FOUNDSET! !PV_FILEID!
|
|
308
|
+
END_IF
|
|
309
|
+
*
|
|
310
|
+
SET/PV PGNO = PGNO + 1
|
|
311
|
+
TYPE !HEADER!, $S2, LABELS = N, SKIP = 0, +
|
|
312
|
+
SET = !PV_FOUNDSET!, MEMBERS = 1 !PV_FILEID!
|
|
313
|
+
SET/PV LINE_CNT = 7
|
|
314
|
+
END_IF
|
|
315
|
+
*
|
|
316
|
+
END_FOR
|
|
317
|
+
*
|
|
318
|
+
* Cleanup - close files and discard result sets.
|
|
319
|
+
*
|
|
320
|
+
CLEANUP:
|
|
321
|
+
ACQUIRE/PV MESSAGE 46708, C2=MSG
|
|
322
|
+
TELL MSG
|
|
323
|
+
ACQUIRE/PV MESSAGE 46709, C2=MSG
|
|
324
|
+
INQUIRE/PV DUMMY, '!MSG!'
|
|
325
|
+
QUIT: ACQUIRE/PV LASTSET, N1 = PV_LASTSET
|
|
326
|
+
DISCARD !PV_FOUNDSET!:!PV_LASTSET!
|
|
327
|
+
SET/DEF RESULT = Y
|
|
328
|
+
IF (OUTPUT <> 'REVIEW')
|
|
329
|
+
CLOSE/F FID = A,ERR=$CONTINUE
|
|
330
|
+
FINISH/TRANS
|
|
331
|
+
END_IF
|
|
332
|
+
*
|
|
333
|
+
* DONE - successful report generation; return to caller
|
|
334
|
+
*
|
|
335
|
+
DONE:
|
|
336
|
+
RETURN_TO_SCREEN
|
|
337
|
+
*
|
|
338
|
+
* Error - inform user and close file, if necessary.
|
|
339
|
+
*
|
|
340
|
+
SYNTAXERR:
|
|
341
|
+
EXCEPTION:
|
|
342
|
+
OPENERR:
|
|
343
|
+
VIEWERR:
|
|
344
|
+
SHOW/MESSAGE !DMSTAT!
|
|
345
|
+
JUMP ERROR
|
|
346
|
+
BREAKERR:
|
|
347
|
+
SHOW/MESSAGE 46700
|
|
348
|
+
ERROR:
|
|
349
|
+
SHOW/MESSAGE 46703
|
|
350
|
+
IF (OUTPUT <> 'REVIEW')
|
|
351
|
+
CLOSE/FILE FID = A,ERR=$CONTINUE
|
|
352
|
+
ABORT/TRANSACTION, ERR=$CONTINUE
|
|
353
|
+
END_IF
|
|
354
|
+
SET/DEF RESULT = Y
|
|
355
|
+
ACQUIRE/PV MESSAGE 46709, C2=MSG
|
|
356
|
+
INQUIRE/PV DUMMY, '!MSG!'
|
|
357
|
+
RETURN_TO_SCREEN
|
|
358
|
+
*PROC FILOPN01
|
|
359
|
+
*-----------------------------------------------------------------------------
|
|
360
|
+
*
|
|
361
|
+
* Title: Generic File Open
|
|
362
|
+
* File: FILOPN01.PRC
|
|
363
|
+
* Author: Information Dimensions, Inc. (BPM)
|
|
364
|
+
*
|
|
365
|
+
* Description: This proc is designed as a subroutine that is called from
|
|
366
|
+
* other TLP procs to correctly open files in cases where the
|
|
367
|
+
* file may already exist.
|
|
368
|
+
*
|
|
369
|
+
* Input Parameters:
|
|
370
|
+
* FIL The file descriptor to be opened.
|
|
371
|
+
* ID The file ID to be assigned to this file.
|
|
372
|
+
* Called by: Any report that has an OPEN/FILE.
|
|
373
|
+
* Call: @/PL='$TLP_PROC/generpts' FILOPN01 FIL=!A!, ID=!B!
|
|
374
|
+
*------------------------------------------------------------------------------
|
|
375
|
+
* Revision History
|
|
376
|
+
*
|
|
377
|
+
* Date Rev. Revised By Description
|
|
378
|
+
* --------- ---------- --------------------------------
|
|
379
|
+
* 04/07/93 BMOORE Initial version
|
|
380
|
+
*-----------------------------------------------------------------------------
|
|
381
|
+
*
|
|
382
|
+
START:
|
|
383
|
+
*
|
|
384
|
+
* Open the file.
|
|
385
|
+
*
|
|
386
|
+
OPEN/FILE FD=!FIL! FID=!ID! INTENT=WRITE CARRIAGE=NO ERR=OPENERR
|
|
387
|
+
SET/GV FILE_STATUS = 'OK'
|
|
388
|
+
RETURN
|
|
389
|
+
*
|
|
390
|
+
* If error occurs, attempt to delete existing file and then open the file.
|
|
391
|
+
*
|
|
392
|
+
OPENERR:
|
|
393
|
+
*
|
|
394
|
+
DELETE/FILE !FIL!
|
|
395
|
+
OPEN/FILE FD=!FIL! FID=!ID! INTENT=WRITE CARRIAGE=NO ERR=OPENER2
|
|
396
|
+
SET/GV FILE_STATUS = 'OK'
|
|
397
|
+
RETURN
|
|
398
|
+
*
|
|
399
|
+
* If still unable to open the file, display message and return.
|
|
400
|
+
*
|
|
401
|
+
OPENER2:
|
|
402
|
+
*
|
|
403
|
+
SET/GV FILE_STATUS = 'OPEN_ERROR'
|
|
404
|
+
TELL 'File cannot be opened. Contact your DBA'
|
|
405
|
+
RETURN
|
|
406
|
+
*PROC GENPRT01
|
|
407
|
+
*-----------------------------------------------------------------------------
|
|
408
|
+
*
|
|
409
|
+
* Title: Generic Print Routine
|
|
410
|
+
* File: GENPRT01.PRC
|
|
411
|
+
* Author: Information Dimensions, Inc. (BPM)
|
|
412
|
+
*
|
|
413
|
+
* Description: This proc is designed as a subroutine that is called from
|
|
414
|
+
* other TLP procs to allow custom printing of reports.
|
|
415
|
+
* The proc uses the ROUTE/FILE command to route a file to the
|
|
416
|
+
* printer of chice. Consult the BASISplus Command Procedures
|
|
417
|
+
* manual for additional parameters. Optionally, you can use
|
|
418
|
+
* a SPAWN command to call local procedures for printing.
|
|
419
|
+
*
|
|
420
|
+
* Input Parameters:
|
|
421
|
+
* FIL The file descriptor to be sent to the printer.
|
|
422
|
+
* ERROR_FLG is 'Y' if called from within error branch of
|
|
423
|
+
* the calling proc.
|
|
424
|
+
*
|
|
425
|
+
* Called by: Any report that generates a printable file.
|
|
426
|
+
*
|
|
427
|
+
* Call: @/PL=TLP$PROC:GENERPTS.LIB GENPRT01 FIL=!A! ERROR_FLG='N'
|
|
428
|
+
*------------------------------------------------------------------------------
|
|
429
|
+
* Revision History
|
|
430
|
+
*
|
|
431
|
+
* Date Rev. Revised By Description
|
|
432
|
+
* --------- ---------- --------------------------------
|
|
433
|
+
* 04/08/93 BMOORE Initial version
|
|
434
|
+
*-----------------------------------------------------------------------------
|
|
435
|
+
*
|
|
436
|
+
ON/EXCEPTION $RETURN
|
|
437
|
+
START:
|
|
438
|
+
*
|
|
439
|
+
**** ROUTE/FILE FD=!FIL!
|
|
440
|
+
RETURN
|
|
441
|
+
*PROC MAROUT01
|
|
442
|
+
*-----------------------------------------------------------------------------
|
|
443
|
+
*
|
|
444
|
+
* Title: Marc Output
|
|
445
|
+
* File: MAROUT01.PRC
|
|
446
|
+
* Author: Information Dimensions, Inc. (HB)
|
|
447
|
+
*
|
|
448
|
+
* Description: Create Marc Input file records that can be run using the Marc
|
|
449
|
+
* program
|
|
450
|
+
*
|
|
451
|
+
* Input Parameters:
|
|
452
|
+
* OUTPUT - may be 'REVIEW','PRINT'. Review displays report
|
|
453
|
+
* on screen, print outputs to file.
|
|
454
|
+
*
|
|
455
|
+
* FORMAT - may be set to OCLC, LC, or PC
|
|
456
|
+
*
|
|
457
|
+
* BLOCKSIZE - the length of each line in output file
|
|
458
|
+
*
|
|
459
|
+
* FIND_CAT - where part of find command for cat record
|
|
460
|
+
*
|
|
461
|
+
* FIND_COPY - where part of find command for copy record
|
|
462
|
+
*
|
|
463
|
+
* CATNO - a string of CATNO's to search on
|
|
464
|
+
*
|
|
465
|
+
* Valid Combinations:
|
|
466
|
+
* OUTPUT, FORMAT, and BLOCKSIZE are required.
|
|
467
|
+
* User may enter one of: FIND_CAT OR FIND_COPY OR CATNO
|
|
468
|
+
*
|
|
469
|
+
* Output File: marout01.rpt
|
|
470
|
+
* marout01.log
|
|
471
|
+
*
|
|
472
|
+
* Record Types Referenced:
|
|
473
|
+
* MARC
|
|
474
|
+
* Buffers: @A
|
|
475
|
+
*
|
|
476
|
+
* Report Name: MARC OUTPUT
|
|
477
|
+
*
|
|
478
|
+
* Report No.: MAROUT01
|
|
479
|
+
*
|
|
480
|
+
* Menu Access: CATRPT01
|
|
481
|
+
*
|
|
482
|
+
* Parameter
|
|
483
|
+
* Input Screen: MARRPT10
|
|
484
|
+
*
|
|
485
|
+
* Templates: none
|
|
486
|
+
*
|
|
487
|
+
*------------------------------------------------------------------------------
|
|
488
|
+
*
|
|
489
|
+
* Revision History:
|
|
490
|
+
*
|
|
491
|
+
* Date Revised By Description
|
|
492
|
+
* -------- ---------- -----------
|
|
493
|
+
* 04/25/90 Berger Initial version
|
|
494
|
+
* 04/26/90 Sandstrom Added PC format code
|
|
495
|
+
* 05/10/90 Sandstrom Added LC format code
|
|
496
|
+
* 05/11/90 Berger Revisions to FIND_CAT and FIND_COPY
|
|
497
|
+
* 07/03/91 MChung Substitute tabs with 8 spaces and
|
|
498
|
+
* spelling checks
|
|
499
|
+
* 12/02/91 Sandstrom Changed log file open to handle
|
|
500
|
+
* error if log file already exists.
|
|
501
|
+
*
|
|
502
|
+
*------------------------------------------------------------------------------
|
|
503
|
+
*
|
|
504
|
+
START:
|
|
505
|
+
ACQUIRE/PV MESSAGE 46707, C2=MSG
|
|
506
|
+
TELL MSG,$B
|
|
507
|
+
ON/BREAK BREAKERR
|
|
508
|
+
ON/EXCEPTION EXCEPTION
|
|
509
|
+
ON/SYNTAX SYNTAXERR
|
|
510
|
+
SET/DEFAULT RESULT = N
|
|
511
|
+
SET/PV LINE_CNT = 1
|
|
512
|
+
* Check for bad blocksize
|
|
513
|
+
IF BLOCKSIZE < 80
|
|
514
|
+
SET/PV BLOCKSIZE = 80
|
|
515
|
+
ELSE_IF BLOCKSIZE > 2048
|
|
516
|
+
SET/PV BLOCKSIZE = 2048
|
|
517
|
+
END_IF
|
|
518
|
+
* Set up for desired output method
|
|
519
|
+
SELECT (OUTPUT)
|
|
520
|
+
CASE 'REVIEW'
|
|
521
|
+
SET/PV BLOCKSIZE = 80
|
|
522
|
+
CASE 'PRINT'
|
|
523
|
+
OPEN/FILE marout01.rpt, FID=A, +
|
|
524
|
+
INTENT=WRITE,ERR=OPENERR, RECORDLC=!BLOCKSIZE!
|
|
525
|
+
SET/PV PV_FILEID = ',FID=A'
|
|
526
|
+
END_SELECT
|
|
527
|
+
*
|
|
528
|
+
* Construct find command for search on CAT record
|
|
529
|
+
*
|
|
530
|
+
IF FIND_CAT <> NULL
|
|
531
|
+
SET/PV PV_FINDCMD = 'FIND CAT,MARC ' //+
|
|
532
|
+
'WHERE CAT.CATNO:=MARC.CATNO AND '
|
|
533
|
+
SET/PV FIND_CAT = $RAISE(FIND_CAT)
|
|
534
|
+
*
|
|
535
|
+
* Add CAT. to ambiguous fields in find command where it is not specified
|
|
536
|
+
*
|
|
537
|
+
SET/PV PV_ADD = $MATCH('ADD_DT',FIND_CAT)
|
|
538
|
+
SET/PV PV_EXISTS = $MATCH('.ADD_DT',FIND_CAT)
|
|
539
|
+
IF (PV_ADD > 0) AND (PV_EXISTS = 0)
|
|
540
|
+
SET/PV FIND_CAT = FIND_CAT[1:(PV_ADD-1)] // 'CAT.' //+
|
|
541
|
+
FIND_CAT[PV_ADD:*]
|
|
542
|
+
END_IF
|
|
543
|
+
*
|
|
544
|
+
SET/PV PV_ADD = $MATCH('CATNO',FIND_CAT)
|
|
545
|
+
SET/PV PV_EXISTS = $MATCH('.CATNO',FIND_CAT)
|
|
546
|
+
IF (PV_ADD > 0) AND (PV_EXISTS = 0)
|
|
547
|
+
SET/PV FIND_CAT = FIND_CAT[1:(PV_ADD-1)] // 'CAT.' //+
|
|
548
|
+
FIND_CAT[PV_ADD:*]
|
|
549
|
+
END_IF
|
|
550
|
+
*
|
|
551
|
+
SET/PV PV_ADD = $MATCH('REV_DT',FIND_CAT)
|
|
552
|
+
SET/PV PV_EXISTS = $MATCH('.REV_DT',FIND_CAT)
|
|
553
|
+
IF (PV_ADD > 0) AND (PV_EXISTS = 0)
|
|
554
|
+
SET/PV FIND_CAT = FIND_CAT[1:(PV_ADD-1)] // 'CAT.' //+
|
|
555
|
+
FIND_CAT[PV_ADD:*]
|
|
556
|
+
END_IF
|
|
557
|
+
*
|
|
558
|
+
SET/PV PV_ADD = $MATCH('REV_UID',FIND_CAT)
|
|
559
|
+
SET/PV PV_EXISTS = $MATCH('.REV_UID',FIND_CAT)
|
|
560
|
+
IF (PV_ADD > 0) AND (PV_EXISTS = 0)
|
|
561
|
+
SET/PV FIND_CAT = FIND_CAT[1:(PV_ADD-1)] // 'CAT.' //+
|
|
562
|
+
FIND_CAT[PV_ADD:*]
|
|
563
|
+
END_IF
|
|
564
|
+
* Append restrictive condition to find command
|
|
565
|
+
SET/PV PV_FINDCMD = PV_FINDCMD // FIND_CAT
|
|
566
|
+
*
|
|
567
|
+
* Construct find command for search on COPY record
|
|
568
|
+
*
|
|
569
|
+
ELSE_IF FIND_COPY <> NULL
|
|
570
|
+
SET/PV PV_FINDCMD = 'FIND COPY,MARC ' //+
|
|
571
|
+
'WHERE COPY.CATNO:=MARC.CATNO AND '
|
|
572
|
+
SET/PV FIND_COPY = $RAISE(FIND_COPY)
|
|
573
|
+
*
|
|
574
|
+
* Add COPY. to ambiguous fields in find command where it is not specified
|
|
575
|
+
*
|
|
576
|
+
SET/PV PV_ADD = $MATCH('ADD_DT',FIND_COPY)
|
|
577
|
+
SET/PV PV_EXISTS = $MATCH('.ADD_DT',FIND_COPY)
|
|
578
|
+
IF (PV_ADD > 0) AND (PV_EXISTS = 0)
|
|
579
|
+
SET/PV FIND_COPY = FIND_COPY[1:(PV_ADD-1)] // 'COPY.' //+
|
|
580
|
+
FIND_COPY[PV_ADD:*]
|
|
581
|
+
END_IF
|
|
582
|
+
*
|
|
583
|
+
SET/PV PV_ADD = $MATCH('CATNO',FIND_COPY)
|
|
584
|
+
SET/PV PV_EXISTS = $MATCH('.CATNO',FIND_COPY)
|
|
585
|
+
IF (PV_ADD > 0) AND (PV_EXISTS = 0)
|
|
586
|
+
SET/PV FIND_COPY = FIND_COPY[1:(PV_ADD-1)] // 'COPY.' //+
|
|
587
|
+
FIND_COPY[PV_ADD:*]
|
|
588
|
+
END_IF
|
|
589
|
+
*
|
|
590
|
+
SET/PV PV_ADD = $MATCH('REV_DT',FIND_COPY)
|
|
591
|
+
SET/PV PV_EXISTS = $MATCH('.REV_DT',FIND_COPY)
|
|
592
|
+
IF (PV_ADD > 0) AND (PV_EXISTS = 0)
|
|
593
|
+
SET/PV FIND_COPY = FIND_COPY[1:(PV_ADD-1)] // 'COPY.' //+
|
|
594
|
+
FIND_COPY[PV_ADD:*]
|
|
595
|
+
END_IF
|
|
596
|
+
*
|
|
597
|
+
SET/PV PV_ADD = $MATCH('REV_UID',FIND_COPY)
|
|
598
|
+
SET/PV PV_EXISTS = $MATCH('.REV_UID',FIND_COPY)
|
|
599
|
+
IF (PV_ADD > 0) AND (PV_EXISTS = 0)
|
|
600
|
+
SET/PV FIND_COPY = FIND_COPY[1:(PV_ADD-1)] // 'COPY.' //+
|
|
601
|
+
FIND_COPY[PV_ADD:*]
|
|
602
|
+
END_IF
|
|
603
|
+
* Append restrictive condition to find command
|
|
604
|
+
SET/PV PV_FINDCMD = PV_FINDCMD // FIND_COPY
|
|
605
|
+
*
|
|
606
|
+
* Construct find command for search on selected CATNO's
|
|
607
|
+
*
|
|
608
|
+
ELSE_IF CATNO <> NULL
|
|
609
|
+
SET/PV PV_FINDCMD = 'FIND MARC WHERE MARC.CATNO =' //!CATNO!
|
|
610
|
+
*
|
|
611
|
+
* Construct default find command for no selected search criteria
|
|
612
|
+
*
|
|
613
|
+
ELSE
|
|
614
|
+
SET/PV PV_FINDCMD = 'FIND MARC'
|
|
615
|
+
END_IF
|
|
616
|
+
*
|
|
617
|
+
* Add sort to the find command
|
|
618
|
+
*
|
|
619
|
+
SET/PV PV_FINDCMD = PV_FINDCMD // ' ORDER BY MARC.CATNO END REF=NO'
|
|
620
|
+
*
|
|
621
|
+
* Write find command to log file
|
|
622
|
+
*
|
|
623
|
+
* OPEN/FILE marout01.log,FID=B,INTENT=WRITE,CREATE=YES, +
|
|
624
|
+
* CARRIAGE=YES, ERR=OPENERR
|
|
625
|
+
* smls19911202 changed error branch on log file open to $continue
|
|
626
|
+
* and added test for dmstat.
|
|
627
|
+
OPEN/FILE marout01.log,FID=B,INTENT=WRITE,CREATE=YES, +
|
|
628
|
+
ERR=$CONTINUE
|
|
629
|
+
IF DMSTAT <> 0
|
|
630
|
+
OPEN/FILE marout01.log,FID=B,INTENT=UPDATE,ERR=OPENERR
|
|
631
|
+
END_IF
|
|
632
|
+
PUT/FILE ' Log File for MAROUT01',FID=B
|
|
633
|
+
PUT/FILE ' ---------------------',FID=B
|
|
634
|
+
PUT/FILE $S2,'FIND COMMAND',$B,'------------',FID=B
|
|
635
|
+
SET/PV PV_FINDLEN = $LC(PV_FINDCMD)
|
|
636
|
+
SET/PV PV_POINT = 1
|
|
637
|
+
WHILE (PV_POINT <= PV_FINDLEN)
|
|
638
|
+
PUT/FILE PV_FINDCMD[PV_POINT:(PV_POINT+79)],FID=B
|
|
639
|
+
SET/PV PV_POINT = PV_POINT + 80
|
|
640
|
+
END_WHILE
|
|
641
|
+
*
|
|
642
|
+
* Execute find, store members and set in variables
|
|
643
|
+
*
|
|
644
|
+
!PV_FINDCMD!,ERR=FNDERR
|
|
645
|
+
ACQUIRE/PV MEMBERS, N1 = PV_NUMMEM
|
|
646
|
+
ACQUIRE/PV LASTSET, N1 = PV_SET
|
|
647
|
+
*
|
|
648
|
+
* Write members to log file and close file
|
|
649
|
+
*
|
|
650
|
+
PUT/FILE $S2,'NUMBER OF MEMBERS = ',PV_NUMMEM,FID=B
|
|
651
|
+
CLOSE/FILE FID=B
|
|
652
|
+
*
|
|
653
|
+
* Check for no hits
|
|
654
|
+
*
|
|
655
|
+
IF (PV_NUMMEM <= 0)
|
|
656
|
+
SHOW/MESSAGE 46705
|
|
657
|
+
JUMP CLEANUP
|
|
658
|
+
END_IF
|
|
659
|
+
*
|
|
660
|
+
* Type output for specified formats
|
|
661
|
+
*
|
|
662
|
+
SELECT (FORMAT)
|
|
663
|
+
CASE 'OCLC'
|
|
664
|
+
*
|
|
665
|
+
* Step through members of set, generating correct output for each.
|
|
666
|
+
*
|
|
667
|
+
FOR PV_MEM = 1, PV_NUMMEM
|
|
668
|
+
GET/VIEW[!PV_SET!,!PV_MEM!]MARC@A
|
|
669
|
+
ASSIGN/PV PV_OUTDATA = MARC_DATA@A
|
|
670
|
+
SET/PV PV_LENGTH = $LC(PV_OUTDATA)
|
|
671
|
+
SET/PV PV_POINT = 1
|
|
672
|
+
****** Loop through printing one record at a time ******
|
|
673
|
+
WHILE (PV_POINT <= PV_LENGTH)
|
|
674
|
+
IF OUTPUT = 'REVIEW'
|
|
675
|
+
SET/PV LINE_CNT = LINE_CNT + 1
|
|
676
|
+
******* Check for page break ********
|
|
677
|
+
IF LINE_CNT >= 20
|
|
678
|
+
ACQUIRE/PV MESSAGE 46710, C2=MSG
|
|
679
|
+
INQUIRE/PV PV_QUIT, '!MSG!'
|
|
680
|
+
JUMPIF PV_QUIT[1] = 'N' OR PV_QUIT[1] = 'n',QUIT
|
|
681
|
+
CLEAR/SCREEN
|
|
682
|
+
SET/PV LINE_CNT = 1
|
|
683
|
+
END_IF
|
|
684
|
+
TELL PV_OUTDATA[PV_POINT:(PV_POINT+BLOCKSIZE-1)]
|
|
685
|
+
ELSE
|
|
686
|
+
PUT/F PV_OUTDATA[PV_POINT:(PV_POINT+BLOCKSIZE-1)] +
|
|
687
|
+
,FID=A
|
|
688
|
+
END_IF
|
|
689
|
+
SET/PV PV_POINT = PV_POINT + BLOCKSIZE
|
|
690
|
+
END_WHILE
|
|
691
|
+
END_FOR
|
|
692
|
+
*
|
|
693
|
+
CASE 'PC'
|
|
694
|
+
*
|
|
695
|
+
*
|
|
696
|
+
SET/PV PV_MEM = 1
|
|
697
|
+
SET/PV PV_POINT_OUT = 1
|
|
698
|
+
GETPC:
|
|
699
|
+
WHILE PV_MEM LE PV_NUMMEM
|
|
700
|
+
*
|
|
701
|
+
* Get record
|
|
702
|
+
*
|
|
703
|
+
GET/VIEW[!PV_SET!,!PV_MEM!]MARC@A
|
|
704
|
+
ASSIGN/PV PV_MARCDATA = MARC_DATA@A
|
|
705
|
+
SET/PV PV_MARCDATA = $TRIM (PV_MARCDATA)
|
|
706
|
+
SET/PV PV_MEM = PV_MEM + 1
|
|
707
|
+
SET/PV PV_LENGTH = PV_MARCDATA[1:5]
|
|
708
|
+
SET/PV PV_SEGLEN = PV_LENGTH
|
|
709
|
+
SET/PV PV_POINT_IN = 1
|
|
710
|
+
*
|
|
711
|
+
* Loop to build and write buffer
|
|
712
|
+
*
|
|
713
|
+
BLDPC:
|
|
714
|
+
*
|
|
715
|
+
* Record will begin and end in this block....
|
|
716
|
+
IF (PV_SEGLEN EQ PV_LENGTH) AND +
|
|
717
|
+
PV_SEGLEN LE (BLOCKSIZE - PV_POINT_OUT + 1) THEN
|
|
718
|
+
SET/PV PV_BUFFER[PV_POINT_OUT:PV_POINT_OUT+PV_SEGLEN-1]=+
|
|
719
|
+
PV_MARCDATA[1:PV_LENGTH]
|
|
720
|
+
SET/PV PV_POINT_OUT = PV_POINT_OUT + PV_SEGLEN
|
|
721
|
+
SET/PV PV_SEGLEN = 0
|
|
722
|
+
IF PV_POINT_OUT GT BLOCKSIZE THEN
|
|
723
|
+
SET/PV PV_POINT_OUT = 1
|
|
724
|
+
JUMP OUTPC
|
|
725
|
+
END_IF
|
|
726
|
+
JUMP GETPC
|
|
727
|
+
END_IF
|
|
728
|
+
* Record will begin but not end in this block....
|
|
729
|
+
IF (PV_SEGLEN EQ PV_LENGTH) AND +
|
|
730
|
+
PV_SEGLEN GT (BLOCKSIZE - PV_POINT_OUT + 1) THEN
|
|
731
|
+
SET/PV PV_BUFFER[PV_POINT_OUT:BLOCKSIZE] = +
|
|
732
|
+
PV_MARCDATA[1:BLOCKSIZE-PV_POINT_OUT+1]
|
|
733
|
+
SET/PV PV_SEGLEN = PV_SEGLEN - (BLOCKSIZE-PV_POINT_OUT+1)
|
|
734
|
+
SET/PV PV_POINT_IN = PV_POINT_IN+BLOCKSIZE-PV_POINT_OUT+1
|
|
735
|
+
SET/PV PV_POINT_OUT = 1
|
|
736
|
+
JUMP OUTPC
|
|
737
|
+
END_IF
|
|
738
|
+
* Record will end but not begin in this block....
|
|
739
|
+
IF (PV_SEGLEN NE PV_LENGTH) AND +
|
|
740
|
+
PV_SEGLEN LE (BLOCKSIZE - PV_POINT_OUT + 1) THEN
|
|
741
|
+
SET/PV PV_BUFFER[PV_POINT_OUT:*] = +
|
|
742
|
+
PV_MARCDATA[PV_POINT_IN:PV_POINT_IN+PV_SEGLEN-1]
|
|
743
|
+
SET/PV PV_POINT_OUT = PV_SEGLEN + 1
|
|
744
|
+
IF PV_POINT_OUT GT BLOCKSIZE THEN
|
|
745
|
+
SET/PV PV_POINT_OUT = 1
|
|
746
|
+
SET/PV PV_SEGLEN = 0
|
|
747
|
+
JUMP OUTPC
|
|
748
|
+
END_IF
|
|
749
|
+
JUMP GETPC
|
|
750
|
+
END_IF
|
|
751
|
+
* Record will not begin or end in this block....
|
|
752
|
+
IF (PV_SEGLEN NE PV_LENGTH) AND +
|
|
753
|
+
PV_SEGLEN GT (BLOCKSIZE - PV_POINT_OUT + 1) THEN
|
|
754
|
+
SET/PV PV_BUFFER[PV_POINT_OUT:BLOCKSIZE] = +
|
|
755
|
+
PV_MARCDATA[PV_POINT_IN:PV_POINT_IN+BLOCKSIZE-1]
|
|
756
|
+
SET/PV PV_SEGLEN = PV_SEGLEN - BLOCKSIZE
|
|
757
|
+
SET/PV PV_POINT_IN = PV_POINT_IN + BLOCKSIZE
|
|
758
|
+
JUMP OUTPC
|
|
759
|
+
END_IF
|
|
760
|
+
OUTPC:
|
|
761
|
+
IF OUTPUT = 'REVIEW'
|
|
762
|
+
SET/PV LINE_CNT = LINE_CNT + 1
|
|
763
|
+
******* Check for page break ********
|
|
764
|
+
IF LINE_CNT >= 20
|
|
765
|
+
ACQUIRE/PV MESSAGE 46710, C2=MSG
|
|
766
|
+
INQUIRE/PV PV_QUIT, '!MSG!'
|
|
767
|
+
JUMPIF PV_QUIT[1] = 'N' OR PV_QUIT[1] = 'n',QUIT
|
|
768
|
+
CLEAR/SCREEN
|
|
769
|
+
SET/PV LINE_CNT = 1
|
|
770
|
+
END_IF
|
|
771
|
+
TELL PV_BUFFER[1:BLOCKSIZE]
|
|
772
|
+
ELSE
|
|
773
|
+
PUT/F PV_BUFFER[1:BLOCKSIZE] ,FID=A
|
|
774
|
+
END_IF
|
|
775
|
+
*
|
|
776
|
+
IF PV_SEGLEN EQ 0 THEN
|
|
777
|
+
JUMP GETPC
|
|
778
|
+
ELSE
|
|
779
|
+
JUMP BLDPC
|
|
780
|
+
END_IF
|
|
781
|
+
END_WHILE
|
|
782
|
+
* "Put" last line
|
|
783
|
+
IF OUTPUT = 'REVIEW'
|
|
784
|
+
TELL PV_BUFFER[1:BLOCKSIZE]
|
|
785
|
+
ELSE
|
|
786
|
+
PUT/F PV_BUFFER[1:BLOCKSIZE] ,FID=A
|
|
787
|
+
END_IF
|
|
788
|
+
*
|
|
789
|
+
*
|
|
790
|
+
CASE 'LC'
|
|
791
|
+
*
|
|
792
|
+
SET/PV PV_MEM = 1
|
|
793
|
+
SET/PV PV_POINT_OUT = 1
|
|
794
|
+
GETLC:
|
|
795
|
+
WHILE PV_MEM LE PV_NUMMEM
|
|
796
|
+
*
|
|
797
|
+
* Get record
|
|
798
|
+
*
|
|
799
|
+
GET/VIEW[!PV_SET!,!PV_MEM!]MARC@A
|
|
800
|
+
ASSIGN/PV PV_MARCDATA = MARC_DATA@A
|
|
801
|
+
SET/PV PV_MARCDATA = $TRIM (PV_MARCDATA)
|
|
802
|
+
SET/PV PV_MEM = PV_MEM + 1
|
|
803
|
+
SET/PV PV_LENGTH = PV_MARCDATA[1:5]
|
|
804
|
+
SET/PV PV_SEGLEN = PV_LENGTH
|
|
805
|
+
SET/PV PV_POINT_IN = 1
|
|
806
|
+
*
|
|
807
|
+
* Loop to build and write buffer
|
|
808
|
+
*
|
|
809
|
+
BLDLC:
|
|
810
|
+
*
|
|
811
|
+
* Record will begin and end in this block....0
|
|
812
|
+
IF (PV_SEGLEN EQ PV_LENGTH) AND +
|
|
813
|
+
PV_SEGLEN LE (BLOCKSIZE - PV_POINT_OUT + 1 - 5) THEN
|
|
814
|
+
* Set segment control word
|
|
815
|
+
SET/PV PV_BUFFER[PV_POINT_OUT:PV_POINT_OUT] = '0'
|
|
816
|
+
SET/PV PV_SCW_I = PV_SEGLEN + 5
|
|
817
|
+
SET/PV PV_SCW_S[1:4] = $PADZ(PV_SCW_I,4)
|
|
818
|
+
SET/PV PV_BUFFER[PV_POINT_OUT+1:PV_POINT_OUT+4] = +
|
|
819
|
+
PV_SCW_S[1:4]
|
|
820
|
+
* Add record segment
|
|
821
|
+
SET/PV PV_POINT_OUT = PV_POINT_OUT + 5
|
|
822
|
+
SET/PV PV_BUFFER[PV_POINT_OUT:PV_POINT_OUT+PV_SEGLEN-1]=+
|
|
823
|
+
PV_MARCDATA[1:PV_LENGTH]
|
|
824
|
+
SET/PV PV_POINT_OUT = PV_POINT_OUT + PV_SEGLEN
|
|
825
|
+
SET/PV PV_SEGLEN = 0
|
|
826
|
+
IF PV_POINT_OUT GE (BLOCKSIZE-5) THEN
|
|
827
|
+
SET/PV PV_POINT_OUT = 1
|
|
828
|
+
JUMP OUTLC
|
|
829
|
+
END_IF
|
|
830
|
+
JUMP GETLC
|
|
831
|
+
END_IF
|
|
832
|
+
* Record will begin but not end in this block....1
|
|
833
|
+
IF (PV_SEGLEN EQ PV_LENGTH) AND +
|
|
834
|
+
PV_SEGLEN GT (BLOCKSIZE - PV_POINT_OUT + 1 - 5) THEN
|
|
835
|
+
* Set segment control word
|
|
836
|
+
SET/PV PV_BUFFER[PV_POINT_OUT:PV_POINT_OUT] = '1'
|
|
837
|
+
SET/PV PV_SCW_I = BLOCKSIZE - PV_POINT_OUT + 1
|
|
838
|
+
SET/PV PV_SCW_S[1:4] = $PADZ(PV_SCW_I,4)
|
|
839
|
+
SET/PV PV_BUFFER[PV_POINT_OUT+1:PV_POINT_OUT+4] = +
|
|
840
|
+
PV_SCW_S[1:4]
|
|
841
|
+
* Add record segment
|
|
842
|
+
SET/PV PV_POINT_OUT = PV_POINT_OUT + 5
|
|
843
|
+
SET/PV PV_BUFFER[PV_POINT_OUT:BLOCKSIZE] = +
|
|
844
|
+
PV_MARCDATA[1:BLOCKSIZE-PV_POINT_OUT+1]
|
|
845
|
+
SET/PV PV_SEGLEN = PV_SEGLEN - (BLOCKSIZE-PV_POINT_OUT+1)
|
|
846
|
+
SET/PV PV_POINT_IN = PV_POINT_IN+BLOCKSIZE-PV_POINT_OUT+1
|
|
847
|
+
SET/PV PV_POINT_OUT = 1
|
|
848
|
+
JUMP OUTLC
|
|
849
|
+
END_IF
|
|
850
|
+
* Record will end but not begin in this block....3
|
|
851
|
+
IF (PV_SEGLEN NE PV_LENGTH) AND +
|
|
852
|
+
PV_SEGLEN LE (BLOCKSIZE - PV_POINT_OUT + 1 - 5) THEN
|
|
853
|
+
* Set segment control word
|
|
854
|
+
SET/PV PV_BUFFER[PV_POINT_OUT:PV_POINT_OUT] = '3'
|
|
855
|
+
SET/PV PV_SCW_I = PV_SEGLEN + 5
|
|
856
|
+
SET/PV PV_SCW_S[1:4] = $PADZ(PV_SCW_I,4)
|
|
857
|
+
SET/PV PV_BUFFER[PV_POINT_OUT+1:PV_POINT_OUT+4] = +
|
|
858
|
+
PV_SCW_S[1:4]
|
|
859
|
+
* Add record segment
|
|
860
|
+
SET/PV PV_POINT_OUT = PV_POINT_OUT + 5
|
|
861
|
+
SET/PV PV_BUFFER[PV_POINT_OUT:*] = +
|
|
862
|
+
PV_MARCDATA[PV_POINT_IN:PV_POINT_IN+PV_SEGLEN-1]
|
|
863
|
+
SET/PV PV_POINT_OUT = PV_SEGLEN + 1 + 5
|
|
864
|
+
IF PV_POINT_OUT GE (BLOCKSIZE-5) THEN
|
|
865
|
+
SET/PV PV_POINT_OUT = 1
|
|
866
|
+
SET/PV PV_SEGLEN = 0
|
|
867
|
+
JUMP OUTLC
|
|
868
|
+
END_IF
|
|
869
|
+
JUMP GETLC
|
|
870
|
+
END_IF
|
|
871
|
+
* Record will not begin or end in this block....2
|
|
872
|
+
IF (PV_SEGLEN NE PV_LENGTH) AND +
|
|
873
|
+
PV_SEGLEN GT (BLOCKSIZE - PV_POINT_OUT + 1 - 5) THEN
|
|
874
|
+
* Set segment control word
|
|
875
|
+
SET/PV PV_BUFFER[PV_POINT_OUT:PV_POINT_OUT] = '2'
|
|
876
|
+
SET/PV PV_SCW_I = BLOCKSIZE
|
|
877
|
+
SET/PV PV_SCW_S[1:4] = $PADZ(PV_SCW_I,4)
|
|
878
|
+
SET/PV PV_BUFFER[PV_POINT_OUT+1:PV_POINT_OUT+4] = +
|
|
879
|
+
PV_SCW_S[1:4]
|
|
880
|
+
* Add record segment
|
|
881
|
+
SET/PV PV_POINT_OUT = PV_POINT_OUT + 5
|
|
882
|
+
SET/PV PV_BUFFER[PV_POINT_OUT:BLOCKSIZE] = +
|
|
883
|
+
PV_MARCDATA[PV_POINT_IN:PV_POINT_IN+BLOCKSIZE-6]
|
|
884
|
+
SET/PV PV_SEGLEN = PV_SEGLEN - (BLOCKSIZE - 5)
|
|
885
|
+
SET/PV PV_POINT_IN = PV_POINT_IN + (BLOCKSIZE - 5)
|
|
886
|
+
SET/PV PV_POINT_OUT = 1
|
|
887
|
+
JUMP OUTLC
|
|
888
|
+
END_IF
|
|
889
|
+
OUTLC:
|
|
890
|
+
IF OUTPUT = 'REVIEW'
|
|
891
|
+
SET/PV LINE_CNT = LINE_CNT + 1
|
|
892
|
+
******* Check for page break ********
|
|
893
|
+
IF LINE_CNT >= 20
|
|
894
|
+
ACQUIRE/PV MESSAGE 46710, C2=MSG
|
|
895
|
+
INQUIRE/PV PV_QUIT, '!MSG!'
|
|
896
|
+
JUMPIF PV_QUIT[1] = 'N' OR PV_QUIT[1] = 'n',QUIT
|
|
897
|
+
CLEAR/SCREEN
|
|
898
|
+
SET/PV LINE_CNT = 1
|
|
899
|
+
END_IF
|
|
900
|
+
TELL PV_BUFFER[1:BLOCKSIZE]
|
|
901
|
+
ELSE
|
|
902
|
+
PUT/F PV_BUFFER[1:BLOCKSIZE] ,FID=A
|
|
903
|
+
END_IF
|
|
904
|
+
*
|
|
905
|
+
IF PV_SEGLEN EQ 0 THEN
|
|
906
|
+
JUMP GETLC
|
|
907
|
+
ELSE
|
|
908
|
+
JUMP BLDLC
|
|
909
|
+
END_IF
|
|
910
|
+
END_WHILE
|
|
911
|
+
* "Put" last line
|
|
912
|
+
IF OUTPUT = 'REVIEW'
|
|
913
|
+
TELL PV_BUFFER[1:BLOCKSIZE]
|
|
914
|
+
ELSE
|
|
915
|
+
PUT/F PV_BUFFER[1:BLOCKSIZE] ,FID=A
|
|
916
|
+
END_IF
|
|
917
|
+
*
|
|
918
|
+
END_SELECT
|
|
919
|
+
*
|
|
920
|
+
* Cleanup - close files and discard result sets.
|
|
921
|
+
*
|
|
922
|
+
CLEANUP:
|
|
923
|
+
ACQUIRE/PV MESSAGE 46708, C2=MSG
|
|
924
|
+
TELL MSG
|
|
925
|
+
ACQUIRE/PV MESSAGE 46709, C2=MSG
|
|
926
|
+
INQUIRE/PV DUMMY, '!MSG!'
|
|
927
|
+
QUIT: ACQUIRE/PV LASTSET, N1 = PV_LASTSET
|
|
928
|
+
IF (OUTPUT <> 'REVIEW')
|
|
929
|
+
CLOSE/F FID = A,ERR=$CONTINUE
|
|
930
|
+
END_IF
|
|
931
|
+
DISCARD !PV_SET!:!PV_LASTSET!
|
|
932
|
+
SET/DEF RESULT = Y
|
|
933
|
+
*
|
|
934
|
+
* DONE - successful report generation; return to caller
|
|
935
|
+
*
|
|
936
|
+
DONE:
|
|
937
|
+
RETURN_TO_SCREEN
|
|
938
|
+
*
|
|
939
|
+
* Error - inform user and close file, if necessary.
|
|
940
|
+
*
|
|
941
|
+
SYNTAXERR:
|
|
942
|
+
EXCEPTION:
|
|
943
|
+
OPENERR:
|
|
944
|
+
VIEWERR:
|
|
945
|
+
SHOW/MESSAGE !DMSTAT!
|
|
946
|
+
JUMP ERROR
|
|
947
|
+
FNDERR:
|
|
948
|
+
SHOW/MESSAGE 46702
|
|
949
|
+
JUMP ERROR
|
|
950
|
+
BREAKERR:
|
|
951
|
+
SHOW/MESSAGE 46700
|
|
952
|
+
ERROR:
|
|
953
|
+
SHOW/MESSAGE 46703
|
|
954
|
+
IF (OUTPUT <> 'REVIEW')
|
|
955
|
+
CLOSE/F FID = A,ERR=$CONTINUE
|
|
956
|
+
CLOSE/F FID = B,ERR=$CONTINUE
|
|
957
|
+
END_IF
|
|
958
|
+
SET/DEF RESULT = Y
|
|
959
|
+
ACQUIRE/PV MESSAGE 46709, C2=MSG
|
|
960
|
+
INQUIRE/PV DUMMY, '!MSG!'
|
|
961
|
+
RETURN_TO_SCREEN
|
|
962
|
+
*PROC MRT
|
|
963
|
+
tell 'TLP ENU 920430 L1F P004 TLPV3.3'
|
|
964
|
+
return
|
|
965
|
+
*PROC NWBLST01
|
|
966
|
+
*-----------------------------------------------------------------------------
|
|
967
|
+
*
|
|
968
|
+
* Title: New Books List
|
|
969
|
+
* File: NWBLST01.PRC
|
|
970
|
+
* Author: Information Dimensions, Inc. (HB)
|
|
971
|
+
*
|
|
972
|
+
* Description: List of Titles newly received in the library
|
|
973
|
+
*
|
|
974
|
+
* Input Parameters:
|
|
975
|
+
* OUTPUT - may be 'REVIEW','PRINT'. Review displays report
|
|
976
|
+
* on screen, print outputs to file for printing.
|
|
977
|
+
*
|
|
978
|
+
* START_DT/END_DT - find where COPY.ADD_DT is in range
|
|
979
|
+
*
|
|
980
|
+
* SUBJECT - restrict to certain CAT.SUBJs
|
|
981
|
+
*
|
|
982
|
+
* SORT_KEY - option to sort by title or subject
|
|
983
|
+
*
|
|
984
|
+
* MONTH_YEAR - Inputted month and year for heading
|
|
985
|
+
*
|
|
986
|
+
* LOGIN_LIBR - User's login library
|
|
987
|
+
*
|
|
988
|
+
* Other Selection Criteria:
|
|
989
|
+
* LIBR_KEY - Restrict to certain libraries.
|
|
990
|
+
*
|
|
991
|
+
* ALL - Boolean value; set true by Slang if no params entered
|
|
992
|
+
*
|
|
993
|
+
* Valid Combinations:
|
|
994
|
+
* Presence or absence of SUBJECT. Subject must be present for
|
|
995
|
+
* sort_key = 'SUBJECT'. All other parameters are required to
|
|
996
|
+
* be inputted to the proc.
|
|
997
|
+
*
|
|
998
|
+
* Output File: nwblst01.rpt
|
|
999
|
+
*
|
|
1000
|
+
* Record Types Referenced:
|
|
1001
|
+
* TEMPLATE, LIBR, COPY, CATR, SUB
|
|
1002
|
+
* Buffers: @A @B @C @D
|
|
1003
|
+
*
|
|
1004
|
+
* Report Name: New Books List
|
|
1005
|
+
*
|
|
1006
|
+
* Report No.: NWBLST01
|
|
1007
|
+
*
|
|
1008
|
+
* Menu Access: ???
|
|
1009
|
+
*
|
|
1010
|
+
* Parameter
|
|
1011
|
+
* Input Screen: CATRPT10
|
|
1012
|
+
*
|
|
1013
|
+
* Templates: REPORT_HDR, UNION_CAT, COPY_NEWBOOK
|
|
1014
|
+
*
|
|
1015
|
+
*------------------------------------------------------------------------------
|
|
1016
|
+
*
|
|
1017
|
+
* Revision History:
|
|
1018
|
+
*
|
|
1019
|
+
* Date Revised By Description
|
|
1020
|
+
* -------- ---------- -----------
|
|
1021
|
+
* 11/16/89 Berger Initial version
|
|
1022
|
+
* 09/27/90 Berger Fix paging problem, problem with type
|
|
1023
|
+
* 01/07/91 Sandstrom 20 libs fix
|
|
1024
|
+
* 05/08/91 Sandstrom Moved file opens and template gets
|
|
1025
|
+
* to be after the find command.
|
|
1026
|
+
* 07/03/91 MChung Substitute tabs with 8 spaces and
|
|
1027
|
+
* spelling check
|
|
1028
|
+
*
|
|
1029
|
+
*------------------------------------------------------------------------------
|
|
1030
|
+
*
|
|
1031
|
+
START:
|
|
1032
|
+
ACQUIRE/PV MESSAGE 46707, C2=MSG
|
|
1033
|
+
TELL MSG,$B
|
|
1034
|
+
ON/BREAK BREAKERR
|
|
1035
|
+
ON/EXCEPTION EXCEPTION
|
|
1036
|
+
ON/SYNTAX SYNTAXERR
|
|
1037
|
+
SET/DEFAULT RESULT = N
|
|
1038
|
+
SET/PV PV_TODAY = $YYYYMMDD
|
|
1039
|
+
SET/PV PRINTTOP = 1
|
|
1040
|
+
SET/PV RPTNM = 'NWBLST01'
|
|
1041
|
+
SET/PV RPTTTL = 'New Books list for '// MONTH_YEAR
|
|
1042
|
+
SET/PV PGNO = 0
|
|
1043
|
+
*
|
|
1044
|
+
*set/mode echoproc=yes
|
|
1045
|
+
* Begin construction of FIND command.
|
|
1046
|
+
*
|
|
1047
|
+
* 910107smls added 20 libs fix
|
|
1048
|
+
DELETE/GV OUTSTR
|
|
1049
|
+
DELETE/GV OUTLC
|
|
1050
|
+
DELETE/GV INSTR
|
|
1051
|
+
SET/GV INSTR = LIBR_KEY
|
|
1052
|
+
@/PL='$TLP_PROC/generpts' QTBLKS01, VFLDNM='COPY.LIBR_KEY'
|
|
1053
|
+
SET/PV PV_FINDCMD = 'FIND SUB,RCAT,COPY,LIBR ' //+
|
|
1054
|
+
'WHERE RCAT.CATNO:=>>SUB.CATNO ' //+
|
|
1055
|
+
'AND RCAT.CATNO:=>>COPY.CATNO ' //+
|
|
1056
|
+
'AND LIBR.LIBR_KEY:=COPY.LIBR_KEY ' //+
|
|
1057
|
+
' AND ((RCAT.ADD_DT = '//START_DT//':'//END_DT// +
|
|
1058
|
+
' ) '// +
|
|
1059
|
+
'OR (SUB.ADD_DT = '//START_DT//':'//END_DT// +
|
|
1060
|
+
' AND DOC inc ''SER''* AND RNUM=0)) '
|
|
1061
|
+
*
|
|
1062
|
+
* Append FIND command based on options.
|
|
1063
|
+
*
|
|
1064
|
+
* IF (SUBJECT <> '')
|
|
1065
|
+
* SET/PV PV_FINDCMD = PV_FINDCMD //+
|
|
1066
|
+
* 'AND RCAT.SHELF INC ' // SUBJECT
|
|
1067
|
+
* END_IF
|
|
1068
|
+
*
|
|
1069
|
+
* Append FIND for sort options.
|
|
1070
|
+
*
|
|
1071
|
+
* Removed copy.libr_key from order by
|
|
1072
|
+
* SET/PV PV_FINDCMD = PV_FINDCMD //+
|
|
1073
|
+
* ' ORDER BY !SORT_KEY! RCAT.TI, RCAT.PUBL, ' //+
|
|
1074
|
+
* 'COPY.YEAR, COPY.ITEMID, COPY.COPY'
|
|
1075
|
+
SET/PV PV_FINDCMD = PV_FINDCMD //+
|
|
1076
|
+
' ORDER BY rcat.shelf'
|
|
1077
|
+
*
|
|
1078
|
+
* Execute Find and set up for report generation
|
|
1079
|
+
*
|
|
1080
|
+
!PV_FINDCMD! END REF=NO
|
|
1081
|
+
ACQUIRE/PV MEMBERS, N1 = PV_NUMMEM
|
|
1082
|
+
ACQUIRE/PV LASTSET, N1 = PV_FOUNDSET
|
|
1083
|
+
IF (PV_NUMMEM <= 0)
|
|
1084
|
+
SHOW/MESSAGE 46705
|
|
1085
|
+
JUMP CLEANUP
|
|
1086
|
+
END_IF
|
|
1087
|
+
* smls 910508 moved this to be after the FIND command.
|
|
1088
|
+
* Set up for desired output method
|
|
1089
|
+
SELECT (OUTPUT)
|
|
1090
|
+
CASE 'REVIEW'
|
|
1091
|
+
SET/PV MAXLINES = 20
|
|
1092
|
+
SET/PV PV_FILEID = ''
|
|
1093
|
+
CASE 'PRINT'
|
|
1094
|
+
SET/PV MAXLINES = 60
|
|
1095
|
+
spawn rm -f nwblst01.rpt
|
|
1096
|
+
OPEN/F nwblst01.rpt, FID=A, INTENT=WRITE,ERR=OPENERR
|
|
1097
|
+
put/f fid=a $t20,rptttl
|
|
1098
|
+
SET/PV PV_FILEID = ',FID=A'
|
|
1099
|
+
END_SELECT
|
|
1100
|
+
*
|
|
1101
|
+
* GET/VIEW [TEMPLATE_KEY = 'REPORT_HDR']TEMPLATE@A, ERR = VIEWERR
|
|
1102
|
+
* ASSIGN/PV HEADER = TEXT@A
|
|
1103
|
+
GET/VIEW [TEMPLATE_KEY = 'UNION_CAT']TEMPLATE@A, ERR = VIEWERR
|
|
1104
|
+
ASSIGN/PV CATINFO = TEXT@A
|
|
1105
|
+
* GET/VIEW [TEMPLATE_KEY = 'COPY_NEWBOOK']TEMPLATE@A, ERR = VIEWERR
|
|
1106
|
+
* ASSIGN/PV COPYINFO = TEXT@A
|
|
1107
|
+
*
|
|
1108
|
+
* Step through members of set, generating correct output for each.
|
|
1109
|
+
FOR PV_Q = 1, PV_NUMMEM
|
|
1110
|
+
*
|
|
1111
|
+
GET/VIEW [!PV_FOUNDSET!,!PV_Q!]LIBR@B, ERR = VIEWERR
|
|
1112
|
+
ASSIGN/PV LIBR_NAME = LIBR_NAME@B
|
|
1113
|
+
ASSIGN/PV LOC_NAME = LOC_NAME@B
|
|
1114
|
+
ASSIGN/PV CALLOC = CALL_NUM_LOC@B
|
|
1115
|
+
IF CALLOC = 'CAT' OR CALLOC = NULL THEN
|
|
1116
|
+
SET/PV CALLOC = 'RCAT'
|
|
1117
|
+
END_IF
|
|
1118
|
+
*
|
|
1119
|
+
* Generate report header, then data for each item
|
|
1120
|
+
*
|
|
1121
|
+
* IF LIBR_NAME <> PV_OLD_LIBR_NAME OR PV_Q = 1
|
|
1122
|
+
IF PV_Q = 1
|
|
1123
|
+
IF OUTPUT = 'REVIEW'
|
|
1124
|
+
IF PV_Q <> 1
|
|
1125
|
+
ACQUIRE/PV MESSAGE 46710, C2=MSG
|
|
1126
|
+
INQUIRE/PV PV_QUIT, '!MSG!'
|
|
1127
|
+
JUMPIF PV_QUIT[1] = 'N' OR PV_QUIT[1] = 'n',QUIT
|
|
1128
|
+
END_IF
|
|
1129
|
+
CLEAR/SCREEN
|
|
1130
|
+
SET/PV LINE_CNT = 2
|
|
1131
|
+
* ELSE_IF PV_Q <> 1
|
|
1132
|
+
* TYPE $P, MEMBERS=1, SET=!PV_FOUNDSET! !PV_FILEID!
|
|
1133
|
+
END_IF
|
|
1134
|
+
*
|
|
1135
|
+
SET/PV PGNO = 1
|
|
1136
|
+
* TYPE !HEADER!, $S2, LABELS = N, SKIP = 0, +
|
|
1137
|
+
* SET = !PV_FOUNDSET!, MEMBERS = 1 !PV_FILEID!
|
|
1138
|
+
SET/PV LINE_CNT = 1
|
|
1139
|
+
END_IF
|
|
1140
|
+
SET/PV PV_OLD_LIBR_NAME = LIBR_NAME
|
|
1141
|
+
*
|
|
1142
|
+
* Check for new Subject (if subject is entered)
|
|
1143
|
+
*
|
|
1144
|
+
IF SUBJECT <> ''
|
|
1145
|
+
GET/VIEW [PV_FOUNDSET,PV_Q]RCAT@D,ERR=VIEWERR
|
|
1146
|
+
ASSIGN/PV PV_CURSUBJ = SUBJ@D
|
|
1147
|
+
IF PV_CURSUBJ <> PV_OLDSUBJ
|
|
1148
|
+
SET/PV PV_OLDSUBJ = PV_CURSUBJ
|
|
1149
|
+
* Check for page break
|
|
1150
|
+
SET/PV LINE_CNT = LINE_CNT + 2
|
|
1151
|
+
IF LINE_CNT > MAXLINES
|
|
1152
|
+
IF OUTPUT = 'REVIEW'
|
|
1153
|
+
ACQUIRE/PV MESSAGE 46710, C2=MSG
|
|
1154
|
+
INQUIRE/PV PV_QUIT, '!MSG!'
|
|
1155
|
+
JUMPIF PV_QUIT[1] = 'N' OR PV_QUIT[1] = 'n',QUIT
|
|
1156
|
+
CLEAR/SCREEN
|
|
1157
|
+
SET/PV LINE_CNT = 2
|
|
1158
|
+
ELSE
|
|
1159
|
+
* TYPE $P, MEMBERS=1, SET=!PV_FOUNDSET! !PV_FILEID!
|
|
1160
|
+
SET/PV PGNO = PGNO + 1
|
|
1161
|
+
* TYPE !HEADER!, $S2, LABELS = N, SKIP = 0, +
|
|
1162
|
+
* SET = !PV_FOUNDSET!, MEMBERS = 1 !PV_FILEID!
|
|
1163
|
+
SET/PV LINE_CNT =1
|
|
1164
|
+
END_IF
|
|
1165
|
+
END_IF
|
|
1166
|
+
* TYPE $S2, RCAT.SUBJ, LABELS = N, SKIP = 0, +
|
|
1167
|
+
* SET = !PV_FOUNDSET!, MEMBERS = !PV_Q! !PV_FILEID!
|
|
1168
|
+
END_IF
|
|
1169
|
+
END_IF
|
|
1170
|
+
*
|
|
1171
|
+
GET/VIEW [PV_FOUNDSET,PV_Q]COPY@C, ERR = VIEWERR
|
|
1172
|
+
ASSIGN/PV PV_CURCATNO = CATNO@C
|
|
1173
|
+
IF PV_CURCATNO = NULL
|
|
1174
|
+
GET/VIEW [PV_FOUNDSET,PV_Q]RCAT@D, ERR = VIEWERR
|
|
1175
|
+
ASSIGN/PV PV_CURCATNO = CATNO@D
|
|
1176
|
+
END_IF
|
|
1177
|
+
ASSIGN/PV PV_CURITEMID = ITEMID@C
|
|
1178
|
+
* If new catno, print catalog info
|
|
1179
|
+
IF (PV_CURCATNO <> PV_LSTCATNO)
|
|
1180
|
+
SET/PV LINE_CNT = LINE_CNT + 7
|
|
1181
|
+
* Check for page break
|
|
1182
|
+
IF LINE_CNT > MAXLINES
|
|
1183
|
+
IF OUTPUT = 'REVIEW'
|
|
1184
|
+
ACQUIRE/PV MESSAGE 46710, C2=MSG
|
|
1185
|
+
INQUIRE/PV PV_QUIT, '!MSG!'
|
|
1186
|
+
JUMPIF PV_QUIT[1] = 'N' OR PV_QUIT[1] = 'n',QUIT
|
|
1187
|
+
CLEAR/SCREEN
|
|
1188
|
+
SET/PV LINE_CNT = 2
|
|
1189
|
+
ELSE
|
|
1190
|
+
* TYPE $P, MEMBERS=1, SET=!PV_FOUNDSET! !PV_FILEID!
|
|
1191
|
+
SET/PV PGNO = PGNO + 1
|
|
1192
|
+
* TYPE !HEADER!, $S2, LABELS = N, SKIP = 0, +
|
|
1193
|
+
* SET = !PV_FOUNDSET!, MEMBERS = 1 !PV_FILEID!
|
|
1194
|
+
SET/PV LINE_CNT = 1
|
|
1195
|
+
END_IF
|
|
1196
|
+
END_IF
|
|
1197
|
+
TYPE $S2, !CATINFO!, LABELS = N, SKIP = 0, +
|
|
1198
|
+
SET = !PV_FOUNDSET!, MEMBERS = !PV_Q! !PV_FILEID!
|
|
1199
|
+
SET/PV PV_LSTCATNO = PV_CURCATNO
|
|
1200
|
+
set/pv line_cnt=line_cnt+dm_lines
|
|
1201
|
+
END_IF
|
|
1202
|
+
* Aviod duplicates from FIND command
|
|
1203
|
+
IF (PV_CURITEMID <> PV_LSTITEMID)
|
|
1204
|
+
SET/PV LINE_CNT = LINE_CNT + 1
|
|
1205
|
+
* Check for page break
|
|
1206
|
+
IF LINE_CNT > MAXLINES
|
|
1207
|
+
IF OUTPUT = 'REVIEW'
|
|
1208
|
+
ACQUIRE/PV MESSAGE 46710, C2=MSG
|
|
1209
|
+
INQUIRE/PV PV_QUIT, '!MSG!'
|
|
1210
|
+
JUMPIF PV_QUIT[1] = 'N' OR PV_QUIT[1] = 'n',QUIT
|
|
1211
|
+
CLEAR/SCREEN
|
|
1212
|
+
SET/PV LINE_CNT = 2
|
|
1213
|
+
ELSE
|
|
1214
|
+
* TYPE $P, MEMBERS=1, SET=!PV_FOUNDSET! !PV_FILEID!
|
|
1215
|
+
SET/PV PGNO = PGNO + 1
|
|
1216
|
+
* TYPE !HEADER!, $S2, LABELS = N, SKIP = 0, +
|
|
1217
|
+
* SET = !PV_FOUNDSET!, MEMBERS = 1 !PV_FILEID!
|
|
1218
|
+
SET/PV LINE_CNT = 1
|
|
1219
|
+
END_IF
|
|
1220
|
+
END_IF
|
|
1221
|
+
TYPE !COPYINFO!, LABELS = N, SKIP = 0, +
|
|
1222
|
+
SET = !PV_FOUNDSET!, MEMBERS = !PV_Q! !PV_FILEID!
|
|
1223
|
+
SET/PV PV_LSTITEMID = PV_CURITEMID
|
|
1224
|
+
set/pv line_cnt=line_cnt+dm_lines
|
|
1225
|
+
END_IF
|
|
1226
|
+
*
|
|
1227
|
+
END_FOR
|
|
1228
|
+
*
|
|
1229
|
+
* Cleanup - close files and discard result sets.
|
|
1230
|
+
*
|
|
1231
|
+
CLEANUP:
|
|
1232
|
+
ACQUIRE/PV MESSAGE 46708, C2=MSG
|
|
1233
|
+
TELL MSG
|
|
1234
|
+
ACQUIRE/PV MESSAGE 46709, C2=MSG
|
|
1235
|
+
INQUIRE/PV DUMMY, '!MSG!'
|
|
1236
|
+
QUIT: ACQUIRE/PV LASTSET, N1 = PV_LASTSET
|
|
1237
|
+
IF (OUTPUT <> 'REVIEW')
|
|
1238
|
+
CLOSE/F FID = A,ERR=$CONTINUE
|
|
1239
|
+
END_IF
|
|
1240
|
+
DISCARD !PV_FOUNDSET!:!PV_LASTSET!
|
|
1241
|
+
SET/DEF RESULT = Y
|
|
1242
|
+
*
|
|
1243
|
+
* DONE - successful report generation; return to caller
|
|
1244
|
+
*
|
|
1245
|
+
DONE:
|
|
1246
|
+
RETURN_TO_SCREEN
|
|
1247
|
+
*
|
|
1248
|
+
* Error - inform user and close file, if necessary.
|
|
1249
|
+
*
|
|
1250
|
+
SYNTAXERR:
|
|
1251
|
+
EXCEPTION:
|
|
1252
|
+
OPENERR:
|
|
1253
|
+
VIEWERR:
|
|
1254
|
+
SHOW/MESSAGE !DMSTAT!
|
|
1255
|
+
JUMP ERROR
|
|
1256
|
+
BREAKERR:
|
|
1257
|
+
SHOW/MESSAGE 46700
|
|
1258
|
+
ERROR:
|
|
1259
|
+
SHOW/MESSAGE 46703
|
|
1260
|
+
IF (OUTPUT <> 'REVIEW')
|
|
1261
|
+
CLOSE/F FID = A,ERR=$CONTINUE
|
|
1262
|
+
END_IF
|
|
1263
|
+
SET/DEF RESULT = Y
|
|
1264
|
+
ACQUIRE/PV MESSAGE 46709, C2=MSG
|
|
1265
|
+
INQUIRE/PV DUMMY, '!MSG!'
|
|
1266
|
+
RETURN_TO_SCREEN
|
|
1267
|
+
*PROC QTBLKS01
|
|
1268
|
+
*-----------------------------------------------------------------------------
|
|
1269
|
+
*
|
|
1270
|
+
* Title: Build Library Key String
|
|
1271
|
+
* File: QTBLKS01
|
|
1272
|
+
* Author: Information Dimensions, Inc. (BB/SMLS)
|
|
1273
|
+
*
|
|
1274
|
+
* Description: This proc is called to build a string of library keys that
|
|
1275
|
+
* can be used within a find command. This routine handles the
|
|
1276
|
+
* >20 terms/field limit.
|
|
1277
|
+
*
|
|
1278
|
+
* Directions:
|
|
1279
|
+
*
|
|
1280
|
+
* Input:
|
|
1281
|
+
* Passed as a global variable:
|
|
1282
|
+
* INSTR[*] - Input character string that contains the list of
|
|
1283
|
+
* library keys with single quotes around each key.
|
|
1284
|
+
* Multiple keys are separated by commas.
|
|
1285
|
+
* Passed on call:
|
|
1286
|
+
* VFLDNM[*] - Contains the name of the view field with a source
|
|
1287
|
+
* of the library key to be used in the find command.
|
|
1288
|
+
* Output:
|
|
1289
|
+
* The following global variables are set:
|
|
1290
|
+
* OUTSTR[*] - The product of this routine, the field test.
|
|
1291
|
+
* OUTLC - The length of the field test value.
|
|
1292
|
+
* BSTAT - Return status....0=ok, -1=error.
|
|
1293
|
+
*
|
|
1294
|
+
*------------------------------------------------------------------------------
|
|
1295
|
+
*
|
|
1296
|
+
* Revision History:
|
|
1297
|
+
*
|
|
1298
|
+
* Date Revised By Description
|
|
1299
|
+
* -------- ---------- -----------
|
|
1300
|
+
* 12/20/90 Beaber Initial Version
|
|
1301
|
+
* 01/03/91 Sandstrom Revisions
|
|
1302
|
+
* 07/08/91 MChung Substitute tabs with 8 spaces &
|
|
1303
|
+
* spelling checks
|
|
1304
|
+
*
|
|
1305
|
+
*------------------------------------------------------------------------------
|
|
1306
|
+
*
|
|
1307
|
+
*
|
|
1308
|
+
* Initialize variables.
|
|
1309
|
+
*
|
|
1310
|
+
SET/PV VFNSC = 1
|
|
1311
|
+
SET/PV VFNEC = $LC(VFLDNM)
|
|
1312
|
+
SET/PV INEC = $LC(INSTR)
|
|
1313
|
+
SET/PV INSC = 1
|
|
1314
|
+
SET/PV OUTSC = 1
|
|
1315
|
+
SET/PV SC = 1
|
|
1316
|
+
SET/PV SC20 = 1
|
|
1317
|
+
SET/PV COUNT = 0
|
|
1318
|
+
SET/GV BSTAT = 0
|
|
1319
|
+
*
|
|
1320
|
+
* Begin building output string by adding on '(', field name, '='.
|
|
1321
|
+
*
|
|
1322
|
+
SET/GV OUTSTR[*] = '(' // VFLDNM[VFNSC:VFNEC] // '='
|
|
1323
|
+
SET/PV OUTSC = OUTSC + VFNEC - VFNSC + 4
|
|
1324
|
+
*
|
|
1325
|
+
* Loop through input string searching for commas.
|
|
1326
|
+
*
|
|
1327
|
+
SET/PV COMMA = $MATCH(',',INSTR[SC:INEC])
|
|
1328
|
+
WHILE (COMMA NE 0)
|
|
1329
|
+
SET/PV COUNT = COUNT + 1
|
|
1330
|
+
*
|
|
1331
|
+
* Continue building the string as every 20th comma is found.
|
|
1332
|
+
*
|
|
1333
|
+
IF ($MOD(COUNT,20) EQ 0) THEN
|
|
1334
|
+
*
|
|
1335
|
+
* Add on "OR Field_name=", if necessary.
|
|
1336
|
+
*
|
|
1337
|
+
IF (OUTSTR[OUTSC-2] <> '=') THEN
|
|
1338
|
+
SET/GV OUTSTR[OUTSC+1:OUTSC+VFNEC-VFNSC+7] = +
|
|
1339
|
+
' OR ' // VFLDNM[VFNSC:VFNEC] // '='
|
|
1340
|
+
SET/PV OUTSC = OUTSC + VFNEC - VFNSC + 7
|
|
1341
|
+
END_IF
|
|
1342
|
+
*
|
|
1343
|
+
* Add on next 20 keys.
|
|
1344
|
+
*
|
|
1345
|
+
IF SC20 = INSC THEN
|
|
1346
|
+
SET/GV OUTSTR[OUTSC:OUTSC+SC+COMMA-SC20-2] = +
|
|
1347
|
+
INSTR[SC20:SC+COMMA-2]
|
|
1348
|
+
ELSE
|
|
1349
|
+
SET/GV OUTSTR[OUTSC:OUTSC+SC+COMMA-SC20-2] = +
|
|
1350
|
+
INSTR[SC20+1:SC+COMMA-2]
|
|
1351
|
+
END_IF
|
|
1352
|
+
*
|
|
1353
|
+
* Increment index (SC) and continue looking for commas.
|
|
1354
|
+
*
|
|
1355
|
+
SET/PV OUTSC = OUTSC + SC + COMMA - SC20 - 2
|
|
1356
|
+
SET/PV SC20 = SC + COMMA
|
|
1357
|
+
END_IF
|
|
1358
|
+
*
|
|
1359
|
+
* Increment index (SC) and continue looking for commas.
|
|
1360
|
+
*
|
|
1361
|
+
SET/PV SC = SC + COMMA
|
|
1362
|
+
BREAK_IF (SC GT INEC)
|
|
1363
|
+
SET/PV COMMA = $MATCH(',',INSTR[SC:INEC])
|
|
1364
|
+
END_WHILE
|
|
1365
|
+
*
|
|
1366
|
+
* Add on "OR Field_name=", if necessary.
|
|
1367
|
+
*
|
|
1368
|
+
IF (OUTSTR[OUTSC-2] <> '=') THEN
|
|
1369
|
+
SET/GV OUTSTR[OUTSC+1:OUTSC+VFNEC-VFNSC+7] = +
|
|
1370
|
+
' OR ' // VFLDNM[VFNSC:VFNEC] // '='
|
|
1371
|
+
SET/PV OUTSC = OUTSC + VFNEC - VFNSC + 7
|
|
1372
|
+
END_IF
|
|
1373
|
+
*
|
|
1374
|
+
* Add on last set of characters.
|
|
1375
|
+
*
|
|
1376
|
+
SET/PV OUTEC = OUTSC + INEC - SC20 + 2
|
|
1377
|
+
SET/GV OUTSTR[OUTSC:OUTEC] = INSTR[SC20:INEC] // ')'
|
|
1378
|
+
*
|
|
1379
|
+
SET/GV OUTLC = OUTEC
|
|
1380
|
+
RETURN
|
|
1381
|
+
*PROC SPILAB01
|
|
1382
|
+
*-----------------------------------------------------------------------------
|
|
1383
|
+
*
|
|
1384
|
+
* Title: Spine Labels
|
|
1385
|
+
* File: SPILAB01.PRC
|
|
1386
|
+
* Author: Information Dimensions, Inc. (HB)
|
|
1387
|
+
*
|
|
1388
|
+
* Description: Spine labels for cataloged books
|
|
1389
|
+
*
|
|
1390
|
+
* Input Parameters:
|
|
1391
|
+
* OUTPUT - may be 'REVIEW','PRINT'. Review displays report
|
|
1392
|
+
* on screen, print outputs to file for printing.
|
|
1393
|
+
*
|
|
1394
|
+
* START_DT/END_DT - find where COPY.ADD_DT is in range
|
|
1395
|
+
*
|
|
1396
|
+
* CALL - restrict to certain CATR.CALLs
|
|
1397
|
+
*
|
|
1398
|
+
* ITEMID - restrict to certain COPY.ITEMIDs
|
|
1399
|
+
*
|
|
1400
|
+
* LOGIN_LIBR - User's login library
|
|
1401
|
+
*
|
|
1402
|
+
* Other Selection Criteria:
|
|
1403
|
+
* LIBR_KEY - Restrict to certain libraries.
|
|
1404
|
+
*
|
|
1405
|
+
* ALL - Boolean value; set true by Slang if no params entered
|
|
1406
|
+
*
|
|
1407
|
+
* Valid Combinations:
|
|
1408
|
+
* START AND END DT REQUIRED. CALL and ITEMID are optional.
|
|
1409
|
+
*
|
|
1410
|
+
* Output File: spilab01.rpt
|
|
1411
|
+
*
|
|
1412
|
+
* Record Types Referenced:
|
|
1413
|
+
* TEMPLATE, LIBR, SYS_PARM, COPY, CATR, SUB
|
|
1414
|
+
* Buffers: @A @C @B @E @D
|
|
1415
|
+
*
|
|
1416
|
+
* Report Name: Spine Labels
|
|
1417
|
+
*
|
|
1418
|
+
* Report No.: SPILAB01
|
|
1419
|
+
*
|
|
1420
|
+
* Menu Access: ???
|
|
1421
|
+
*
|
|
1422
|
+
* Parameter
|
|
1423
|
+
* Input Screen: CATRPT11
|
|
1424
|
+
*
|
|
1425
|
+
* Templates:
|
|
1426
|
+
*
|
|
1427
|
+
*------------------------------------------------------------------------------
|
|
1428
|
+
*
|
|
1429
|
+
* Revision History:
|
|
1430
|
+
*
|
|
1431
|
+
* Date Revised By Description
|
|
1432
|
+
* -------- ---------- -----------
|
|
1433
|
+
* 10/16/89 Berger Initial version
|
|
1434
|
+
* 11/14/90 Berger Fixed bug in dewey form on the
|
|
1435
|
+
* line counter
|
|
1436
|
+
* 01/07/91 Sandstrom 20 libs fix
|
|
1437
|
+
* 05/08/91 Sandstrom Moved file opens and template gets to
|
|
1438
|
+
* after the find command.
|
|
1439
|
+
* 07/03/91 MChung Substitute tabs with 8 spaces and
|
|
1440
|
+
* spelling check
|
|
1441
|
+
* 04/14/92 Sandstrom Fix for TLP-1291-7. Output for
|
|
1442
|
+
* call number was not correct.
|
|
1443
|
+
*
|
|
1444
|
+
*------------------------------------------------------------------------------
|
|
1445
|
+
*
|
|
1446
|
+
START:
|
|
1447
|
+
ACQUIRE/PV MESSAGE 46707, C2=MSG
|
|
1448
|
+
TELL MSG,$B
|
|
1449
|
+
ON/BREAK BREAKERR
|
|
1450
|
+
ON/EXCEPTION EXCEPTION
|
|
1451
|
+
ON/SYNTAX SYNTAXERR
|
|
1452
|
+
SET/DEFAULT RESULT = N
|
|
1453
|
+
SET/PV PV_TODAY = $YYYYMMDD
|
|
1454
|
+
*
|
|
1455
|
+
* Begin construction of FIND command.
|
|
1456
|
+
*
|
|
1457
|
+
* 910107smls added 20 libs fix
|
|
1458
|
+
DELETE/GV OUTSTR
|
|
1459
|
+
DELETE/GV OUTLC
|
|
1460
|
+
DELETE/GV INSTR
|
|
1461
|
+
SET/GV INSTR = LIBR_KEY
|
|
1462
|
+
@/PL='$TLP_PROC/generpts' QTBLKS01, VFLDNM='COPY.LIBR_KEY'
|
|
1463
|
+
SET/PV PV_FINDCMD = 'FIND CATR,COPY,LIBR ' //+
|
|
1464
|
+
'WHERE COPY.CATNO:=CATR.CATNO ' //+
|
|
1465
|
+
'AND LIBR.LIBR_KEY:=COPY.LIBR_KEY AND ' //+
|
|
1466
|
+
OUTSTR[1:OUTLC]//' '
|
|
1467
|
+
IF START_DT <> '' THEN
|
|
1468
|
+
SET/PV PV_FINDCMD = PV_FINDCMD//+
|
|
1469
|
+
'AND COPY.ADD_DT = '//START_DT//':'//END_DT//' '
|
|
1470
|
+
END_IF
|
|
1471
|
+
*
|
|
1472
|
+
GET/VIEW [ID=1]SYS_PARM@B,ERR=VIEWERR
|
|
1473
|
+
ASSIGN/PV RPT_MULT_ENT = RPT_MULT_ENTITY@B
|
|
1474
|
+
ASSIGN/PV COPY_RPT_SORT = COPY_RPT_SORT@B
|
|
1475
|
+
GET/VIEW[LIBR_KEY=!LOGIN_LIBR!]LIBR@C,ERR=VIEWERR
|
|
1476
|
+
ASSIGN/PV CALLOC = CALL_NUM_LOC@C
|
|
1477
|
+
IF CALLOC = 'CAT' OR CALLOC = NULL
|
|
1478
|
+
SET/PV CALLOC = 'CATR'
|
|
1479
|
+
END_IF
|
|
1480
|
+
*
|
|
1481
|
+
* Append FIND command based on options.
|
|
1482
|
+
*
|
|
1483
|
+
IF (ITEMID <> '')
|
|
1484
|
+
SET/PV PV_FINDCMD = PV_FINDCMD //+
|
|
1485
|
+
'AND COPY.ITEMID = ' // ITEMID
|
|
1486
|
+
ELSE_IF (CALL <> '')
|
|
1487
|
+
SET/PV PV_FINDCMD = PV_FINDCMD //+
|
|
1488
|
+
'AND !CALLOC!.CALL = ' // CALL
|
|
1489
|
+
END_IF
|
|
1490
|
+
*
|
|
1491
|
+
* Build sortkey to reflect correct call no. field, depending on
|
|
1492
|
+
* SYS_PARM and LIBR flags
|
|
1493
|
+
*
|
|
1494
|
+
GET/VIEW [ID=1]SYS_PARM@B,ERR=VIEWERR
|
|
1495
|
+
ASSIGN/PV RPT_MULT_ENT = RPT_MULT_ENTITY@B
|
|
1496
|
+
ASSIGN/PV COPY_RPT_SORT = COPY_RPT_SORT@B
|
|
1497
|
+
IF (RPT_MULT_ENTITY = 'N')
|
|
1498
|
+
ASSIGN/PV CAT_LC = CAT_LC_FLG@B
|
|
1499
|
+
IF (CAT_LC = 'Y')
|
|
1500
|
+
SET/PV LCADD = '_LC_SORT'
|
|
1501
|
+
ELSE
|
|
1502
|
+
SET/PV CATRADD = '(1)'
|
|
1503
|
+
END_IF
|
|
1504
|
+
ELSE
|
|
1505
|
+
GET/VIEW[LIBR_KEY=!LOGIN_LIBR!]LIBR@C,ERR=VIEWERR
|
|
1506
|
+
ASSIGN/PV CAT_LC = CAT_LC_FLG@C
|
|
1507
|
+
ASSIGN/PV COPY_LC = COPY_LC_FLG@C
|
|
1508
|
+
IF (CALLOC = 'CATR') AND (CAT_LC = 'Y')
|
|
1509
|
+
SET/PV LCADD = '_LC_SORT'
|
|
1510
|
+
SET/PV CATRADD = ''
|
|
1511
|
+
ELSE_IF (CALLOC = 'CATR')
|
|
1512
|
+
SET/PV LCADD = ''
|
|
1513
|
+
SET/PV CATRADD = '(1)'
|
|
1514
|
+
ELSE_IF (CALLOC = 'COPY') AND (COPY_LC = 'Y')
|
|
1515
|
+
SET/PV LCADD = '_LC_SORT'
|
|
1516
|
+
SET/PV CATRADD = ''
|
|
1517
|
+
ELSE
|
|
1518
|
+
SET/PV LCADD = ''
|
|
1519
|
+
SET/PV CATRADD = ''
|
|
1520
|
+
END_IF
|
|
1521
|
+
END_IF
|
|
1522
|
+
SET/PV SORTKEY = '!CALLOC!.CALL!LCADD!' // '!CATRADD!'
|
|
1523
|
+
*
|
|
1524
|
+
SET/PV PV_FINDCMD = PV_FINDCMD //+
|
|
1525
|
+
' ORDER BY COPY.LIBR_KEY, !SORTKEY! '
|
|
1526
|
+
IF (COPY_RPT_SORT <> '')
|
|
1527
|
+
SET/PV PV_FINDCMD = PV_FINDCMD // ', !COPY_RPT_SORT! '
|
|
1528
|
+
END_IF
|
|
1529
|
+
*
|
|
1530
|
+
* Execute Find and set up for report generation
|
|
1531
|
+
*
|
|
1532
|
+
!PV_FINDCMD! END REF=NO
|
|
1533
|
+
ACQUIRE/PV MEMBERS, N1 = PV_NUMMEM
|
|
1534
|
+
ACQUIRE/PV LASTSET, N1 = PV_FOUNDSET
|
|
1535
|
+
IF (PV_NUMMEM <= 0)
|
|
1536
|
+
SHOW/MESSAGE 46705
|
|
1537
|
+
JUMP CLEANUP
|
|
1538
|
+
END_IF
|
|
1539
|
+
* smls moved file opens and template get.
|
|
1540
|
+
* Set up for desired output method
|
|
1541
|
+
SELECT (OUTPUT)
|
|
1542
|
+
CASE 'REVIEW'
|
|
1543
|
+
SET/PV PV_FILEID = ''
|
|
1544
|
+
CASE 'PRINT'
|
|
1545
|
+
OPEN/F spilab01.rpt, FID=A, INTENT=WRITE, +
|
|
1546
|
+
CARRIAGE=YES, ERR=OPENERR
|
|
1547
|
+
SET/PV PV_FILEID = ',FID=A'
|
|
1548
|
+
END_SELECT
|
|
1549
|
+
*
|
|
1550
|
+
GET/VIEW [TEMPLATE_KEY = 'SPINE_LABEL']TEMPLATE@A, ERR = VIEWERR
|
|
1551
|
+
ASSIGN/PV PV_SPINE_LABEL = TEXT@A
|
|
1552
|
+
* Step through members of set, generating correct output for each.
|
|
1553
|
+
FOR PV_Q = 1, PV_NUMMEM
|
|
1554
|
+
*
|
|
1555
|
+
* get calloc
|
|
1556
|
+
*
|
|
1557
|
+
GET/VIEW [PV_FOUNDSET,PV_Q]LIBR@C, ERR=VIEWERR
|
|
1558
|
+
ASSIGN/PV CALLOC = CALL_NUM_LOC@C
|
|
1559
|
+
IF CALLOC = 'CAT' OR CALLOC = NULL THEN
|
|
1560
|
+
SET/PV CALLOC = 'CATR'
|
|
1561
|
+
END_IF
|
|
1562
|
+
*
|
|
1563
|
+
* Parse the Call Number to print it in the template
|
|
1564
|
+
*
|
|
1565
|
+
IF CALLOC = 'CATR'
|
|
1566
|
+
GET/VIEW [PV_FOUNDSET,PV_Q]CATR@D,ERR=VIEWERR
|
|
1567
|
+
ASSIGN/PV PV_CALL = CALL@D
|
|
1568
|
+
ELSE
|
|
1569
|
+
GET/VIEW [PV_FOUNDSET,PV_Q]COPY@E,ERR=VIEWERR
|
|
1570
|
+
* smls19920414 changed field name being assigned to PV_CALL
|
|
1571
|
+
* from ASSIGN/PV PV_CALL = COPY@E to
|
|
1572
|
+
ASSIGN/PV PV_CALL = CALL@E
|
|
1573
|
+
END_IF
|
|
1574
|
+
SET/PV LENGTH = $LC(PV_CALL)
|
|
1575
|
+
SET/PV LINENUM = 1
|
|
1576
|
+
* Reset temp variables to give to template
|
|
1577
|
+
FOR I = 1,9
|
|
1578
|
+
SET/PV LINE!I! = ''
|
|
1579
|
+
END_FOR
|
|
1580
|
+
*
|
|
1581
|
+
* Parse LC call numbers
|
|
1582
|
+
*
|
|
1583
|
+
* smls19920414 added reference to COPY_LC.
|
|
1584
|
+
* Old IF was: IF CAT_LC = 'Y'
|
|
1585
|
+
IF (CALLOC = 'CATR' AND CAT_LC = 'Y') +
|
|
1586
|
+
OR (CALLOC = 'COPY' AND COPY_LC = 'Y') THEN
|
|
1587
|
+
FOR PV_P = 1,LENGTH
|
|
1588
|
+
SET/PV PV_CHAR = PV_CALL[PV_P]
|
|
1589
|
+
IF PV_P <> LENGTH
|
|
1590
|
+
SET/PV PV_Z = PV_P + 1
|
|
1591
|
+
SET/PV PV_NEXT = PV_CALL[PV_Z]
|
|
1592
|
+
ELSE
|
|
1593
|
+
SET/PV PV_NEXT = ' '
|
|
1594
|
+
END_IF
|
|
1595
|
+
SELECT LINENUM
|
|
1596
|
+
CASE 1
|
|
1597
|
+
* Check for letter
|
|
1598
|
+
IF $ABS(PV_CHAR) = 0 AND PV_CHAR <> '0'
|
|
1599
|
+
SET/PV LINE1 = LINE1 // PV_CHAR
|
|
1600
|
+
ELSE
|
|
1601
|
+
SET/PV LINE2 = PV_CHAR
|
|
1602
|
+
SET/PV LINENUM = 2
|
|
1603
|
+
END_IF
|
|
1604
|
+
CASE 2
|
|
1605
|
+
* Check for period followed by a letter
|
|
1606
|
+
IF PV_CHAR = '.' AND $ABS(PV_NEXT) = 0 AND +
|
|
1607
|
+
PV_NEXT <> '0'
|
|
1608
|
+
SET/PV LINENUM = 3
|
|
1609
|
+
ELSE
|
|
1610
|
+
SET/PV LINE2 = LINE2 // PV_CHAR
|
|
1611
|
+
END_IF
|
|
1612
|
+
DEFAULT
|
|
1613
|
+
SET/PV LINE!LINENUM! = LINE!LINENUM! // PV_CHAR
|
|
1614
|
+
* Check for a space or next character to be a letter
|
|
1615
|
+
IF ($ABS(PV_NEXT) = 0 AND PV_NEXT <> '0')
|
|
1616
|
+
SET/PV LINENUM = LINENUM + 1
|
|
1617
|
+
END_IF
|
|
1618
|
+
END_SELECT
|
|
1619
|
+
END_FOR
|
|
1620
|
+
*
|
|
1621
|
+
* Parse Dewey call numbers
|
|
1622
|
+
*
|
|
1623
|
+
ELSE
|
|
1624
|
+
FOR PV_P = 1,LENGTH
|
|
1625
|
+
SET/PV PV_CHAR = PV_CALL[PV_P]
|
|
1626
|
+
SELECT LINENUM
|
|
1627
|
+
CASE 1
|
|
1628
|
+
* Break on period
|
|
1629
|
+
IF PV_CHAR = '.'
|
|
1630
|
+
SET/PV LINENUM = 2
|
|
1631
|
+
END_IF
|
|
1632
|
+
SET/PV LINE!LINENUM! = LINE!LINENUM! // PV_CHAR
|
|
1633
|
+
DEFAULT
|
|
1634
|
+
SET/PV LINE!LINENUM! = LINE!LINENUM! // PV_CHAR
|
|
1635
|
+
* Break on spaces
|
|
1636
|
+
IF PV_CHAR = ' '
|
|
1637
|
+
SET/PV LINENUM = LINENUM + 1
|
|
1638
|
+
END_IF
|
|
1639
|
+
END_SELECT
|
|
1640
|
+
END_FOR
|
|
1641
|
+
END_IF
|
|
1642
|
+
* Type the Spine Label
|
|
1643
|
+
TYPE !PV_SPINE_LABEL!, SKIP=0, +
|
|
1644
|
+
SET=!PV_FOUNDSET!,MEMBERS=!PV_Q! !PV_FILEID!
|
|
1645
|
+
IF OUTPUT = 'REVIEW'
|
|
1646
|
+
ACQUIRE/PV MESSAGE 46710, C2=MSG
|
|
1647
|
+
INQUIRE/PV PV_QUIT, '!MSG!'
|
|
1648
|
+
JUMPIF PV_QUIT[1] = 'N' OR PV_QUIT[1] = 'n',QUIT
|
|
1649
|
+
CLEAR/SCREEN
|
|
1650
|
+
END_IF
|
|
1651
|
+
|
|
1652
|
+
END_FOR
|
|
1653
|
+
*
|
|
1654
|
+
* Cleanup - close files and discard result sets.
|
|
1655
|
+
*
|
|
1656
|
+
CLEANUP:
|
|
1657
|
+
ACQUIRE/PV MESSAGE 46708, C2=MSG
|
|
1658
|
+
TELL MSG
|
|
1659
|
+
ACQUIRE/PV MESSAGE 46709, C2=MSG
|
|
1660
|
+
INQUIRE/PV DUMMY, '!MSG!'
|
|
1661
|
+
QUIT: ACQUIRE/PV LASTSET, N1 = PV_LASTSET
|
|
1662
|
+
IF (OUTPUT <> 'REVIEW')
|
|
1663
|
+
CLOSE/F FID = A,ERR=$CONTINUE
|
|
1664
|
+
END_IF
|
|
1665
|
+
DISCARD !PV_FOUNDSET!:!PV_LASTSET!
|
|
1666
|
+
SET/DEF RESULT = Y
|
|
1667
|
+
*
|
|
1668
|
+
* DONE - successful report generation; return to caller
|
|
1669
|
+
*
|
|
1670
|
+
DONE:
|
|
1671
|
+
RETURN_TO_SCREEN
|
|
1672
|
+
*
|
|
1673
|
+
* Error - inform user and close file, if necessary.
|
|
1674
|
+
*
|
|
1675
|
+
SYNTAXERR:
|
|
1676
|
+
EXCEPTION:
|
|
1677
|
+
OPENERR:
|
|
1678
|
+
VIEWERR:
|
|
1679
|
+
SHOW/MESSAGE !DMSTAT!
|
|
1680
|
+
JUMP ERROR
|
|
1681
|
+
BREAKERR:
|
|
1682
|
+
SHOW/MESSAGE 46700
|
|
1683
|
+
ERROR:
|
|
1684
|
+
SHOW/MESSAGE 46703
|
|
1685
|
+
IF (OUTPUT <> 'REVIEW')
|
|
1686
|
+
CLOSE/F FID = A,ERR=$CONTINUE
|
|
1687
|
+
END_IF
|
|
1688
|
+
SET/DEF RESULT = Y
|
|
1689
|
+
ACQUIRE/PV MESSAGE 46709, C2=MSG
|
|
1690
|
+
INQUIRE/PV DUMMY, '!MSG!'
|
|
1691
|
+
RETURN_TO_SCREEN
|