tnef 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. data/ext/tnef/tests/cmdline/body-test.html.baseline +95 -95
  2. data/ext/tnef/tests/cmdline/body.baseline +2 -2
  3. data/ext/tnef/tests/cmdline/message.html.baseline +95 -95
  4. data/lib/tnef/version.rb +1 -1
  5. metadata +1 -47
  6. data/ext/tnef/tests/files/baselines/AUTHORS.baseline +0 -8
  7. data/ext/tnef/tests/files/baselines/AUTOEXEC.BAT.baseline +0 -0
  8. data/ext/tnef/tests/files/baselines/CONFIG.SYS.baseline +0 -0
  9. data/ext/tnef/tests/files/baselines/MAPI_ATTACH_DATA_OBJ-body.rtf.baseline +0 -0
  10. data/ext/tnef/tests/files/baselines/MAPI_ATTACH_DATA_OBJ.baseline +0 -229
  11. data/ext/tnef/tests/files/baselines/MAPI_OBJECT-body.rtf.baseline +0 -0
  12. data/ext/tnef/tests/files/baselines/MAPI_OBJECT.baseline +0 -153
  13. data/ext/tnef/tests/files/baselines/README.baseline +0 -31
  14. data/ext/tnef/tests/files/baselines/TechlibDEC99-JAN00.doc.baseline +0 -0
  15. data/ext/tnef/tests/files/baselines/TechlibDEC99.doc.baseline +0 -0
  16. data/ext/tnef/tests/files/baselines/TechlibNOV99.doc.baseline +0 -0
  17. data/ext/tnef/tests/files/baselines/Untitled_Attachment.baseline +0 -0
  18. data/ext/tnef/tests/files/baselines/VIA_Nytt_1402.doc.baseline +0 -0
  19. data/ext/tnef/tests/files/baselines/VIA_Nytt_1402.pdf.baseline +0 -0
  20. data/ext/tnef/tests/files/baselines/VIA_Nytt_14021.htm.baseline +0 -1914
  21. data/ext/tnef/tests/files/baselines/body-body.html.baseline +0 -95
  22. data/ext/tnef/tests/files/baselines/body.baseline +0 -124
  23. data/ext/tnef/tests/files/baselines/boot.ini.baseline +0 -6
  24. data/ext/tnef/tests/files/baselines/data-before-name-body.rtf.baseline +0 -0
  25. data/ext/tnef/tests/files/baselines/data-before-name.baseline +0 -213
  26. data/ext/tnef/tests/files/baselines/garbage-at-end.baseline +0 -73
  27. data/ext/tnef/tests/files/baselines/generpts.src.baseline +0 -1691
  28. data/ext/tnef/tests/files/baselines/long-filename-body.rtf.baseline +0 -26
  29. data/ext/tnef/tests/files/baselines/long-filename.baseline +0 -218
  30. data/ext/tnef/tests/files/baselines/message.rtf.baseline +0 -0
  31. data/ext/tnef/tests/files/baselines/missing-filenames-body.rtf.baseline +0 -20
  32. data/ext/tnef/tests/files/baselines/missing-filenames.baseline +0 -252
  33. data/ext/tnef/tests/files/baselines/multi-name-property.baseline +0 -243
  34. data/ext/tnef/tests/files/baselines/one-file.baseline +0 -155
  35. data/ext/tnef/tests/files/baselines/rtf-body.rtf.baseline +0 -0
  36. data/ext/tnef/tests/files/baselines/rtf.baseline +0 -167
  37. data/ext/tnef/tests/files/baselines/triples-body.rtf.baseline +0 -0
  38. data/ext/tnef/tests/files/baselines/triples.baseline +0 -254
  39. data/ext/tnef/tests/files/baselines/two-files.baseline +0 -186
  40. data/ext/tnef/tests/files/datafiles/MAPI_ATTACH_DATA_OBJ.tnef +0 -0
  41. data/ext/tnef/tests/files/datafiles/MAPI_OBJECT.tnef +0 -0
  42. data/ext/tnef/tests/files/datafiles/body.tnef +0 -0
  43. data/ext/tnef/tests/files/datafiles/data-before-name.tnef +0 -0
  44. data/ext/tnef/tests/files/datafiles/garbage-at-end.tnef +0 -0
  45. data/ext/tnef/tests/files/datafiles/long-filename.tnef +0 -0
  46. data/ext/tnef/tests/files/datafiles/missing-filenames.tnef +0 -0
  47. data/ext/tnef/tests/files/datafiles/multi-name-property.tnef +0 -0
  48. data/ext/tnef/tests/files/datafiles/one-file.tnef +0 -0
  49. data/ext/tnef/tests/files/datafiles/rtf.tnef +0 -0
  50. data/ext/tnef/tests/files/datafiles/triples.tnef +0 -0
  51. data/ext/tnef/tests/files/datafiles/two-files.tnef +0 -0
@@ -1,1691 +0,0 @@
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