|
The DDS for the FAQ file
****************************************************************
* ___ _ _ __ __ _ _ *
* | . > ___ ___ _| |_ | |_ | \ \ ___ _ _ _| |_ <_>._ _ *
* | . \/ . \/ . \ | | | . | | |<_> || '_> | | | || ' | *
* |___/\___/\___/ |_| |_|_| |_|_|_|<___||_| |_| |_||_|_| *
* *
* A Physical file of FAQ data. *
* *
* UTLFAQ10P *
* *
* 1/2008 booth@martinvt.com *
****************************************************************
UNIQUE
R RUTLFAQ10P
FAQSUBJECT 30 COLHDG('Subject:')
FAQQUEST 60 COLHDG('Question:')
FAQLINE 480 COLHDG('Answer:')
* Sequence by Subject, then by Question.
K FAQSUBJECT
K FAQQUEST
|
The DDS for the index page of the FAQ
****************************************************************
* ___ _ _ __ __ _ _ *
* | . > ___ ___ _| |_ | |_ | \ \ ___ _ _ _| |_ <_>._ _ *
* | . \/ . \/ . \ | | | . | | |<_> || '_> | | | || ' | *
* |___/\___/\___/ |_| |_|_| |_|_|_|<___||_| |_| |_||_|_| *
* *
* The screen for the FAQ Index board. *
* *
* UTLFAQ20D *
* *
* 1/2008 booth@martinvt.com *
****************************************************************
DSPSIZ(24 80 *DS3)
ERRSFL
CF03 CF05 CF06 CF12
R SFLA SFL
OPT 1 B 13 2
41 DSPATR(ND PR)
FLD73 73 O 13 4
RECNBR 5S 0H
RRN 4S 0H
RECORDDS 600 H
R FMT01 SFLCTL(SFLA)
SFLPAG(0008)
SFLSIZ(&NBRREC)
RTNDTA
OVERLAY
90 SFLDSP
90 SFLDSPCTL
N90 SFLCLR
91 SFLEND(*SCRBAR *MORE)
NBRREC 5S 0P
1 3' ____ -
__ __ -
'
COLOR(PNK)
2 2' / __/____ ___ ___ _ __ __ ___ -
___ / /_ / /__ __ -
'
COLOR(PNK)
3 2' / _/ / __// -_)/ _ `// // // -_)/-
_ \/ __// // // / -
'
COLOR(PNK)
4 2'/_/ /_/ \__/ \_, / \_,_/ \__//_-
//_/\__//_/ \_, / -
'
COLOR(PNK)
5 2' /_/ -
/___/ -
'
COLOR(PNK)
6 2' ___ __ __ _-
___ __ _ -
'
COLOR(PNK)
7 2' / _ | ___ / /__ ___ ___/ / / -
__ \ __ __ ___ ___ / /_ (_)___ _-
__ ___'
COLOR(PNK)
8 2' / __ | (_-< / ''_// -_)/ _ / / -
/_/ // // // -_)(_-< __// // _ \ /-
_ \ (_-<'
COLOR(PNK)
9 2'/_/ |_|/___//_/\_\ \__/ \_,_/ \__-
_\_\\_,_/ \__//___/\__//_/ \___//_/-
/_//___/'
COLOR(PNK)
11 3'D=Delete E=Edit N=New Question -
V=View'
COLOR(BLU)
12 1'Opt -
-
'
DSPATR(UL)
COLOR(BLU)
R FOOTER
22 2' -
-
'
DSPATR(UL)
COLOR(BLU)
23 3'F3=Exit'
COLOR(BLU)
+ 3'F5=Refresh'
COLOR(BLU)
+ 3'F6=New Subject'
COLOR(BLU)
+ 3'F12=Cancel'
COLOR(BLU)
|
The RPG for the Index screen of the FAQ
**********************************************************************
* ___ _ _ __ __ _ _ *
* | . > ___ ___ _| |_ | |_ | \ \ ___ _ _ _| |_ <_>._ _ *
* | . \/ . \/ . \ | | | . | | |<_> || '_> | | | || ' | *
* |___/\___/\___/ |_| |_|_| |_|_|_|<___||_| |_| |_||_|_| *
* *
* A program to Display an Index Board of FAQs. *
* *
* UTLFAQ20R *
* *
* 1/2008 booth@martinvt.com *
**********************************************************************
H COPYRIGHT('Booth Martin, All rights reserved.')
FUTLFAQ20D cf e workstn
F SFILE(SFLA:RRN)
FUTLFAQ10P if e k disk INFDS(INFDS) BLOCK(*NO)
* INFDS for database file.
DINFDS ds
D DBRRN 397 400B 0
D wSavedSub s like(FAQSUBJECT)
D wSavedQuest s like(FAQQUEST)
D RecordDS e ds extname(UTLFAQ10P)
D SavedData s like(RecordDS)
D NewData s like(RecordDS)
D wNdx s 4 0
* ..................................................
C exsr FillSfl
C write FOOTER
C dou *inlr
C exfmt FMT01
* Select options:
C select
* F6=New Question
C when *inkf
C clear RecordDS
C call 'UTLFAQ30R'
C parm *zeros RecNbr
C parm RecordDS
C parm ' ' Opt
* F5 = Refresh
C when *inke
C exsr FillSfl
* F3 or F12 Exit
C when *inkl or *inkc
C move *on *inlr
* If not one of the above, then ....
C other
* Any changes?
C for wNdx = 1 to NbrRec
C wNdx chain SFLA
C select
C when Opt = 'N'
C clear FAQQuest
C clear FAQLine
C call 'UTLFAQ30R'
C parm *zeros RecNbr
C parm RecordDS
C parm Opt
C eval Opt = ' '
C update SFLA
C when Opt > ' '
C call 'UTLFAQ30R'
C parm RecNbr
C parm RecordDS
C parm Opt
C eval Opt = ' '
C update SFLA
C endsl
C endfor
C endsl
C enddo
*-------------------------------------------------------------------
*-- Sub Routines --
*-------------------------------------------------------------------
C FillSfl begsr
* Clear subfile & screen, prepare to re-fill or fill:
C eval *IN45 = *off
C eval *IN90 = *off
C clear SFLA
C write FMT01
C eval *IN90 = *ON
C clear wSavedSub
C clear wSavedQuest
* Fill the subfile, if something there:
C eval RRN = 0
C *start setll UTLFAQ10P
C read UTLFAQ10P
* Fill the subfile:
C dow not %eof
* If the Subject changes:
C if wSavedSub <> FAQSUBJECT
C eval wSavedSub = FAQSUBJECT
C clear wSavedQuest
C eval Fld73 = x'32' + FAQSUBJECT
C eval RRN = RRN + 1
* Non-display Opt field
C eval *in41 = *on
C write SFLA
C eval *in41 = *off
C endif
* write the queation:
C eval Fld73 = ' - ' + FAQQUEST
C eval RRN = RRN + 1
C write SFLA
* Get next FAQ record
C read UTLFAQ10P
C enddo
* If subfile is empty, make a line
C if RRN = *zero
C eval RRN = 1
C eval Fld73 = 'FAQ file is empty'
C write SFLA
C endif
* Save the number of records in the subfile:
C eval NbrRec = RRN
C eval *in91 = *off
C if NbrRec > 6
C move *on *in91
C end
C endsr
|
DDS for the viewing/editing of a FAQ
****************************************************************
* ___ _ _ __ __ _ _ *
* | . > ___ ___ _| |_ | |_ | \ \ ___ _ _ _| |_ <_>._ _ *
* | . \/ . \/ . \ | | | . | | |<_> || '_> | | | || ' | *
* |___/\___/\___/ |_| |_|_| |_|_|_|<___||_| |_| |_||_|_| *
* *
* The screen for the FAQ Detail Subject/Question. *
* *
* UTLFAQ20D *
* *
* 1/2008 booth@martinvt.com *
****************************************************************
DSPSIZ(24 80 *DS3)
REF(UTLFAQ10P)
ERRSFL
CF03 CF12
R FMT01
CF05 CF06 CF13 CF24
1 3' ____ -
__ __ -
'
COLOR(TRQ)
2 2' / __/____ ___ ___ _ __ __ ___ -
___ / /_ / /__ __ -
'
COLOR(TRQ)
3 2' / _/ / __// -_)/ _ `// // // -_)/-
_ \/ __// // // / -
'
COLOR(TRQ)
4 2'/_/ /_/ \__/ \_, / \_,_/ \__//_-
//_/\__//_/ \_, / -
'
COLOR(TRQ)
5 2' /_/ -
/___/ -
'
COLOR(TRQ)
6 2' ___ __ __ _-
___ __ _ -
'
COLOR(TRQ)
7 2' / _ | ___ / /__ ___ ___/ / / -
__ \ __ __ ___ ___ / /_ (_)___ _-
__ ___'
COLOR(TRQ)
8 2' / __ | (_-< / ''_// -_)/ _ / / -
/_/ // // // -_)(_-< __// // _ \ /-
_ \ (_-<'
COLOR(TRQ)
9 2'/_/ |_|/___//_/\_\ \__/ \_,_/ \__-
_\_\\_,_/ \__//___/\__//_/ \___//_/-
/_//___/'
COLOR(TRQ)
11 5'Subject.:'
COLOR(BLU)
FAQSUBJECTR B 11 15CHECK(LC)
N34 DSPATR(PR)
34 DSPATR(HI UL)
12 5'Question:'
COLOR(BLU)
FAQQUEST R B 12 15CHECK(LC)
COLOR(YLW)
N34 DSPATR(PR)
34 DSPATR(HI UL)
FAQLINE 480A B 14 15CNTFLD(060)
CHECK(LC)
WRDWRAP
N34 DSPATR(PR)
34 DSPATR(HI UL)
23 3'F3=Exit'
COLOR(BLU)
+ 3'F5=Refresh'
COLOR(BLU)
+ 3'F6=Create'
COLOR(BLU)
+ 3'F13=Delete'
COLOR(BLU)
N34 + 3'F24=Unprotect'
COLOR(BLU)
34 + 3'F24=Protect'
COLOR(BLU)
R FMT04
WINDOW(10 30 6 15 *NOMSGLIN)
CF10
1 1' Choosing F10 '
DSPATR(RI)
2 1' will delete '
DSPATR(RI)
3 1' this record '
DSPATR(RI)
4 1' forever. '
DSPATR(RI)
5 1' '
DSPATR(RI)
6 1' '
DSPATR(RI)
R FMT05
WINDOW(10 30 6 15 *NOMSGLIN)
1 1' '
DSPATR(RI)
2 1' This FAQ has '
DSPATR(RI)
3 1' just been '
DSPATR(RI)
4 1' changed at '
DSPATR(RI)
5 1' another '
DSPATR(RI)
6 1' Work Station '
DSPATR(RI)
R FMT06
WINDOW(10 30 6 15 *NOMSGLIN)
1 1' The system '
DSPATR(RI)
2 1' can not accept'
DSPATR(RI)
3 1' a blank '
DSPATR(RI)
4 1' Subject line '
DSPATR(RI)
5 1' and Question. '
DSPATR(RI)
6 1' '
DSPATR(RI)
|
The RPG for the viewing/editing of a FAQ
**********************************************************************
* ___ _ _ __ __ _ _ *
* | . > ___ ___ _| |_ | |_ | \ \ ___ _ _ _| |_ <_>._ _ *
* | . \/ . \/ . \ | | | . | | |<_> || '_> | | | || ' | *
* |___/\___/\___/ |_| |_|_| |_|_|_|<___||_| |_| |_||_|_| *
* *
* A program to Enter/update/view FAQs. *
* *
* UTLFAQ30R *
* *
* 1/2008 booth@martinvt.com *
**********************************************************************
H COPYRIGHT('Booth Martin, All rights reserved.')
FUTLFAQ30D cf e workstn
FUTLFAQ10P uf a e disk
* ..................................................
D RecordDS e ds ExtName(UTLFAQ10P)
D wSavedData s Like(RecordDS)
D wNewData s Like(RecordDS)
D RecNbr s 5 0
D Opt s 1
* ..................................................
C *entry plist
C parm RecNbr
C parm RecordDS
C parm Opt
* Delete record
C if Opt = 'D'
C exsr DeleteRecord
C eval wSavedData = RecordDS
C endif
C dow not *inkc and not *inkl
* New record:
C if FAQQUEST = *blanks
C eval *in34 = *on
C endif
* Clear screen, prepare to re-fill or fill:
C exfmt fMT01
C select
C when *inkc
C when *inke
C eval RecordDS = wSavedData
C when *inkf
C eval RecNbr = *zeros
C exsr CreateRecord
* Delete record
C when *inkm = *on or Opt = 'D'
C eval Opt = *blank
C exsr DeleteRecord
* F24 = allow/unallow editing: 34 on = allow editing
C when *inky
C if *in34
C eval *in34 = *off
C else
C eval *in34 = *on
C endif
C when wSavedData <> RecordDS
C exsr UpdateRecord
C endsl
C enddo
C eval *inlr = *on
*-------------------------------------------------------------------
*-- Sub Routines --
*-------------------------------------------------------------------
C CreateRecord begsr
C eval *in34 = *on
C clear FAQQUEST
C clear FAQLINE
C eval wNewData = RecordDS
C eval wSavedData = RecordDS
C endsr
*-------------------------------------------------------------------
C DeleteRecord begsr
C write Fmt01
C exfmt Fmt04
C if *inkj
C RecNbr delete UTLFAQ10P
C end
C eval *inkc = *on
C endsr
*-------------------------------------------------------------------
C UpdateRecord BegSr
* must have subject and question:
C select
C when FAQSubject = *blanks
C eval FaqSubject = 'There must be a subject'
C when FAQQuest = *blanks
C eval FaqQuest = 'There must be a question'
C other
C eval wNewData = RecordDS
C select
C when RecNbr = *zeros
C write(e) RUTLFAQ10P
C eval wSavedData = RECORDDS
C other
C RecNbr chain (e) UTLFAQ10P
C select
C when not %found
C when RecordDS <> wSavedData
* then record changed at another workstation:
C exfmt Fmt05
C other
C eval RecordDS = wNewData
C eval wSavedData = wNewData
C update RUTLFAQ10P
C endsl
C endsl
C endsl
C endsr
*-------------------------------------------------------------------
|
|
| |