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 kommunikations­linie......................................................................................................   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 opti­mering............................................................................................................   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 defini­tion 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 kommaedi­teret 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