RAPGEN
Brugerhåndbog
Del 2.
Indholdsfortegnelse
11. RAPGEN printerstyring................................................................................................................................................................. 6
11.1. Indledning....................................................................................................................................................................................... 6
11.2. Princip ved printerstyringen........................................................................................................................................................ 6
11.3. TAMOS printertildeling................................................................................................................................................................ 7
11.3.1. Logisk printernavn, f.eks $LPT................................................................................................................................................... 7
11.3.2. Fysisk printernavn, f.eks $RPL2................................................................................................................................................. 7
11.3.3. Andre parametre (linier/karakterer)............................................................................................................................................ 7
11.4. Definition af en rapport på en printer......................................................................................................................................... 7
11.4.1. Ændring af en rapports printer................................................................................................................................................... 8
11.5. Valg af printer ved start af en rapport......................................................................................................................................... 8
11.6. Indsættelse af styrekoder i en rapport........................................................................................................................................ 9
11.7. Beregnede styrekoder (@X,@Y,@Z)......................................................................................................................................... 9
11.7.1. Indsættelse af beregnede styrekoder........................................................................................................................................ 9
11.7.2. Dummy styrekoden (@0)........................................................................................................................................................... 10
11.7.3. Beregning af styrekoder............................................................................................................................................................ 10
11.8. Definition af printertabeller........................................................................................................................................................ 11
11.8.1. Første side i printertabellen....................................................................................................................................................... 11
11.8.2. Spool parametre.......................................................................................................................................................................... 12
11.8.2.1. Logisk printernavn.................................................................................................................................................................... 12
11.8.2.2. Start print ved start af udskrift................................................................................................................................................. 12
11.8.2.3. Dialog før/efter print.................................................................................................................................................................. 12
11.8.2.4. Antal kopier................................................................................................................................................................................ 12
11.8.2.5. Papirkode.................................................................................................................................................................................... 12
11.8.2.6. Rapportnavn (Y/N).................................................................................................................................................................... 12
11.8.3. Styrekoder.................................................................................................................................................................................... 12
11.8.3.1. @ RESET..................................................................................................................................................................................... 13
11.8.3.2. @A‑W styrekoder..................................................................................................................................................................... 13
11.8.3.3. @X‑@Z beregnede styrekoder............................................................................................................................................... 13
11.8.3.4. @0 Dummy styrekoden............................................................................................................................................................ 13
11.8.3.5. @1‑9 Styrekoder........................................................................................................................................................................ 13
11.8.3.6. Linieskift karakter....................................................................................................................................................................... 13
11.8.3.7. Sideskift styrekode.................................................................................................................................................................... 13
11.8.4. Udskrift af printertabel............................................................................................................................................................... 14
11.9. Fejl på printeren........................................................................................................................................................................... 15
11.9.1. Basic fejl 26 ‑ printer ikke klar.................................................................................................................................................... 15
11.9.2. Basic fejl 73 ‑ forkert printer open
parameter.......................................................................................................................... 15
11.10. Installation af printerstyring..................................................................................................................................................... 15
12. RAPGEN PC‑integration.............................................................................................................................................................. 16
12.1. Indledning..................................................................................................................................................................................... 16
12.1.1. Struktur......................................................................................................................................................................................... 16
12.1.2. LOTUS,CHART,MULTIPLAN og VISICALC........................................................................................................................ 16
12.1.3. Selve overførselen til PC............................................................................................................................................................ 16
12.1.4. Forudsætninger........................................................................................................................................................................... 16
12.2. Eksempel på overførsel............................................................................................................................................................... 17
12.2.1. Start/stop af BCU'en................................................................................................................................................................... 17
12.2.2. Opbygning af PC‑rapport.......................................................................................................................................................... 17
12.2.3. Start af PC‑rapporten.................................................................................................................................................................. 18
12.2.3.1. Flere rapporter og jobkø........................................................................................................................................................... 18
12.2.4. Overførsel til PC'en..................................................................................................................................................................... 18
12.2.4.1. Rapporter dannet fra skærm..................................................................................................................................................... 19
12.2.4.2. Slet tekstfilerne efter overførsel............................................................................................................................................... 19
12.2.4.3. Start nu eller klokken TTMM................................................................................................................................................... 19
12.2.5. Start af overførselen på PC........................................................................................................................................................ 19
12.3. De overførte filer.......................................................................................................................................................................... 19
12.3.1. Oversigt over de overførte filer................................................................................................................................................ 20
12.4. Standard PC-printere................................................................................................................................................................... 20
12.5. Retransmission efter fejl............................................................................................................................................................. 20
12.5.1. Sletning af tekstfilerne uden overførsel.................................................................................................................................. 20
12.6. Oprydning..................................................................................................................................................................................... 20
12.7. Lidt mere teknisk information..................................................................................................................................................... 21
12.7.1. Print‑tekstfilen............................................................................................................................................................................. 21
12.7.2. Den midlertidige kommandofil.................................................................................................................................................. 21
12.7.3. Overførsels‑styrefilen................................................................................................................................................................ 21
12.7.4. Selve overførselen i BCU jobkøen........................................................................................................................................... 21
12.7.5. Status under overførselen......................................................................................................................................................... 21
12.8. Installation af PC‑integration..................................................................................................................................................... 22
12.8.1. Installationsprogrammet DMSPC.SYS.................................................................................................................................... 22
12.8.2. Installation på den enkelte PC.................................................................................................................................................. 22
12.9. Nulstilling af PC-logfilen............................................................................................................................................................. 22
12.10. PC‑printerstyring........................................................................................................................................................................ 23
12.10.1. Overskrift og totaler.................................................................................................................................................................. 23
12.10.2. Antal printlinier pr side............................................................................................................................................................. 23
12.10.3. Start sidenr.................................................................................................................................................................................. 23
12.10.4. PC interface kode....................................................................................................................................................................... 23
12.10.5. Textfil extend flag....................................................................................................................................................................... 23
12.10.6. PC-tekstfil suffix......................................................................................................................................................................... 23
13. Print linie kontrol........................................................................................................................................................................... 24
13.1. Struktur ved print generering..................................................................................................................................................... 24
13.1.1. Fordelen ved denne nye struktur............................................................................................................................................. 24
13.2. Ny print linie kontrol................................................................................................................................................................... 24
13.2.1. Nye funktioner pga. denne struktur......................................................................................................................................... 24
13.3. Print linie kontrol.......................................................................................................................................................................... 25
13.3.1. LINIE kommandoen.................................................................................................................................................................... 25
13.3.1.1. Skal Nul udskrives (J/N)........................................................................................................................................................... 25
13.3.1.2. Sideskift antal linier før bund................................................................................................................................................... 25
13.3.1.3. Overskriftslinier.......................................................................................................................................................................... 25
13.3.1.4. Normal print linier...................................................................................................................................................................... 25
13.3.1.5. Total print linier.......................................................................................................................................................................... 25
13.3.1.6. Detail (READH) print linier....................................................................................................................................................... 26
13.3.2. Breve............................................................................................................................................................................................. 26
13.3.3. Forespørgselsprogrammer......................................................................................................................................................... 26
13.4. Styring af print via beregningerne............................................................................................................................................ 26
13.4.1. Angivelse af printlinier.............................................................................................................................................................. 26
13.4.1.1. Linie specifikationer.................................................................................................................................................................. 27
13.4.1.1.1. +xx blanke
linier......................................................................................................................................................................... 27
13.4.1.1.2. :xx gå til
linie xx.......................................................................................................................................................................... 27
13.4.1.2. PRINT (L=linier.......................................................................................................................................................................... 27
13.4.1.2.1. Betingede
print linier................................................................................................................................................................ 27
13.4.1.3. PRINT (T=total linier................................................................................................................................................................. 27
13.4.1.4. PRINT (D=detail (READH) linier............................................................................................................................................. 28
13.4.1.5. PRINT (H= overskrift linier....................................................................................................................................................... 28
13.4.1.6. PRINT (N= sideskift linier......................................................................................................................................................... 28
13.4.2. Bund linier.................................................................................................................................................................................... 28
13.5. PRINT total styring af udskriften.............................................................................................................................................. 29
13.5.1. PRINT (x‑y) print linier............................................................................................................................................................... 29
13.5.2. Kombination af print funktioner............................................................................................................................................... 29
13.5.3. START/NEXT/OM i kontoudtog............................................................................................................................................. 30
13.6. Print i SIDST beregninger........................................................................................................................................................... 30
13.7. Sammentrækning af felter med ¬.............................................................................................................................................. 31
13.7.1. Sammentrækning af felter med ¬¬........................................................................................................................................ 31
13.7.2. ¬> funktion for stop af ¬
funktion........................................................................................................................................ 31
13.8. R3 Udskrift af lange linier på skærm.......................................................................................................................................... 31
13.9. PRT Kommandoen på breve...................................................................................................................................................... 31
13.10. Nye kommandoer i funktion 7 - ændring af
rapport/brev..................................................................................................... 31
13.11. PRINTER
Styring af op til 9 udskrifter fra een rapport......................................................................................................... 32
13.11.1. Definition (åbning) af extra printere........................................................................................................................................ 32
13.11.2. Opdeling af en liste på to printere........................................................................................................................................... 32
13.11.3. Breve med journal...................................................................................................................................................................... 33
13.11.4. Udskrift af 2 samtidige lister..................................................................................................................................................... 33
14. Subfunktioner................................................................................................................................................................................ 34
14.1. CCODE Læsning af DATAMASTERs feltcheck
tekst.......................................................................................................... 34
14.2. CHAIN Start af næste rapport. ................................................................................................................................................. 34
14.3. CHECK Beregning af OCR‑giro
checkciffer............................................................................................................................. 35
14.4. CHEX Beregning af checkciffer modulus
11............................................................................................................................ 35
14.5. COPIES Antal kopier af udskriften, print
prioritet og papirkode.......................................................................................... 35
14.6. EDIT Editering af kundenumre eller andre
numre................................................................................................................... 36
14.7. EXPORT Udlæsning i externe filer............................................................................................................................................ 36
14.7.1. EXPORTS parametre.................................................................................................................................................................. 37
14.7.1.1. Felter............................................................................................................................................................................................ 37
14.7.1.2. Filnavn......................................................................................................................................................................................... 37
14.7.1.3. Record længde og filtype......................................................................................................................................................... 37
14.7.1.4. Udlæsnings‑specifikationer..................................................................................................................................................... 38
14.7.1.5. Printerkopi................................................................................................................................................................................... 38
14.7.1.6. CSV parametre............................................................................................................................................................................ 39
14.7.2. EXPORT i beregningslinierne................................................................................................................................................... 39
14.8. EXPOX Export med fildefinitionen
inkluderet......................................................................................................................... 39
14.9. FILENAME Fysisk kartoteksnavn............................................................................................................................................ 40
14.10. FIND Søgning efter tekst (som
superindex)........................................................................................................................... 40
14.11. IMPORT indlæsning af externe filer......................................................................................................................................... 40
14.11.1. IMPORTs parametre.................................................................................................................................................................. 41
14.11.1.1. Felter........................................................................................................................................................................................... 41
14.11.1.2. Filnavn........................................................................................................................................................................................ 41
14.11.1.3. Record længde og filtype........................................................................................................................................................ 41
14.11.1.4. Indlæsningsspecifikationer..................................................................................................................................................... 42
14.11.2. Forskellige kald af IMPORT subfunktionen.......................................................................................................................... 42
14.11.2.1. IMPOCONT ("11‑20").............................................................................................................................................................. 42
14.11.2.2. IMPOTHIS ("1‑20").................................................................................................................................................................. 42
14.11.2.3. IMPONEXT ("11‑20").............................................................................................................................................................. 42
14.12. INDEX Fastlåsning af index/start/stop................................................................................................................................... 43
14.13. KEYS Start/Stop angivelser...................................................................................................................................................... 43
14.13.1. KEYS kommandoen i funktionsvalget.................................................................................................................................... 43
14.13.2. Indtastning af start/stop værdier............................................................................................................................................ 43
14.13.3. Funktioner ved indtastningen................................................................................................................................................. 44
14.13.4. Aktivering af funktionen i en rapport..................................................................................................................................... 45
14.13.5. Start af en KEYS rapport........................................................................................................................................................... 45
14.13.6. Funktioner/parametre................................................................................................................................................................ 46
14.13.6.1. Samlet / enkelte rapporter........................................................................................................................................................ 46
14.13.6.2. Fast definitions‑fil..................................................................................................................................................................... 46
14.13.6.3. KEYS beregningskode 47/xxxx................................................................................................................................................ 46
14.13.7. Specielle definitionsfiler............................................................................................................................................................ 46
14.13.8. Sortering af start/stop værdier................................................................................................................................................. 46
14.14. LET kommandoen....................................................................................................................................................................... 47
14.15. LET kommandoen med ON........................................................................................................................................................ 48
14.15.1. Kolonneopdeling....................................................................................................................................................................... 48
14.15.2. Posteringskode-summation...................................................................................................................................................... 48
14.15.3. Månedens bevægelser.............................................................................................................................................................. 48
14.15.4. Beregninger i ON-delen............................................................................................................................................................ 48
14.15.5. Flere felter................................................................................................................................................................................... 49
14.15.6. Saldo år til dato.......................................................................................................................................................................... 49
14.15.7. X og logiske operatorer............................................................................................................................................................ 49
14.15.8. 'Skæve' værdier efter ON........................................................................................................................................................... 49
14.15.9. Tekstfelter efter ON................................................................................................................................................................... 49
14.16. LOWER Små bogstaver............................................................................................................................................................. 50
14.17. LTOT fastlåsning af laveste total niveau................................................................................................................................ 50
14.18. MERGE Blanding af flere kartoteker........................................................................................................................................ 50
14.19. MESS Meddelelse og eventuel stop af
rapporten................................................................................................................. 51
14.20. MTOT Maksimalt total niveau, der skal
udskrives............................................................................................................... 51
14.21. NAME Isolering af fornavne/efternavne................................................................................................................................ 51
14.22. NODATA Deaktivering af alle #Dx felter................................................................................................................................ 51
14.23. NOIX Udelad index-opdatering
(pladsbesparende).............................................................................................................. 52
14.24. NOPAS Deaktivering af password........................................................................................................................................... 52
14.25. NOPRT Udelad alt print (plads- &
papir-besparende).......................................................................................................... 52
14.26. NUMBER Konvertering af 'mystiske' numre.......................................................................................................................... 52
14.27. NUMS Konvertering af tekstfelt til tal..................................................................................................................................... 53
14.28. OPEN åbning af kartotek for læsning...................................................................................................................................... 53
14.29. PACK Pakning af felter.............................................................................................................................................................. 53
14.30. PCOUT og PCIN Export/import direkte til
ERNA PC via $TRAN. ...................................................................................... 53
14.31. PHONE Nye danske telefonnumre........................................................................................................................................... 54
14.32. PLCOUT Export direkte til en PLC
kommunikationslinie...................................................................................................... 54
14.33. POUT Udskrift af tekst/styrekarakterer
direkte på printeren................................................................................................ 55
14.34. PRIO Sæt prioritet....................................................................................................................................................................... 55
14.35. PXOUT Export direkte på PC-harddisk via
ERNA................................................................................................................. 55
14.36. PZOUT Udskrift direkte til PC-harddisk
via ERNA............................................................................................................... 55
14.37. RATE COMET kurs-tabeller..................................................................................................................................................... 55
14.38. RUND Definition af FNR afrunding til fx.
5 øre...................................................................................................................... 56
14.39. SIZE Optimering af pladsforbrug i store
rapporter................................................................................................................ 56
14.40. SMAA Konvertering af navne fra store til
store/små bogstaver........................................................................................ 56
14.41. SOGE Dannelse af søgenøgle fra
adressefelt......................................................................................................................... 56
14.42. SORTWORK Flere sorteringskartoteker................................................................................................................................. 57
14.43. SPOFF Fjernelse af blanke i tekstfelter.................................................................................................................................... 57
14.44. STAR funktioner for regnskabsrapporter............................................................................................................................... 57
14.44.1. STARD Hent regnskabsår og periode‑datoer....................................................................................................................... 57
14.44.2. STARF Beregn periode/åtd realiseret og
budget................................................................................................................. 57
14.44.3. STARN Nøgletalsberegninger................................................................................................................................................. 57
14.44.4. STARP Definer regnskabs‑periode......................................................................................................................................... 57
14.44.5. STARS Juster periodens tal til periode 1............................................................................................................................... 57
14.45. TAPEOUT Export direkte til bånd............................................................................................................................................ 57
14.46. TEST Testprint funktion............................................................................................................................................................ 58
14.47. UNPACK Udpakning af pakkede felter................................................................................................................................... 58
14.48. UPDATE Aktiver skrivning i en rapport................................................................................................................................. 58
14.49. UPPER Store bogstaver............................................................................................................................................................. 58
14.50. VALCH Værdier af et tekstfelt.................................................................................................................................................. 59
14.51. VALID Værdier af et kodefelt.................................................................................................................................................... 59
14.52. VALIX Værdier af et kodefelt.................................................................................................................................................... 59
14.53. WEEK Beregning af uge fra dato eller omvendt.................................................................................................................... 60
14.54. WORKD Beregning af arbejdsdage mellem 2
datoer............................................................................................................ 60
14.55. ZERO Nulstilling af arbejdsfelter.............................................................................................................................................. 60
15. Opdatering med rapportgeneratoren.......................................................................................................................................... 61
15.1. Definition af en rapport med opdatering.................................................................................................................................. 61
15.2. UPDATE aktivering af opdatering............................................................................................................................................ 62
15.3. NOPAS frakopling af password................................................................................................................................................ 62
15.4. REWRITE (XX) opdatering af en record.................................................................................................................................. 62
15.5. WRITE (XX) opdatering/oprettelse af en
record.................................................................................................................... 63
15.6. INSERT (XX) oprettelse af en ny record.................................................................................................................................. 63
15.7. DELETE (XX) sletning af en record.......................................................................................................................................... 63
15.8. Opdatering af index i kartotekerne............................................................................................................................................ 63
15.9. Ændring i behandling af hovedkartoteket............................................................................................................................... 64
15.10. Fejlbehandling ved opdatering................................................................................................................................................. 64
15.11. Opdateringens placering i beregningerne............................................................................................................................... 64
15.12. LTOT Laveste total niveau ved opdatering........................................................................................................................... 64
15.13. Opdatering af hoved‑index for
kartoteket............................................................................................................................... 65
15.14. Sikkerhed mod opdatering i forkerte kartoteker..................................................................................................................... 65
15.15. Spærring for al opdatering......................................................................................................................................................... 65
15.16. OPEN ("XX","3/XXFILE)
speciel kartoteksåbning............................................................................................................... 66
15.17. Dannelse af nye kartoteker med RAPGEN.............................................................................................................................. 67
15.17.1. Antal records, disk og selskabsnummer................................................................................................................................ 67
15.17.2. Mix af kartoteker........................................................................................................................................................................ 67
15.17.3. Index nøgler................................................................................................................................................................................ 68
15.17.4. Flere felter i nøglen.................................................................................................................................................................... 68
15.17.5. Flere index................................................................................................................................................................................... 68
15.17.6. Specielle nøgler.......................................................................................................................................................................... 68
15.17.7. Sletning af kartoteker................................................................................................................................................................ 68
15.17.8. Omdefinition af kartoteker........................................................................................................................................................ 68
15.17.9. Filnavne og anden teknisk information.................................................................................................................................. 68
16. Editerings‑funktionerne 11‑14..................................................................................................................................................... 69
16.1. Princippet ved disse funktioner................................................................................................................................................. 69
16.2. Tekst‑editoren.............................................................................................................................................................................. 70
16.3. Funktion 11 ‑ Dokumentation.................................................................................................................................................... 72
16.4. Funktion 12 ‑ editering af
selektioner....................................................................................................................................... 73
16.4.1. Selektioner på alfa‑tekstfelter.................................................................................................................................................... 73
16.5. Funktion 13 ‑ editering af
sortering og totaler......................................................................................................................... 74
16.6. Funktion 14 ‑ editering af
beregninger..................................................................................................................................... 75
16.6.1. Kommentarer på beregningslinierne........................................................................................................................................ 75
16.6.2. GOTO/GOSUB og RETURN i beregningerne......................................................................................................................... 75
16.7. Teknik ved editering.................................................................................................................................................................... 76
17. Ydre omgivelser, individuel tilpasning
og optimering............................................................................................................ 77
17.1. REPS Flere rapportsystemer....................................................................................................................................................... 77
17.1.1. S Start RAPGEN igen................................................................................................................................................................. 77
17.2. TAM Indsæt i TAMOS selektor............................................................................................................................................... 77
17.3. HEAD Individuelle standardoverskrifter................................................................................................................................. 78
17.4. DRN Fildefinitioner...................................................................................................................................................................... 78
17.5. Funktion 9 - Start af flere rapporter
samtidig........................................................................................................................... 78
17.6. SPEED Aggressiv optimering.................................................................................................................................................... 79
17.7. RAPGEN mini (runtime) version................................................................................................................................................ 81
17.8. Funktion 10 - Kopiering mellem systemer
/ maskiner............................................................................................................. 83
17.9. Automatisk læsning af andre kartoteker
ved definition af en rapport................................................................................. 83
17.10. Opdatering af datofunktionerne for år
2000............................................................................................................................ 83
Figuroversigt............................................................................................................................................................................................... 84
Stikordsregister........................................................................................................................................................................................... 85
11. RAPGEN
printerstyring.
12.1. Indledning.
Der har hidtil
ikke været behov for avanceret printerstyring i rapportgeneratoren, da Nixdorf
printerne har været rimeligt simple og styringen har foregået udmærket ved
hjælp af TAMOS printertildeling og spoolfaciliteter.
Efter
introduktionen af TD06/TD09 printere m.m., dvs. skønskriftsprintere med
arkfødning og lignende er printfaciliteterne blevet væsentligt større, og
hermed er behovet for printerstyring vokset.
Disse printere
har hidtil givet en del problemer, idet programmer skrevet til 'gamle' printere
ikke kan køre på de nye printere, ligesom programmer skrevet til een af de nye
printere ikke kan køre på andre typer end den valgte printer, idet
styrekaraktererne til printerne er forskellige og bevirker at andre typer går i
fejl.
For at løse
dette problem har vi undersøgt printerstyringen på forskellige
tekstbehandlingsanlæg og PC‑ere og udviklet en avanceret printerstyring
på basis af erfaringerne med disse kombineret med udnyttelsen af Nixdorf spool‑systemets
faciliteter.
Det må dog
bemærkes, at operativsystemet NIROS 5.l revision 5 eller højere er nødvendigt
for at drive disse printere korrekt. Har man til gengæld dette vil der være en
del muligheder for styring af også den 'gamle' type bordprintere.
Da vi ikke synes
at den almindelige rapportgenerator‑bruger skal betale for udviklingen af
en sådan specialstyring af printere, som han sandsynligvis aldrig vil få brug
for, vil dette modul blive markedsført som et selvstændigt extra produkt til
rapportgeneratoren.
Bestående rapporter vil kunne anvendes med den nye
printerstyring.
12.3. Princip ved
printerstyringen.
En rapport
defineres knyttet til en bestemt printer, denne program‑printer kaldes
den LOGISKE printer.
Ved hjælp af
TAMOS printertildelingen knyttes dette logiske printernavn til en FYSISK
printer, når rapporten startes fra en bestemt skærm vil operativsystemet finde
det logiske printernavn fra rapporten i denne printertabel og istedet anvende
den fysiske printer. Printervalget er således gjort skærmafhængig.
Det er denne
fysiske printer der interesserer os i forbindelse med printerstyringen, idet
denne er en bestemt type og således kræver en række specielle styrekoder.
Rapportgeneratoren har indbygget en tabel for hver af disse fysiske
printere, denne tabel indeholder samtlige styrekoder for printeren for
sideskift, fed skrift m.m. Såfremt en bestemt styrekode ikke kan anvendes på
den pågældende printer vil denne være blank i tabellen og således blive
ignoreret. Såfremt der ikke findes en tabel for den pågældende printer vil
standard‑styrekoderne (som hidtil) blive anvendt, uden mulighed for
special‑faciliteter.
Brugeren kan
indsætte styrekarakterer i sine rapporter ved hjælp af tegnet @ efterfulgt af
et bogstav eller tal, f.eks. vil @L på en rapportlinie bevirke elongeret skrift (bred).
Hver styrekode
har mulighed for en ON og en OFF funktion, ON funktionen fås med et stort
bogstav, OFF funktionen med et lille bogstav; fx: kan en del af overskriften på
en rapport indkapsles i : @L OVERSKRIFT @l for kun at få denne del af linien
elongeret.
Det er muligt
ved hjælp af beregningerne at ændre de 3 styrekoder @X, @Y og @Z, og herved for
eksempel opbygge en rapport hvor udvalgte kunder er understreget eller hvor
udgåede kunder er overstreget.
Foruden selve
styringen af printerne indeholder rapportgeneratoren en række nye muligheder
for valg af printere og oversigt over printertildelingen.
Styre‑tabellen
for en printer indeholder foruden styrekarakterer også OPEN‑parametrene
for printeren, hvilket kan erstatte de i TAMOS angivne parametre, foruden den
fulde udnyttelse af SPOOL systemet med testprint m.m. opnås.
Sidehøjden på en
rapport er nu ikke længere fast defineret for den pågældende rapport men
afhænger af den valgte printer. En rapport defineret på en 72 liniers formular
kan altså nu uden videre udskrives på 51 linier papir med korrekt sideskift og
omvendt.
12.5. TAMOS
printertildeling.
TAMOS
printertildeling kan se ud som følgende:
Figur 1 Tamos printertildeling.
DEVICE ASSIGNMENT UTILITIES SUPERVISOR # 3 86.11.18/15:33
DEVICE NAME LINES PRINT POSITION LINE
CHAR.
NO LOGICAL REAL PER PAGE FROM
TO DENS. DENS.
‑‑ ‑‑‑‑‑‑‑ ‑‑‑‑ ‑‑‑‑‑‑‑‑ ‑‑‑‑ ‑‑ ‑‑‑‑‑ ‑‑‑‑‑
0 $RPL4 $RPL2 =PRINT 72
0 131 6
10,0
1 $N $LPT =PRINT 51
0 131
2 $LPT A
3 $SMAL $RPL2,SMAL =PRINT
72 0 131
4
5
6
7
8
9
10
11
12
PORT NO. :
3 FUNCTION :
CHA
LINES PER PAGE : ENTRY NO. :
MEDDELELSE :
Der knyttes således en bestemt fysisk printer til hver
logisk printer pr.skærm. Man bør bemærke følgende:
12.6.1. Logisk
printernavn, f.eks $LPT.
Skal starte
med $ tegnet og angive den printer, rapporten er defineret på.
Denne printer
behøver ikke eksistere i systemet, f.eks. vil $XYZ være tilladt.
Man kan
passende vælge navne, der er lette at huske, f.eks. $SMAL eller $JYTTE.
12.6.3. Fysisk
printernavn, f.eks $RPL2.
Angiver den
printer, der faktisk skal udskrives på.
For denne
printer kan der oprettes en styrekode‑tabel i rapportgeneratoren.
Man kan angive
$RPL2,1 eller $RPL2,2, evt.$RPL2,SMAL;
Disse fysiske
printere vil alle være $RPL2, men der kan der oprettes en kodetabel i
rapportgeneratoren for hver af disse,
f.eks. for Arkføder
1 og arkføder 2.
Man kan evt.
angive en textfil som fysisk printer.
12.6.5. Andre
parametre (linier/karakterer).
Disse
parametre bør udelades og istedet defineres i forbindelse med
rapportgeneratorens kodetabel.
For yderligere
information se TAMOS manualen.
12.7. Definition af en rapport på en printer.
Såfremt
programmøren har sat dette op i systemet, vil man ved definition af en ny
rapport blive bedt om at indtaste printernr. (0‑5), hvor programmøren har
predefineret en række standard printere.
Som en ny
facilitet kan man desuden indtaste printernavnet direkte istedet for et nummer,
f.eks. $RPL2.
Defineres ikke
andet anvendes standardprinteren $LPT.
12.8.1. Ændring af en
rapports printer.
Ved hjælp af
funktion 7, ændring af rapport/brev, kan man med PRINTER kommandoen (i
LINIE,POS) ændre rapportens printer.
Figur 2 PRINTER kommandoen i funktion 7.
1...;....10...;....20...;....30...;....40...;....50...;....60...;....70...;....8
DATO:##,##,## @L* LEVERANDØRLISTE
*@l PR.##,##,## SIDE:#### 1
2
LEV.NR. @0NAVN @0VALUTAKODE SALDO 3
4
xxx @Xxxxxxxxxxxxxxxxxxxxxxxxx @x ## ‑‑‑,‑‑‑,‑‑#.## 5
6
7
8
9
10
11
12
13
14
15
16
17
18
LINIE,POS: PRINTER
PRINTER NR.? $RPL2 (CR=$LPT,1=$RPL4)
STARTPOSITION (CR=001) ? SLUTPOSITION (CR=177) ?
ANTAL LINIER PR.SIDE (CR=051) ?
Der kan som ovenfor indtastes et printernr. og ligeledes
som noget nyt et direkte printernavn.
12.9. Valg af
printer ved start af en rapport.
Som en helt ny
funktion kan man ved start af en rapport ved det sidste spørgsmål om TESTPRINT
(J/N) vælge den printer, der skal udskrives på. Dette kan gøres på flere måder:
1. $RPL2 Man
kan indtaste et printernavn direkte.
2. P Viser
printertildelingen for den skærm, som rapporten startes på, dvs. evt.
baggrundsporten.
3. 0‑9 Vælger
en bestemt linie i printertildelingen.
4. P0‑9 Som
ovenfor.
5. P$RPL2 Som
funktion 1.
6. Pxxxx Her
kan xxxx være navnet på en textfil, der dog skal findes i forvejen.
Figur 3 Valg af printer ved start af rapporten.
DMS.RAPGEN 21 LEVERANDØRLISTE 9.....START AF UDSKRIFT
DAGS DATO ? 260180
PR. DATO ? 260180
INDEX:
START FRA ?
1:LEV.NR.
STOP VED ?
NR. LOGISK PARAM FYSISK CHARS/TOMME LINIER/TOMME
0: $RPL4 000131072 $RPL2 10 6
1: $N 000131051 $LPT
2: $LPT 000131051 A
3: $SMAL 000131072 $RPL2,SMAL
LAVESTE TOTAL‑NIVEAU,DER SKAL
UDSKRIVES (0‑ 1 , 0=HELE LISTEN) ? 0
START:( J=BAGGRUND, S=SKÆRM,
P=SKÆRMPRINTER, N=ANNULER) ? P
TESTPRINT (J/N) ? 2 $LPT
MEDDELELSE:
Spørgsmålet
TESTPRINT (J/N) vil blive gentaget til man svarer N, hvorved rapporten startes.
12.11. Indsættelse
af styrekoder i en rapport.
Ved hjælp af
funktion 7, ændring af rapport/brev, kan man mellem den normale text sætte
styrekoder som f.eks. @L OVERSKRIFT @l for at få en overskrift elongeret, fed,
understreget eller lignende.
Disse styrekoder
kan også oprettes ved definition af et nyt brev med funktion 6, derimod ikke
direkte ved definition af en ny rapport med funktion 1.
Figur 4 Indsættelse af styrekoder med funktion 7.
1...;....10...;....20...;....30...;....40...;....50...;....60...;....70...;....8
DATO:##,##,## @L* LEVERANDØRLISTE
*@l PR.##,##,## SIDE:#### 1
2
LEV.NR. @0NAVN @0VALUTAKODE SALDO 3
4
xxx @Xxxxxxxxxxxxxxxxxxxxxxxxx @x ## ‑‑‑,‑‑‑,‑‑#.## 5
6
7
8
9
10
11
12
13
14
15
16
17
18
LINIE,POS: 5
1...;....10...;....20...;....30...;....40...;....50...;....60...;....70...;....8
#1 @X#2 @x #5 #6
En styrekode optager ingen plads på en rapport‑udskrift,
man skal således være opmærksom på, at
en linie, hvor der indgår en styrekode som f.eks.@U vil blive vist 2 karakterer
forskudt til højre i forhold til de øvrige linier når man betragter
skærmbilledet i funktion 7.
Desuden skal man
være opmærksom på, at visse styrekoder som f.eks.@L for bred skrift vil ændre
liniens position totalt i forhold til de øvrige linier. Anvendes sådanne koder
må man prøve at køre rapporten for at kunne se de faktiske placeringer.
Visse
styrekoder, f.eks. tegn pr. tomme, kan kun anvendes fornuftigt for en hel linie
ad gangen, da printeren ellers løber sur i sine tabulator‑positioner. Vil
man absolut bruge en sådan facilitet på en del af en linie kan dette dog gøres
ved at sætte ekstra mellemrum på linien efter behov og forsøge sig frem.
Antal linier pr.
tomme kan IKKE ændres midt i en udskrift, dette gælder for hele rapporten.
Der henvises i
øvrigt til specifikationerne for den pågældende printertype, disse findes
normalt i Nixdorfs NIROS manualer, specielt NIROS 5.1.4 opdateringer.
12.13. Beregnede
styrekoder (@X,@Y,@Z)
Styrekoderne @X,
@Y og @Z samt @x, @y, @z har oprindeligt ingen funktion overhovedet men kan
sættes ved hjælp af beregningerne for hver enkelt linie. På denne måde kan man
understrege/overstrege udvalgte linier eller evt. skrive disse med kursiv eller
fed skrift.
12.14.1. Indsættelse af
beregnede styrekoder.
Disse styrekoder
kan indsættes på samme måde som almindelige styrekoder med funktion 7 eller
direkte ved definition af en rapport med funktion 1.
I sidste
tilfælde tastes istedet for FELTNR på en linie blot @X hvorved denne styrekode
placeres på den angivne position på linien.
Figur 5 Indsættelse af styrekoder med funktion 1.
DMS.RAPGEN 21 LEVERANDØRLISTE 1.....DEFINER NY RAPPORT
1 LEV.NR. 19 @FRI
2 NAVN 20 @FRI
3 ADRESSE 21 @FRI
4 BY 22 @FRI
5 VALUTAKODE 23 @FRI
6 SALDO 24 @FRI
7 @FRI 25 @FRI
8 @FRI 26 @FRI
9 @FRI
10 @FRI
11 @FRI
12 @FRI
13 @FRI
14 @FRI
15 @FRI
16 @FRI
17 @FRI
18 @FRI
1...,....10...,....20...,....30...,....40...,....50...,....60...,....70...,....8
+xx , ‑xx , Pxx =POSITION , Hxx =OVERSKRIFT , Nxx =UDEN
OVERSKR.,D=SLET, T=TEXT
LEV.NR. @0NAVN
AAA @XAAAAAAAAAAAAAAAAAAAAAAAA
LINIE NR. 1 FELTNR. ? @x
MEDDELELSE:
12.14.3. Dummy
styrekoden (@0).
Da en styrekode
som f.eks. @X ikke optager plads på en linie indsættes en dummy styrekode @0
(nul) i overskriftslinien når man definerer en styrekode med funktion 1, således
at overskriften ikke bliver forskudt i
forhold til felt‑linien.
12.14.5. Beregning af
styrekoder.
Ved hjælp af
funktion 4 kan man beregne styrekoderne, idet man, ligesom der kan angives
felter i en beregning som #15, kan regne med styrekoder som @X.
En sådan
beregning vil normalt altid starte med at nulstille styrekoderne, dvs.
@X="" og @x="" og herefter sætte disse hvis visse
betingelser er opfyldt, dvs. IF et eller andet LET @X=@L, dvs. sætte styrekoden
til en af de andre faste styrekoder.
Normalt vil der
altid være tale om 2 styrekoder, f.eks. @X og @x, for at slå den pågældende
funktion til og fra på linien, således at ikke resten af rapporten bliver
udskrevet understreget eller lignende.
Flere styrekoder
kan kombineres ved f.eks. at sætte:
@X=@I,@U
for således at få både kursiv‑skrift og
understregning.
Længden af en
beregnet styrekode kan dog ikke overstige 16 karakterer.
Figur 6 Beregning af styrekoder.
DMS.RAPGEN 21 LEVERANDØRLISTE 4.....DEFINER KALKULATIONER
1 LEV.NR. 19 @FRI
2 NAVN 20 @FRI
3 ADRESSE 21 @FRI
4 BY 22 @FRI
5 VALUTAKODE 23 @FRI
6 SALDO 24 @FRI
7 @FRI 25 @FRI
8 @FRI 26 @FRI
9 @FRI
10 @FRI
11 @FRI
12 @FRI
13 @FRI
14 @FRI
15 @FRI
16 @FRI
17 @FRI
18 @FRI
@X=""
@x=""
IF SALDO>1000 LET @X=@B
IF SALDO>1000 LET @x=@b
BEREGNING ? IF #6>1000 LET
@x=@b OK
(J/N) ?
MEDDELELSE:
12.15. Definition
af printertabeller.
Printertabeller
defineres med programmet DMS.RAP.PRT, der kan være indlagt i TAMOS selektoren
eller kaldes fra scope.
Figur 7 Start af DMS.RAP.PRT.
DMS.RAP.PRT VEDLIGEHOLDELSE AF PRINTERTABELLER
PRINTER DEFINITIONS NAVN (FYSISK
NAVN): $RPL2,SMAL
KODE TABEL I HEXADECIMAL, DECIMAL
ELLER OKTAL KODE (H/D/O)
MEDDELELSE:
Programmet starter med at spørge om: FYSISK
PRINTER NAVN:
hvor man indtaster f.eks. $LPT eller $RPL2, 7 alt efter hvilken
fysisk printer man ønsker at hente tabellen fra. Denne printertabel skal findes
på systemet i forvejen.
Herefter spørges om:
INPUT SOM OCTALT, DECIMALT eller HEXADECIMALT (0/D/H)?
og man kan således vælge det mest passende talsystem for
styrekoderne. Da Nixdorf normalt snakker octalt i manualer m.m. vil cr. bevirke
octal visning af koderne.
12.16.1. Første side i
printertabellen.
Herefter vises
første side af printertabellen, denne omfatter printer‑OPEN parametrene
(se også Nixdorf BASIC manual under OPEN).
Figur 8 Første side af printer‑kodetabellen.
DMS.RAP.PRT VEDLIGEHOLDELSE AF PRINTERTABELLER $RPL2,SMAL
OKTALT
PRINTER ID.:
$RPL2,SMAL
LOGISK PRINTERNAVN: $RPL2
START POSITION (000): 000
END POSITION (131): 131
LINIER PR.SIDE (072): 051
LINIER/TOMME (6/8):
KARAKTERER/TOMME (10/12/15/16.5):
PRIOTITET (H/N/L/P): N
START PRINT VED START AF UDSKRIFT
(Y/N): N
BEVAR PRINT INDTIL FÆRDIGUDSKREVET
(Y/N): N
DIALOG EFTER PRINT AF FØRSTE SIDE
(Y/N): N
DIALOG FØR PRINT AF FØRSTE SIDE
(Y/N): N
ANTAL KOPIER (00‑99): 00
PAPIR KODE (00‑63): 00
OVERFØR RAPPORT NAVN TIL SPOOLER
(Y/N): Y
MEDDELELSE:
Det første felt,
PRINTER ID. er det fysiske printernavn, tabellen vil blive lagret under. Ændrer
man således i dette får man oprettet en kopi af tabellen knyttet til en anden
fysisk printer.
Man kan anvende
de normale TAMOS funktionstaster, dvs.: , @, END og SPR, foruden
editering med piltasterne nederst på tastaturet kan bruges.
En printertabel
består af 3 sider, hvis man går ud nederst på een side (eller trykker END)
vises næste side, går man ud øverst på en side (med pil op) vises foregående
side. Hvis man trykker END på sidste side (eller pil op i første felt på første
side), lagres printertabellen. Herefter kan denne udskrives ved at svare J til: UDSKRIFT PÅ PRINTER (Y/N)?
12.16.3. Spool
parametre.
På første side
angives de forskellige parametre for NIROS spoolsystemet, det anbefales at
anvende disse parametre istedet for at definere f.eks. linier/karakterer pr.
tomme i TAMOS printertildeling, da ikke alle parametre kan sættes op i TAMOS.
Spool‑faciliteten
i NIROS skal selvfølgelig være aktiveret for at samtlige disse parametre skal
fungere. Beskrivelsen findes i TAMOS manualen vedr. SPOOL systemet, dog skal
man specielt bemærke følgende:
12.16.4.1. Logisk
printernavn.
Bør normalt være
det samme som den i TAMOS angivne logiske printer, det vil være denne printer
der åbnes af rapportprogrammet.
12.16.4.3. Start print ved
start af udskrift.
Hvis man svarer
N her, vil udskrivningen først starte, når rapporten er færdig. Dette kan
specielt udnyttes ved store sorterede rapporter, der ellers vil blokere for
anden udskrift på printeren mens rapporten kører.
12.16.4.5. Dialog før/efter
print.
Man kan få
mulighed for at godkende første side (testprint) samt at bevare hele spoolfilen
indtil printet som helhed godkendes.
12.16.4.7. Antal kopier.
Der kan
specificeres op til 99 kopier af udskriften.
12.16.4.9. Papirkode.
Spoolsystemet
vil holde printet tilbage indtil operatøren angiver, at papir med denne
papirkode er i printeren.
12.16.4.11. Rapportnavn
(Y/N).
Hvis Y kan
rapportnavn ses ved forespørgsel på spoolkøen.
12.16.5. Styrekoder.
På anden og
tredje side kan man indtaste styrekoderne octalt, decimalt eller hexadecimalt
alt efter hvad man har valgt fra starten.
Figur 9 Anden side af printerkodetabellen,vist oktalt.
DMS.RAP.PRT VEDLIGEHOLDELSE AF PRINTERTABELLER $RPL2,SMAL
OKTALT
@X FUNKTION ON OFF
@ RESET: 376,230,200 376,230,200
A:
B FED SKIFT: 376,236,261,201 376,236,261,200
C:
D GENNEMSTREGNING:
376,230,203,201
376,230,203,200
E 10 CHARS/TOMME: 376,236,222,200
F 12 CHARS/TOMME: 376,236,222,201
G 15 CHARS/TOMME: 376,236,222,202
H DOBBELT HØJDE: 376,230,207,201 376,230,207,200
I:
J:
K:
L BRED SKRIFT: 376,236,224,201 376,236,224,200
M:
N NORMAL SKRIFT: 376,236,263
O:
P HURTIG SKRIFT: 376,236,265
Q NLQ (BREV): 376,236,264
R:
S SUBSCRIPT: 376,230,204,201 376,230,204,200
MEDDELELSE:
Hver styrekode
har en ON værdi og en OFF værdi der indsættes i rapporten som henholdsvis store
og små bogstaver, f.eks. @L og @l for elongeret ON/OFF.
Det er ikke
altid man har brug for en OFF værdi, for sådanne koder kan denne blot udelades.
For tallene @0‑@9 vil OFF værdien aldrig kunne refereres pga. en
beklagelig mangel på små tal.
Figur 10 Tredje side af kode‑tabellen,vist
hexadecimalt.
DMS.RAP.PRT VEDLIGEHOLDELSE AF PRINTERTABELLER $RPL2,SMAL
HEXADECIMALT
@X FUNKTION ON OFF
T SUPERSCRIPT: FE,98,85,81 FE,98,85,80
U UNDERSTREGNING: FE,98,82,81 FE,98,82,80
V ENVEJS‑SKRIFT: FE,9E,B2,81 FE,9E,B2,80
W DOBBELT BREDDE: FE,98,89,81 FE,98,89,80
X BEREGNET:
Y BEREGNET:
Z BEREGNET:
0 DUMMY:
1 ARKFØDER 1: FE,9E,96,81
2 ARKFØDER 2: FE,9E,96,82
3 ÅBEN ARKFØDER: 8A
4 PAPIR IND: 8B
5 PAPIR UD: 8C
6:
7:
8:
9:
LINIESKIFT: 8D
SIDESKIFT: 8C
MEDDELELSE:
Hvert inputfelt
er 30 karakterer langt, dvs. der kan indtastes op til 7 karakterer pr. kode
hvis man snakker octalt. Er dette ikke nok må man anvende hexadecimal notation,
hvor der kan indtastes op til 10 karakterer pr.kode.
Texterne for de
enkelte koder er kun vejledende, kodens betydning afhænger ene og alene af de
definerede styrekarakterer. Man kan uden videre anvende de blanke koder til
andre funktioner, f.eks. @A.
12.16.6.1. @ RESET.
Umiddelbart
efter åbning af printeren vil ON værdien blive udskrevet, OFF værdien udskrives
umiddelbart før afslutning. Man kan her typisk indsætte koder for arkføder‑valg.
12.16.6.3. @A‑W
styrekoder.
@A refererer til
ON værdien, @a til OFF værdien.
12.16.6.5. @X‑@Z
beregnede styrekoder.
Disse bør altid
lades udefinerede, således at beregningerne kan indsætte koderne heri.
12.16.6.7. @0 Dummy
styrekoden.
Bør ligeledes
altid være udefineret, denne anvendes i overskriften for tabulator‑justering
ved definition af styrekoden med funktion 1.
12.16.6.9. @1‑9
Styrekoder.
Disse kan
anvendes som @A‑Z, dog kan kun ON værdi angives.
12.16.6.11. Linieskift
karakter.
Kun een karakter
kan (og skal) angives her, normalt octalt 215.
12.16.6.13. Sideskift
styrekode.
For almindelige printere vil denne kode være octalt 214.
For arkføder printere kan her angives koder for papir ud,
åben klap, vælg arkføder og papir ind m.m.
12.16.7. Udskrift af
printertabel.
Figur 11 Udskrift af printertabel.
DMS.RAP.PRT VEDLIGEHOLDELSE AF PRINTERTABELLER
$RPL2,SMAL OKTALT
PRINTER ID.:
$RPL2,SMAL
LOGISK PRINTERNAVN: $RPL2
START POSITION (000): 000
END POSITION (131): 131
LINIER PR.SIDE (072): 051
LINIER/TOMME (6/8):
KARAKTERER/TOMME
(10/12/15/16.5):
PRIOTITET (H/N/L/P): N
START PRINT VED START AF UDSKRIFT
(Y/N): N
BEVAR PRINT INDTIL FÆRDIGUDSKREVET
(Y/N): N
DIALOG EFTER PRINT AF FØRSTE SIDE
(Y/N): N
DIALOG FØR PRINT AF FØRSTE SIDE
(Y/N): N
ANTAL KOPIER (00‑99): 00
PAPIR KODE (00‑63): 00
OVERFØR RAPPORT NAVN TIL SPOOLER
(Y/N): Y
@X FUNKTION ON OFF
@ RESET: 376,230,200 376,230,200
A:
B FED SKIFT: 376,236,261,201 376,236,261,200
C:
D GENNEMSTREGNING:
376,230,203,201
376,230,203,200
E 10 CHARS/TOMME: 376,236,222,200
F 12 CHARS/TOMME: 376,236,222,201
G 15 CHARS/TOMME: 376,236,222,202
H DOBBELT HØJDE: 376,230,207,201 376,230,207,200
I:
J:
K:
L BRED SKRIFT: 376,236,224,201 376,236,224,200
M:
N NORMAL SKRIFT: 376,236,263
O:
P HURTIG SKRIFT: 376,236,265
Q NLQ (BREV): 376,236,264
R:
S SUBSCRIPT: 376,230,204,201 376,230,204,200
T SUPERSCRIPT: 376,230,205,201 376,230,205,200
U UNDERSTREGNING: 376,230,202,201 376,230,202,200
V ENVEJS‑SKRIFT: 376,236,262,201 376,236,262,200
W DOBBELT BREDDE: 376,230,211,201 376,230,211,200
X BEREGNET:
Y BEREGNET:
Z BEREGNET:
0 DUMMY:
1 ARKFØDER 1: 376,236,226,201
2 ARKFØDER 2: 376,236,226,202
3 ÅBEN ARKFØDER: 212
4 PAPIR IND: 213
5 PAPIR UD: 214
6:
7:
8:
9:
LINIESKIFT: 215
SIDESKIFT: 214
12.17. Fejl på
printeren.
Man bør være
omhyggelig ved definition af styrekoder, da anvendelse af forkerte koder til en
printer kan give problemer.
Man kan
risikere, at printeren går i baglås og må slukkes og tændes igen lige så mange
gange som den har fået forkerte styrekoder, for hver gang må der anvendes et F
fra rapportgeneratoren. Hvis man samtidig kører med spooler på den pågældende
printer vil der fortsat vælte forkerte styrekoder ud til printeren.
Et specielt
symptom kan være, at programmerne kan åbne printeren normalt, men ved enhver
form for print forekommer fejl.
Kan man ikke få
en printer til at køre bør man gøre følgende:
1. Prøv
med F kommandoen, denne skal normalt virke.
2.
Sluk/tænd printeren og prøv F igen.
3. Er
papir/farvebånd OK? Tag evt. dette ud og sæt på igen.
4.
Sluk/tænd skærmen og prøv F igen.
5. Fjern
alle jobs i SPOOL‑køen, hvis denne er aktiv, og check i det hele taget om
SPOOL fungerer (med S).
6.
Virker alt dette ikke må hele maskinen slukkes og restartes (IPL).
12.18.1. Basic fejl 26 ‑
printer ikke klar.
Fejlen kan
fremkomme ved efterfølgende print når forkert styrekode er sendt.
12.18.3. Basic fejl 73 ‑
forkert printer open parameter.
Forekommer hvis
man har angivet spoolparametre som fx. 6/8 linier pr. tomme på printer, der
ikke har denne facilitet. Felterne skal være blanke på sådanne printere.
Specielt er SLUT‑printposition
normalt max.131, overskrives denne kan fejl 73 typisk fremkomme.
12.19. Installation
af printerstyring.
Ved installation
af printerstyringen kræves NIROS 5.1 rev. 5 eller højere, da tidligere
versioner ikke har drivere til at håndtere de pågældende printertyper.
Der kræves ikke særlig diskplads ved installation, ca. 50
sektorer.
Installation
foretages ved COPYALL iflg. libr.listen DMS.P.LIB, der indeholder programmet
DMS.RAP.PRT for definition af printer‑tabeller, samt en række
predefininerede tabeller DMS.P.xxxxx, f.eks. DMS.P.LPT.
Figur 12 Library liste DMS.P.LIB for installation.
LOGISK ENHED :9 01.09.80 12:37:30
FIL NAVN
USER BLOKKE PART./
APPL. VERS SPC DATO
HBA
* #REC. AREA FMVVTM INF
T
DMS.P.LIB 1 2
1 0 0 0 0
0 27.01.80 2267
C
DMS.P.LPT 1 3
1 0 0 0 0
0 27.01.80 2404
C
DMS.P.RPL2 1 3
1 0 0 0 0
0 23.01.80 2713
B
DMS.RAP.PRT 1 20
0 0 0 0 0
0 27.01.80 24770
‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑
TOTAL : 28
1136 FRIE BLOKKE PÅ LU NR. 9
Disse tabeller kan herefter kopieres med COPY til de
respektive fysiske drivernavne, f.eks. DMS.P.RPL2, idet $ tegnet i driver‑navnet
udelades.
Tabellerne kan
tilrettes med DMS.RAP.PRT om nødvendigt, eller man kan overlade dette til
kunden selv.
Der kræves
rapportgeneratorversion 1/6‑87 eller nyere for at printerstyringen skal
kunne fungere.
DMS.RAP.PRT kan
om ønsket indlægges i TAMOS selector med kald via DMS.R funktion 97.
13.
12. RAPGEN PC‑integration.
14.1. Indledning.
Efter ønske fra
mange af brugerne er der nu udviklet et modul for rapportgeneratoren, der
forenkler overførsel af data til en PC så dette bliver en yderst enkel
procedure.
Det eneste
brugeren behøver gøre er, at vælge en speciel printer for den/ de rapporter,
der skal overføres til PC. Dette kan gøres enten fast for rapporten, ved
opstart af denne eller evt. sættes fast op for en bestemt baggrundsport i
TAMOS.
Der kan
overføres flere rapporter i ad gangen. Anvendes en jobkø, enten DMS.JOBQUEUE
eller TAMOS spoolkø, kan man lade mange rapporter danne grundlaget for
overførsel til PC i een kørsel.
Man kan udnytte
alle rapportgeneratorens funktioner for definition af
selektion/beregninger/sortering/totaler samt læsning af op til 9 forskellige
kartoteker i forbindelse med dannelse af en
pc‑rapport.
14.2.1. Struktur.
Ved valg af en
'PC‑printer' dannes udskriften som en tekstfil på disken istedet for
print på printeren. Disse tekstfiler nummereres, således at hver kørsel af en
rapport vil danne en ny tekstfil.
Samtidig dannes
for den skærm, der har startet rapporten, en overførselsstyrefil. Denne
tekstfil er en PC .BAT fil, der overfører rapporten til PC‑eren når den
startes herpå. Køres flere rapporter vil denne styrefil komme til at indeholde
flere overførsels‑kommandoer.
14.2.3.
LOTUS,CHART,MULTIPLAN og VISICALC.
Den 'PC‑printer'
man vælger ved start af rapporten, kan indeholde information om at denne
rapport skal anvendes af fx. LOTUS.
Herved vil
RAPGEN danne en kommando i PC‑styrefilen, der sørger for at omforme den
overførte rapport til det format, der kræves for LOTUS, idet hvert felt
udskrevet på rapporten dannes som en kolonne i spreadsheeted.
Man kan
naturligvis have flere forskellige 'PC‑printere' hvis der anvendes
forskellige programmer på PC‑eren, fx. PC‑LOTUS og PC‑MULTIPLAN.
14.2.5. Selve
overførselen til PC.
Når den/de
dannede rapporter skal overføres til PC kalder man ganske simpelt først på PC'en
et job (DMSPC.BAT) (leveres med RAPGEN) der udfører dette, og herefter et
program på 8870 (PC i rapportgeneratoren), der styrer denne side af
overførselen.
Herved vil man
automatisk først få overført .BAT styrefilen for denne skærm, og denne vil blive
kaldt så snart den er ovre. På PC‑siden vil der blive udstedt nødvendige
kommandoer for overførsel af filerne (RDAC/RDMAIN) samt evt. dannelse af LOTUS
e.a. formater (EXPORT) for alle filer.
På 8870 siden
vil rapportgeneratoren automatisk danne sende/modtage kommandoer for BCU'en.
Det er desuden muligt at angive, at de overførte tekstfiler skal slettes fra
disken efter endt (og problemfri) overførsel.
14.2.7.
Forudsætninger.
RAPGEN PC‑integration
kræver operativsystem NIROS 5.1 eller nyere.
Man er
naturligvis nødt til, at have Nixdorfs PC LINK program for start/ stop af BCU
overførsels køen, da det ellers ikke er muligt at snakke med PC‑ere på
denne måde.
Desuden skal PC‑ere
naturligvis være forbundet til 8870 og have emuleringsprogrammerne herfor.
Der kræves en
del fri diskplads på 8870 afhængig af hvor store kartoteker, man ønsker overført, da overførselen foregår
ved dannelse af tekstfiler for dette.
RAPGEN selv skal
være installeret i version 31/03‑1988. Har man tidligere versioner af RAPGEN vil disse uden videre
kunne erstattes med denne nye version.
14.3. Eksempel på
overførsel.
I det følgende
gives et eksempel på dannelse/overførsel til PC:
14.4.1. Start/stop af
BCU'en.
Før man kan
begynde skal man, fx. i forbindelse med dagstart, starte BCU'en (overførsels‑køen).
Gå ind på
kendeord PCLINK (evt. PCL) og vælg programnr. 010101. Svar henholdsvis 2 og Y på de to spørgsmål stillet
her.
Figur 13 Start af BCU programmet.
400/START BCU BCU‑AKTIVITETER COMET PC‑LINK 87.12.04
NORMAL=1/PHANTOM=2/STD.RECV=3 2
SHOULD BCU STAY ACTIVE AFTER
END OF JOB LIST ? Y/N . Y
MESSAGE:
Når maskinen på et tidspunkt skal lukkes for backup i
forbindelse med dagslut skal man stoppe
BCU'en igen. Dette gøres ved at vælge punkt 010104 i samme menu.
14.4.3. Opbygning af
PC‑rapport.
Man definerer en
helt normal rapport, fx. en vareliste:
Figur 14 Udskrift af rapporten.
DATE:14,01,87 * ARTICLE
LIST * AS OF 14,01,87 PAGE:
1
NO DESCRIPTION SALE PRICE COST PRICE DATE SUP ALT GR STOCK
0101 BOLT
2.00 1.50 1,01,87 271 270 0
100
0102 TRUCK‑HOPPER
20000.00 10000.00 1,01,85 100
0 9 0
0110 TRUCK‑WORK 100000.00 60000.00 15,12,86 123 100 2
1
1001 TRUCK‑WHEEL
1000.00 500.00 31,12,86 205
102 0
100
1005 TRUCK‑GEARBOX
2000.00 1500.00 1,06,86 100
0 1 10
2001 BOLT‑SPEC./AL 20.00 10.00
1,01,87 205 102 9 10
2002 BOLT‑SPEC./BR
25.00 10.00 30,07,86 205
102 9
200
Man kan sagtens anvende en allerede defineret rapport.
NB: Hvis man ønsker af anvende $LOTUS eller anden
PC-printer med automatisk EXPORT kommando skal rapporten være defineret med
funktion 1 - definer ny rapport - og må kun indeholde een printlinie.
14.4.5. Start af PC‑rapporten.
Rapporten
startes på helt normal måde fra PC‑en:
Figur 15 Start af rapporten.
DMS.RAPGEN 21 LEVERANDØRLISTE 9.....START AF UDSKRIFT
DAGS DATO ? 060187
PR. DATO ? 060187
INDEX:
START FRA ?
1:LEV.NR.
STOP VED ?
LAVESTE TOTAL‑NIVEAU,DER SKAL
UDSKRIVES (0‑ 1 , 0=HELE LISTEN) ? 0
START:( J=BAGGRUND, S=SKÆRM,
P=SKÆRMPRINTER, N=ANNULER) ? P
TESTPRINT (J/N) ? $PC
MEDDELELSE:
blot skal man sørge for at vælge en PC‑printer for
rapporten.
Dette gøres ved
fx. i TESTPRINT (Y/N) at taste $PC eller eventuelt blot PC, idet $ kan udelades
(det er svært at taste på pc'eren). Man kan også have defineret rapporten fast
på en PC‑printer ved hjælp af
funktion 7 ‑ rettelse af rapport/brev ‑ i LINIE, POS at
taste kommandoen PRINTER.
Ved spørgsmålet
PRINTER NR. (0=$LPT,1=...) svares her $PC.
14.4.6.1. Flere rapporter
og jobkø.
Man kan starte
lige så mange rapporter, man måtte ønske, på denne måde, ligesom man kan lade
disse indgå i jobkø (ved at taste Q ved spørgsmålet START (Y/N/P/S)).
De ønskede
rapporter skal naturligvis være kørt før man kan starte selve overførselen til
PC.
14.4.7. Overførsel til
PC'en.
I
rapportgeneratorens hovedmenu taster man PC:
Figur 16 Valg af rapportgeneratorens PC‑overførselsmodul.
DMS.RAPGEN
1 ... DEFINER NY
RAPPORT
2 ... DEFINER
SELEKTIONER
3 ... DEFINER SORTERING OG
TOTALER
4 ... DEFINER
KALKULATIONER
5 ... SLET EN
RAPPORT
6 ... DEFINER NYT BREV
7 ... RETTELSE
AF RAPPORT / BREV
8 ... UDSKRIFT
AF DEFINITIONER
9 ... START AF
UDSKRIFT
10 ...
KOPIERING
11 ...
DOKUMENTATION
12 ... EDITERING AF
SELEKTIONER
13 ... EDITERING
AF SORTERING/TOTALER
14 ... EDITERING
AF BEREGNINGER
INDTAST KODE:
PC
hvorved et skærmbillede som nedenstående fremkommer:
Figur 17 Start af PC overførsel.
REPORT GENERATOR ENGLISH VERSION REPORT GENERATOR #3 87.12.04/14:27
OVERFØRSEL TIL PC PÅ SKÆRM 03 AF
RAPPORTER DANNET FRA SKÆRM 03
NR.PC‑NAVN BLOKKE RAPPORT DAGS DATO, PR.DATO, START/STOP .
01:DMS0005.LOT 0003 1 ARTIKEL LIST 29.07.88, 29.07.88, , & ,
02:DMS0006.NIX 0002 1 ARTIKEL LIST 29.07.88, 29.07.88, 1000, 1999,
03:DMS0007.MUL 0003 2 STOCK LIST 29.07.88, 29.07.88, , & ,
04:DMS0008.LOT 0002 3 SUPPLIERS 29.07.88, 29.07.88, , & ,
SLET NIXDORF 8870 TEKST‑FILERNE
EFTER OVERFØRSEL (Y/N/xx) ? Y
14:27 START NU ELLER KLOKKEN (Y/N/TTMM) ? Y
MESSAGE:
Normalt svarer man Y til spørgsmålet om Nixdorf filerne
skal slettes, såfremt overførselen går godt vil der herved blive ryddet pænt op
på 8870'eren efter denne. Svares N må man selv styre denne oprydning, se
senere.
Returner til
PC'en (med shift + alt). Meddelelsen 'line active' vil nu fremkomme og man skal
blot afvente overførselen bliver færdig.
14.4.8.1. Rapporter dannet
fra skærm.
Den første linie
viser denne skærms nummer er 3, hvis man blot taster cr. overføres alle
rapporter, der er startet fra denne skærm. Det er kun nødvendigt at indtaste et
skærmnummer, såfremt man ønsker at overføre rapporter startet fra en anden
skærm.
14.4.8.3. Slet
tekstfilerne efter overførsel.
Hvis man svarer
Ja her, slettes tekstfilerne på 8870 maskinen efter overførselen til PC.
Hvis man svarer
Nej bevares tekstfilerne, der så senere kan fjernes med oprydningsprogrammet,
se nedenfor.
Ved Ja er
skærmen låst indtil overførselen er afsluttet. Ved Nej er skærmen fri og kan
anvendes til andre ting mens overførselen foregår.
14.4.8.5. Start nu eller
klokken TTMM.
Her kan
indtastes en start-tid. For eksempel kan man sætte overførselen til at starte
kl. 2 om natten når en jobkø har opbygget de ønskede tekstfiler.
14.4.9. Start af
overførselen på PC.
Herefter startes
overførselen ved returnere til PC-mode og taste: DMSPC
14.5. De overførte
filer.
Under
overførselen vises på PC‑eren, hvilke filer der kopieres. Først overføres
styrefilen lu/DMSPCXxx.BAT, hvor xx er PC‑ens 8870 skærmnr., og herefter
køres denne.
Herved overføres
een eller flere filer med navnene DMSxxxx.NIX, hvor xxxx er et nummer fra 1 til
9999 der tildeles fortløbende af rapportgeneratoren ved enhver start af en PC‑rapport.
Disse filer er rene tekstfiler (normalt uden overskrifter, sideskift eller
totaler).
Såfremt man har
valgt en PC‑printer, der angiver at LOTUS eller lignende skal anvendes,
vil der for disse rapporter efter alle overførseler er foretaget, ved hjælp af
EXPORT blive dannet de tilsvarende DMSxxxxxx.ttt filer.Her er ttt enten
LOT,MUL,CHA eller VIS alt efter hvilken printer man har valgt (de 3 første
karakterer i printernavnet).
14.6.1. Oversigt over
de overførte filer.
DMSPCXxx.BAT
indeholder alle overførselskommandoer og desuden for hver fil en angivelse af
hvilken rapport hver fil indeholder, samt med hvilke parametre, tidspunkt og
hvilket system rapporten er kørt.
Man kan fx. læse
denne med TYPE DMSPCXxx.BAT.
Figur 18 Eksempel på overførsels‑fil DMSPCX06.BAT.
DEL DMS0005.NIX
RDAC get DMS0005.NIX 8870
04/DMSPCX030005 %%
DEL DMS0006.NIX
RDAC get DMS0006.NIX 8870
04/DMSPCX030006 %%
DEL DMS0007.NIX
RDAC get DMS0007.NIX 8870
04/DMSPCX030007 %%
DEL DMS0008.NIX
RDAC get DMS0008.NIX 8870
04/DMSPCX030008 %%
RDMAIN S 1
EXPORT DMS0005.NIX ‑o
DMS0005.LOT ‑f wks ‑c 1:6,18:50,52:67,62:63,66:76
EXPORT DMS0007.NIX ‑o
DMS0007.MUL ‑f mp ‑c 1:6,16:48,50:65,67:77
EXPORT DMS0008.NIX ‑o
DMS0008.LOT ‑f wks ‑c 1:3,14:37,39:48
ECHO 01:DMS0005.LOT 0003 1 ARTIKEL LIST 29.07.88, 29.07.88, , & ,
ECHO 02:DMS0006.NIX 0002 1 ARTIKEL LIST 29.07.88, 29.07.88, 1000, 1999,
ECHO 03:DMS0007.MUL 0003 2 STOCK LIST 29.07.88, 29.07.88, , & ,
ECHO 04:DMS0008.LOT 0002 3 SUPPLIERS 29.07.88, 29.07.88, , & ,
14.7. Standard
PC-printere.
For at brugeren
ikke selv skal bekymre sig om oprettelse af disse PC printere medfølger med
RAPGEN følgende PC‑printer definitioner:
$PC ren
tekstoverførsel, ingen export, overskrifter & totaler med
$PCN som
$PC, overskrifter og totaler udelades
$LOTUS som
$PCN, der dannes en .LOT LOTUS fil med export
$MULTI som
$PCN, der dannes en .MUL MULTIPLAN fil med export
$CHART som
$PCN, der dannes en .CHA CHART fil med export
$VISI som
$PCN, der dannes en .VIS VISICALC fil med export
14.9.
Retransmission efter fejl.
Hvis
overførselen af een eller anden grund er blevet afbrudt, kan man altid vælge
PC-funktionen igen. Hvis man ikke har kørt flere rapporter siden kan man blot
svare J til spørgsmålet:
INTET NYT AT
OVERFØRE, GENTAG SIDSTE OVERFØRSEL (J/N) ?
14.10.1. Sletning af
tekstfilerne uden overførsel.
Selv om man
svarer N til gentagelse om overførsel kan man svare J til sletning af
tekstfilerne, hvorved disse fjernes uden overførsel.
14.11. Oprydning.
Hvis man har
overført filer uden at fjerne disse fra maskinen, kan man senere vælge
oprydningsprogrammet med PCC kommandoen:
Figur 19 Oprydning.
DMSPC RAPGEN/DATAMASTER RAPPORTGENERATOR
OPRYDNING FOR SKÆRM (cr= 3 ,
99=ALLE SKÆRME) ? 99
FILE NAME USER
BLOCKS PART./ APPL. VERS
SPC DATE HBA
* #REC. AREA FMVVTM INF
T
DMSPCX.LIB 6 2
1 0 0 0 0
0 29.07.88 14314
T
DMSPCX03.BAT 48 3
2 0 0 0 0
0 29.07.88 20207
T
DMSPCX030005 48 3
2 0 0 0 0
0 29.07.88 14317
T
DMSPCX030006 48
2 1 0 0
0 0 0
29.07.88 14320
T
DMSPCX030007 48 3
2 0 0 0 0
0 29.07.88 20202
.
T
DMSPCX030008 48 2
1 0 0 0 0
0 29.07.88 20203
OPRYDNING (Y/N) ?
Man kan nøjes
med at udvælge filer fra blot een skærm eller alle filer på systemet.
14.13. Lidt mere
teknisk information.
Ved start af en
rapport på en PC‑printer vil RAPGEN tage et nummer fra filen
00/DMS.PCQUEUE (4% i record 0, byte 0).
14.14.1. Print‑tekstfilen.
Dette nummer vil
blive anvendt til dannelse af print‑filen lu/DMSPCXssxxxx hvor:
lu er
disknr. fra DMS.PCQUEUE (4% i record 0, byte 8)
ss er
det skærmnr., der har startet rapporten
xxxx det
tildelte løbenr.
PC‑tekstfilerne
er således uafhængige af rapportgeneratorens systemer, man kan altså starte PC‑rapport
overførseler fra flere forskellige systemer på een gang.
Opbygningen af
filnavnet bevirker, at man med henhv. LIBR @ lu/DMSPCX06 eller
LIBR @ lu/DMSPCX
kan få en oversigt over alle PC‑filer for en
bestemt skærm eller for hele
systemet.
14.14.3. Den
midlertidige kommandofil.
Når en rapport
startes bygges filen lu/DMSPCXxx. Hvis denne findes i forvejen tilføjes
kommandoer hertil.
Rapportgeneratoren vil placere RDAC,EXPORT og ECHO kommandoer heri for
filoverførsel.
14.14.5. Overførsels‑styrefilen.
Ved start af
overførselen med DMSPC vil tekstfilen lu/DMSPCXxx.BAT blive dannet som
mellemfilen lu/DMSPCXxx sorteret, således at alle RDAC overførseler foretages
først, herefter følger en RDMAIN S 1 kommando og alle export kommandoer
foretages sidst. Herefter slettes mellemfilen lu/DMSPCXxx
Såfremt
mellemfilen ikke findes, når man forsøger at starte overførselen, vil man blive
spurgt om sidste overførsel skal gentages med samme .BAT fil styring.
14.14.7. Selve
overførselen i BCU jobkøen.
Herefter
aktiveres en BCU sende/modtage kommando og det antages, at brugeren har kaldt
overførsels‑jobbet DMSPC.BAT på PC‑eren, hvilket vil bevirke overførsel af styrefilen.
På 8870 vil
programmet DMSPC vente på at dette BCU job får status 'completed' (kan evt.
afbrydes med escape). Når dette sker antages det at DMSPCxx.BAT styrefilen nu
er kørende på PC‑eren og der udstedes en ny sende/modtage kommando for
BCU'en for dennes overførsel af rapport‑filerne.
Har brugeren
svaret N til sletning er 8870 programmet DMSPC nu færdigt.
Er der svaret Y
til sletning afventer programmet at BCU‑jobbet får status 'completed'
igen. Når dette er tilfældet slettes alle 8870 filer, der indgår i styrefilen
DMSPCxx.BAT.
Får et af BCU‑jobbene
status 'aborted' vil 8870 programmet afslutte, dvs. i så tilfælde vil
tekstfilerne ikke blive slettet og overførselen kan foretages påny.
14.14.9. Status under
overførselen.
Under
overførselen gives ingen statusmeddelelser på skærmen, da dette ville tvinge
brugeren til at skifte til overførselsskærmen for at se en sådan meddelelse,
dvs. overførselen ville stoppe indtil dette blev gjort.
Trykker man
ESCape under overførselen vises en status-linie nederst på skærmen.
14.15. Installation
af PC‑integration.
RAPGEN PC
modulerne kopieres til samme disk, som RAPGEN er installeret på iflg. følgende
libr.liste:
Figur 20 PC libr liste.
LOGICAL UNIT :0 29.07.88 14:43:39
FILE NAME USER
BLOCKS PART./ APPL. VERS
SPC DATE HBA
* #REC. AREA FMVVTM
INF
D
DMSPC 6 24
0 0 0 0 0
1 29.07.88 162576
D
DMSPC.CLEAN 6 16
0 0 0 0 0
1 29.07.88 117303
D
DMSPC.CLEAN1 10 16
0 0 0 0 0
1 28.07.88 160400
D
DMSPC.LIB 48 2
1 0 0 0 0
0 29.07.88 37631
D
DMSPC.MESS 10 22
21 0 0 0 0
0 28.07.88 162627
D
DMSPC.MESSE 48 22
21 0 0 0 0
0 29.07.88 162751
D
DMSPC.MESSY 48 22
21 0 0 0 0
0 29.07.88 162777
D
DMSPC.SYS 10 19
0 0 0 0 0
1 28.07.88 162675
D
DMSPC.TEXT 6 4
1 0 0 0 0
0 29.07.88 105567
D
DMSPC.TEXTE 48 4
1 0 0 0 0
0 29.07.88 37624
D
DMSPC.TEXTY 48 4
1 0 0 0 0
0 29.07.88 117323
‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑
TOTAL : 155
3766 FREE BLOCKS ON LU NO. 0
14.16.1.
Installationsprogrammet DMSPC.SYS.
Herefter kaldes programmet DMSPC.SYS hvor lu for PC‑print
tekstfilerne angives. Programmet kan kaldes enten fra scope eller med PCSYS
kommandoen i RAPGEN.
Figur 21 DMSPC.SYS installation.
DMSPC RAPGEN/DATAMASTER RAPPORTGENERATOR
DISK (LU) FOR PC.TEXT‑FILER: 04
LØBENR.FOR PC‑TEXTFILER: 0000
OK (Y/N) ? Y
Her kan angives
disk og løbenummer for PC-printer tekstfilerne. Programmet kan kaldes senere
hvis man ønsker at ændre disse informationer.
Programmet vil
oprette filen 00/DMS.PCQUEUE hvis denne ikke findes samt alle PC-printer
definitionerne DMS.P.LOTUS mm. Også de skærmafhængige filer DMSPCxx.BAT
oprettes.
14.16.3. Installation
på den enkelte PC.
På hver PC skal overførsels‑programmet DMSPC
placeres, denne .BAT fil indeholder skærmnr. for PC‑en. Kald programmet:
PCMODTAG
DMSPC.BAT lu/DMSPCXxx.BAT
på PC'en, hvorved denne fil vil blive overført såsnart
man vælger SENDE/MODTAGE funktionen i PCLink selektoren.
Figur 22 Styrefilen DMSPC06.BAT
ECHO OFF
DCU
DEL DMSPCX06.BAT
RDAC get DMSPCX06.BAT 8870
04/DMSPCX06.BAT %%
RDMAIN S 1
DMSPCX06.BAT
14.17. Nulstilling
af PC-logfilen.
Efter ca. 80
overførseler til en PC skal man nulstille dennes logfil. Dette gøres ved på
PC'eren at taste:
RDMAIN C 1
og herefter
aktivere SENDE/MODTAGE funktionen i PCLINK selektoren. Kort efter kan man
afbryde PC‑programmet, hvorved logfilen er resat.
14.19. PC‑printerstyring.
En PC‑printer
fungerer i rapportgeneratoren som en hvilken som helst anden printer, der i
denne version af RAPGEN automatisk vil blive styret via en printerstyringstabel
oprettet med DMS.RAP.PRT (se manualen om denne).
Når RAPGEN er
installeret med PC‑integration vil der i DMS.RAP.PRT fremkomme en ekstra
side 2:
Figur 23 DMS.RAP.PRT
PC printer styring.
DMS.RAP.PRT VEDLIGEHOLDELSE AF PRINTERTABELLER $CHART
OKTALT
UDSKRIV OVERSKRIFT OG TOTALER
(Y/N): N
ANTAL PRINTLINIER PR.SIDE: 7999
START SIDENR.(1):
PC INTERFACE KODE (L/S): mc ‑r 1 2
TEXTFIL EXTEND FLAG (8/!/+): !
med følgende information:
14.20.1.
12.10.1. Overskrift og
totaler.
Sættes dette
felt til N dannes ikke overskrift eller totaler på rapporten, hvilket man
normalt ikke ønsker ved overførsel til PC.
14.20.3.
12.10.2. Antal
printlinier pr side.
Hvis man angiver
7999 her udføres aldrig sideskift.
14.20.5.
page \* arabic2312.10.3. Start sidenr.
Man kan om
ønsket angive et start sidenummer for rapporten her.
14.20.7.
12.10.4. PC interface
kode.
Dette felt
kontrollerer EXPORT kommandoen. Er feltet blankt fungerer printeren normalt.
Y bevirker
nummerering/dannelse af tekstfiler for PC andet bevirker at der desuden dannes
EXPORT ordre.
Export
programmet på PC'eren kræver en række parametre såsom input fil, output fil og hvilke kolonner de enkelte
felter er placeret i. Dette danner RAPGEN automatisk.
Export
transformerer tekstfilen til en fil der passer til LOTUS, CHART, MULTIPLAN etc.
henholdsvis spreadtekst, tekstbehandling m.m., og kræver således een/flere
parametre der fortæller hvilket format man ønsker.
Det er denne
parameter der angives i PC integration feltet, fx. '1' for LOTUS
tekstbehandling eller 'mc ‑r 1 10' for MULTIPLAN. Herved dannes export
kommandoer med fx. EXPORT ‑c 1... eller EXPORT ‑c mc ‑r 1
10....
14.20.9.
date \@ "MMMM d, yyyy"januar 10, 200812.10.5. Textfil extend
flag.
Dette felt skal
være blankt for en normal printer og ! for en PC-printer.
! bevirker en ny
tekstfil oprettes, en eventuel bestående med samme nummer overskrives.
B bygger en ny
fil, hvis en fil med samme nummer findes stopper programmet.
+ bygger en ny
fil, hvis denne ikke findes, og tilføjer til en bestående fil.
14.20.11.
12.10.6. PC-tekstfil
suffix.
PC-files vil få
navnet DMSxxxxx.ttt, ttt tagen fra det LOGISKE printernavn iflg. side 2 i
printer kontrol tabellen.
15.
13. Print
linie kontrol.
I denne version
af RAPGEN er genereringen af PRINT linier i rapportprogrammerne og print
rutinerne omarbejdet af hensyn til indførelse af nye funktioner i
rapportgeneratoren.
Denne rent
tekniske omstrukturering vil ikke få indflydelse på allerede definerede
rapporter, disse kan anvendes uden problemer.
Dog vil brugeren
bemærke, at print på skærmen er ændret:
Rapporter med
linier længere end 80 karakterer vil nu kun vise 79 karakterer for hver linie,
således at der fremkommer et pænere skærmbillede. Dog kan man ved at tænde
lampe 3 (R3) få vist hele linien, dvs. på 2 skærmlinier, som i gamle dage.
Breve, der
anvendes som forespørgselsprogrammer på skærm, vil ikke længere vise faste
ledetekster i baggrund og felter i forgrund. Både ledetekster og felter vises i
forgrund for hver enkelt record, da brugeren nu er i stand til at styre printet
individuelt for hver record under kørselen.
Dog er der
mulighed for at angive den gamle form for print, se senere under afsnittet
forespørgselsprogrammer.
16.1. Struktur ved
print generering.
Tidligere
versioner af RAPGEN genererede direkte basic programlinier med PRINT af
overskrifter og PRINT USING af de forskellige felter på rapporten.
TAB positioner
for tabulering blev anvendt alle steder hvor dette med fordel kunne gøres,
således at programmet blev mindst muligt og hastigheden størst mulig på
tidligere operativsystemer.
Fra og med denne
version dannes printet nu som en tekstlinie, hvorefter denne udskrives med en
enkelt PRINT sætning. Alle TAB positioner er således fjernet for at give den
bedste hastighed på de nyere operativsystemer samt for at åbne mulighed for nye
printfunktioner.
16.2.1. Fordelen ved
denne nye struktur.
Herved fås en
række fordele og nye funktioner:
‑ Print
hastighed øges da TABS fjernes.
‑ Skift
af skrifttype blev ikke korrekt håndteret af NIROS samtidig med TABs.
‑ Ny ¬
funktion for at trække felter sammen.
‑
Gåseøjne (") er nu tilladt i teksten.
‑ Breve
kan nu indeholde mere end 99 felter.
‑ Linier
over 80 karakterer kan afkortes for pæn visning på skærm.
‑ En lang
TOTAL tekst forskyder nu ikke resten af total felterne til højre på linien.
‑
Stopkarakterer i tekstfelter trækker ikke resten af felterne til venstre på
linien.
16.3. Ny print
linie kontrol.
Tidligere var
udskriften af overskrift, linier og totaler fastlåst på en rapport, da
styringen heraf blev genereret som et fast basic program.
I denne version
genereres en subrutine for opbygningen af hver enkelt printlinie. En overordnet
rutine styrer herefter at f.eks. overskriften skal opbygges af linie 1‑4.
16.4.1. Nye funktioner
pga. denne struktur.
‑
Brugeren kan nu med LINIE kommandoen i funktion 7 ændre, hvilke linier der
printes for overskrift m.v.
‑ Med
beregningsfunktionen PRINT (1‑4) kan man printe enhver linie på ethvert
tidspunkt af kørselen.
‑ Med
beregningslinien PRINT (L=7) kan man udskrive forskellige linietyper på en
rapport.
‑ Printet
kan styres fuldstændigt med PRINT kommandoen i beregningerne, hvorved man
danner sin egen subrutine
på samme måde
som FØRST/NORMAL/EFTER danner selvstændige beregningssektioner.
‑ Herved
kan udskriften af kontoudtog, fakturaer m.v. nu styres uden brug af READH
kommandoen.
16.5. Print linie
kontrol.
Ved definition
af en ny rapport med funktion 1 fastsætter rapportgeneratoren hvilke linier,
der skal udskrives som overskrift, normal printlinie og totalprintlinie.
For en standard
rapport med een linie med felter bliver overskriften således linie 1‑4,
printlinien linie 5 ligesom totallinien.
Tidligere var
der ikke mulighed for at ændre dette for en rapport, man var nødt til at
definere en helt ny rapport forfra.
16.6.1. LINIE
kommandoen.
I funktion 7
(ændring af rapport/brev) kan man nu anvende LINIE kommandoen til at ændre
ovenstående.
Når man i LINIE,
POS: indtaster LINIE kommandoen vil skærmen rulle een linie op og på nederste
del vises følgende:
Figur 24 LINIE kommandoen.
SKAL NUL UDSKRIVES (J/N) ? J
SIDESKIFT ANTAL LINIER FØR BUND
? 3
OVERSKRIFT PRINT LINIERNE: 1‑5
NORMAL PRINT LINIERNE: 7‑7
TOTAL PRINT LINIERNE: 7‑7
DETAIL(READH) PRINT LINIERNE: 6‑6
16.6.2.1. Skal Nul
udskrives (J/N).
Her kan man
ændre nulundertrykkelse på breve, også selv om spørgsmålet herom ikke bliver
stillet ved definition af et nyt brev.
16.6.2.3. Sideskift antal
linier før bund.
RAPGEN vil
normalt udføre sideskift 3 linier før siden er fuld.
Ved oprettelse
af en rapport kan man angive antal linier på formularen som f.eks. 51,5 hvorved
sideskift udføres 5 linier før siden er fuld.
Denne værdi kan
ændres her.
16.6.2.5.
Overskriftslinier.
Dette er det
interval af linier, der udskrives som overskrift på hver side.
Her og ved de
følgende spørgsmål kan man angive et andet interval af linier om ønsket. Kun
eet interval kan angives hvert sted, f.eks. 1‑4, man kan ikke sige at
linie 1, 7, 15 skal udskrives.
16.6.2.7. Normal print
linier.
Her kan man for
eksempel ændre en rapport, der kun er defineret med een printlinie, til at
udskrive flere linier pr. record.
16.6.2.9. Total print
linier.
Rapportgeneratoren vil normalt anvende de samme linier til print af
totaler som til print af de normale linier.
De første
positioner fra venstre på den første totallinie vil blive overskrevet af total‑navnet.
Eventuelle felter i disse positioner bliver altså overskrevet.
Det er nu muligt
at angive andre totallinier end normallinier på en rapport. Totalerne kan altså
nu udskrives med et andet layout end de normale linier.
Det må dog
bemærkes, at nulundertrykkelse aldrig finder sted for totallinier, ligesom kun
felter, der er angivet som totalfelter, udskrives på en totallinie (brug evt. ‑15
i FELTNR DER SKAL TOTALISERES for blot at udskrive felt 15 på linien).
16.6.2.11. Detail (READH)
print linier.
Dette spørgsmål
fremkommer kun hvis LINIE kommandoen er anvendt ved definition af rapporten med
funktion 1.
Det
linieinterval, der angives her, vil blive udskrevet hver gang beregningen
READH(XX) indlæser en ny record, for eksempel ved skift at kundenr. for en
række posteringer.
Herved danner
disse linier en overskrift for de efterfølgende poster.
16.6.3. Breve.
Hvis rapporten
er defineret som et brev fremkommer kun spørgsmålene om nul skal udskrives samt
normal print linier.
Som en ny
funktion kan man altså nu angive nulundertrykkelse på breve.
16.6.5.
Forespørgselsprogrammer.
Hvis en rapport
defineret som brev skal anvendes som forespørgselsprogram uden nogen form for
speciel printerkontrol kan man angive:
SKAL
NUL UDSKRIVES (J/N) ? JS
S som anden
karakter vil optimere printet med henblik på skærm istedet for med henblik på
udskrift på printer, og ledetekster vil blive vist i baggrund (faktisk anvendes
den 'gamle' form for optimering, der er hurtigere på skærmen).
Sådanne
rapporter kan naturligvis stadig udskrives på printeren, men det er ikke muligt
at anvende nogen af de nye printfunktioner.
16.7. Styring af
print via beregningerne.
Man kan nu styre
udskriften via beregningerne i funktion 4 ved hjælp af den nye PRINT kommando.
PRINT kommandoen
kan anvendes på 3 forskellige måder:
1. Man kan
bestemme hvilke linier, der skal printes, næste gang rapportgeneratoren vil
udskrive noget.
2. Man kan
overtage fuld kontrol over printrutiner.
3. Man kan
printe linier direkte her og nu.
Funktion 1 og 3 kan eventuelt kombineres.
PRINT
kommandoerne i beregningerne vil altid have prioritet over de værdier, man har
angivet med LINIE kommandoen i funktion 7 og således overskrive/ændre disse.
16.8.1. Angivelse af
printlinier.
Hvis man angiver
beregningslinien
PRINT
(L=7‑8)
vil linierne 7 og
8 blive udskrevet næste gang en record skal printes.
Printet sker
ikke direkte men er kun en angivelse af, at efter selektion og beregninger skal
disse linier udskrives.
L =
angiver at disse linier anvendes ved næste print.
Man kan anvende
H=, N=, T= og D= for overskrift, ny side, totaler og detail (READH) udskrift
næste gang.
16.8.2.1. Linie
specifikationer.
Man kan angive
en enkelt linie:
PRINT
(L=7)
eller et interval
af linier:
PRINT
(L=7‑9)
eller en
kombination af disse:
PRINT
(L=7,15‑20,9,11‑12)
16.8.2.2.1. +xx blanke linier.
Man kan indsætte
et antal blanke linier med +xx.
PRINT
(L=7,+2,8)
vil udskrive linie
7, 2 blanke linier, og herefter linie 8.
16.8.2.2.3. :xx gå til linie xx
Man kan også gå
frem til en bestemt linie på siden:
PRINT
(H=:10,1‑3)
vil bevirke at overskriften starter på linie nr. 10.
Bemærk at hvis
man forsøger at gå baglæns til et linienr. der er mindre end det nuværende vil
man få en ny side.
Ny side
funktionen N= skal altid normalt indeholde :1 for at fremprovokere et
sideskift.
16.8.2.3. PRINT (L=linier.
L= vil sætte
printlinierne for udskrift af næste record.
16.8.2.4.1. Betingede print linier.
Man kan anvende
IF sammen med PRINT kommandoen for at få forskellige print afhængig af en
record type:
IF
#51=1 PRINT (L=7)
IF
#15<>1 PRINT (L=8‑9)
16.8.2.5. PRINT (T=total
linier.
PRINT
(T=17)
angiver at næste print af en totallinie udskriver linie
17.
Denne funktion
anvendes normalt kun i forbindelse med beregnede totaler på en rapport.
Bemærk at total
teksten (f.eks. GRANDE TOTAL) kun udskrives på den første linie angivet i
funktion 7 som totallinie. Ved ændring af total printet må man selv styre denne
tekst.
16.8.2.7. PRINT (D=detail
(READH) linier.
Denne funktion
har kun betydning hvis rapporten indeholder READH i beregningerne.
READH fungerer
som en normal READ, blot udskrives en overskrift hver gang en ny record læses,
dvs. f.eks. et kundenr. skifter.
PRINT
(D=+2,7) sætter linierne for denne overskrift.
Når man
definerer en ny rapport med funktion 1 vil man normalt anvende LINIE kommandoen
her for at fortælle rapportgeneratoren, hvilke linier, der skal printes som
overskrift for READH kommandoen.
Hvis man i stedet
styrer dette ved hjælp af
PRINT
(D= og
PRINT
(L=
behøver rapporten
ikke nødvendigvis være defineret med brug af LINIE kommandoen.
16.8.2.9. PRINT (H=
overskrift linier.
PRINT (H=1‑3)
vil definere overskriften på rapporten som linie 1 til 3.
PRINT (H= er
forskellig fra de andre PRINT kommandoer, det er kun relevant at anvende denne
en gang i beregningerne.
Overskriften sat
med PRINT (H= fastsættes ved start af rapporten, som om denne linie var givet
som en FØRST beregning. Hvis man indtaster flere PRINT (H= linier i
beregningerne vil det altid være den sidste der bliver gældende under alle
omstændigheder, også selv om denne eventuelt er betinget af IF.
Med PRINT (H=
kan man også få mere luft foroven på siden ved at indsætte blanke linier,
f.eks.:
PRINT
(H=+3,1‑4)
Overskrifter kan
også deaktiveres fuldstændigt med:
PRINT
(H=)
16.8.2.11. PRINT (N=
sideskift linier.
Med PRINT (N=
definerer man hvad der skal ske i forbindelse med sideskift.
Angivelsen af
disse linier skal her følge en speciel syntax:
PRINT
(N=3,:1,1‑4)
det første tal
efter N= angiver frie linier sidst på siden, her udføres altså sideskift 3 linier
før bunden.
Det er
nødvendigt at PRINT (N= indeholder :1 eller :xx for rent fysisk at få skiftet
side. Til gengæld kan man godt udskrive bundlinier på hver side med f.eks.
PRINT (N=3,21‑22,:1,1‑4).
Hvis man ikke
følger denne regel med :1 kan der opstå meget mystiske sideskift, specielt
gentaget sideskift for hver linie.
16.8.3. Bund linier.
Man kan angive
et antal bund‑linier i forbindelse med PRINT (N= , f.eks.:
PRINT
(N=6,:68,10‑11,:1,1‑4)
6 linier før siden er fuld (linie 66 hvis formularen er
72) udskrives linierne 10 og 11 på printlinie 68 hvorefter overskriftslinierne
1‑4 udskrives på næste side.
Når
rapportgeneratoren udfører N= kommandoen for skift til ny side er der ingen
kontrol af sidehøjden. Man kan således skrive bundlinier nederst på siden, men
skal samtidig selv passe på, at man ikke skriver ned på næste side, da der så
vil forekomme dobbelt sideskift.
16.9. PRINT total
styring af udskriften.
Hvis man i
beregningerne indtaster kommandoen
PRINT
alene vil de
efterfølgende beregningslinier erstatte selve print rutinen i rapporten.
Hvis der ikke
indtastes beregningslinier til styring af udskriften herefter vil intet blive
udskrevet på rapporten med undtagelse af den allerførste overskrift.
PRINT kommandoen
fungerer på samme måde som FØRST, NORMAL, EFTER og SIDST kommandoerne, dvs. de næstfølgende
beregninger udføres på et bestemt sted i rapporten.
Man kan således
styre f.eks. udskrift af kontoudtog ved at indlægge PRINT linier i en
START/NEXT/OM løkke hvor man gennemlæser en række transaktioner, se nedenfor.
Når først selve
kommandoen PRINT er udstedt vil enhver PRINT (L= og lignende beregningslinie
bliver ignoreret, da al print nu styres af de efterfølgende beregningslinier.
PRINT
beregningerne udføres naturligvis efter alle normale beregninger og efter
selektioner på samme måde som rapportgeneratorens normale print rutine, ligesom
PRINT beregninger ikke udføres under sortering.
16.10.1. PRINT (x‑y)
print linier.
Beregningslinien
PRINT
(7)
vil udskrive linie 7 fra rapporten i det øjeblik
beregningslinien mødes, i modsætning til de tidligere beskrevne funktioner som
PRINT (H= m.v., der definerer hvilke linier, der næste gang skal anvendes til
udskrift, linier eller andet.
Beregningslinien PRINT (L=7‑8)
vil have præcis
samme virkning som linierne:
PRINT
PRINT
(7‑8)
da den første
fortæller rapportgeneratoren at næste gang en record skal udskrives skal linie
7 og 8 printes, i det andet tilfælde danner man selv en printrutine, der
udskriver linie 7 og 8.
16.10.3. Kombination af
print funktioner.
Man kan angive
flere print funktioner i en PRINT linie:
PRINT
(7‑9,N=3,:1,1‑3)
vil udskrive linie
7 til 9 og såfremt der skal udføres sideskift (3 linier før siden er fuld) udskrives linie 1 til 3
som overskrift på den næste side.
En kombination
som
PRINT
(L=7‑8,N=3,:1,1‑3)
er også tilladt
med L= funktionen og er blot en sammentrækning af de to linier.
PRINT (L=7‑8)
PRINT (N=3,:1,1‑3)
16.10.5. START/NEXT/OM
i kontoudtog.
Hvis man
definerer en rapport (eller et brev) på et kundekartotek DK kan man udskrive
posteringerne fra posteringskartoteket DB ved hjælp af PRINT kommandoen.
Alle normal
beregninger, selektioner og sortering udføres på hovedkartoteket DK alene.
Beregningerne
kan f.eks. være:
PRINT print
styring aktiveres
PRINT
(:1,1‑20) brevhovedet
udskrives
START
(DB) start
læsning poster
NEXT
(DB) næste
postering læses
PRINT
(21) udskriv
en posteringslinie
OM
(DB) fortsæt
med næste post
PRINT
(:50,30‑40) udskriv
bund
Disse beregninger
kan udbygges med sideskiftstyring, ialt saldo og debit/kredit kolonne.
PRINT
#PP=0
Sæt sidenr. 1
PRINT
(:1,1‑20)
#53=0 Nulstil
total saldo
START
(DB)
NEXT
(DB)
#51=0
Nulstil debit/kredit
#52=0
IF
DB#8<0 LET #51=DB#8 Dan
debit/kredit
IF
DB#8>0 LET #52=DB#8
#53=#53+DB#8
Dan total saldo
PRINT
(21,N=20,:60,61‑62,:1,1‑20,22) Styring
af fortsat side
OM (DB)
PRINT
(:50,30‑40)
16.11. Print i
SIDST beregninger.
Man kan anvende
PRINT kommandoen i SIDST beregninger til at udskrive en slutside for rapporten.
Denne slutside
kan f.eks. indeholde totaler opsamlet via beregningerne og således bruges til
totaler i forbindelse med breve, eller blot være en blank side for lettere at
kunne adskille output.
16.13.
Sammentrækning af felter med ¬.
Hvis man i et
brev udskriver et navnefelt på 32 karakterer vil dette blive udskrevet med en
fast længde.
Navnet OLE vil altså efterfølges af 29 blanke.
Hvis man
indsætter en pil baglæns (¬) efter feltnummeret vil resten af linien blive trukket
til venstre og således stillet tæt op mod feltet afhængig af navnets aktuelle
længde.
#3 HAR
BETALT udskrives som
OLE HAR
BETALT
#3 ¬ HAR
BETALT udskrives som
OLE HAR BETALT
16.14.1. Sammentrækning
af felter med ¬¬.
På samme måde
kan man trække numeriske felter til venstre, således at et stort format, f.eks.
9,2 justeres iflg. det aktuelle tal.
HAR BETALT
#24 KR udskrives som
HAR BETALT l00.00 KR
HAR BETALT ¬¬#24 KR udskrives som
HAR BETALT
100.00 KR.
16.14.3. ¬> funktion for stop af ¬ funktion.
Med ¬ i
funktion 7 kan man flytte felter tæt på hinanden (se kapitel 13 afsnit 6).
Denne funktion kan nu ophæves igen med ¬> senere på linien. Fx:
#3 ¬ HAR BETALT ¬>DATO: #PD udskrives som:
OLE HAR
BETALT
DATO: 31.03.92
16.15. R3 Udskrift
af lange linier på skærm.
Hvis man kører
en bred rapport på skærmen vil linierne blive skåret ned til 80 karakterer for
at få en pæn visning.
Hvis man tænder
lampe R3 vil linierne blive vist som to linier på skærmen, således at man også
kan se tallene ude til højre.
16.17. PRT
Kommandoen på breve.
Når man kører
breve på skærmen kan man ved at indtaste PRT få udskrevet det viste brev i sin
fulde længde på printeren.
Såfremt PRT
kommandoen er knyttet til en bestemt funktionstast i TAMOS kan man også anvende
denne tast.
16.19. Nye
kommandoer i funktion 7 - ændring af rapport/brev.
Når man i
funktion 7 står i linie,position kan man anvende følgende kommandoer:
NAVN Rettelse
af rapportnavn, man behøver ikke længere kopiere rapporten for at rette navnet.
BRUGER Rettelse
af rapportens brugernavn.
INS/DEL Kan
anvendes som IL/DL før til indsættelse/sletning af linier, der spørges om antal
linier.
FORMAT Kan
også anvendes til ændring af frifelt navne og formater for tekstfelter
PUT Danner
en tekstfil med rapportdefinitionen. Med
GET Kan
man herefter hente denne eller dele heraf ind i en anden rapport.
R1 Tændes
lampe 1 kan man fortsætte med at skrive tekst, man går først til LINIE,POS når
man taster END.
16.21.
13.11. PRINTER Styring af op til 9 udskrifter fra een
rapport.
Med denne
funktion kan man fra een rapport udskrive flere lister samtidig på samme eller
forskellige printere.
Dette kan
anvendes, hvis man skal gennemløbe store datamængder for at producere flere
udskrifter, der alle bygge på samme data. Herved spares væsentligt på
gennemløbstiden.
Et typisk
eksempel er rykkerbreve, hvor man også ønsker en journal over de skrevne
rykkere. Alternativt kan man naturligvis også opbygge et selvstændigt
rykkerkartotek og skrive ud fra dette.
Et andet
eksempel er simpel form for sortering, hvor man ønsker breve opdelt i et mindre
antal bunker, svarende til hver sin udskrift.
Man kan i RAPGEN
anvende op til 9 printere samtidig, dvs. producere 9 forskellige udskrifter i
samme kørsel. Dog kan man kun på hovedprinteren for rapporten anvende den
udvidede printerstyring med @-styrekarakterer.
16.22.1. Definition
(åbning) af extra printere.
En extra printer
for en rapport skal først defineres (åbnes), hvilket gøres ved at indlægge en
FØRST beregning:
FØRST
PRINTER
(2,"$LPT")
Printerne nummereres som nr. 1 for hovedprinteren og op
til 9. Samme printer, fx. $LPT, kan åbnes flere gange, såfremt man anvender
SPOOL-systemet, idet de extra udskrifter så blot vil vente i køen, til
rapporten er færdig. Med:
PRINTER
(2,"A")
kan man dirigere et print direkte til en tekstfil helt
uden om spoolsystemet. RAPGEN vil sætte DMS- foran tekstfilnavnet for at undgå
konflikt med andre filer, "A" bliver altså til filen DMS-A, filen
placeres på samme disk som rapportgeneratoren. 7/A bliver til 07/DMS-A. Glemmer
man at åbne printer 2 udskrives til filen DMS-2
I forbindelse
med printer-åbningen kan man også angive printer parametre:
PRINTER
(2,"$RPL0","000131072")
angiver start print position 0, sidste print position 131
og 72 linier på siden.
Ved kørsel på
skærm vil det kun være udskriften på printer 1, der kommer på skærmen.
Udskriften på den/de andre printere vil komme på den dertil definerede printer.
16.22.3. Opdeling af en
liste på to printere.
Med PRINTER (2)
kan man skifte alt følgende print til printer nummer 2. Med følgende
beregningslinier:
kan man således få opdelt listen i 2.
Figur 25 Opdeling af liste på to printere.
FØRST
PRINTER
(2,"A") /* ÅBNING
AF PRINTER 2
NORMAL
PRINTER (1) /* NORMAL UDSKRIFT PÅ PRINTER
1
IF #7>=2 PRINTER (2) /* PRINTER 2 HVIS VAREGRUPPE >=2
Med PRINTER
(2,"1-4","5","5") kan man samtidig med skift af
printer til nr. 2 sætte først overskrifts-linier (H=1-4), herefter printlinier
(L=5) og endelig totallinier (T=5).
16.22.5. Breve med
journal.
For at få
automatiske totaler på journalen, vender man problemstillingen om og definerer
en journal med brev. Først defineres en almindelig liste med funktion 1, dette
bliver journalen. Herefter indlægges brevteksten med funktion 7 fx. fra linie
10 og fremefter på rapporten, og endelig beregninger for at styre udskriften:
Figur 26 Breve med journal.
1...;....10...;....20...;....30...;....40...;....50...;....60...;....70...;....8
DATO ##,##,## - JOURNAL MED BREV.
- PR.##,##,## SIDE #### 1
---------------------------------------------------------- 2
LEV.NR. NAVN
VALUTAKODE SALDO 3
========================================================== 4
xxx xxxxxxxxxxxxxxxxxxxxxxxx ## ---,---,--#.## 5
6
7
8
9
København ##,##,##
10
Kære Hr.xxxxxxxxxxxxxxxxxxxxxxxx 11
12
De skylder os kr.
---,---,--#.##. 13
MVH.
14
Chris Hanson. 15
....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,..
1 PRINT
2 PRINTER (2)
3 PRINT (:1,10-20)
4 PRINTER (1)
5 PRINT (5)
6
16.22.7. Udskrift af 2
samtidige lister.
PRINT
(L=>1,5,>2,15)
sætter den normale printlinie (L=) til linie 5 på printer
1 og linie 15 på printer 2. Der vil således hver gang der udskrives en linie på
printer 1 også udskrives en linie på printer 2.
>printernr.1-9 kan anvendes i forbindelse med alle
printerkommandoerne, PRINT(H=, L=, N=, T= og direkte print. Man kan således
også sætte forskellige overskrifter og totallinier for to printere.
I nedenstående
eksempel er en rapport defineret i to linier, hvorefter både overskrifter,
linier og totaler adskilles for to forskellige printere ved hjælp af
beregningerne.
Figur 27 Udskrift af to samtidige lister.
DATO ##,##,## - FLERE PRINTERE
- PR.##,##,## SIDE ####
------------------------------------------------
NR NAVN SALGSPRIS KØBSPRIS
NR NAVN KØBSPRIS DATO LEV
================================================
xxxx xxxxxxxxxxxxxxxxxxxx ######.## ######.##
xxxx xxxxxxxxxxxxxxxxxxxx ######.## ##,##,## xxx
FØRST
PRINTER (2,"A")
/* ÅBNING AF ANDEN PRINTER
PRINT (H=>1,1-3,5,>2,1-2,4-5)
/* FORSKELLIGE OVERSKRIFTER PÅ PRINTERNE
PRINT (T=>1,6,>2,7)
/* FORSKELLIGE TOTALER PÅ PRINTERNE
NORMAL
PRINT (L=>1,6) /*
ALTID UDSKRIFT PÅ PRINTER 1
IF #3>100 PRINT (L=>1,6,>2,7)
/* HVIS PRIS >100 OGSÅ PÅ PRINTER 2
DATO 27.09.92 ‑ 1 ‑
PR.27.09.92 SIDE 1 DATO 27.09.92 ‑ 2 ‑ PR.27.09.92
SIDE 1
‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑ ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑
NR NAVN SALGSPRIS KØBSPRIS
NR NAVN KØBSPRIS DATO LEV
===========================================
==============================================
0101 CHOKOLADESTÆNGER
2,00 1,50 0102 STOR FRÆSEMASKINE 10000,00
1.01.85 100
0102 STOR FRÆSEMASKINE
20000,00 10000,00 0110 AUTOBUSSER 60000,00 15.12.86 123
0110 AUTOBUSSER
100000,00 60000,00 1001 PENGE,STORE SEDLER 500,00 31.12.86 205
1001 PENGE,STORE SEDLER
1000,00 500,00 1005 STANSEMASKINE 1500,00
1.06.86 100
1005 STANSEMASKINE 2000,00 1500,00
2001 KREDITKORT
20,00 10,00 72021,50
2002 ID‑KORT
25,00 10,00
7 TOTAL 123047,00 72021,50
Bemærk at
totalen på anden liste omfatter ALLE varer, da disse jo faktisk er udskrevet på
een af listerne. Ønsker man forskellige totaler må man beregne og udskrive
frifelter istedet.
17.
Subfunktioner.
Subfunktioner i
RAPGEN erstatter de tidligere LOAD funktioner i beregningerne der kunne være
lidt komplicerede at håndtere. LOAD funktionen kan dog stadig anvendes.
En subfunktion
anvendes i beregningerne som en funktion med en række parametre, f.eks.:
#47 = CHEX
(#48,#49)
(for beregning af checkciffer modulus 11) istedet for den
tidligere T3=..., T2$=...,LOAD CHEX,#47=T2$.
Rapportgeneratoren vil selv oversætte denne ene beregningslinie til den
mere komplicerede form og behandle funktionen som en basic subrutine. Heraf
navnet subfunktion, subrutine internt, men funktion udadtil overfor brugeren.
Herved opnås
mulighed for udbygning af funktionerne i rapportgeneratoren med yderst
komplicerede rutiner, der tidligere ville have krævet mange liniers indtastning
at aktivere. Desuden kan der på een installation indlægges specielle
subfunktioner uden at ændre i rapportgeneratoren selv.
Subfunktioner
kan anvendes direkte i selektionerne på en rapport, foruden flere subfunktioner
kan indgå i samme beregningslinie, fx:
IF
WORKD(#DD,#15)>120 LET #63=NUMBER(#17)
En subfunktion
kan styre praktisk taget alt i en rapport, f.eks. kontrollere start/stop værdier,
skrive på diskettefiler, password beskytte/ubeskytte rapporter eller udføre
komplicerede beregninger, der er specielle for installationen, men ofte skal
anvendes i rapporter og derfor med fordel skrives af en programmør.
For at undgå
konflikter med nuværende som kommende basic funktioner er navnet på en
subfunktion mindst 4 karakterer (og kan ikke indeholde cifre).
Opbygningen af
subfunktioner er detaljeret beskrevet i installationsmanualen.
Rapportgeneratoren vil løbende blive udbygget med nye subfunktioner
efterhånden som behovet herfor opstår, installation af disse vil ikke kræve
total udskiftning af rapportgeneratoren, men kun kopiering af den enkelte
tekstfil, der ligger til grund for den pågældende subfunktion.
18.1. CCODE
Læsning af DATAMASTERs feltcheck tekst.
#50= CCODE
(#71,"LE07")
Sætter felt
tekstfeltet #50 lig med DATAMASTERs checkkodetekst defineret for kartoteket LE
felt 7, idet værdien angivet i felt #71 bruges ved opslaget.
18.3. CHAIN Start
af næste rapport.
Med CHAIN kan
man opbygge en kæde af rapporter. Beregningslinierne:
SIDST
CHAIN (13)
vil starte rapport 13 når denne rapport er færdig.
Start
parametrene (DATOER, START FRA, STOP VED og evt. DATA) vil være de samme som
for denne rapport, medmindre man angiver andet i forbindelse med CHAIN
kommandoen.
CHAIN
(13,010192,311292) vil starte rapport
13 med dags dato 010192 og pr.dato 311292.
CHAIN
(13,,,4711,4712,3) vil starte rapport
13 med samme datoer, fra 4711 til 4712 med data1=3.
CHAIN
(13,,,SORT) kan anvendes til at starte næste sorterede rapport med samme
sorteringskartotek, se sortering.
18.5. CHECK
Beregning af OCR‑giro checkciffer.
Formål: Ved
udskrift af girokort med OCR linie eller ved dannelse af disketter til
postgirokontoret kan checkciffer dannes med denne rutine.
Rutinen svarer til/erstatter den tidligere anvendte
funktion LOAD CHECK.
Hvis man for
eksempel har et tekstfelt #47 på 16 karakterer, hvor man i de første 15 har
placeret kunden, eventuelt fakturanr. eller andet, kan det 16.ciffer dannes
med:
#47=CHECK(#47)
18.7. CHEX
Beregning af checkciffer modulus 11.
Denne rutine
modsvarer CHECK subfunktionen, blot beregnes checkcifferet modulus 11 istedet
for modulus 10, og man er i stand til at angive vægte for de enkelte cifre.
Modulus 11
checkciffer anvendes ved personnumre og overfor banker, fx. PBC.
#47=CHEX(#47,"01020304")
vil som CHECK
påsætte et extra checkciffer som sidste karakter i felt 47.
2. parameter "01020304" angiver vægtene for de
enkelte tal, 2 cifre pr. tal.
Se også
beskrivelsen af funktionen LOAD CHEX.
18.9. COPIES Antal
kopier af udskriften, print prioritet og papirkode.
Med COPIES (1)
kan man få en extra kopi af udskriften, maximalt 99.
Når RAPGEN møder
COPIES kommandoen vil printeren blive lukket og åbnet igen, idet kopierne
håndteres ved hjælp af selve spoolsystemet og således ikke belaster selve
rapporten. For ikke at åbne og lukke printeren hele tiden, hvorved der også
kommer flere jobs i spoolkøen, bør COPIES derfor normalt indlægges som en FØRST
beregning:
FØRST
COPIES (3)
giver ialt 4 eksemplarer.
Det er dog også
muligt at lade et felt i kartoteket styre, hvor mange kopier man ønsker:
EFTER
COPIES (#17)
vil give det antal kopier, der er angivet i felt 17. Man
skal dog være opmærksom på, at der kan være en begrænsning i operativsystemet
på, hvor mange print-job spooleren kan indeholde, før udskrift tvinges i gang
uden spool.
I forbindelse
med COPIES kan man yderligere specificere print-prioritet for rapporten:
COPIES
(0,"S") vil suspendere
udskriften indtil denne startes i TAMOS-spoolkøen.
COPIES
(0,"H") giver høj prioritet,
udskrift før de andre.
COPIES
(0,"N") er det normale.
COPIES
(0,"L") giver lav prioritet,
udskrift efter de andre.
COPIES
(0,"P") giver direkte print
udenom spooleren.
Desuden kan en
papirkode angives fx. COPIES (1,,7) angiver papir nr.7 til TAMOS spoolsystemet,
se TAMOS manualen.
18.11. EDIT
Editering af kundenumre eller andre numre.
Formål: Pæn
editering af lange numre ved udskrift uden anvendelse af komplicerede beregninger.
EDIT funktionen
kan sammenlignes med Basics PRINT USING funktion med en del ekstra faciliteter.
Den simpleste
form for EDIT er: #47=EDIT(#48)
hvorved det
numeriske felt 48 omdannes til et tekstfelt felt 47, indeholder felt 48 f.eks.
værdien 15 kommer felt 47 til at indeholde teksten "15", altså lige
så mange karakterer som der er cifre i tallet.
Som anden
parameter til EDIT kan man angive en 'maske' ligesom for PRINT USING, dette
illustreres lettest med en række eksempler:
#47=EDIT (#48," ")
hvis
felt 48 = bliver #47
EDIT (12345,"&&&‑&&&") 012‑345
EDIT (123,"##&‑&&&") 0‑123
EDIT (12300,"###‑###") 12‑3
EDIT (123,"FX:#OG##")
FX:1OG23
EDIT (123,"&&&/&&") 001/23
& markerer at man ønsker et ciffer eller 0 i denne
position, # markerer et ciffer eller blank hvis dette ciffer er 0.
Fortegn og eventuelle decimaler på tallet vil blive
ignoreret.
Cifrene i tallet
placeres fra højre mod venstre i den angivne maske hver gang enten # eller
& mødes. Andre karakterer bevares uændret.
18.13. EXPORT
Udlæsning i externe filer.
Formål: Udlæsning
af data opbygget i en rapport til externe filer for overførsel til andre
systemer.
Filerne kan produceres i tekstformat, som formaterede filer eller som
contiquos filer for henholdsvis overførsel
til
PC eller udlæsning på tapes/disketter.
Filerne dannes i extern let læselig form.
EXPORT
subfunktionen er et eksempel på en særdeles kraftig subfunktion hvilket man kan
mærke ved at det tager et lille stykke tid for rapportgeneratoren at indlæse
denne første gang man anvender den i en beregningslinie (der kommer cirka 150
linier ind i rapporten).
I sin grundform
er kaldet af EXPORT funktionen simpel:
EXPORT("1‑10")
vil danne en
tekstfil med navnet 0/DMS‑OUT‑ og i denne udlæse felterne 1 til 10
på PC‑kompatibelt format, dvs. med de enkelte felter adskilt af komma og
alfanumeriske felter i gåseøjne.
Udlæses f.eks.
varekartoteket fra manualen vil denne fil se ud som følger:
Figur 28 PC udlæsning med EXPORT
"0101","CHOKOLADESTÆNGER",2,1,5,10187,"271",,100,270
"0102","STOR
FRÆSEMASKINE",20000,10000,10185,"100",9,,,
"0110","AUTOBUSSER",10000,60000,151286,"123",2,1,100
"1001","PENGE,STORE
SEDLER",1000,500,311286,"205",,100,102
"1005","STANSEMASKINE",2000,1500,10686,"100",1,10,,
"2001","KREDITKORT",20,10,10187,"205",9,10,102,
"2002","ID‑KORT",25,10,300786,"205",9,200,102,
Dette format er anvendeligt i langt de fleste PC
tekstbehandlings og spreadtekst‑programmer og nok det, der giver absolut
den mindste overførselstid, f.eks. er manualens varekartotek på 42 diskblokke,
den her viste tekstfil er blot 1 diskblok, dvs. under 512 karakterer.
18.14.1. EXPORTS
parametre.
EXPORT
subfunktionen har op til 6 parametre, som man kan angive hvis der ønskes
specielle funktioner eller udelade hvis disse ikke er nødvendige, f.eks.:
EXPORT (
"1‑10" , "FIL" , 80 , 11111 , 1 , "--,.'''"
)
de enkelte parametre har følgende betydning:
18.14.2.1. Felter.
Felter f.eks. "1‑10".
Her angives de
felter, man ønsker overført, i den rækkefølge man ønsker disse, f.eks. "1‑2,9‑10,8,3‑7".
Alle felterne
fra hovedkartoteket på rapporten samt frifelterne kan benyttes.
Felter fra andre
kartoteker må flyttes til frifelter før disse kan anvendes i denne funktion.
18.14.2.3. Filnavn.
Filnavn, f.eks.
"FIL".
Bestemmer navnet
på den dannede overførselsfil.
Udelades
parametrene bliver navnet 0/DMS‑OUT på den disk, hvor rapportgeneratoren
selv er placeret.
"FIL" danner
0/DMS‑OUT‑FIL
"7/FIL" danner
7/DMS-OUT-FIL
"$LPT" kan
anvendes til direkte output til printer.
"-" angiver
skærmoutput.
En eventuel
eksisterende fil vil blive overskrevet. Udelades filnavnet dannes filen
DMS-OUT-
Af
sikkerhedsgrunde er det kun filer med navnet DMS‑OUT der kan dannes.
18.14.2.5. Record længde og
filtype.
0 eller udelades
parameteren en tekstfil med dynamisk recordlængde for eksempel til brug for
overførsel til PC.
80 bevirker der
dannes en såkaldt formateret fil med fast record‑længde på 80 karakterer
men dynamisk antal records. Denne fil kan udlæses med de fleste diskette og
tape rutiner.
‑80 danner
en cont fil, dvs. med en fast recordlængde på 80 karakterer og lige præcis det
antal records, som der er udlæst i denne kørsel.
1 eller -1
danner henhv. en formateret/cont. fil med recordlængde = summen af feltlængderne.
Denne funktion
er lidt mere tidskrævende, da rapportgeneratoren først må opbygge en tekstfil
da antallet af records ikke kendes på forhånd. (0/DMS-OUTxx hvor xx er
skærmnummeret), og til sidst dannes den endelige fil herudfra når antallet af records
kendes. Det kan være nødvendigt at anvende denne type for visse tape/diskette
udlæsninger alt afhængig af operativsystemet.
EXPORT rutinen
kan maximalt danne en record på 512 karakterer, men der kan uden videre dannes
flere records på hver 512 karakterer ad gangen ved gentaget kald, se senere.
18.14.2.7. Udlæsnings‑specifikationer.
Her angives op
til 5 cifre der bestemmer hvordan felterne på overførselsfilen bliver dannet.
0 danner det
ovenfor viste format, hvor felterne er adskilt af komma og tekstfelter sat i
gåseøjne.
Cifrene betyder,
nummereret fra 12345:
1. 1 bevirker
dannelse af fast feltlængde.
Felterne
udlæses nu med den længde der er defineret med og uden komma adskillelse og
uden gåseøjne om tekstfelter.
2. 1 bevirker at
numeriske felter udlæses med foranstillede nuller,
0 med
foranstillede blanke.
3. 1 her
bevirker at decimalpunktum og eventuelle kommaediteringskarakterer udelades for
numeriske felter.
4. 0 bevirker at
fortegnet placeres som på Nixdorf anlægget, altså lige før første betydende
ciffer.
1 vil sætte
et eventuelt fortegn forrest i feltet altid,
2 vil sætte
fortegnet bagerst i feltet altid.
5. Her kan
fortegns‑typen bestemmes:
0 giver ‑
ved negativt tal, blank ved positivt tal.
1 giver ‑
ved negativt tal, + ved positivt tal.
2 giver l ved
negativt tal, 0 ved positivt tal.
3 giver
såkaldt overpunched minus, fortegnet holdes sammen med sidste ciffer i feltet.
4 giver 1 ved
negativt tal, 3 ved positivt tal.
Desuden kan man naturligvis selv danne tekstfelter ud fra
de numeriske felter ved hjælp af beregningerne såfremt specielle formater
ønskes.
18.14.2.9. Printerkopi.
Ud over det
normale print fra rapporten er det desuden muligt at få en nøjagtig udskrift af
den dannede fil på printeren (altid $LPT, standard printeren for den anvendte
skærm), samtidig med at filen dannes.
1 som
5.parameter vil aktivere denne funktion.
2 vil også
udskrive record-layoutet for den dannede fil.
Printet vil også
fremkomme selv om rapporten køres på skærm.
Hvis man ikke
har SPOOL på printeren kan funktionen ikke anvendes hvis rapporten også skal
udskrive på $LPT printeren.
Manualens
varekartotek udlæst med denne funktion kan se således ud:
Figur 29 Udlæsning til disketter/tape med EXPORT.
A RECLEN 80 OPTIONS
11111
FIELD FROM TO LEN NAME 1.RECORD FORMAT
A 1 1
4 4 VARENR (0101)
B 2 5
24 20 NAVN (CHOKOLADESTÆNGER )
C 3 25
32 9 SALGSPRIS (00000200) ######.##
D 4 33
40 9 KØBSPRIS (00000150) ######.##
E 5 41
46 8 SIDSTE KØBSDATO (010187) ##,##,##
F 6 47
49 3 LEV.NR. (271)
G 7 50
51 2 GRUPPENR (00) ##
H 8 52
58 7 BEHOLDNING (+000100) ‑‑‑‑‑‑#
I 9 59
61 3 ALTERNATIV LEV (270) ###
J 10 62
70 10 FRIFELT (+00000000) ‑‑‑‑‑‑#.##
A...B,....!.....,....!..C..,....D.....,.E..!..F..G.H..!...I.,J...!.....,....!...
0101CHOKOLADESTÆNGER
000002000000015001018727100+000100270+00000000
0102STOR FRÆSEMASKINE
020000000100000001018510009+000000000+00000000
0110AUTOBUSSER
100000000600000015128612302+000001100+00000000
1001PENGE,STORE SEDLER
001000000005000031128620500+000100102+00000000
1005STANSEMASKINE
002000000015000001068610001+000010000+00000000
2001KREDITKORT 000020000000100001018720509+000010102+00000000
2002ID‑KORT
000025000000100030078620509+000200102+00000000
18.14.2.11. CSV parametre.
Som 6 parameter
kan angives en række tegn, der anvendes ved dannelse af komma-separerede
tekstfiler (CSV filer). Tegnene betyder følgende ( * Bemærk at " skal
angives som 2 enkelte pinger ' ' i tegnfølgen).
"--,.'''" Standard
hvis intet andet angives. "++;,
," Eksempel
på specialangivelse.
- Tomme
felter til sidst fjernes. + Alle
felter overføres altid
- Nul
felter dannes som blot ,, + Nul
felter dannes som ,0,
, Felterne
adskilles med , ; Felterne
adskilles med ;
. Som
decimalkomma anvendes punktum. , Som
decimalkomma anvendes komma.
* '
' Tekstfelter
sættes i gåseøjne (").
Blank ==> der sættes ikke " om tekstfelter
' Invalidt
" i en tekst erstattes med '
, Invalidt
; i tekst erstattes med ,
18.14.3. EXPORT i
beregningslinierne.
Placerer man
EXPORT helt uden videre i beregningerne skal man være opmærksom på at denne
linie udføres altid, før selektioner og også under sortering.
Ved at anvende
EFTER kommandoen kan man flytte EXPORT til efter selektionerne, ved at anvende
NÅR kommandoen kan man undlade at danne linier under en eventuel sortering.
Start‑linier
kan dannes ved at placere EXPORT i FØRST beregninger, slutlinier kan dannes ved
at placere EXPORT i SIDST beregninger.
Man kan danne
flere forskellige linier i overførselskartoteket ved gentagen brug af EXPORT,
for eksempel:
EXPORT
("1‑10","FIL",80)
EXPORT
("11‑20")
hvorved der altså
dannes 2 linier pr. record i hovedkartoteket.
Bemærk at når
der er flere EXPORT linier i en rapport er det kun den første, hvor man skal
angive alle parametre. Disse vil være gældende for alle andre kald af EXPORT.
EXPORT kan
naturligvis anvendes i forbindelse med KEYS subfunktionen (se denne) til
udvælgelse af hvilke records der skal overføres.
CHECK henholdsvis
CHEX funktionerne kan anvendes til dannelse af checkcifre.
18.15. EXPOX Export
med fildefinitionen inkluderet.
EXPOX fungerer
præcis som EXPORT blot dannes der en række linier med kartotekets index og de
valgte felters definitioner øverst i tekstfilen, der fx. kan komme til at se
således ud:
Figur 30 EXPOX med index og feltdefinitioner.
"VA","DEMO‑VAREKARTOTEK","03/DA.VAKA",7,62,4,8
"VA0100","VARENR,"1,S"
"VA0200","LEVERANDØRNUMMER,"6,1,S"
"VAGR00","==>VAREGRUPPE,"7"
"VALE00","==>LEVERANDØR,"6,S"
1,2,3,4,5,6,7,8
"VARENR","NAVN","SALGSPRIS","KØBSPRIS","SIDSTE
KØBSDATO","LEV.NR.","GRUPPENR","BEHOLDNING"
"4B4","20","6,2","6,2",",6,","3","2,","‑6,"
"‑‑‑‑‑‑‑‑‑‑‑‑"
"0101","CHOKOLADESTÆNGER",2,1.5,10187,"271",,100
"0102","STOR
FRÆSEMASKINE",20000,10000,10185,"100",9
"0110","AUTOBUSSER",100000,60000,151286,"123",2,1
"1001","PENGE,STORE
SEDLER",1000,500,311286,"205",,100
"1005","STANSEMASKINE",2000,1500,10686,"100",1,10
"2001","KREDITKORT",20,10,10187,"205",9,10
"2002","ID‑KORT",25,10,300786,"205",9,200
Første linie
giver filforkortelse, tekst, filnavn, antal records samt keylængder.
Herefter følger
en linie pr. index med index-definitionerne.
De 3 næste
linier indeholder først feltnumrene, herefter feltnavnene og sidst formaterne.
Hovedet
afsluttes med en række minuser, hvorefter selve kartoteksindholdet findes.
18.17. FILENAME
Fysisk kartoteksnavn.
#50= FILENAME
(LE) giver filnavnet for kartoteket LE
i tekstfeltet #50. fx. 00/LEKA001
Kartoteket skal
være benyttet i rapporten.
#50= FILENAME
(2) giver filnavnet for det andet
kartotek anvendt i rapporten.
18.19. FIND Søgning efter
tekst (som superindex).
Formål: Søgning
efter en given tekst i et antal felter specielt til brug for selektion.
Hvis man for
eksempel opbygger en udskrift af et kundekartotek kan man indlægge en
beregningslinie som:
#47=FIND("BETON",#3,#4,#5,#6)
og herefter en
selektion på at felt 47 skal være minimum 1.
Herved vil alle
kunder, hvor navne/adressefelterne 3,4,5 og 6 indeholder BETON et eller andet
sted i teksten blive udskrevet.
Ved anvendelse
af start‑data felterne kan denne liste let udbygges således at man
indtaster søgekriteriet ved opstart:
#47=FIND(#DA1,#3,#4,#5,#6)
FIND kommandoen
kan have lige så mange felter som parametre, som man ønsker.
FIND vil søge
efter teksten i den første parameter i alle de andre felter og returnerer:
0 hvis teksten ikke blev fundet
>=1 teksten blev fundet i denne position
18.21.
14.11. IMPORT
indlæsning af externe filer.
Formål:
Indlæsning af data fra en udefra opbygget fil til opdatering af bestående
kartoteker.
Externe filer i tekstformat, formaterede filer eller contigous filer
kommende fra f.eks. PC, tapes/diskette kan læses.
Se
også den modsvarende EXPORT kommando.
IMPORT
kommandoen ligner meget EXPORT kommandoen og accepterer samme filtyper, dvs.
enten med felterne adskilt af kommaer eller en fast længde for hvert felt.
Med IMPORT kan
man læse filer dannet med EXPORT, kopiering af data mellem helt isolerede
systemer er således mulig.
Når man placerer
linien:
IMPORT
("1‑10")
i beregningerne
for en rapport vil rapportens hovedkartotek blive udskiftet med en extern fil
med navnet 0/DMS‑IN‑.
Hvis rapporten
herefter køres vil records blive indlæst fra denne fil og ikke som normalt fra
det kartotek rapporten er defineret på. Filen læses som PC format, hvor de
enkelte felter er adskilt af komma og tekstfelter er i gåseøjne.
En sådan rapport
kan behandles helt normalt, der kan indlægges beregninger, selektion og endda
sortering på denne.
Rigtig
interessant bliver det dog først hvis man har skrivetilgang til et eller flere
kartoteker i rapporten, f.eks. vil:
IMPORT
("1‑10")
INSERT (VA)
opbygge et nyt varekartotek ud fra den externe fil.
18.22.1. IMPORTs
parametre.
IMPORT
subfunktionen har op til 4 parametre, som man kan angive hvis der ønskes
specielle funktioner eller udelade, hvis disse ikke er nødvendige, f.eks.:
IMPORT
("1‑10","0/FIL",80,111)
de enkelte
parametre har følgende betydning:
18.22.2.1. Felter.
Her angives
felterne i den rækkefølge, disse skal indlæses, f.eks. "1‑2,9-10,8,3‑7".
Alle felterne
fra hovedkartoteket på rapporten samt frifelterne kan benyttes.
Felterne kan
naturligvis herfra flyttes til felter i andre kartoteker om ønsket.
I visse tilfælde
ønsker man at addere felterne til bestående felter i kartoteket, se senere.
Dette kan naturligvis gøres med normale beregninger, men kan også foretages
direkte ved feltangivelsen for IMPORT:
IMPORT
("1‑2,+3‑4,5‑6,27,=8,9")
vil indlæse felterne 1‑9 på følgende måde:
Felterne 1
og 2 indlæses normalt
+ De indlæste værdier adderes til felterne 3,4
og 5
‑ Den indlæste værdi fratrækkes felt 6
& Den indlæste værdi for felt 7 ignoreres, dvs.
felt 7 er uforandret
= Felterne 8 og 9 indlæses normalt som felt 1
og 2
Ved hjælp af
tegnene +,‑,& og = kan man således skifte indlæsningsmåden hen ad
vejen, den valgte måde gælder til en ny vælges.
Ved indlæsning
fra en fil med fast recordlængde kan man gå frem til en bestemt position i
denne record:
IMPORT("1‑2,:40,3")
vil indlæse felt 3
fra position 40.
18.22.2.3. Filnavn.
Som anden
parameter kan man angive et fuldt filnavn, f.eks. IMPORT ("110","0/FIL").
Udelades
filnavnet helt indlæses fra filen 00/DMS‑IN‑ placeret på samme disk
som rapportgeneratoren selv.
Angiver man et
disknr. (lu), f.eks. "0/FIL" åbnes denne fil direkte. Dette er
tilladt i modsætning til EXPORT kommandoen, da man jo ikke skriver i input‑filen.
Udelades
disknr., f.eks. "FIL", sættes 00/DMS‑IN‑ foran navnet,
der indlæses således fra filen 00/DMS‑IN‑FIL.
18.22.2.5. Record længde og
filtype.
0 eller udelades
parameteren indlæses fra en tekstfil med variabel linielængde op til maximalt
512 karakterer.
80 bevirker, at
der indlæses fra en formateret eller contigous fil med en fast record længde på
80 karakterer.
IMPORT
kommandoen kan behandle en vilkårlig recordlængde, ‑1024 bevirker at der
indlæses fra en tekstfil med variabel recordlængde på op til 1024 karakterer.
Det er kun nødvendigt at angive recordlængden for tekstfiler hvis denne
overstiger 512 karakterer.
18.22.2.7.
Indlæsningsspecifikationer.
Her angives 2
cifre, der bestemmer hvordan felterne skal indlæses. For at kommandoen skal ligne
EXPORT så meget som muligt er det afsat plads til 5 cifre her, kun de 2
anvendes.
0 indlæser
felterne adskilt af komma.
Cifrene betyder,
nummereret som 12345:
1. 1 bevirker
indlæsning med fast feltlængde.
Felterne
indlæses altså med den længde, de er defineret med ifølge deres feltformat og
skal ikke være adskilt af komma.
2. Anvendes
ikke.
3. 1 her
bevirker, at talfelter skal være angivet uden decimalpunktum i input, felterne
vil ved indlæsning blive divideret
med 10;
(antal decimaler) således at kommaet bliver sat korrekt.
4. Anvendes
ikke.
5. Anvendes
ikke.
IMPORT kommandoen behandler decimal‑komma(,) eller
decimal‑punktum(.) ens ved indlæsning, således at det er ligegyldigt om
der står punktum eller komma i inputfilen. Dog skal det være decimalpunktum
hvis den type fil, hvor felterne er adskilt af komma, skal bearbejdes.
Fortegn skal
være angivet som minus ‑ og kan være placeret enten foran eller i
slutningen af tallet + tegn før eller efter feltet accepteres også.
Felter med
foranstillede blanke eller foranstillede nuller behandles ens.
Skal man indlæse
mere specielle formater kan dette naturligvis gøres ved at indlæse i frifelter
og herefter danne de endelige felter via beregningerne.
18.22.3. Forskellige
kald af IMPORT subfunktionen.
For at aktivere
IMPORT subfunktionen skal denne altid kaldes som f.eks.
IMPORT
("1‑10","0/FIL",80,11111)
i beregningerne
før andre kald kan anvendes.
Dette første
kald bestemmer hvilken fil der skal læses og hvordan, samt hvilke felter, der
skal indlæses og erstatte læsningen af rapportens hovedfil.
Herefter kan man
anvende følgende funktioner:
18.22.4.1. IMPOCONT
("11‑20").
Indlæsningen
fortsætter fra den samme record, som blev læst fra inputfilen før, fra den
position man står i, med de angivne felter.
18.22.4.3. IMPOTHIS ("1‑20").
Indlæsningen foretages
igen forfra i den record der blev læst fra inputfilen før.
18.22.4.5. IMPONEXT
("11‑20").
Næste record fra
inputfilen læses og flyttes til felterne 11 til 20. Herved kan inputfiler, hvor
der optræder flere linier pr. record behandles.
Ligeledes kan
man styre filer med forskellige antal linier pr. record via beregningerne.
18.23. INDEX
Fastlåsning af index/start/stop.
Formål: Visse
rapporter skal altid køre på et bestemt index i kartoteket, med denne funktion
kan man undgå altid at skulle indtaste f.eks. 2: ved opstart. Desuden kan
rapporten fastlåses til bestemte start/stopværdier.
INDEX (2)
vil bevirke, at rapporten altid kører på index 2 på
kartoteket.
Desuden kan man
om ønsket også angive faste start/stop‑værdier med fx:
START FRA:
2:1234
STOP
VED: 5678
uanset hvad der
tastes her ved opstart.
18.25.
14.13. KEYS
Start/Stop angivelser.
Formål: At sætte
brugeren i stand til at definere flere intervaller eller enkelte nøgler for
start/stop på en rapport.
18.26.1. KEYS kommandoen
i funktionsvalget.
I
rapportgeneratorens funktionsvalg kan nu indtastes KEYS (eller blot K), hvorved
følgende skærmbillede fremkommer:
Figur 31 KEYS kommandoen.
D.M.S RAPPORTGENERATOR
START/STOP AKTIVERES MED KEYS(0) I
BEREGNINGER, (NAVN) I START FRA
START/STOP VÆRDIER INDTASTES SOM
FX:110101‑110299,170101,471100‑471199
START/STOP NAVN:
MEDDELELSE:
Som navn på
definitionen kan angives 1‑6 karakterer (ikke æ/ø/å) hvorved der opbygges
en tekstfil med navnet 0/DMS‑KEY‑xxxxxx. Findes denne i forvejen
indlæses den. Filen oprettes på samme disk som rapportgeneratoren selv er
placeret på.
18.26.3. Indtastning af
start/stop værdier.
Herefter går man
videre til et simpelt tekstbehandlings‑program hvor der kan indtastes op
til 99 linier af hver 76 karakterer:
Figur 32 Indtastning af start/stop værdier.
D.M.S. RAPPORTGENERATOR
START/STOP AKTIVERES MED KEYS(0) I
BEREGNINGER, (NAVN) I START FRA
START/STOP VÆRDIER INDTASTES SOM
FX:110101‑110299,170101,471100‑471199
START/STOP VÆRDIER: 0/DMS‑KEY‑A
1 110101
2 110101‑110199
3 110101,110199
4 110101‑110199,174711
5 110101,2:ABC‑DEF
6 47/110101
7 110101‑110199
8 120101‑120199
9 110101‑110199,120101‑120199
10
11
12
13
14
15
16
17
18
19
START/STOP NAVN:A
MEDDELELSE:DEL/INS KAN ANVENDES TIL
AT SLETTE/INDSÆTTE LINIER.
Her indtastes
hvilke start/stop værdier der skal anvendes på en/flere rapporter (se senere).
1. 110101 denne
record (start=stop=111101)
2. 110101‑110199 interval
fra/til
3. 110101,110199 2
enkeltnumre
4. 110101‑110199,174711 kombinationer
heraf
5. 110101,2:ABC‑DEF 2:
skifter til index nr. 2
6. 47/110101 47
kan anvendes i beregninger
Definitionen
afsluttes ved at taste END og man kan fortsætte med næste definition. Tastes
END igen vendes tilbage til rapportgeneratoren.
18.26.5. Funktioner ved
indtastningen.
Man kan benytte
pilene nederst på tastaturet til at bevæge sig frem/tilbage på en linie samt
indsætte/slette karakterer.
Med cr. går man
ned på næste linie.
@ i
første position bevirker ligeledes at man går til næste linie.
bevirker
man går een linie op.
12 indtastes
blot eet eller 2 cifre (evt. oveni bestående text) går man til denne linie uden
at teksten ændres.
INS anvendes
til at indsætte linier.
Man
bliver spurgt hvor mange linier der skal indsættes før den linie, hvor man
tastede kommandoen.
NB:
Linier ud over 99 vil blot falde væk.
Blanke
linier i en definition vil blot blive ignoreret.
DEL anvendes
til at slette linier.
Man
bliver spurgt hvor mange linier der skal slettes fra den linie, hvor man
tastede kommandoen.
Slettes
alle linier i en definition slettes definitionen helt fra disken.
END afslutter
og skriver definitionen.
SPR afslutter
uden at skrive definitionen, dvs. man har fortrydelsesret med denne kommando.
Ønsker man 2
intervaller udskrevet kan dette gøres ved enten at give 2 linier, f.eks.:
110101‑110199
120101‑120199
eller blot een linie
110101‑110199, 120101‑120199
Vi vil senere se
at alt afhængig af hvordan man aktiverer funktionen i en rapport vil disse 2
skrivemåder enten blive behandlet helt ens eller blive opfattet som start af 2
rapporter med nyt sidenr./totaler etc.
18.26.7. Aktivering af
funktionen i en rapport.
For at aktivere
denne funktion på en rapport skal man på en beregningslinie indtaste f.eks.:
KEYS (0)
det er ligegyldigt
om denne beregning tastes først/sidst eller midt imellem de andre
beregningslinier:
Figur 33 Aktivering af subfunktionen.
DMS.RAPGEN 12 VARELISTE 4......DEFINER KALKULATIONER
1 VARENR 19 @FRI
2 NAVN 20 @FRI
3 SALGSPRIS 21 @FRI
4 KØBSPRIS 22 @FRI
5 SIDSTE KØBSDATO 23 @FRI
6 LEV.NR. 24 @FRI
7 GRUPPENR. 25 @FRI
8 BEHOLDNING 26 @FRI
9 ALTERNATIV LEV 27 @FRI
10 FRIFELT 28 @FRI
11 NYT FELT 29 @FRI
12 @FRI 30 @FRI
13 @FRI 31 @FRI
14 @FRI
15 @FRI
16 @FRI
17 @FRI
18 @FRI
BEREGNINGER INDTASTES SOM FX:
#60=#21+#22 , PROCENT SOM FX:
#62=#62%#63
#DD=DATO , #PD=PR.DATO , #D1=DATA
, #DA1=ALFA.DATA , NÅR=HVORDAN
BEREGNES BEREGNING ? KEY(0)
MEDDELELSE:
18.26.9. Start af en
KEYS rapport.
Umiddelbart vil
man ikke kunne spore forskel hvis man nu starter rapporten normalt, men i
START FRA:
kan der nu angives
f.eks. (A) hvis der er oprettet en definition med navnet A. Alle
intervaller/enkeltrecords angivet heri vil nu blive udskrevet på rapporten.
Figur 34 Start af en rapport med KEYS
DMS.RAPGEN 12 VARELISTE 9....START AF UDSKRIFT
DAGS DATO ? 061189
PR. DATO ?
061189 INDEX:
1:VARENR.
START FRA ? (A) 2:NAVN
3:LEV.NR.
STOP VED ? 4:GRUPPENR.
5:ALTERNATIV LEV
LAVESTE TOTAL‑NIVEAU, DER
SKAL UDSKRIVES (0‑ 1 , 0=HELE LISTEN) ? 0
START:( J=BAGGRUND, S=SKÆRM,
P=SKÆRMPRINTER, N=ANNULER) ? J
MEDDELELSE:
Ved at angive definitionsnavnet i parentes i start fra
kan vi altså nu knytte start/stop‑værdierne her til en rapportkørsel.
Er der tale om
et mindre antal intervaller eller enkelte records kan disse også angives
direkte i START FRA uden at man behøver at oprette en definition. Tastes
(111101‑111199,120101,147100
i START FRA tages
de pågældende værdier som om de kom fra en definition. Intervallerne mv. kan
fortsættes i STOP VED da START/STOP felterne hver kun er 30 karakterer.
Bemærk at denne
funktion aktiveres ved kun at angive startparantesen, slutparantesen skal
udelades. (Dog skiftes også til denne funktion hvis slutparantesen fejlagtigt
indtastes og der er indtastet mere end 8 karakterer).
18.26.11.
Funktioner/parametre.
KEYS funktionen
har 2 parametre:
18.26.12.1. Samlet / enkelte
rapporter.
KEYS (0) bevirker udskrift af een rapport for alle
de angivne intervaller/enkelte records med eventuel total til sidst.
KEYS (1) behandler hver enkelt linie i
definitionen som en rapport for sig selv, dvs. totaler udskrives før næste
linie
behandles
og der udføres sideskift, næste side vil blive nummereret som side 1.
For sorterede rapporter samt for breve er det kun KEYS
(0) der er relevant.
18.26.12.3. Fast definitions‑fil.
KEYS
(0,"A") 2.parametre kan
anvendes til at angive den standard‑definitions fil, der skal anvendes på
rapporten.
Er
denne parameter givet og brugeren blot taster cr. i start fra anvendes denne
definition på nøjagtig
samme
måde som hvis der var tastet (A) ved start fra.
Der
er naturligvis stadig mulighed for at starte rapporten med (B) eller et normalt
interval.
18.26.12.5. KEYS
beregningskode 47/xxxx.
Man kan i en
KEYS definitionsfil angive fx. 47/111101-111199,150101
47/ indgår ikke
i intervallerne fra/til, men fanges af KEYS rutinen og returneres som en værdi.
Man kan med:
#20=KEYS()
således få værdien 47 sat ind i felt 20.
På denne måde
kan der fremstilles ganske specielle rapporter, der kan være enten sorteret på
#20 eller foretage forskellige beregninger alt efter indholdet af denne kode,
der kan skifte mange gange igennem KEYS definitionen.
18.26.13. Specielle
definitionsfiler.
Med KEYS
funktionen i rapportgeneratoren kan man editere i definitionsfilerne 0/DMS‑KEY‑xxxxxx
med et maximum på 99 linier a 76 karakterer.
Såfremt man
ønsker flere linier end dette kan man anvende et hvilken som helst
tekstbehandlingsprogram til at oprette disse definitioner, f.eks. PAID, da der
er tale om helt normale tekstfiler.
Har man i
forvejen en fil på disken kan man istedet for (A) eller KEYS(0,"A")
angive disknavnet direkte ved også at angive lu, dvs. (0/A) eller
KEYS(0,"0/A") hvorved prefixet 0/DMS‑KEY undgås.
Dog kan man af
sikkerhedshensyn kun bearbejde tekstfiler med prefix 0/DMSKEY med
rapportgeneratorens editor.
18.26.15. Sortering af
start/stop værdier
Såfremt man
giver KEYS definitionen et nummer istedet for et navn, fx. 4711 istedet for
CH15, vil numrene i tekstfilen blive sorteret med det samme man forlader KEYS
definitionen. Rapporten vil således komme i kundenummerorden uden man behøver
sortere på selve rapporten.
18.27. LET
kommandoen.
Basic LET udtryk
sætter een i stand til at sætte et felt lig med et andet, f.eks. med LET
#17=XX#7.
Når man arbejder
med skrivning i kartoteker kan man let komme ud for at skulle flytte en hel
stak felter fra eet kartotek til et andet, og hvis der er 87 felter i
kartoteket vil man således være nødt til at skrive 87 beregningslinier.
Da dovenskab
altid er en god ting er der i rapportgeneratoren nu indført en LET
kommando:
LET (#1‑10=XX#1‑10)
vil svare til at
man skrev 10 linier:
LET #1=XX#1
LET #2=XX#2
.
.
LET
#10=XX#10
og man kan således nu nøjes med en enkelt linie.
Rapportgeneratoren kender LET kommandoen fra Basic LET linien, ved at
LET efterfulgt af ( aldrig er tilladt i BASIC og derfor må dette være en
speciel kommando.
Såfremt man
kommer til at blande felttyper, f.eks. sætte tekstfelter lig med numeriske
felter, vil feltformatet for det numeriske felt blive brugt til at danne
tekststrengen, svarende til man for eksempel havde skrevet #5=XX#5 USING
"####".
Et tekstfelt vil
altid blive udfyldt med blanke op til den maximale længde, så heller ikke dette
behøver man bekymre sig om. LET kommandoen kan anvendes på flere forskellige
måder, hvilket lettes illustreres med en række eksempler:
1.) LET (#20‑30=0)
sætter
felterne 20 til 30 lig nul.
Hvis nogen af disse er tekstfelter vil disse
istedet blive udfyldt med blanke.
2.) LET (#20‑30=1)
sætter
felterne 20 til 30 lig 1. (eller andet tal)
Pas dog på
tekstfelter, disse sættes lig een blank, her efter 1 og så en enkelt blank,
i dette
tilfælde fyldes altså ikke ud med blanke.
3.) LET (#1‑10=XX#2‑11)
felterne 2‑11
fra kartotek XX flyttes til felterne 1‑10.
4.) LET (XX#1‑10=#2‑11)
Felterne 2
til 11 flyttes til kartotek XX felterne 1‑10.
5.) LET (XX#1‑10=#2,5,7)
Felterne 2,5
og 7 flyttes til XX felt 1,2 og 3, XX felt 4‑10 vil blive nulstillet.
6.) LET (XX#1‑3,5,YY#10=ZZ#6‑9,NN#10)
Man kan
blande flere forskellige filer på begge sider af lighedstegnet.
7.) LET (#1‑10+=1)
Ved hjælp af
+= kan man lægge een til alle de angivne felter.
‑,*,/,, kan
også anvendes istedet for +.
8.) LET (#20‑30+=XX#40‑50)
På samme måde
kan man lægge en række felter sammen.
9.) LET (#10‑19=#20‑21,+#22‑23,‑#24‑25,26)
Her vil felt
20‑21 blive flyttet til felt 10 til 11, felt 22 og 23 adderet til felt 12
henhv. 13,
felterne
24,25 og 26 fratrukket felterne 14, 15 og 16 henhv. og felt 17,18 og 19
nulstilles.
10.) LET (#10‑11,+12,13‑14‑16=#20‑26)
Operatorerne
kan om ønsket skrives på venstre side af lighedstegnet.
18.29. LET
kommandoen med ON
LET (#1-10=0)
reducerer skrivearbejdet i beregningerne fra at skulle skrive 10 linier med
#1=0, #2=0, #3=0 osv. til kun een enkelt linie.
Ved at anvende
LET (...) ON ... kan man også reducere betingede udtryk.
18.30.1. Kolonneopdeling.
I kolonneopdelte
rapporter forekommer normalt en række betingelser med IF-sætninger, hvis fx.
felterne 41-50 udskrives som kolonnerne på rapporten:
LET
(#41-50=0)
IF #5=1 LET
#41=#20
IF #5=2 LET
#42=#20
:
:
IF #5=10 LET
#50=#20
Disse linier kan
ved hjælp af ON-kommandoen reduceres til:
LET
(#41-50=0)
LET
(#41-50=#20) ON #5
Ved at tilføje
ON #5 vil rapportgeneratoren selv danne de nødvendige linier med IF #5=1.., IF
#5=2.. osv.
18.30.3.
Posteringskode-summation
LET
(#41-50+=#20) ON #5 vil danne en
række linier med:
IF #5=1 LET
#41=#41+#20
IF #5=2 LET
#42=#42+#20 osv.
Hvilket typisk
kan anvendes indenfor START/NEXT/OM læsning af et posteringskartotek til at
summere beløbene afhængigt af en posteringskode.
Ville man
istedet have optalt antallet af poster med de enkelte koder vil:
LET
(#41-50+=1) ON #5 danne
linierne:
IF #5=1 LET
#41=#41+1
IF #5=2 LET
#42=#42+1 osv.
18.30.5. Månedens
bevægelser.
LET
(#40=#21-30) ON #5 vil danne
linierne
IF #5=1 LET
#40=#21
IF #5=2 LET
#40=#22 osv.
Hvorved fx. et
bestemt felt kan plukkes ud af et finanskartotek baseret på et månedsnummer.
18.30.7. Beregninger i
ON-delen.
Istedet for blot
#5 kan man skrive en vilkårlig beregning efter ON, dog uden anvendelse af
subfunktioner:
LET
(#41-50=#20) ON #5-1 vil danne
linierne
IF #5=0 LET
#41=#20
IF #5=1 LET
#41=#20 osv.
18.30.9. Flere felter
I ovenstående
eksempler har der kun været eet felt på enten den ene eller den anden side af
lighedstegnet:
LET
(#41-50=0) ON #5 eller
LET
(#40=#21-30) ON #5
Angives flere
felter, fx:
LET
(#40,45=#21-30) ON #5 skifter
IF-værdien indenfor hver feltgruppe:
IF #5=1 LET
#40=#21
IF #5=1 LET
#45=#22
IF #5=2 LET
#40=#23
IF #5=2 LET
#40=#24 osv.
Ligesom i den
normale LET uden ON kan man selvfølgelig også anvende felter fra forskellige
kartoteker.
18.30.11. Saldo år til
dato.
Her ønsker man
fx. at summere en række felter op til en bestemt måned:
#40=0 /* Husk at nulstille
feltet før brug.
LET
(#40+=#21-30) ON #5<=X vil danne
linierne:
IF #5<=1
LET #40=#40+#21
IF #5<=2
LET #40=#40+#22
IF #5<=3
LET #40=#40+#23 osv.
18.30.13. X og logiske
operatorer.
Som det fremgår
af ovenstående eksempel kan X anvendes efter ON. X erstattes med det nummer
(1-...), som den pågældende linie tildeles. Herved kan man danne en række LET
linier med < <= > >= =
<> efter behov.
18.30.15. 'Skæve' værdier
efter ON.
Det er ikke
altid, at koden vil passe med værdierne 1,2,3... Derfor kan der efter ON
angives en række værdier:
LET
(#41-50=#20) ON #5=7,17,5 hvilket
danner linierne:
IF #5=7 LET #41=#20
IF #5=17 LET
#42=#20
IF #5=5 LET #43=#20
IF #5=7 LET #44=#20 osv.
Bemærk at der
startes forfra når alle værdier er brugt, 5,17,7 svarer her til man skrev
5,17,7,5,17,7,5,17,7,5
18.30.17. Tekstfelter
efter ON.
LET
(#41-50=#20) ON #5 vil hvis
felt 5 er et tekstfelt danne:
IF
#5="1" LET #41=#20
IF
#5="2" LET #42=#20 osv.
Også de 'skæve'
værdier kan udnyttes, idet:
LET
(#41-43=#20) ON #5=CM,OS,CH danner
IF
#5="CM" LET #41=#20
IF
#5="OS" LET #42=#20
IF
#5="CH" LET #43=#20
18.31. LOWER Små
bogstaver.
#50= LOWER
(#2) konverterer tekstfelt 2 til små
bogstaver.
18.33. LTOT
fastlåsning af laveste total niveau.
Formål: Ved
visse rapporter ønskes aldrig specifikation men kun totaler udskrevet. Laveste
total niveau kan låses med LTOT funktionen.
Indlægges i
beregningerne linien
LTOT (1)
vil laveste
totalniveau altid blive 1 uanset hvad brugeren taster ved opstart. Spørgsmålet
fjernes dog ikke fra start‑skærmbilledet.
Specielt
bevirker
LTOT (9)
at alt print fra
rapporten undertrykkes hvilket kan anvendes f.eks. ved opdaterende rapporter.
Man kan også
aflæse det 'laveste total niveau' brugeren har angivet ved opstart til brug for
styring af beregninger afhængig af dette, med f.eks.:
#47 = LTOT(‑1)
18.35. MERGE Blanding af flere kartoteker.
Ved hjælp af
denne funktion kan man blande op til 9 kartoteker, enten med samme eller
forskellige feltdefinitioner.
Der kan for
eksempel være tale om kundekartoteker fra to forskellige firmaer, hvor man
ønsker en samlet kreditoversigt over fælles kunder.
En rapport, der
anvender MERGE, skal altid være sorteret, fx. iflg. kundenr, idet MERGE styrer
kartotekerne ved hjælp af sorteringen. Er rapporten defineret på det ene
kundekartotek KA indlægges herefter en beregning for at blande med det andet
KB:
FØRST
MERGE
(KB)
Kartotekerne
skal i dette tilfælde have samme definition (READ-statements).
Man kan også
angive filnavnet direkte for MERGE og således sammenligne med et angivet
selskab:
FØRST
MERGE
(ka,"03/KUNDE.007")
Med
basic-variablen K0 kan man afgøre, om den læste record stammer fra det ene
eller det andet kartotek, idet K0 er 1 for hovedkartoteker, 2 for det først
mergede kartotek og så fremdeles.
Har kartotekerne
forskellig opbygning må man flytte rundt på felterne ved hjælp af en beregning
på basis af K0:
FØRST
MERGE
(KB)
NORMAL
IF K0=2
LET (#1-10,17=KB#1-10,43)
18.37. MESS
Meddelelse og eventuel stop af rapporten.
Formål: Med MESS
kan man sende en besked til den skærm, der har startet rapporten, og eventuelt
afbryde den videre kørsel, f.eks. ved forkerte opstartsparametre.
Beregningslinien
MESS
("BESKED")
vil sende
meddelelsen BESKED til den bruger, der startede rapporten.
MESS anvendes
normalt kun i forbindelse med IF eller i FØRST eller SIDST beregninger, da der
ellers sendes en besked for hver record der læses.
Ved at angive
2.parameter som et ettal vil rapporten afslutte såsnart meddelelsen er
givet:
#47=#47+1
IF
#47>100 MESS ("FÆRDIG",1)
vil afbryde
rapporten efter de første 100 records er behandlet.
Meddelelsen vil
altid blive indsat i systemets logbog.
18.39. MTOT
Maksimalt total niveau, der skal udskrives.
MTOT (1)
angiver, at det højeste totalniveau, der skal udskrives, er 1.
MTOT kan for
eksempel anvendes til at undertrykke nonsens grande totaler, der fx. på en
liste sorteret efter valuta og med subtotaler pr valuta ikke har nogen
relevans.
18.41. NAME
Isolering af fornavne/efternavne.
Formål: Dannelse
af f.eks. efternavn, fornavn ud fra et navnefelt til brug for især sortering.
Rutinen svarer til
den tidligere LOAD NAVN, se også beskrivelsen af denne.
#47=NAME(#3)
vil så vidt muligt
opbygge efternavn, fornavn i felt 47 ud fra navnet i felt 3. HANS JENSEN bliver
således til JENSEN, HANS og kan anvendes til sortering.
Visse forkortelser som HR, FRU, FRK, A/S og ApS fjernes.
Man kan få
yderligere detaljer fra NAME rutinen ved at angive flere parametre:
#47=NAME(#3,#48,#49,#50)
vil desuden give:
#48 =
fornavn efternavn
#49 =
fornavn
#50 =
efternavn
18.43. NODATA
Deaktivering af alle #Dx felter.
Når man først
een gang i en beregningslinie på en rapport har anvendt et af start‑data
inputfelterne #D1‑#D7 eller #DA1 til #DA7 har man hidtil ikke kunne
slippe af med dette input igen, selv om de pågældende beregningslinier fjernes.
Ved at indlægge
en linie med: NODATA()
vil alle inputfelter blive deaktiveret.
18.45. NOIX Udelad
index-opdatering (pladsbesparende).
Denne funktion
er beregnet til store opdaterende rapporter, hvor kun felter, der ikke indgår i
kartotekernes index, skal skrives tilbage. NOIX kan ikke anvendes i
ikke-opdaterende rapporter.
NOIX() i en beregningslinie frakopler hele
rapportgeneratorens index-opdatering op sparer derfor en del plads.
NOIX kan også
angives i forbindelse med SPEED optimering.
18.47. NOPAS
Deaktivering af password.
Ved rapporter
med tilbageskrivning i kartoteker beskytter rapportgeneratoren altid disse med
et password (se afsnittet vedrørende skrivning).
Ved at indlægge
en linie med:
NOPAS()
vil dette password
blive fjernet.
18.49. NOPRT Udelad
alt print (plads- & papir-besparende).
Denne funktion
er beregnet til opdaterende rapporter, hvor man ikke ønsker noget print
overhovedet. Resultatet af kørselen vil fremgå af TAMOS logbogen.
NOPRT () i en
beregningslinie fjerner hele printrutinen fra rapporten og sparer derfor en hel
del plads.
NOPRT kan også
angives i forbindelse med SPEED optimering.
18.51. NUMBER
Konvertering af 'mystiske' numre.
Formål: I visse
situationer er numre registreret i tekstfelter eller kommer udefra og
indeholder uønskede skillekarakterer, f.eks. en dato 15/11‑89 eller et
telefonnr. 01)248340. NUMBER fjerner disse skillekarakterer således at man kan
arbejde videre med tallet.
Ved hjælp af beregningslinien: #47=NUMBER(#8)
kan man konvertere tekstfeltet felt 8 til et nyt numerisk
felt 47, idet alle skillekarakterer ignoreres.
F.eks. vil
01248340, 01)248340, 01‑248340 og 01 24 83 40 alle blive til 1248340,
ligesom datoen 15/11‑89 vil blive til tallet 151189.
Ved hjælp af
EDIT subfunktionen kan man om ønsket herefter oprette en ny standard for
feltet,
#8=EDIT(#47,"&&)&&&&&&")
kan anvendes til
at danne en ny standard for telefonnumre som 01)248340.
18.53. NUMS
Konvertering af tekstfelt til tal.
Formål: Forenkling af beregninger på tal lagret i
tekstfelter.
Visse
programmører har det med at opbygge kartoteker, hvor tal der skal anvendes i
beregninger, lagres i tekstfelter og som sådanne ikke kan anvendes direkte i
beregningerne.
Skal vi for
eksempel lægge 2 tal i tekstfelterne 15 og 16 sammen var man tidligere nødt til
at aktivere 2 frifelter ekstra for at gøre dette:
#47 = #15
#48 = #16
#49 =
#47+#48
da linien #49=#15+#16
vil bevirke en fejl ved tekstfelter.
Ved at bruge
NUMS funktionen kan vi nøjes med:
#49=NUMS(#15)+NUMS(#16)
og herved kan
beregningen skrives i en linie uden brug af ekstra frifelter.
Man kan anvende
NUMS(#15) i alle former for beregninger, og altså også angive flere NUMS felter
på samme linie.
18.55. OPEN åbning
af kartotek for læsning.
Se kapitel 15 vedrørende skrivning i kartoteker.
OPEN("XX","3/FIL) vil åbne kartoteket 3/FIL istedet for
det i rapporten normalt anvendte kartotek XX.
18.57. PACK Pakning
af felter.
Formål: Anvendes kun i helt specielle tilfælde
i systemer med specielle nøgler eller lignende. Letter pakning af felter.
R$=PACK
(R$) vil pakke nøglen i R$
R$=PACK
("&&&&",#47) vil omdanne det numeriske felt 47 til
tekst med det givne format og herefter pakke denne.
R$=PACK(#3),#4,PACK(#5),PACK("01") pack kan anvendes flere
gange på en linie.
Se også UNPACK.
18.59. PCOUT og PCIN
Export/import direkte til ERNA PC via $TRAN.
Med ERNA-8870
emulering kan man med PCOUT ("1-10","C:/DIR/NAVN")
exportere direkte til en CSV fil på PC'ens harddisk. Funktionen fungere på helt
samme måde som EXPORT, blot refererer filnavnet til en DOS-fil.
Har man ERNA
installeret, kan man med PCOUT på samme måde som EXPORT danne en kommaediteret
tekstfil, denne overføres imidlertid direkte til PC'en via $TRAN. Der er
således ikke behov for at aktivere en overførsel manuelt, til gengæld har man
ikke en fil på 8870 som man kan overføre igen, hvis noget går galt.
PCIN kan
anvendes ligesom IMPORT, denne rutine læser direkte fra PC'en uden man behøver
foretage en overførsel først ved hjælp af $TRAN overførselen. Se også
dokumentationen for ERNA.
18.61. PHONE Nye
danske telefonnumre.
Formål:
Konvertering af danske telefonnumre 01,02 etc. til 31,32,33,42 iflg. ny
standard pr. 1/1‑1990.
Ved hjælp af
denne subfunktion kan man let konvertere gamle telefonnumre til nye:
#50 = PHONE
(#1)
bevirker at felt
50 kommer til at indeholde det nye telefonnr. hvis felt 1 indeholder et godt
gammelt nr.
Rutinen har en
indbygget konverteringstabel således at f.eks. 01 kan ændres korrekt til 31, 32
m.fl. Denne tabel dækker næsten alle numre, dog kan enkelte intervaller ikke
konverteres da KTAS angiver at man skal kontakte de enkelte centraler for at få
det nye nr.
Hvis et nummer ikke kan konverteres returneres det gamle
nummer uændret.
Det checkes før
konvertering at feltet virkeligt indeholder et gammelt nr., dvs. 8 cifre med 01‑09
forrest. Herved kan man uden videre konvertere kartoteker hvor en del af
numrene allerede er indtastet som nye da disse returneres uændret.
Både #1 og #50 skal være tekstfelter på 8 karakterer.
Såfremt man ikke
har en fast telefonnr. standard i forvejen skal man være opmærksom på de to
andre subfunktioner:
#51 =
NUMBER (#1)
vil returnere
01248340 uanset om felt 1 indeholder 01248340, 01)248340, 01‑248340, 01
24 83 40 eller anden mærkelig 'standard' (felt 51 skal være 8 cifre numerisk).
#52 = EDIT
(#51,"&&)&&&&&&")
kan anvendes til
at danne en ny standard som 01)248340.
En total
konvertering fra et gammelt nr. i ukendt format til en ny fast standard kan
derfor skrives som:
#50 =
NUMBER(#1) USING "&&&&&&&&"
#50 = PHONE
(#50)
#50 = EDIT
(#50,"&&)&&&&&&")
For en enkelt
gangs skyld releases denne subfunktion også til brug for de lidt ældre
rapportgenerator‑versioner hvor man ikke kan kalde subfunktioner direkte.
Her skal istedet for
#1 =
PHONE(#1)
indtastes
T2$=#1
GOSUB 4200
#1=T2$
LOAD PHONE
Ved hjælp af
selektioner på rapporten kan man undgå eventuelle udenlandske kunder.
Vedrørende
tilbageskrivning af nyt telefonnr. i kartoteket installeres dette af
programmøren sammen med PHONE rutinen iflg. aftale. Rapporten skal normalt så
defineres på kartoteket KU,W istedet for blot KU.
Backup af disken
tilrådes naturligvis før tilbageskrivning.
18.63. PLCOUT Export
direkte til en PLC kommunikationslinie.
Denne funktion
fungerer på helt samme måde som EXPORT, blot dirigeres filen direkte til en
PLC-linie.
Da installationen af PLC-linier kan foretages på mange
forskellige måder skal denne rutine nødvendigvis tilrettes af en programmør,
før den kan tages i brug.
18.65. POUT Udskrift
af tekst/styrekarakterer direkte på printeren.
POUT
("tekst") bevirker direkte udskrift af tekst på printeren, uden at
teksten skal ligge i funktion 7. Dette kan specielt anvendes for
printer-styrekoder:
POUT
("@Q;") skifter printeren til
NLQ skrift. ; betyder, at der ikke skiftes linie ved denne print.
Denne funktion
vil virke, selv om printeren ikke er defineret med udvidet printerstyring, idet
POUT i så fald anvender standardkoderne fra tabellen DMS.RAP.LPT.
18.67. PRIO Sæt
prioritet.
Formål: Tuning af hastighed.
I visse tilfælde
ønsker man store, eventuelt sorterede rapporter sat ned i prioritet for ikke at
belaste andre brugere.
Dette kan gøres ved at indlægge en FØRST
beregning:
FØRST
PRIO(1)
NORMAL
Hvorved skærmens
prioritet bliver sat til det laveste 1.
Skærmens
prioritet vil blive sat tilbage til det oprindelige når rapporten afsluttes. Er
man bange for misbrug af denne funktion kan rapportgeneratoren installeres uden
eller man kan ændre navnet på funktionen ved installation.
18.69. PXOUT Export
direkte på PC-harddisk via ERNA.
Med ERNA-8870
emulering kan man med PXOUT ("1-10","C:/DIR/NAVN")
exportere direkte til en CSV fil på PC'ens harddisk. Funktionen fungere på helt
samme måde som EXPORT, blot refererer filnavnet til en DOS-fil.
PXOUT gør det
samme som PCOUT, blot ved hjælp af den nye overførsels‑metode, som også
TEXTTRAN anvender. Nixdorf systemet behøver derfor ikke være sat specielt op
for at kunne anvende denne funktion.
18.71. PZOUT
Udskrift direkte til PC-harddisk via ERNA.
Med ERNA-8870
emulering kan man med PZOUT ("C:/DIR/NAVN") omdirigere hele
udskriften fra en printer til PCens harddisk uden at skulle foretage nogen
overførseler.
Rapporten skal
startes fra en PC med ERNA og som printer skal vælges P for skærmprinter, idet
overførselen styres fra PC-skærmen som TEXTTRAN. Der kan ikke overføres
samtidig i to vinduer på samme PC.
18.73. RATE COMET
kurs-tabeller.
Denne funktion
kan selvsagt kun anvendes på COMET systemer. (TOP)
#20= RATE(#3)
vil hente kursen for valutaen iflg. felt 3 fra tabellen GF-04000xxx
Første gang RATE
anvendes, dannes en intern tabel over alle kurser, således at disse hentes
absolut hurtigst muligt.
Foruden
information om kursen kan man ved hjælp af:
#20= RATE
(#3,#21,#22,#23) få:
#21= valuta
navn
#22= antal
decimaler
#23= enhed
18.75. RUND
Definition af FNR afrunding til fx. 5 øre.
Ved beregning af
fx. moms bør man afrunde beløbet ved hjælp af FNR funktionen, der normalt vil
afrunde til 2 decimaler.
Med RUND kan man
angive, hvordan FNR skal afrunde:
RUND (5)
#50=FNR(#15*25/100)
vil afrunde til nærmeste 5-øre. Dvs. RUND (25) til
nærmeste 25-øre, RUND (100) til nærmeste krone.
Alle FNR
fungerer som angivet i sidst anvendte RUND, afrundingen kan altså også ændres
under kørselen fx. afhængigt af et felt: IF #7=1 RUND (5). Anvendes en negativ
værdi, fx. RUND (-5) vil FNR altid runde ned.
18.77. SIZE
Optimering af pladsforbrug i store rapporter.
Med SIZE() i
beregningerne på en rapport aktiverer man en plads-optimeringsfunktion der
finder sted ved genereringen af rapporten og foretager hvad der svarer til
operativsystemets UNCOMMENT, dvs. alle næsten kommentarer fjernes fra det
genererede program. Herved stiger genereringstiden med ca. œ minut, til gengæld
bliver det muligt at definere yderst store rapporter.
SIZE er en
forløber for SPEED, der går væsentligt mere aggressivt til værks både med
hensyn til plads og hastigheds optimering.
SIZE (32) bevirker at programmet SAVEs med size 32 KB
også (8870).
SIZE (32,1) fjerner
feltdefinitionerne fra programmet under kørselen, disse anvendes normalt kun af
EXPORT/IMPORT funktionerne.
SIZE (32,2)
fjerner desuden samtlige tekster (overskrifter mm) fra rapporten, hvorved der
kun kan udskrives felter. Specielle rapporter kan herved spare en del plads.
18.79. SMAA
Konvertering af navne fra store til store/små bogstaver.
#50= SMAA
(#2) konverterer tekstfelt 2 til
store/små bogstaver.
Hvis felt 2 fx.
indeholder navnet CHRIS HANSON vil felt 50 blive Chris Hanson
18.81. SOGE Dannelse
af søgenøgle fra adressefelt.
Med denne rutine
kan man danne en rimelig god søgenøgle ud fra et adressefelt. Denne søgenøgle
kan så anvendes til fx. sortering af rapporten.
#50= SOGE
(#3,15) vil danne en sådan søgenøgle, #3 er adressefelter, 15 angiver at
husnummer placeres i pos.20.
Hvis felt 3
indeholder Grenå Gade 2, 1.tv vil felt 50 blive GRENÅGADE______0002
17 Rue de
Jambon vil blive til RUEDEJAMBON____0017
18.83. SORTWORK
Flere sorteringskartoteker.
RAPGEN har
normalt kun eet sorteringskartotek, medmindre man har installeret flere
forskellige rapportsystemer med selvstændige sorteringskartoteker.
Dette betyder,
at kun flere rapporter ikke kan sortere samtidig, til gengæld ville oprettelsen
af et større antal sorteringskartoteker fra starten kræve stor forudseenhed og
meget diskplads.
Fra version
01/10-92 vil RAPGEN automatisk forsøge at åbne et eventuelt extra
sorteringskartotek DMSORTWORK01 hvis det normale DMSORTWORK er optaget. Findes
dette, men er optaget, forsøges DMSORTWORK02, og så fremdeles indtil et
kartotek ikke findes. Ved installation kan der således bygges vilkårligt antal
sorteringskartoteker.
Ønsker man at
sortere samtidig fra flere rapporter, og har man diskplads til dette, kan man
også fast bestemme, at en rapport skal anvende et bestemt sorteringskartotek
ved at indlægge en beregningslinie:
SORTWORK (47)
Rapporten vil herefter anvende sorteringskartoteket
DMWORKWORK47 som man selv skal sørge for er til stede først, fx. med BUILDXF,
navn:DMSORTWORK47, antal records: ??????, recordlængde:15, keylængde 15.
Ved hjælp af:
SORTWORK (-47)
kan man også få RAPGEN til selv at bygge
sorteringskartoteket, der i så fald oprettet hver gang rapporten startes med
det antal records, der er brugt i rapportens hovedkartotek.
18.85. SPOFF
Fjernelse af blanke i tekstfelter.
Formål:
Fjernelse af blanke i starten og i slutningen af et tekstfelt, specielt til
brug ved selektion.
Hvis et
tekstfelt indeholder " A " for een record og "A " for en anden record kan man med en
selektion på
SPOFF(#15)
MINIMUM:"A"
MAXIMUM:"A"
fange begge disse records hvilket ellers ville kræve
rimeligt komplicerede beregningslinier.
18.87. STAR
funktioner for regnskabsrapporter.
Disse
subfunktioner er specielt udviklet for at lette definitionen af regnskabsrapporter på STAR systemet.
Funktionerne
henter automatisk regnskabsår fra VIKA og budgetter fra BUKA samt summerer
indenfor den givne periode. Herved forkortes skrivearbejdet i disse rapporter
ganske væsentligt.
Funktionerne er
beskrevet i installationsmanualen for subfunktioner og er vil ikke blive nøjere
beskrevet her udover nedenstående oversigt:
18.88.1. STARD Hent
regnskabsår og periode‑datoer.
18.88.3. STARF Beregn
periode/åtd realiseret og budget
18.88.5. STARN
Nøgletalsberegninger
18.88.7. STARP Definer
regnskabs‑periode.
18.88.9. STARS Juster
periodens tal til periode 1
18.89. TAPEOUT
Export direkte til bånd.
TAPEOUT fungerer
på præcis samme måde som EXPORT, blot dannes filen ikke på disken men skrives
direkte ned på et bånd (med call 70). Båndet vil være uden label og
export-parameteren FILNAVN er uden betydning.
18.91. TEST
Testprint funktion.
Med TEST ("1-10") i beregningerne på
en rapport vil man få et testprint af felt 1 til 10 på skærmen når rapporten
køres.
Med TEST
("1-10","$LPT") dirigeres dette testprint til en printer
(eller fil).
Figur 35 Udskrift af TEST("1‑10").
VARE NAVN PRIS KOSTPRIS
KØBSDATO LEV GRU
0101 BOLT 2.00 1.50
1.01.87 271 0
0102 TRUCK‑HOPPER 20000.00
10000.00 1.01.85 100 9
0110 TRUCK‑WORK 100000.00 60000.00
15.12.86 123 2
1001 TRUCK‑WHEEL 1000.00 500.00
31.12.86 205 0
1005 TRUCK‑GEARBOX 2000.00
1500.00 1.06.86 100 1
2001 BOLT‑SPEC./AL 20.00 10.00
1.01.87 205 9
2002 BOLT‑SPEC./BR 25.00 10.00
30.07.86 205 9
TEST
subfunktionen er en variant af EXPORT funktionen.
18.93. UNPACK
Udpakning af pakkede felter.
Formål: I
specielle tilfælde ved komplex kartoteksstruktur kan UNPACK lette behandlingen
af pakkede felter.
Normalt vil
udpakningen af felter altid blive klaret automatisk, idet der ved installation
er sørget for dette i forbindelse med kartoteksdefinitionen.
#47=UNPACK(#15)
kan dog anvendes
hvis dette ikke er tilfældet til at udpakke tekstfeltet felt 15 til det
numeriske felt 47.
UNPACK kan
anvendes flere gange på en linie:
#47=UNPACK(#15)+UNPACK(#16)
eller anvendes på
dele af felter/nøgler:
#47=UNPACK(R$(7,10))
Se også PACK.
18.95. UPDATE
Aktiver skrivning i en rapport.
Se kapitel 15 vedrørende skrivning i kartoteker.
Ved anvendelse
af REWRITE, WRITE, INSERT og DELETE kommandoerne skal der placeres en
beregningslinie med
UPDATE(1)
først i
beregningerne for at skrivning skal være aktiv.
18.97. UPPER Store
bogstaver.
#50= UPPER
(#2) konverterer tekstfelt 2 til store
bogstaver.
18.99. VALCH Værdier
af et tekstfelt.
Formål: ELLER
selektion på at et tekstfelt indeholder enten dit eller dat.
#47=VALCH(#7,"AA,BB,CC")
vil give 0 hvis #7
er enten AA eller BB eller CC og vil give 1 hvis #7 ikke er een af disse
værdier.
De forskellige
tilladte værdier adskilles af komma, og man kan angive lige så mange værdier af
vilkårlig længde som ønsket.
Ved at indlægge
en selektion på at #47 skal være lig med 0 vil rapporten kun blive udskrevet
hvis felt 7 er een af de givne værdier.
#47=VALCH(#7,"‑AA,BB,CC")
returnerer omvendt
0 hvis felt 7 ikke er en af de givne værdier, ellers 1.
Specielt kan man
anvende en selektion på:
VALCH
(#7,#DA1)
hvorved man kan
indtaste de forskellige værdier ved opstart af rapporten.
Start‑ og
slut‑ blanke fjernes fra teksten i felt 7 før funktionen udføres.
18.101. VALID Værdier
af et kodefelt.
Formål:
Forenkling af eller selektioner på at en kode indeholder enten den ene eller
den anden værdi.
#47=VALID(#15,"1,3,5,10‑15")
vil returnere 0
hvis det numeriske felt 15 er een af værdierne 1,3,5,10,11,12,13,14 eller 15,
ellers 1.
Herved kan man
let indlægge en selektion i en rapport hvilket før ville kræve flere
beregningslinier. Specielt kan man indlægge selektionen direkte på
VALID
(#15,#DA1) MINIMUM:=0
hvorved man kan
indtaste hvilke koder, der skal udskrives, ved opstart af rapporten.
VALID
(#15,"‑1,3,5,10‑15")
vil omvendt give 0
hvis felt 15 ikke er een af de givne værdier.
VALID
(#15,"890331,890415‑890420")
valid kan også
anvendes til datofelter eller lignende. Se også VALIX nedenfor.
18.103. VALIX Værdier
af et kodefelt.
Formål: Hurtig selektion som beskrevet i VALID
rutinen.
VALIX funktionen
virker præcis som VALID funktionen, dog med den undtagelse, at VALIX ved første
kald bygger en tabel op over de forskellige tilladte værdier af koder og
selektionerne foregår herefter direkte ved opslag i denne tabel hvilket er
meget hurtigere end for VALID, der ikke har en sådan tabel.
Til gengæld
kræver VALIX et fast maximum af koder for at kunne danne en tabel med dette
antal og der bruges 1 byte pr. værdi.
VALIX(#15,"1,3,5,10‑15") vil virke præcist som
VALID(#15,"1,3,5,10‑15")
blot hurtigere og med den begrænsning, at de tilladte
værdier ikke kan ændres under kørselen.
VALIX(#15,"10‑15,471‑480,903",1000)
Såfremt en eller
flere af værdierne er større end 99 kræver VALIX en tredje parameter der
angiver hvor stor tabellen skal oprettes (max.kode).
VALID(#15,"890331,890405‑890415")
kan ikke skrives
med VALIX da man ikke kan oprette en tabel med 899999 elementer.
18.105. WEEK
Beregning af uge fra dato eller omvendt.
Ved hjælp af
denne subfunktion kan man beregne et ugenummer ud fra en given dato eller en
dato ud fra et givet ugenummer.
I modsætning til
FNV funktionen vil WEEK regne med skæve uger, dvs. første/ sidste uge i året
justeres korrekt.
#47=WEEK(010189) giver
8852 i felt 47.
#47=WEEK(890101) uanset
hvordan datoen vender.
#47=WEEK(8852) giver
startdatoen for ugen 8852.
Dannelsen af en dato ud fra et ugenummer kræver dog
mindst operativsystem NIROS 7.0.2 eller nyere.
18.107. WORKD
Beregning af arbejdsdage mellem 2 datoer.
Denne funktion svarer til den tidligere LOAD ARB, se
denne.
#47=WORKD(310389,050589)
vil beregne
antallet af arbejdsdage mellem de to givne datoer.
Subfunktionen
har en indbygget kalender, der kan tilrettes til de individuelle firmaer,
hvorfor dette bør afstemmes med programmøren før brug.
Der er mulighed
for halve fridage også i denne rutine.
18.109. ZERO
Nulstilling af arbejdsfelter.
Med denne
subfunktion kan man let nulstille en række frifelter:
ZERO("51‑60")
Nulstiller felterne 51 til 60
ZERO("51,55") Nulstiller felterne 51 og 55
Funktionen kan kun
anvendes på frifelter.
Se også LET(#51‑60=0)
kommandoen i kapitel 15.
19. Opdatering
med rapportgeneratoren.
Skrivning i
kartoteker har indtil nu været begrænset til DATAMASTER kartoteker eller
kartoteker, programmøren har givet speciel skrivetilladelse ved installation, og dette vil fortsat være
tilfældet. Det kan være farligt at skrive tilbage i kartoteker og man kan komme
til ødelægge data herved.
Opdatering med
rapportgeneratoren har udover disse begrænsninger indtil nu kun været
tilbageskrivning i en rapports hovedkartotek, således at en record kunne læses,
beregninger udføres og denne record opdateres med nye værdier.
Med denne
version udvides mulighederne for opdatering væsentligt:
‑
Skrivning i op til 9 kartoteker i en rapport
‑
Opdatering af op til 15 index pr. kartotek
‑ Indsættelse/sletning
af records
Herved kan man nu
opbygge nye kartoteker udfra bestående ved hjælp af en rapport.
Disse funktioner
opnås ved at indføre 4 simple kommandoer i rapportgeneratorens
beregningsmodul:
REWRITE
(XX) for
opdatering af en record
WRITE (XX)
for opdatering eller dannelse af en ny record
INSERT (XX) for
indsættelse af en ny record
DELETE (XX) for
sletning af en record
samt 2 subfunktioner til den mere overordnede styring:
UPDATE (1) aktiverer
opdatering (eller deaktiverer denne)
NOPAS ( )
kan frakople passwordet på rapporten
og sidst med ikke mindst for behagelighedens skyld:
LET (#1‑10=XX#1‑10)
flytning af et bundt af felter
20.1. Definition
af en rapport med opdatering.
Tidligere skulle
en opdaterende rapport defineres på et specielt kartotek, f.eks. XX,W man
skulle således fra starten beslutte om en rapport skulle opdatere eller ej.
(Denne funktion kan stadig anvendes af hensyn til bestående rapporter).
Nu aktiveres
tilbageskrivningsrutinerne ved brug af en af kommandoerne REWRITE, WRITE,
INSERT eller DELETE i en beregningslinie. Herved inkluderes write‑statements
(DMREAD.XXW) for det/de refererede kartoteker i rapporten.
Rapporten er dog
stadig 'uskyldig', da disse skriveinstruktioner aldrig vil blive udført.
Rapporten kan køres og testes som om denne var helt uden opdatering.
Det er først når
linien
UPDATE
(1)
indlægges som første linie i beregningerne at rapporten
bliver 'skarpladt' og udfører opdatering i kartotekerne.
20.3. UPDATE
aktivering af opdatering.
Al skrivning vil
være deaktiveret indtil subfunktionen UPDATE kaldes i beregningerne med en
værdi forskellig fra 0.
Typisk vil man
som første linie i beregningerne indlægge
UPDATE (1)
når rapporten
ellers er testet og produktionsklar.
UPDATE kan
kaldes med 3 forskellige værdier:
0 skrivning er ikke aktiv
1 skrivning er aktiv
2 skrivning er aktiv som for 1, men hvis der
sker fejl afsluttes kørselen omgående
3 skrivning er aktiv, eventuelle fejl
ignoreres
Da UPDATE er en
subfunktion kan man angive beregningsudtryk som parameter for denne istedet for
blot 0,1 eller 2. Dette kan udnyttes ved at indsætte f.eks.:
UPDATE (#D1)
hvorved man
aktiverer et af start‑data felterne i rapporten.
Når man nu
starter denne kan man indtaste 0 eller 1 alt efter om rapporten skal opdatere
eller ej.
UPDATE
beregningslinien bør indlægges først i beregningerne da opdatering først er
aktiv efter at denne linie er udført. Det er dog muligt at skifte UPDATE mode
ved at indlægge flere UPDATE linier i beregningerne, f.eks. køre med UPDATE (2)
ved kritiske sekvenser eller UPDATE (0) under sortering.
20.5. NOPAS
frakopling af password.
En rapport med
opdatering vil straks blive passwordbeskyttet når man udsteder en af
kommandoerne REWRITE/WRITE/INSERT eller DELETE.
Da der findes
andre måder til at passwordbeskytte rapporten, f.eks. via brugernavn eller ved
at indsætte i TAMOS selektor, er der mulighed for at frakople dette
password.
Ved at indlægge
en beregningslinie:
NOPAS ( )
fjernes passwordet
og man er selv herre over om denne rapport skal password beskyttes.
Det er
ligegyldigt hvor i beregningerne denne linie placeres.
20.7. REWRITE (XX)
opdatering af en record.
REWRITE (XX) vil
skrive det nye indhold af en record tilbage i kartoteket.
For at denne
funktion kan udføres skal der naturligvis være læst en record fra det
pågældende kartotek først.
Hvis XX er
hovedkartoteket for rapporten er dette altid tilfældet og REWRITE (XX) vil
fungere som i gamle dage hvor rapporten blev defineret på kartoteket XX,W. Dog
vil kartotekets index blive opdateret, hvis disse ændres.
Hvis XX ikke er
hovedkartoteket må man nødvendigvis have en linie med READ (XX) før REWRITE
(XX) kan udføres.
Mangler denne,
eller er den pågældende READ ikke gået godt, vil REWRITE blot blive ignoreret.
20.9. WRITE (XX)
opdatering/oprettelse af en record.
WRITE (XX)
fungerer præcis som REWRITE (XX) såfremt man har læst en record fra det
pågældende kartotek, dvs. XX er hovedkartoteket eller en linie med READ (XX) er
gået godt.
Hvis dette ikke
er tilfældet, f.eks. den pågældende record blev ikke fundet ved READ (XX), vil
WRITE (XX) fungere på samme måde som INSERT (XX), der vil altså blive oprettet
en ny record i kartoteket.
Her skal man
naturligvis have sørget for via beregninger at felterne, specielt
nøglefelterne, har relevante værdier.
Desuden skal man
være opmærksom på, at READ (XX) vil nulstille recorden helt, hvis denne ikke
findes i kartoteket og kartoteket ikke er hovedkartotek.
20.11. INSERT (XX)
oprettelse af en ny record.
INSERT (XX) vil oprette en ny record i kartoteket XX og
skrive denne.
Man skal
naturligvis være specielt omhyggelig med at diverse nøglefelter til brug for
opdatering af index alle er sat korrekt.
20.13. DELETE (XX)
sletning af en record.
DELETE (XX) vil
slette en record fra kartoteket XX og man skal naturligvis passe på her!
SPECIELT skal
man være opmærksom på, at hvis XX er hovedkartotek og man blot indlægger en
beregningslinie med DELETE (XX) vil ALLE records i det givne start/stop
interval for rapporten blive slettet!
NORMAL
beregninger udføres jo altid uden hensyn til en eventuel selektion, ønsker man
kun udvalgte records slettet skal man enten gøre dette med en
EFTER
beregning eller
direkte med: IF ......... DELETE (XX)
20.15. Opdatering
af index i kartotekerne.
Et kartotek kan
have op til 15 index og disse vil blive opdateret af rapportgeneratoren såfremt
disse er defineret.
DATAMASTER vil altid definere index således at disse kan
opdateres.
Ved skrivning af
en record vil rapportgeneratoren checke, om felterne, det pågældende index er
opbygget af, er ændret. Er dette tilfældet vil index også blive ændret.
Nu er der jo
altid mulighed for at index af een eller anden grund ikke kan opdateres, for
eksempel i tilfælde af, at det pågældende nummer findes i forvejen. Såfremt
denne forfærdelige situation opstår ved opdatering af det syvende index efter
korrekt opdatering af de første seks vil rapportgeneratoren automatisk opdatere
de første seks baglæns, således at intet er opdateret, og herefter give sin
fejlmeddelelse.
Det er muligt
for en programmør at definere kartoteks‑skrivning uden om DATAMASTER
kartoteker med eller uden index‑opdatering, eventuelt kan kun opdatering
af enkelte ukritiske felter i kartoteket tillades.
Ved anvendelse
af WRITE eller REWRITE kommandoerne vil man blive advaret om at index ikke
bliver opdateret for det pågældende kartotek i et sådan tilfælde.
WRITE og REWRITE
vil her fungere ens, nemlig blot som en tilbageskrivning af de nye felter i
kartoteket.
Forsøger man at
anvende enten INSERT eller DELETE kommandoerne vil dette give en
fejlmeddelelse. Skulle man yderligere forsøge at starte en sådan rapport vil
denne omgående blive afbrudt med samme fejlmeddelelse.
20.17. Ændring i
behandling af hovedkartoteket.
Ved definition
af en rapport på kartoteket XX har man hidtil haft mulighed for at anvende
felterne XX#1, xx#1, xX#1 og Xx#1 i rapporterne som flere forskellige records
fra samme kartotek, f.eks. til brug for 5 labels på samme linie.
Denne funktion
bevares indtil videre uændret, men READ (XX) ændres til ikke at læse en
selvstændig record, men derimod en record fra hovedkartoteket.
Dette er
nødvendigt for at tillade f.eks. WRITE (XX) for tilbageskrivning på
hovedkartoteket.
Rapporter der
anvender READ (XX) på hovedkartoteket vil stadig kunne anvendes, men ved første
ændring i beregningerne på en sådan rapport vil det være nødvendigt at udskifte
XX med for eksempel xx.
20.19. Fejlbehandling
ved opdatering.
Man bør
naturligvis altid have testet sin rapport med opdatering først uden at
opdateringen er aktiveret med UPDATE.
Fejl i
forbindelse med opdatering kan være ret alvorlige og vil derfor altid blive
indsat i systemets logbog.
Desuden vil
fejlmeddelelsen blive udskrevet på rapporten umiddelbart før den printlinie,
hvor fejlen opstod. Herved vil læseren af den pågældende rapport blive gjort
opmærksom på fejlen. Desværre kan sådanne udskrifter forstyrre et ellers nydeligt
sideskift på formularen, men hellere det end at overse en alvorlig fejl.
I tilfælde af
forsøg på INSERT/DELETE på et kartotek, hvor index ikke er defineret, vil
rapporten omgående blive afbrudt efter denne fejlmeddelelse.
Ved 'normale'
fejl som record findes i forvejen, gives fejlmeddelelse herom med
kartoteksnavn, index, fejlnummer og for så vidt muligt den indexnøgle hvor
fejlen opstod. Ved hjælp af UPDATE kommandoen har brugeren i forvejen bestemt
om programmet skal fortsætte (UPDATE (1)) eller afbrydes (UPDATE (2)) med det
samme.
20.21.
15.11. Opdateringens
placering i beregningerne.
Man skal være
særdeles opmærksom på, at NORMAL beregningerne foretages FØR selektion for alle
records og OGSÅ under en eventuel sortering, se beskrivelsen af DELETE for et
eksempel på dette.
Man skal normalt
altid anvende EFTER beregninger ved opdatering i en rapport med selektion.
Ved sortering af
en sådan rapport eller ved anvendelse af beregnede totaler skal NÅR kommandoen
normalt altid anvendes.
Anvendes
beregnede totaler kan man f.eks. opbygge et nyt kartotek indeholdende totalerne
fra denne kørsel.
20.23. LTOT Laveste
total niveau ved opdatering.
Ved opdatering i
rapporter ønsker man ikke altid selve rapporten udskrevet på printeren, kun
selve opdateringen gennemført.
Ved at starte
rapporten med LAVESTE TOTAL NIVEAU som 9 vil printeren blive koplet helt fra og
intet udskrevet.
Hvis man ønsker
en kvittering for kørselen kan man naturligvis nøjes med at sætte laveste total
niveau til 1, således at kun grande total linien udskrives. Herved kommer
eventuelle fejl også ud på print.
Ved at indlægge
linien:
LTOT (1)
i beregningerne
vil laveste total niveau blive låst fast til 1 i denne rapport uanset hvad
brugeren taster ved opstarten (spørgsmålet om laveste total niveau ved start
vil dog stadig blive stillet).
20.25.
15.13. Opdatering af
hoved‑index for kartoteket.
Man kan ved skrivning af en record ændre alle index i
kartoteket.
Hvis man ændrer
det index i hovedkartoteket, som rapporten kører på, kan man risikere at en
record dukker op igen senere på listen placeret korrekt ifølge den nye nøgle.
Ændres for
eksempel telefonnumrene:
01248340 til
33248340 og
01240415 til
33120415
vil ialt 4 linier
blive udskrevet:
01248340
01240415
33248340
33240415
hvis telefonnr. er
hovedindex for rapporten. De allerede ændrede records findes altså senere i
sekvensen igen og blive behandlet flere gange.
20.27. Sikkerhed mod
opdatering i forkerte kartoteker.
Ved installation
af rapportgeneratoren installeres de forskellige kartoteker normalt kun med
læsetilgang, dvs. programmøren danner readstatements i en tekstfil på disken
med navnet DMREAD.XX.
Rapportgeneratoren kan ikke på nogen måde skrive i sådanne kartoteker,
da definitionen af write‑statements mangler.
DATAMASTER
derimod danner også en tekstfil med navnet DMREAD.XXW der indeholder både læse,
skrive og index opdateringsdefinitioner.
Rapportgeneratoren kan skrive i alle de kartoteker, hvor der findes en
sådan fil, og ikke i andre. Herved er
det normalt kun DATAMASTER kartoteker der kan opdateres.
En programmør
kan naturligvis danne en sådan tekstfil DMREAD.XXW for andre kartoteker i
systemet og på denne måde åbne for skrivning i de normale kartoteker. Men en
programmør, der er i stand til dette, kan jo også slette hele kartoteket med et
lille basic program, så dette indfører ikke nye risici i systemet.
Der findes ikke
nogen værktøjer til dannelse af write statements for andre kartoteker end
DATAMASTERS. Read‑statements kan dannes automatisk, men WRITE skal altså skrives i hånden for at sikre, at
disse ses og godkendes af en programmør.
Det er kun de
felter, der placeres i sådanne writestatements, der kan ændres af brugeren.
Kritiske felter såsom saldo kan således spærres.
Hvis der
placeres index‑definitionslinie (300/8200) i DMREAD.XXW kan
rapportgeneratoren også vedligeholde index samt indsætte/slette record. Dette
er ikke muligt hvis disse linier udelades, og i så fald bør også write af
felter, der indgår i index, udelades for ikke at risikere at filen bliver inkonsistent.
20.29. Spærring for
al opdatering.
Såfremt
rapportgeneratoren installeres uden modulet DMS.RAP.S7W vil alle kommandoer for
opdatering ganske enkelt blive deaktiveret og bevirke basic fejl ved forsøg på
start af rapporten.
Allerede
genererede programmer med skrivning vil kunne køre, selv om dette modul mangler
på systemet. En programmør kan således benytte S7W som nøgle til at
aktivere/deaktivere dannelse af sådanne rapporter.
20.31. OPEN
("XX","3/XXFILE) speciel kartoteksåbning.
Denne
subfunktion er mere beregnet på programmører end den normale bruger af
rapportgeneratoren.
Kartoteket
3/XXFILE vil blive åbnet istedet for det normale XX kartotek, dog for læsning
alene, IKKE for skrivning.
Rapportgeneratoren vil antage felterne i dette kartotek er de samme som
i XX.
Funktionen kan
anvendes f.eks. til kopiering eller rekonstruktion/udvidelse af index på et
kartotek ved f.eks. følgende:
1.) Rapporten
defineres på kartotek XX
2.) Beregninger
defineres som:
OPEN
("XX","3/OLD‑XX")
LET (xx#1‑99=XX#1‑99)
INSERT (xx)
Hvorved
hovedkartoteket XX udskiftes med 3/OLD‑XX, felterne herfra flyttes til
det rigtige xx kartotek aktiveret som en sekundær fil (små bogstaver) og en ny
record indsættes i dette kartotek.
Det nye kartotek
kan have flere felter eller andre index end det bestående ligesom diverse
beregninger kan udføres ved kopieringen.
Funktionen kan
også anvendes til at blande (merge) forskellige kartoteker sammen til eet.
20.33. Dannelse af
nye kartoteker med RAPGEN.
Denne funktion
sætter brugeren i stand til at definere nye kartoteker fra en rapport og skrive
data heri.
Til dette formål
anvendes LET kommandoen UDEN feltangivelse: LET (AA=#1,7,10-20)
vil få RAPGEN til at definere et nyt kartotek med
forkortelsen AA. Dette kartotek kommer til at indeholde de 13 felter 1 og 7
samt 10 til 20.
Felternes navne
og typer bliver som de oprindelige felters, ved at anvende frifelter kan man
selv definere navnene og typerne (feltformater). Det første felt bliver nøgle
medmindre andet angives.
Kartoteksdefinitionen opbygges med det samme RAPGEN møder LET-kommandoen
i beregningerne i funktion 4, hvilket man kan se ved at bruge HLP lige efter
LET kommandoen er godkendt. Det nye kartotek AA vil være med på skærmbilledet.
Når rapporten
startes bygges kartoteket på disken med plads til 100 records når man ikke har
angivet andet.
Ved hjælp af
skrive-kommandoerne i beregningerne (WRITE/REWRITE/INSERT/DELETE) kan man danne
records i det nye kartotek med alle former for felter/totaler.
Ved at definere
andre rapporter på kartoteket AA kan man senere trække data ud fra kartoteket
eller tilføje/slette records i dette, idet der er skrivemulighed på sådanne
kartoteker.
Hvis man er i
besiddelse af DATAMASTER kan kartotekerne umiddelbart anvendes heri, dvs. nye
records kan indsættes eller bestående kan ændres/søges. Ligeledes kan
kartoteket selv udvides/ændres ved hjælp af DATAMASTER funktionerne.
Kartoteket er også automatisk installeret i IQ hvor alle
type af forespørgsler/søgninger kan opbygges.
Kartotekerne fra
RAPGEN opbygges som helt normale indexed kartoteker og kan derfor også anvendes
af andre, specialskrevne, applikationer om ønsket. Med rapportgeneratorens
kartoteks-definitionsmodul kan en komplet dokumentation for kartotekets
struktur udskrives.
Der er fuld
sikkerhed mod skrivning i andre kartoteker end dem, der er opbygget på denne
måde med rapportgeneratoren selv (eller DATAMASTER). Desuden indgår -DMS- i
selve kartoteksnavnet på disken så andre kartoteker ikke kan ødelægges.
Der er
naturligvis mulighed for at styre hvilken disk, kartoteket skal placeres på,
samt hvilke index og hvor mange records der skal være. Dette beskrives i det
følgende.
Op til 79
kartoteker pr. rapportgeneratorsystem med hver op til 99 felter kan dannes på
denne måde.
Figur 36 Beregninger for dannelse af et nyt kartotek.
UPDATE (1) /*
Aktiver skrivning i rapporten
NOPAS () /* Deaktiver password
ved start
LET (AA=#1,7,10-20)
INSERT (AA)
Ovenstående
beregninger definerer det nye kartotek AA med 13 felter, felt 1 bliver
nøglefelt. Kartoteket bygges med 100 records når rapporten startes og data fra
rapportens hovedkartotek skrives heri.
20.34.1. Antal records,
disk og selskabsnummer.
LET
(AA=#1,7,10-20),2000 vil bygge
kartoteket med 2000 records første gang rapporten startes.
LET
(AA=#1,7,10-20),-2000 vil bygge
kartoteket HVER gang rapporten startes, dvs. kartoteket tømmes.
LET
(07/AA=#1,7,10,20) bygger kartoteket
på LU nr. 07.
LET
(07/AAabc=#1,7,10,20) vil indsætte
firmanummeret fra TAMOS selektor i kartoteksnavnet.
20.34.3. Mix af
kartoteker.
READ (LE)
READ (GR)
LET (AA=LE#1-10,17,GR#3,1,#15)
vil danne AA med
felterne 1-10 og 17 fra kartoteket LE, felt 3 og 1 fra GR og felt 17 fra
rapportens hovedkartotek (evt. et frifelt). LE#1 bliver kartotekets nøgle.
20.34.5. Index nøgler.
LET
(AA=#1K,7D,10-20) vil gøre felt 1 til
eentydig nøgle, felt 7 til ikke-eentydig nøgle.
LET
(AA=#1-2K,7,10-20) vil danne een
eentydig nøgle bestående af felt 1 og felt 2.
LET
(AA=#1,7,10-20;2) angiver at felt 2
fra AA skal være nøgle for kartoteket (dvs. oprindeligt felt 7).
Bemærk at
indexdefinitionen adskilles fra felterne med et semikolon. Ved at angive et
frifelt som nøgle kan man i beregningerne helt selv styre nøgleværdien.
20.34.7. Flere felter i
nøglen.
LET
(AA=#1,7,10-20;1,2) angiver at felt 1 og
2 fra AA skal sammenstilles til en nøgle. Der kan maksimalt være 30 karakterer
i en nøgle.
20.34.9. Flere index.
LET
(AA=#1,7,10-20;1,2;2,1) vil danne 2 index med henhv. AA#1 og 2 og omvendt. Der
kan defineres op til 15 nøgler pr. kartotek og RAPGEN vil altid sørge for
korrekt opdatering af alle.
20.34.11. Specielle
nøgler.
LET
(AA=#1,7,10-20;1,2,P) vil pakke begge
felterne i nøglen (for at spare plads).
LET
(AA=#1,7,10-20;1,2P) vil kun pakke
andet felt i nøglen.
LET
(AA=#1,7,10-20;1;2,NP) vil tillade samme
nøgleværdi for flere records i 2.index da recordnr. indgår.
LET
(AA=#1,7,10-20;7D) vil vende datoen
i felt 7 fra DDMMÅÅ til ÅÅMMDD for rigtig sortering.
Det er ikke
muligt at anvende dele af felter i en nøgle, hertil må man istedet beregne et
frifelt.
20.34.13. Sletning af
kartoteker.
LET
(AA=) uden angivelse af nogen felter vil
slette kartoteket og dettes definition igen.
20.34.15. Omdefinition af
kartoteker.
Anden gang
RAPGEN møder LET (AA=#1,7,10-20) i beregningerne i funktion 4 spørges om
kartoteket skal omdefineres (J/N). Svares J SLETTES kartoteket helt og
et nyt opbygges, dvs. alle data fjernes. Ved blot at ændre felterne kan man
således danne et helt andet kartotek.
Man kan
naturligvis også med en rapport kopiere AA over i et nyt kartotek BB med det
nye udseende og så slette AA. DATAMASTERs omdefinition af kartoteker kan også
anvendes.
20.34.17. Filnavne og
anden teknisk information.
Med LET
(AA=#1-10) dannes et kartotek med fx. navnet 3/DM-DMS-AA, hvor 3/DM er prefix
for 3/DMFILES fildefinition. -DMS-
indsættes altid for at undgå konflikter med andre filer.
Med LET
(07/AAabc=#1-10) dannes fx. kartoteket 07/DM-DMS-AA001, hvor 001 er selskabsnr.
fra TAMOS.
Feltdefinitionerne
lagres i DMDATAFIL8 (subsystem 8) der automatisk bygges første gang med plads
til 20 records. Der anvendes således ikke plads medmindre man anvender
funktionen.
Antallet af
mulige filer kan om nødvendigt udvides med #COPY (80:3000)DMDATAFIL8=OLD.DMDATAFIL8
21. Editerings‑funktionerne
11‑14.
Efterhånden som
der er kommet flere og flere funktioner i rapportgeneratoren, således at man
kan lave næsten enhver form for rapportprogram med mange kartoteker involveret,
er behovet for brugerdokumentation samt bedre oversigt ved ændring af
rapporterne steget.
Dette er nu
imødekommet ved at indføre en anden dialogform med brugeren i de nye funktioner
11‑14. Disse funktioner kan frit anvendes parallelt med eller i stedet
for de hidtidige funktioner der fungerer uændret.
Figur 37 De nye funktioner i menuen.
RAPPORTGENERATOR DANISH VERSION REPORT GENERATOR # 3
/11:00
DMS.RAPGEN
1 ... DEFINER NY RAPPORT
2 ... DEFINER
SELEKTIONER
3 ... DEFINER
SORTERING OG TOTALER
4 ... DEFINER
KALKULATIONER
5 ... SLET EN
RAPPORT
6 ... DEFINER
NYT BREV
7 ... RETTELSE
AF RAPPORT / BREV
8 ... UDSKRIFT
AF DEFINITIONER
9 ... START AF
UDSKRIFT
10 ... KOPIERING
11 ...
DOKUMENTATION
12 ... EDITERING
AF SELEKTIONER
13 ... EDITERING
AF SORTERING/TOTALER
14 ... EDITERING
AF BEREGNINGER
INDTAST
KODE:........
MEDDELELSE: * DEMO COPY ‑ NOT PAID FOR * 471199
22.1. Princippet
ved disse funktioner.
Til grund for
disse funktioner ligger et tekstbehandlingsmodul, hvor man let kan bevæge sig
rundt i rapport‑definitionerne og ændre på et vilkårligt sted. Man får
bedre oversigt over f.eks. større beregningsrutiner når der vises 21 linier af
gangen på skærmen. Til gengæld yder rapportgeneratoren ikke så meget støtte ved
at oversætte beregningerne i klar tekst under indtastningen, da dette ville
mindske overblikket og gøre tekstbehandlingen for langsom.
Når definitionen
med en af de nye funktioner afsluttes kalder rapportgeneratoren selv den
tilsvarende gode gamle funktion og gennemfører definitionen. Efter
beregningerne er ændret med funktion 14 kaldes således funktion 4 og man kan se
linierne rulle hurtigt igennem beregningsmodulet.
Dette er
nødvendigt for at få oversat beregningslinierne til et basicprogram, og desuden
kan der forekomme frifelter der skal defineres med navn og format. I så fald
vil rapportgeneratoren nu stoppe og bede om indtastning af disse oplysninger.
22.3. Tekst‑editoren.
Dette modul er
en enkel form for tekstbehandling hvor man let kan bevæge sig rundt i teksten
og indsætte/slette karakterer eller linier.
Figur 38 Editering af rapport‑dokumentation med
funktion 11.
DMS.RAPGEN 24 ORDRE‑RAPPORT 11....DOKUMENTATION
xxxxxxxxxxxxxxxxxxxxxxxxx
1 FRA FAKTURADATO (DDMMÅÅ, fx.
311289)
2 TIL FAKTURADATO (DDMMÅÅ, fx. 150190)
3
4 SOM START/STOP SKAL BLOT TASTES
CR.
5
6 LISTEN SORTERES I ORDRENR
RÆKKEFØLGE.
7
8
9
10 DENNE RAPPORT ER FREMSTILLET SOM
DEMO‑EKSEMPEL PÅ ET AF ALLANS UDEMÆRKEDE
11 KURSER.
12
13
14
15
16
17
18
19
20
21
MEDDELELSE:
På en linie kan man anvende pilene nederst på tastaturet
til at indsætte/slette karakterer eller gå til en bestemt position på linien.
Tastes blot cr. bevares linien uændret.
Med kan
man gå en linie op, @ bevarer linien uændret og går til næste linie ligesom
almindelig cr. @ tasten (specialkey nr.1) kan anvendes til TABulering i skrift
på 20 karakterer af gangen.
Ved at taste et
linienummer, f.eks. 147, oven i en eventuel tekst når man står i starten af en
linie, hopper man direkte til dette linienr. Ønsker man tallet 7 stående alene
først på en linie er man således nødt til at taste 7 efterfulgt af en blank for
at undgå at hoppe til linie 7.
Taster man 0 går
man ned på sidst definerede linie.
DEL kommandoen
kan anvendes til at slette et antal linier fra og med den linie, hvor man
angiver kommandoen. Man bliver spurgt om hvor mange linier, der skal slettes
fra dette sted, og tastes blot cr. sker der intet.
INS kommandoen
kan på samme måde anvendes til at indsætte et antal linier.
GET kommandoen
kan anvendes til at kopiere et antal linier ind fra en anden rapport. Man skal
angive rapportnummer samt fra/til linienr. der ønskes hentet herfra. Tastes
blot cr. i fra/til linienr. hentes alle bestående linier. De indlæste linier
vil overskrive eventuelt bestående, INS kommandoen skal således anvendes først
til at indsætte et antal frie linier hvis man ønsker dette.
PRT kommandoen
udskriver definitionerne på printeren ($LPT).
END afslutter
editeringen og såfremt teksten er ændret vil denne nu blive skrevet og f.eks.
generering af beregningerne gennemført. Hvis man ikke har ændret noget vil
rapporten blive bevaret uændret og behøves heller ikke genereres igen selv om
man har været inde og kigge på beregningerne.
Funktionerne 11‑14 kan således anvendes
til blot at forespørge på en rapport uden nogen opdatering overhovedet.
SPR annullerer
alle eventuelle ændringer og efterlader således altid rapporten helt uændret.
HLP kommandoen
kan som alle andre steder i rapportgeneratoren bruges til at vise felterne i
hovedkartoteket eller et vilkårligt andet kartotek. Når man vender tilbage fra
HLP ved blot at taste cr. vil den sidst viste HLP oversigt blive stående på
skærmen, og man vil nu befinde sig på 4 linier nederst på skærmen men ellers
udnytte samme funktioner som ovenfor beskrevet.
Figur 39 HLP ved editering af beregninger med funktion 14.
DMS.RAPGEN 24 ORDRE‑RAPPORT 14....EDITERING AF
BEREGNINGER
1 RECORD TYPE (10) 19 RECNR.SEDDEL BUND 37 @FRI
2 SEDDEL TYPE 20 KUNDENR 38 @FRI
3 FORMULAR 21 KUNDENR 39 @FRI
4 KUNDENR 22 @FRI 40 @FRI
5 ORDRENR. 23 @FRI
6 FØLGESEDDEL NR 24 @FRI
7 STATUS 25 @FRI
8 SKÆRM NR 26 @FRI
9 PRIORITET 27 @FRI
10 ÅBENPOST NR.KREDITNOT 28
@FRI
11 ÅBENPOST NR.FAKTURA 29 @FRI
12 RECNR.ORDREHOVED 30 @FRI
13 FAKTURA/FØLGESEDDEL N 31
@FRI
14 RECNR.ORDREBUND 32 @FRI
15 FAKTURA NR 33 @FRI
16 REGISTRERINGSDATO 34 @FRI
17 FØLGESEDDEL DATO 35 @FRI
18 VALUE DATO 36 @FRI
3 #21=OH#5
4 READ (DK) #21,P
5 FØRST
6 IF #D2=0 LET #D2=311289 /* CR.I TIL DATO ==> ALLE
MEDDELELSE:TAST 'MOD' FOR AT VENDE
TILBAGE TIL FULD SKÆRM IGEN.
Herved kan man have felterne fra et vilkårligt kartotek
stående på skærmen samtidig med indtastning af f.eks. beregninger.
MOD kommandoen
kan anvendes til at skifte tilbage igen således at editoren arbejder med hele
skærmen og man har bedre overblik over komplexe beregninger.
MOD kan også
anvendes når man arbejder med hele skærmen. Den øverste del af skærmbilledet
vil nu blive stående og man vil arbejde i mini‑editoren. Linierne kan nu
ændres samtidig med at man kan se hvordan de så ud før.
22.5. Funktion 11 ‑
Dokumentation.
Ved hjælp af funktion 11 kan man indtaste dokumentation
for en rapport.
Denne
dokumentation udskrives naturligvis sammen med rapportdefinitionerne ved
dokumentation af rapporten med funktion 8.
Desuden vises de
første 9 linier på skærmen ved start af rapporten. Her kan altså skrives en
vejledning til operatøren om hvordan kørselen skal foretages.
Figur 40 Start af rapport med dokumentation og datafelter.
DMS.RAPGEN 24 ORDRE‑RAPPORT 9....START AF UDSKRIFT
DAGS DATO ? 160290
PR. DATO ?
160290
INDEX:
START FRA ?
1:"10"+STAT+FORM+NR
STOP VED ?
FRA FAKTURADATO 310389 (DDMMÅÅ, fx. 311289)
TIL FAKTURADATO 010690 (DDMMÅÅ, fx. 150190)
SOM START/STOP SKAL BLOT TASTES
CR.
LISTEN SORTERES I ORDRENR RÆKKEFØLGE.
NB:LISTEN ER SORTERET,DET TAGER
DERFOR ET STYKKE TID FØR UDSKRIFTEN STARTER.
START:( J=BAGGRUND, S=SKÆRM,
P=SKÆRMPRINTER, N=ANNULER) ? Y
TESTPRINT / PRINTER VALG
(J/N/P/$xxxx) ? N
MEDDELELSE:
Anvender man start‑dato (#D1‑#D7) på en
rapport vil man se at disse 9 dokumentationslinier overskriver teksten for
start‑data værdierne ved opstart. Dette kan udnyttes til at give
forklarende navn og anden vejledning for disse specielle input‑felter,
hvor man tidligere var nødt til at definere et frifelt med navnet f.eks.
#D1INPUTFELT for at få en tekst frem.
Ved indtastning
af dokumentationen ses på øverste skærmlinie en række x'er på midten. Disse
indikerer den position, hvor input til startdata‑felterne #D1‑#D7
finder sted, således at man kan opbygge teksten i forhold hertil.
Dokumentationen
kan bestå af op til 99 linier eller op til 199 linier hvis man har 32 KB til
rådighed. Dokumentationen lagres som ren tekst i en tekstfil med navnet f.eks.
0/DMT1047.DOC og kopieres naturligvis ved kopiering af en rapport til en anden
samt slettes ved sletning af en rapport.
Under visse
omstændigheder kan man ønske at skrive anden tekst på hele opstarts‑skærmbilledet,
fx. START FRA KUNDENR:. Indeholder første linie teksten:ALL
vil de 20 første linier blive vist på skærmen ved
opstart. Man må eventuelt prøve sig lidt frem for at få sine egne tekster til
at stå perfekt.
Hvis man i
dokumentationen for en rapport placerer fx. linierne:
INP
310392
4711?
INP
vil dette
definere standard opstartværdier, idet:
- INP slår
standardværdier til
- Dags dato
sættes fast til 310392
- Der tastes
automatisk cr. for pr. dato
- Som start
fra foreslås 4711, dette kan rettes
- INP igen
slår standard fra, stop ved, totalniveau etc. skal indtastes manuelt.
Den første INP kommando skal findes før linie 10 for at
standardfunktionerne aktiveres.
22.7. Funktion 12 ‑
editering af selektioner.
Når denne
funktion vælges får man rapportens selektioner overført til editoren og kan
ændre disse hermed.
Figur 41 Editering af selektioner med funktion 12.
DMS.RAPGEN 24 ORDRE‑RAPPORT 12....EDITERING AF
SELEKTIONER
FELTNR. MINIMUM MAXIMUM
1 #2 !2 !6 !
2 QUICK ! ! !
3 FND(#18) !FND(#D1) !FND(#D2) !
4 ! ! !
5 ! ! !
6 ! ! !
7 ! ! !
8 ! ! !
9 ! ! !
10 ! ! !
11 ! ! !
12 ! ! !
13 ! ! !
14 ! ! !
15 ! ! !
16 ! ! !
17 ! ! !
18 ! ! !
19 ! ! !
20
! ! !
21 ! ! !
MEDDELELSE: TAST
HLP FOR FELTOVERSIGT.
Hver linie er opdelt i 3 kolonner for henholdsvis
feltnr., minimum og maximum og med cr. eller ved indtastning af en værdi
bevæger man sig hen ad linien til næste felt.
Bortset fra
selve indtastningsformen defineres selektionerne helt som normalt.
INS/DEL/HLP/MOD kan anvendes i editoren, dog er GET for kopiering af
selektioner ikke implementeret da der normalt er tale om at få linier således
at værdien heraf ville være begrænset.
Når man taster
END defineres selektionerne på rapporten. Er der knyttet et brugernavn til
rapporten skal dette nu indtastes før selektionerne bliver ændret.
22.8.1. Selektioner på
alfa‑tekstfelter.
Det har vist sig
at en typisk fejl ved definition af rapporter er at glemme at sætte gåseøjne
omkring en tekst ved selektion på tekstfelter.
Dette har
rapportgeneratoren gjort automatisk i ældre versioner, men da faciliteten med
at man kunne udføre beregninger direkte i selektionerne og selektere på værdier
<> blev denne facilitet fjernet.
Nu genindføres funktionen på en endda lidt smartere måde:
Hvis selektion
på felt 2 skal være minimum "A" og maximum "B" kan man
udelade gåseøjnene både om "A" og "B".
Man kan stadig
bruge beregninger og operatorer og altså også angive minimum som f.eks. #5
eller <> "A" eller <>A.
Angives minimum/maximum
som et tal, f.eks. 10, er det altid et problem med tekstfelter at værdierne 10
kan være indtastet til højre eller til venstre i teksten, og således ikke
umiddelbart fanges ved selektionen.
Dette vil
rapportgeneratoren nu også tage højde for ved at omforme tekstfeltet til et tal
og herefter selektere på værdien af dette tal hvis man blot angiver 10. Angives
"10" betyder dette som hidtil at de to første karakterer af teksten
skal være "10".
Ved både
selektion på tekstfelter og talfelter vil en værdi angivet med komma, f.eks.
47,11, automatisk blive ændret til 47.11 med punktum da dette kræves af basic.
Herved elimineres en anden typisk fejlsituation fra selektionerne.
22.9. Funktion 13 ‑
editering af sortering og totaler.
I denne funktion
vil man få et skema frem der indeholder rapportens sortering og totaldefinition
og man kan frit ændre heri.
Figur 42 Editering af sortering og totaler med funktion 13.
1 SKAL LISTEN SORTERES (J/N):Y
2 VEJEDE TOTALER (J/N):N
3 TOTALNIVEAU (OG
SORTERINGSKRITERIE)
4 FELTNUMMER NAVN TOTAL NAVN SIDESKIFT
5 #5 ORDRENR. !Y
!ORDRETOTAL
!N !
6 #8 !N ! ! !
7 ! ! ! !
8 ! ! ! !
9 ! ! ! !
10 ! ! ! !
11 BEREGNEDE TOTALER (J/N):N
12 FELTER DER SKAL TOTALISERES
13 22,23,27
14
15
16 GRUPPETOTALER (J/N):J
17 FELTNUMMER NAVN ANTAL KODER GRUPPENAVN
18 #8 !100 !SKÆRMTOTAL !
19 ! ! !
20 ! ! !
21 ! ! !
Visse linier indeholder ledetekster, f.eks. SORTERING
(J/N): og her stilles man lige efter : og kan indtaste svaret.
Andre linier er rene overskriftslinier og overspringes
helt.
Andre linier igen er opdelt i kolonner ligesom ved
editering af selektioner således at man har flere felter på samme linie.
Selve
definitionen svarer helt til de felter der normalt skal indtastes ved
definition af sortering og totaler.
For ikke at
ødelægge det pæne skema er der i editoren ved denne funktion ikke mulighed for
at anvende hverken INS/DEL eller GET kommandoerne da dette ville kunne forvirre
rapportgeneratoren senere.
Er der ikke nok
linier til rådighed til at definere en sammensat sorteringsnøgle er man nødt
til at gå ud med END og herefter gå ind igen. Herved vil rapportgeneratoren
indsætte flere frie linier i denne blok.
En linie kan slettes ved blot at blanke alle felter ud.
Når man taster
END gennemføres den nye definition af sortering og totaler.
22.11. Funktion 14 ‑
editering af beregninger.
Dette er nok den
funktion der har været mest ønsket af brugerne af rapportgeneratoren.
Figur 43 Editering af beregninger med funktion 14.
DMS.RAPGEN 24 ORDRE‑RAPPORT 14....EDITERING AF
BEREGNINGER
....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,..
1 NÅR 20 KUN ANDET PASS ALTID
2 READ (OH)
3
4 LET (#23‑25=0)
5 START (OL)
6 NEXT (OL)
7 #23=#23+1
8 IF #23>10 GOTO A
9 OM (OL)
10
11 A:#21=OH#5
12 READ (DK) #21,P
13 FØRST
14 IF #D2=0 LET #D2=311289 /* CR.I TIL DATO ==> ALLE
15
16
17
18
19
20
21
Man kan frit bevæge sig rundt i beregningslinierne og
udnytte alle editorens funktioner INS/DEL/GET/HLP/MOD. Når
beregningsdefinitionen afsluttes med END gennemføres genereringen ved
automatisk kald af funktion 4.
Beregningslinierne indtastes helt som normalt i funktion 4, dog er NÅR
kommandoen lidt speciel, da denne ved indtastning i funktion 4 vil stille 2
spørgsmål om henholdsvis gennemløb og beregning af totaler.
I funktion 14
stilles ingen spørgsmål da dette er en ren tekstbehandling. I stedet skal man
indtaste NÅR efterfulgt af 2 tal, f.eks. NÅR 12 hvor det første tal giver
svaret på første spørgsmål, det andet tal svarer til andet spørgsmål.
Har man anvendt
nye frifelter under editering af beregningerne vil den efterfølgende funktion 4
stoppe op og bede om indtastning af navn og format for det/de nye felter.
Ved editering af
beregningerne har man op til 99 linier til rådighed, hvis rapportgeneratoren er
installeret med 32 KB dog helt op til 199 linier.
22.12.1. Kommentarer på
beregningslinierne.
Det har altid
været muligt at indlægge REM linier med kommentarer i beregningerne og med den
nye editeringsfunktion får man større fordel heraf.
Desuden kan man
nu skrive kommentarer til højre på hver linie ved at angive /* og herefter en
fri tekst på den pågældende linie. Denne funktion har hidtil været brugt af
rapportgeneratoren selv og ikke været tilladt men er nu åbnet for brugeren
også.
/* kommentarer
kan dog ikke (endnu) anvendes i forbindelse med READ (XX) læsning af andre
kartoteker.
22.12.3. GOTO/GOSUB og
RETURN i beregningerne.
Disse
basicfunktioner har altid været tilgængelige i beregningerne men af yderst
begrænset værdi da man ikke kender de linienumre som rapportgeneratoren danner
for de enkelte beregningslinier.
Den eneste
funktion der reelt set har kunnet udnyttes, har været en beregningslinie som
f.eks.:
IF #15 <>
0 RETURN
hvorved man kan
slippe for at udføre hele resten af beregningsblokken hvis et bestemt kriterie
ikke er opfyldt.
I visse tilfælde
kan man have brug for at hoppe i beregningerne, for eksempel afbryde en
START/NEXT/OM læsning efter de første 10 records er læst. Dette kan nu gøres
ved f.eks.:
#47=0
START (XX)
NEXT (XX)
#47=#47+1
IF #47>10
GOTO A /* hop ud efter 10 gange
OM (XX)
A: #48=....osv.
Der indføres altså
nu det man kalder 'labels' i beregningerne. En label består af et bogstav A‑Z og defineres
ved at skrive dette bogstav først på en linie umiddelbart efterfulgt af :. Man
kan hoppe til sådan en label ved hjælp af GOTO A linien, specielt IF .... GOTO
A.
Desuden bliver
der nu mulighed for at lave selvstændige subrutiner i beregningerne hvilket kan spare skrivearbejde
hvis de samme linier skal udføres flere gange, for eksempel både fra FØRST og
NORMAL beregninger. Et eksempel herpå kan være:
IF #15=1 GOSUB
N
IF #16=2 GOSUB
N
RETURN /* NORMAL beregningerne
afsluttes
N:
#47=FNR(#47*100/#45)
FØRST
GOSUB N /* FØRST anvender samme rutine
22.13. Teknik ved
editering.
Ved kald af
f.eks. funktion 14 for editering af beregningerne læser rapportgeneratoren
først rapporten igennem og danner en helt normal tekstfil med navnet DMWORK.xx,
hvor xx er skærmnummeret.
Denne tekstfil
indeholder kun de indtastede linier og er således renset for alle genererede
basic linier. Tekstfilen overgives til en tekst‑editor der i princippet
kunne være en hvilket som helst editor (f.eks. PAID eller anden).
Der sker ingen
sletning af det genererede program herved, rapporten er altså indtil videre
uændret.
Når brugeren
afslutter editeringen med END checker editoren om noget er ændret. Er dette
tilfældet kaldes rapportgeneratoren med funktion 10 + det valgte funktionsnr.,
ved beregninger altså funktion 24.
De skjulte
funktioner 22, 23 og 24 er definition af henholdsvis selektioner, sortering og beregninger
uden brugerens indblanding ud fra tekstfilen DMWORK.xx. Disse funktioner er
ikke beregnet til at kalde direkte ved
normal brug men er til gengæld heller ikke spærret for at kalde direkte.
Disse funktioner
kan udnyttes til at snyde rapportgeneratoren. Vælges for eksempel funktion 13 ‑
editering af sortering/totaler på rapport nr. 5 og man derefter trykker END vil
filen DMWORK.xx nu indeholde denne rapports sorteringsdefinition.
Kaldes funktion
23 nu for rapport nr. 7 vil denne automatisk blive defineret med sortering som
disse står i DMWORK.xx og man har altså fået en nydelig kopi af
sortering/totaler fra rapport 5.
En anden
anvendelse kan være overførsel af komplicerede beregninger skrevet af en
programmør. Disse kan overføres via modem i den lille tekstfil DMWORK.xx og
herefter automatisk indlæses/tilpasses kundens kartoteksdefinitioner med
funktion 24.
Kaldes f.eks.
funktion 23 når DMWORK.xx indeholder beregningsdefinitioner får man nok et
sjovt resultat. Dette bør man lade være med.
23. Ydre
omgivelser, individuel tilpasning og optimering.
Dette kapitel
behandler specielt rapportgeneratorens omgivelser og tilpasning hertil.
RAPGEN kan i
skrivende stund anvendes på følgende systemer:
8870 -
alle operativsystemer fra NIROS 5.0 og fremefter.
TARGON -
XBASIC alle modeller, denne release supporterer nyeste TOS.
UNIBASIC - Med
denne version af RAPGEN kan også de nye 5% variable anvendes.
XNET -
Denne version hilser velkommen til XNET basic på DOS.
INFORMIX -
RAPGEN findes også skrevet i C med support af C-ISAM / INFORMIX og SQL.
24.1. REPS Flere
rapportsystemer.
Med denne
kommando kan brugeren selv oprette nye rapportgeneratorsystemer, efterhånden
som der bliver behov for dette. RAPGEN vil selv oprette de nødvendige
rapportfiler med plads til 66 rapporter i hver.
I RAPGENs
hovedmenu kan man indtaste kommandoen REPS, hvorved man fx. får følgende
skærmbillede frem:
Figur 44 REPS kommandoen.
3/XXREPORTS DANISH
VERSION DMS.RAPGEN # 0 92.09.27/13:12
....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,..
1 DMS RAPGEN
2
3 1.... DMS.RAPGEN,RAP=3/XX
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 INDTAST
KODE:
20
Denne funktion
anvender samme editor som fx. funktion 14, dvs. man kan hoppe til en linie ved
blot at indtaste linienummeret, og indsætte/slette linier med INS og DEL
kommandoerne.
Ved at skrive
linie 4 som fx: 2... ANDEN RAPGEN,RAP=2/NN opretter man et nyt
rapportgeneratorsystem med prefix NN på disk 2. Der kan oprettes op til 60
forskellige systemer på denne måde (INDTAST KODE kan blot flyttes ned). Det er
også muligt at ændre overskrift og teksten indtast kode.
Når RAPGEN
herefter vælges på normal måde, får man en formenu, hvor man kan vælge
rapport-system. Dette gælder også ved indsættelse i TAMOS selektor og REGNSKABs
rapporter.
24.2.1. S Start RAPGEN
igen.
Taster man S i
rapportgeneratorens hovedmenu får man mulighed for at vælge et andet system
uden at skulle gå helt tilbage til TAMOS først.
24.3. TAM Indsæt i
TAMOS selektor.
Med denne
kommando i RAPGENs hovedmenu kan man indsætte en rapport i TAMOS selektoren.
Der behøves således ikke længere at være et selvstændigt menupunkt i TAMOS
selektoren for dette. Funktionen kan kun anvendes på normale TAMOS selektorer,
ikke under TARGON's T-menu system.
24.5. HEAD
Individuelle standardoverskrifter
Med denne
kommando kan man selv tilpasse de standard-overskrifter, rapportgeneratoren
danner, når man definerer en ny rapport med funktion 1.
I RAPGENs
hovedmenu kan man indtaste kommandoen HEAD, hvorved man fx. får følgende
skærmbillede frem:
Figur 45 HEAD Individuelle standardoverskrifter.
03/DMS-RAP-HEAD DANISH
VERSION DMS.RAPGEN # 0 92.09.27/13:50
....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,..
1 REM
-------------------------------------------------------------------------
2 Dato #DD #> - #HD - #> Pr.#PD Side #PP
3 #>>-
4 #
5 #>>=
6 REM
-------------------------------------------------------------------------
7 REM
8 REM REM En linie, der starter med REM er en
ren kommentarlinie
9 REM #>>-X- Bevirker, at -X- gentages over hele
resten af bredden
10 REM #>SIDE #PP Højrestiller
den givne text
11 REM #> XXX #> #>
erstattes af det størst mulige antal blanke
12 REM # Indsætter
feltoverskrifterne på dette sted
13 REM XXXX>> >>
Sidst på en linie ==> fortsæt definition på næste linie
14 REM
15 REM Følgende felter kan anvendes:
(og ikke andre)
16 REM 1. #DD = Dags dato
17 REM 2. #PD = Pr.dato
18 REM 3. #PP = Sidenr
19 REM 4. #KA = Kartoteks-forkortelse
20 REM 5. #SN = Systemnavn fra RAP.SYS, hvis blankt ==> TAMOS selskab
21 REM 6. #SY = Systemnr fra
RAP.SYS
22 REM 7. #TI = Klokken
23 REM 8. #NO = Rapportnr (+1000)
24 REM 9. #SC = Skærmnr
25 REM #HD = Overskrift
Ved hjælp af
editoren kan man tilrette standard-overskriften, der i ovenstående eksempel er
defineret i linie 2-6, indsætte flere felter og linier eller som ovenfor
streger før og efter feltoverskrifterne.
Skulle man
senere ønske at fjerne en sådan definition igen slettes blot alle linier med
DEL kommandoen.
24.7. DRN
Fildefinitioner.
Med denne
kommando i RAPGENS hovedmenu kan man vedligeholde fildefinitionerne for
rapportsystemet. Der behøves således ikke længere at være et selvstændigt
menupunkt i TAMOS selektoren for dette.
24.9. Funktion 9 -
Start af flere rapporter samtidig.
Ligesom man i
funktion 8 kan angive flere rapporter til udskrift på een gang kan dette nu
også gøres i funktion 9, dvs. man indtaster fx:
1-10,17,25,5 Hvorved
disse rapporter startes.
-1-10 Bevirker
at rapporterne blot genereres uden at starte, dog kun såfremt de ikke er
genereret i forvejen.
-1-99! Genererer
og optimerer alle rapporter, der ikke i forvejen er optimeret (se nedenfor).
24.11. SPEED
Aggressiv optimering.
Denne funktion
får uden videre alle rapporter til at køre 10-75 % hurtigere, typisk 50 %.
SPEED funktionen
er et ekstra step i genereringen af en rapport, der analyserer det færdige
program og optimerer dette til at køre hurtigst muligt samt bruge mindst mulig
plads i memory. SPEED kan om nødvendigt omstrukturere dele af programmet helt
og fjerner alle rutiner og felter, der ikke er i brug.
Herved stiger
naturligvis den tid, som det tager at generere en rapport, drastisk, fra fx. œ
minut (8870 tider) til op til 5-10 minutter. SPEED er således ikke designet til
at skulle anvendes under udviklingen af en rapport, men til at få færdige
produktions-rapporter til at køre absolut hurtigst muligt, idet genereringen er
en eengangs foreteelse, hvorimod rapporten evt. skal køres flere hundrede gange.
Man kan aktivere
SPEED funktionen blot ved at indlægge en beregningslinie SPEED() med funktion 4
eller 14 i den færdige rapport. Rapporten optimeres herved ved næste start, alt
vil fungere som før blot hurtigere.
Man kan også
optimere samtlige rapporter på systemet fx. over en nat, idet man nu kan starte
ikke blot een men et antal rapporter samtidig med funktion 9. Når man skal
indtaste rapportnummer kan man opbygge en slags mini-jobkø ved at angive flere
numre, fx: 1-4,17,17,15. Disse rapporter vil nu blive kørt i denne rækkefølge
med de samme start-parametre. Med -1-99! vil samtlige rapporter blive genereret
påny og optimeret uden at blive kørt ( ! = optimer alle rapporter, der ikke er
optimeret i forvejen, - = undlad at starte disse, kun generering.)
RAPGEN genererer
i forvejen yderst effektive programmer, der i kørselshastighed svarer til
almindelige programmer skrevet i hånden af en programmør. Under definitionen af
en rapport ved RAPGEN imidlertid ikke, hvad brugeren kan finde på, endsige
hvilke specialrutiner, der eventuelt er installeret i forbindelse med
kartoteks-læsning eller andet, så rapportgeneratoren er nødt til at tage højde
for alle muligheder i det færdige program. Dette svarer til at programmøren
normalt vil anvende en række rutiner der passer generelt til alle programmer.
SPEED funktionen
svarer til at programmøren satte sig ned og kiggede sit færdige program
grundigt igennem for at optimere dette mest muligt med hensyn til hastighed på
bekostning af læsbarhed ved senere ændringer. En sådan procedure er dyr og
foretages derfor normalt kun hvis der er problemer med performance på anlægget.
Når SPEED
aktiveres vil skærmbilledet ved genereringen fx. se således ud:
Figur 46 Optimering under genereringen.
- PROGRAMMET
GENERERES - V E N T...
- PROGRAMMET
OPTIMERES - V E N T...Linie Byte
Buffer Nr.
- Analyserer
programmet... 778 22627
5447
- Sorterer
linienumre... 778 5461
- Fjerner alle
kommentarer... 627 4410
154
- Analyserer
variable... 22629 128
- READ
optimeres... 628 4397
14
- DIM optimeres... 626 4383
18
- Omnummererer
linierne... 493 7485
- PROGRAMMET
LOADES - V E N T...
Udover blot at
SPEED() i beregningerne kan man også angive en række parametre, der bestemmer
hvor hårdt der skal gås til værks. SPEED (NOPRT,-XREAD) vil fx. koble al print
fra (NOPRT), men undlade at optimere read af kartotek 2-9.
Alle funktioner
i optimeringen kan styres enkeltvis med sådanne parametre, de fleste er kun
interessante, hvis man skal have et mål for, hvor meget den enkelte funktion
sparer i tid. Den nedenstående liste giver dog et godt overblik over, hvor
meget SPEED egentlig foretager sig.
Funktion UNCOMMENT READ XREAD VARUSE MIN DIM GLOBAL SAVED GOSUB PROGUSE NOHARD RELATIVE FN PRT TOTAL CONTROL SIZE NOTEXT NOPRT NOIX ALL |
Aktiv ON ON ON ON ON ON ON ON ON ON ON ON ON ON ON ON OFF OFF OFF OFF ON |
Betydning Alle kommentarer fjernes altid fra programmet for at
reducere plads og tid. Kun de felter, der anvendes i programmet, indlæses fra
kartotekerne, dvs. READ statements omstruktureres. For opdaterende rapporter
omstruktureres WRITE ligeledes, medmindre INSERT af nye records anvendes,
hvor alle felter skal skrives. Anvender en rutine S4(A) frakoples denne funktion
automatisk. Ved læsning af en extern fil med READ(XX) læses
recorden kun når nøglen skifter. Hvis kartoteket opdateres i rapporten frakoples denne
funktion automatisk for låsning. Alle variable, der ikke bruges, fx. feltdefinitioner,
fjernes fra programmet. Alle felt-tabeller for kartoteker dimensioneres ned til
et minimum (S$,S1,..) Hvis en rutine bruger fx. S4(A) frakoples denne
funktion for denne variabel automatisk. Alt dimensioneres om muligt i starten af programmet og
nulstilles med CLEAR i stedet for DEALLO-DIM. Alle variable gøres GLOBAL om muligt. Variable der DEALLOkeres eller DIMensioneres flere
gange vil ikke blive gjort globale. Programmet SAVE's optimeret med ,D, selv om dette ikke
er angivet i DMS.RAP.SYS ved installation. (Kun 8870). GOSUB tomme rutiner fjernes, GOTO en anden goto linie
ændres til direkte goto. Alle overflødige rutiner / programlinier fjernes. PRT funktionen fjernes fra lister, denne anvendes
normalt kun for breve. Hovedkartoteket skal være indexed, rutinen for
ikke-indexed kartoteker fjernes. Brug SPEED(-RELATIVE) hvis hovedkartoteket ikke er
indexed. Funktionsdefinitioner DEF FNx fjernes hvis funktionen
ikke anvendes. Textfelter antages at have den rigtige længde ved
udskrift, således at der ikke hele tiden skal sættes blanke efter felterne
(,S9$) før print. Brug SPEED(-PRT) hvis een eller flere linier forskydes
mod venstre på udskriften. Såfremt der ikke er totaler på rapporten fjernes alle
totalrutiner helt. Udvidet printerstyring fjernes medmindre
@-styrekarakterer anvendes i rapporten. Kun 8870. Programmet saves normalt ikke med size. Brug fx. SPEED(16) for at save med size 16 kb. Der kan forekomme text på rapporten som fx.
overskrifter eller brevtext. Bruges SPEED(NOTEXT) kan kun felter udskrives, alle
texter undertrykkes. Bruges SPEED(NOPRT) fjernes hele printrutinen fra
programmet. Anvendes normalt kun for opdaterende rapporter uden
udskrift overhovedet. Bruges SPEED(NOIX) i en opdaterende rapport fjernes
muligheden for al index-opdatering. Kun felter, der ikke indgår i index, må
skrives tilbage. De ovenfor givne standarder anvendes. Bruges SPEED(-ALL) foretages kun UNCOMMENT af
programmet. |
24.13. RAPGEN mini
(runtime) version.
Rapportgeneratoren kan nu installeres i en runtime version, hvor
brugeren kun kan starte allerede eksisterende rapporter, men ikke selv generere
nye eller ændre bestående.
Kun 8 programmer
er nødvendige for at drive en sådan mini-version, også kartoteksdefinitionerne
kan undværes medmindre der anvendes specialfunktioner såsom EXPORT i
rapporterne. Kun de aktive funktioner vises i menuen.
Figur 47 Rapportgeneratoren i mini-version.
DMS.RAPGEN
5 ... SLET EN
RAPPORT
9 ... START AF
UDSKRIFT
10 ... KOPIERING
INDTAST
KODE:........
Ved at medtage
et par moduler mere kan der yderligere åbnes for udskrift af
rapportdokumentation samt at se definitionerne på skærmen med funktion 11-14.
Figur 48 Størst mulige mini-version.
DMS.RAPGEN
5 ... SLET EN
RAPPORT
8 ... UDSKRIFT AF
DEFINITIONER
9 ... START AF
UDSKRIFT
10 ... KOPIERING
11 ...
DOKUMENTATION
12 ... EDITERING
AF SELEKTIONER
13 ... EDITERING
AF SORTERING/TOTALER
14 ... EDITERING
AF BEREGNINGER
INDTAST
KODE:........
Mini-versionen
aktiveres, når enten feltdefinitionerne (DMDATAFIL) eller genereringsmodulet
(DMS.RAP.091) mangler.
Ved kørsel i mini-version ændres følgende funktioner:
Funktion 5 - sletning
- vil ikke slette det genererede program før man svarer J til at slette
rapporten helt.
Funktion 10 -
kopiering - vil også kopiere det genererede program.
Modul DMS.R DMSE DMS.RAP DMS.RAP.09 DMS.RAP.99 DMS.RAP.999 DMS.RAP.Tx DMS.RAP.TAQ DMS.RAP.05 DMS.RAP.K DMS.RAP.K1 DMS.RAP.KTx DMS.RAP.001 DMS.RAP.04 DMS.RAP.08 DMS.RAP.081 DMS.RAP.082 DMS.RAP.TAM DMS.RAP.TAMTx DMS.RAP.INS DMS.RAP.SYS DMS.RAP.FIL DMS.RAP.LU 0/CHSYSTEM x/XXFILES x/xxREPORT x/xx10nn x/xxT10nn x/xxSORTWORK x/xxDATAFIL ************* |
A 17 2 28 25 31 4 44 4 2 73 256 704 200 1390 |
B 17 2 28 25 31 4 44 4 22 3 16 10 7 2 73 256 704 176 200 1617 |
C 17 2 28 25 31 4 44 4 22 15 23 4 3 16 10 7 2 73 256 704 176 200 1666 |
D 17 2 28 25 31 4 44 4 22 15 23 4 8 18 3 16 10 7 2 73 256 704 176 200 1692 |
E 17 2 28 25 31 4 44 4 22 15 23 4 8 18 16 15 12 3 16 10 7 2 73 256 704 176 200 1735 |
F 17 2 28 25 31 4 44 4 22 15 23 4 8 18 16 15 12 23 8 3 16 10 7 2 73 256 704 176 200 1766 |
G 17 2 28 25 31 4 44 4 22 15 23 4 8 18 16 15 12 23 8 3 16 10 7 2 73 256 704 176 200 600 2369 |
|
Beskrivelse Start program Slut program Hovedmenuen Start input parametre Start segment for en rapport Slut segment for
en rapport Texter Interface til Tamos jobkø Slet / kopier en rapport Editering af textfil Editering af textfil Editering - tekster Startmodul andre funktioner Startmodul beregninger Dokumentation Dokumentation Dokumentation Indsæt i Tamos selektor Indsæt i Tamos - tekster Installation - kontrolkoder Installation - systemer Installation - systemer Installation - sæt kartotekslu 1 System 100 Kartoteker
& index definitioner 44 Rapporter 44
Rapportprogrammer a' 16 blokke 44
Rapportdefinitioner a' 4 blokke 1000 Sorteringsrecords 50
Feltdefinitioner Ialt |
A. Mindste version af rapportgeneratoren, kun funktion 9
kan anvendes, uden installationsmodul.
B. Kopiering af rapporter, evt. fra andre maskiner, samt
sletning.
C. KEYS funktionen for definition af start stop kan også
anvendes.
D. Funktion 11-14 kan anvendes for dokumentation og se
definitionerne på skærm.
E. Også udskrift af definitioner, dog uden
feltbeskrivelser for kartotekerne.
F. Også indsæt i Tamos selektor er aktiv.
G. Specialfunktioner som EXPORT mm. kan anvendes i
rapporterne.
Af hensyn til
kartoteksåbning skal DMFILES findes på systemet, hvorimod alle
feltdefinitionerne kan udelades.
Til
sammenligning består den fulde rapportgenerator af 200 programmer, ialt 2500
blokke, foruden en masse små textfiler med READ-statements til kartotekerne.
Den fulde version vil altså fylde ca. 5000 blokke.
24.15. Funktion 10
- Kopiering mellem systemer / maskiner.
For at kunne
kopiere mellem flere systemer oprettet med REPS kommandoen eller forskellige
maskiner kan man nu udover blot at angive et rapportnr. i funktion 10 også give
et systemnummer eller prefix for en ekstern fil.
Fra
rapportnr: 7 Kopierer
som normalt fra rapport nummer 7
NN,7 Kopierer
fra filen 0/DMSREP.NN07 dannet ved at kopiere en rapport ud.
Til
rapportnr: 9 Kopierer
som normalt til rapport nummer 9
309 Kopierer
til REPS system nr.3 rapport nr 9.
NN,9 Kopierer
til tekstfilen 0/DMSREP.NN09 for overførsel til anden maskine / system.
XX,9 Som
ovenfor, men gør tekstfilen mindst mulig, idet genererede beregninger fjernes.
Kopiering fra et
andet anlæg kan ske ved enten at kopiere hele rapportfilen og de genererede
programmer, eller
ved at:
1. Kopiere
rapporten ud med funktion 10 fra fx. rapport nr.5 til rapport nr. XX,5
2. Overføre
tekstfilen 00/DMSREP.XX05 samt det genererede program DM1005 til maskinen.
3. Kopiere
rapporten ind med funktion 10 fra rapport nr. XX,5 til rapport nr. 5
Herefter kan
rapporten startes. Bemærk at prefix XX bør anvendes ved udkopiering, da
textfilen DMSREP.XX05 bliver væsentligt mindre end fx. DMSREP.AA05, idet alle
genererede linier udelades for XX. (En sådan kopieret rapport skal igennem
funktion 4 for at skulle kunne genereres - i miniversionen er dette ikke
relevant.)
I denne version
af RAPGEN dannet DMSREP.XX05 som en tekstfil i modsætning til tidligere som en
contigous fil, herved kan alle type for modems/emuleringer overføre denne.
Desuden inkluderes dokumentationen (funktion 11.)
24.17. Automatisk
læsning af andre kartoteker ved definition af en rapport.
Når man definerer
en rapport med funktion 1 og anvender felter fra andre kartoteker vil RAPGEN nu
selv danne een eller flere beregningslinier med READ(XX) for at læse de
anvendte kartoteker og kalde funktion 4 - beregninger - når man afslutter
definitionen.
Såfremt der
findes automatiske forbindelser på systemet kan rapporten således umiddelbart
starter, i modsat fald må man fx. med funktion 14 indsætte nøglefelterne.
Kartotekerne
læses naturligvis i den rigtige orden ud fra definitionen af forbindelser.
Anvender man LINIE kommandoen ved
definitionen, vil der blive indsat en READH(XX) for det først anvendte extra
kartotek, således at overskriften skifter, hver gang nøglen til dette kartotek
skifter (Kontoudtog).
24.19. Opdatering af
datofunktionerne for år 2000.
RAPGENs
datofunktioner har hidtil arbejdet med 6-cifrede datoer på formen DDMMÅÅ.
De nye
funktioner vil selv vende datoen rigtigt, uanset om den gives som DDMMÅÅ,
ÅÅMMDD eller ÅÅÅÅMMDD. Herved er RAPGEN klar til at gå ind i et nyt århundrede.
Desuden er der
tilføjet et par funktioner til at vende datoen på en bestemt måde uanset input:
FND
(dato) = Datovending, ÅÅMMDD==>DDMMÅÅ,
DDMMÅÅ==>ÅÅMMDD, ÅÅÅÅMMDD==>DDMMÅÅ
FNY
(dato) = ÅÅÅÅMMDD datoen vendes altid til 8-cifret format
FNO
(dato) = DDMMÅÅ datoen vendes altid til 6-cifret format
FNA
(dato) = dagnr accepterer nu både DDMMÅÅ, ÅÅMMDD og
ÅÅÅÅMMDD som input.
FNB
(dagnr) = DDMMÅÅ som hidtil
FNC
(dagnr) = ÅÅÅÅMMDD som FNB, blot med 8-cifret retur.
Figuroversigt
Figur 1 Tamos printertildeling..................................................................................................................................................................... 7
Figur 2 PRINTER
kommandoen i funktion 7............................................................................................................................................. 8
Figur 3 Valg af printer
ved start af rapporten........................................................................................................................................... 8
Figur 4 Indsættelse af
styrekoder med funktion 7................................................................................................................................... 9
Figur 5 Indsættelse af
styrekoder med funktion 1................................................................................................................................. 10
Figur 6 Beregning af
styrekoder............................................................................................................................................................... 10
Figur 7 Start af
DMS.RAP.PRT................................................................................................................................................................. 11
Figur 8 Første side af
printer‑kodetabellen............................................................................................................................................. 11
Figur 9 Anden side af
printerkodetabellen,vist oktalt........................................................................................................................... 12
Figur 10 Tredje side af
kode‑tabellen,vist hexadecimalt....................................................................................................................... 13
Figur 11 Udskrift af
printertabel................................................................................................................................................................ 14
Figur 12 Library liste
DMS.P.LIB for installation................................................................................................................................... 15
Figur 13 Start af BCU
programmet............................................................................................................................................................ 17
Figur 14 Udskrift af
rapporten................................................................................................................................................................... 17
Figur 15 Start af
rapporten......................................................................................................................................................................... 18
Figur 16 Valg af
rapportgeneratorens PC‑overførselsmodul................................................................................................................ 18
Figur 17 Start af PC
overførsel.................................................................................................................................................................. 19
Figur 18 Eksempel på
overførsels‑fil DMSPCX06.BAT........................................................................................................................ 20
Figur 19 Oprydning.................................................................................................................................................................................... 20
Figur 20 PC libr liste.................................................................................................................................................................................... 22
Figur 21 DMSPC.SYS
installation............................................................................................................................................................ 22
Figur 22 Styrefilen
DMSPC06.BAT.......................................................................................................................................................... 22
Figur 23
DMS.RAP.PRT PC printer styring........................................................................................................................................... 23
Figur 24 LINIE kommandoen..................................................................................................................................................................... 25
Figur 25 Opdeling af
liste på to printere.................................................................................................................................................. 32
Figur 26 Breve med
journal........................................................................................................................................................................ 33
Figur 27 Udskrift af to
samtidige lister..................................................................................................................................................... 33
Figur 28 PC udlæsning
med EXPORT...................................................................................................................................................... 36
Figur 29 Udlæsning til
disketter/tape med EXPORT............................................................................................................................. 38
Figur 30 EXPOX med index
og feltdefinitioner....................................................................................................................................... 39
Figur 31 KEYS
kommandoen..................................................................................................................................................................... 43
Figur 32 Indtastning af
start/stop værdier.............................................................................................................................................. 43
Figur 33 Aktivering af
subfunktionen..................................................................................................................................................... 45
Figur 34 Start af en
rapport med KEYS.................................................................................................................................................... 45
Figur 35 Udskrift af
TEST("1‑10")............................................................................................................................................................ 58
Figur 36 Beregninger for
dannelse af et nyt kartotek............................................................................................................................ 67
Figur 37 De nye
funktioner i menuen....................................................................................................................................................... 69
Figur 38 Editering af
rapport‑dokumentation med funktion 11............................................................................................................ 70
Figur 39 HLP ved
editering af beregninger med funktion 14................................................................................................................ 71
Figur 40 Start af
rapport med dokumentation og datafelter.................................................................................................................. 72
Figur 41 Editering af
selektioner med funktion 12.................................................................................................................................. 73
Figur 42 Editering af
sortering og totaler med funktion 13................................................................................................................... 74
Figur 43 Editering af
beregninger med funktion 14................................................................................................................................ 75
Figur 44 REPS
kommandoen..................................................................................................................................................................... 77
Figur 45 HEAD
Individuelle standardoverskrifter................................................................................................................................. 78
Figur 46 Optimering
under genereringen................................................................................................................................................ 79
Figur 47
Rapportgeneratoren i mini-version........................................................................................................................................... 81
Figur 48 Størst mulige
mini-version......................................................................................................................................................... 81
Stikordsregister
$LOTUS............................................................................. 17,
20
$PC..................................................................................... 18,
20
#D1................................................................... 45,
51, 62, 72, 73
#DA1..................................................................... 40,
45, 51, 59
#DD.............................................................................. 34,
45, 78
#KA......................................................................................... 78
#NO.......................................................................................... 78
#PD.............................................................................. 31,
45, 78
#PP..................................................................................... 30,
78
#SC........................................................................................... 78
#SN.......................................................................................... 78
#SY........................................................................................... 78
#TI............................................................................................ 78
@L.............................................................................. 6,
8‑10, 13
ALL.................................................................................... 72,
80
BRUGER............................................................ 6,
31, 51, 66, 80
CCODE.................................................................................... 34
CHAIN..................................................................................... 34
CHECK........................................................................ 15,
35, 39
CHEX........................................................................... 34,
35, 39
CHSYSTEM............................................................................ 82
COPIES.................................................................................... 35
DATAMASTER...................................... 20,
22, 61, 63, 65, 67
DELETE.................................................................. 58,
61‑64, 67
DIM.................................................................................... 79,
80
DMDATAFIL......................................................................... 81
DMFILES.......................................................................... 68,
82
DMREAD.......................................................................... 61,
65
DMSORTWORK................................................................... 57
DMSREP................................................................................. 83
DRN......................................................................................... 78
EDIT............................................................................. 36,
52, 54
EXPORT........................ 16, 17, 19‑21, 23, 36‑42,
53‑58, 81, 82
EXPOX.................................................................................... 39
FILENAME............................................................................. 40
FIND........................................................................................ 40
FNA......................................................................................... 83
FNB.......................................................................................... 83
FNC.......................................................................................... 83
FND.................................................................................... 73,
83
FNO.......................................................................................... 83
FNR.................................................................................... 56,
76
FNV.......................................................................................... 60
FNY.......................................................................................... 83
GET............................................................. 20,
22, 31, 70, 73‑75
GOSUB.................................................................. 54,
75, 76, 80
GOTO........................................................................... 75,
76, 80
HEAD...................................................................................... 78
HLP........................................................................ 67,
71, 73, 75
IMPOCONT............................................................................ 42
IMPONEXT............................................................................ 42
IMPORT................................................................. 40‑42,
53, 56
IMPOTHIS.............................................................................. 42
INP........................................................................................... 72
INSERT................................................ 40, 58, 61‑64,
66, 67, 80
IQ.............................................................................................. 67
Jobkø............................................................... 16,
18, 19, 79, 82
KEYS................................................................ 39,
43, 45, 46, 82
LEN.......................................................................................... 38
LOAD 34, 35, 51, 54, 60
LOWER................................................................................... 50
LTOT................................................................................. 50,
64
MERGE.............................................................................. 50,
66
MESS................................................................................. 22,
51
MOD.............................................. 31,
36, 65, 67, 71, 73, 75, 80
MODE................................................................................ 19,
62
MTOT...................................................................................... 51
NEXT............................................................... 29,
30, 48, 75, 76
NODATA................................................................................ 51
NOIX.................................................................................. 52,
80
NOPAS.................................................................. 52,
61, 62, 67
NOPRT........................................................................ 52,
79, 80
NOT......................................................................................... 69
NUMS...................................................................................... 53
OPEN................................................................. 6,
11, 15, 53, 66
PACK................................................................................. 53,
58
PASSWORD......................................................... 34,
52, 62, 67
PCIN......................................................................................... 53
PCOUT.............................................................................. 53,
55
PCSYS...................................................................................... 22
PHONE.................................................................................... 54
PLCOUT.................................................................................. 54
POS................................................................ 8,
9, 18, 25, 31, 56
POUT....................................................................................... 55
PRIO......................................................................................... 55
PRT............................................................. 11‑15,
23, 31, 70, 80
PUT.......................................................................................... 31
PXOUT.................................................................................... 55
PZOUT.................................................................................... 55
QUICK..................................................................................... 73
RATE....................................................................................... 55
READ........................... 28, 50, 62‑65,
67, 71, 75, 79, 80, 82, 83
READH.................................................................. 24‑26,
28, 83
REM................................................................................... 75,
78
REWRITE.............................................................. 58,
61‑63, 67
RUND...................................................................................... 56
S9$............................................................................................ 80
SIZE................................................................................... 56,
80
SMAA..................................................................................... 56
SORT....................................................................................... 34
SORTWORK.......................................................................... 57
SPEED.................................................................... 52,
56, 79, 80
SPOFF...................................................................................... 57
SYSTEM................................................................ 20,
77, 82, 83
T2$..................................................................................... 34,
54
T3............................................................................................. 34
TAPEOUT............................................................................... 57
TEST........................................................................................ 58
UNPACK........................................................................... 53,
58
UPDATE......................................................... 58,
61, 62, 64, 67
UPPER..................................................................................... 58
USER............................................................................ 15,
20, 22
VALCH.................................................................................... 59
VALID............................................................................... 59,
60
VALIX............................................................................... 59,
60
WEEK...................................................................................... 60
WORKD............................................................................ 34,
60
WRITE............................................................. 58,
61‑65, 67, 80