RAPGEN

 

Brugervejledning

 

 


 


                                                                            Indholdsfortegnelse

 

1.          Indledning.........................................................................................................................................................................................   9

1.1.        Rapportgeneratoren startes........................................................................................................................................................   11

1.2.        Formålet med denne manual........................................................................................................................................................   11

1.3.        Kartoteker benyttet til eksemplerne...........................................................................................................................................   12

1.3.1.      VA Varekartoteket.......................................................................................................................................................................   12

1.3.2.      LE Leverandørkartoteket............................................................................................................................................................   12

1.3.3.      KU Valutakurskartotek................................................................................................................................................................   13

1.3.4.      GR Varegruppekartoteket...........................................................................................................................................................   13

1.3.5.      Indholdet af kartotekerne...........................................................................................................................................................   13

1.4.        Generelt om betjeningen..............................................................................................................................................................   14

1.5.        Operativsystem.............................................................................................................................................................................   14

1.6.        Diskplads.......................................................................................................................................................................................   14

1.7.        DATAMASTER...........................................................................................................................................................................   15

1.8.        Systemer.........................................................................................................................................................................................   15

 

2.          Definition af en rapport.................................................................................................................................................................   17

2.1.        Generelt..........................................................................................................................................................................................   19

2.2.        Brug af funktion 1.........................................................................................................................................................................   19

2.2.1.      Rapportnummer............................................................................................................................................................................   20

2.2.2.      Kartotek.........................................................................................................................................................................................   20

2.2.3.      Kartoteks‑password....................................................................................................................................................................   21

2.3.        Rapportens stamoplysninger......................................................................................................................................................   21

2.3.1.      Rapportnavn.................................................................................................................................................................................   22

2.3.2.      Antal linier pr.side.......................................................................................................................................................................   22

2.3.3.      Overskrift......................................................................................................................................................................................   22

2.3.4.      Skal nul udskrives (J/N)..............................................................................................................................................................   23

2.3.5.      Printer............................................................................................................................................................................................   23

2.3.6.      Brugernavn...................................................................................................................................................................................   23

2.4.        TAMOS selektor...........................................................................................................................................................................   23

2.5.        Rapportlinierne..............................................................................................................................................................................   24

2.5.1.      +xx flyt xx karakterer frem............................................................................................................................................................   25

2.5.2.      ‑xx flyt xx karakterer tilbage.........................................................................................................................................................   25

2.5.3.      Pxxx flyt til position xxx................................................................................................................................................................   25

2.5.4.      Hxx feltnr.xx med manuel overskrift...........................................................................................................................................   26

2.5.5.      D slet sidst valgte felt.................................................................................................................................................................   26

2.5.6.      T tekst på linien............................................................................................................................................................................   26

2.5.7.      Nxx feltnr. xx uden overskrift......................................................................................................................................................   26

2.5.8.      N Fjern alle overskrifter fra linien..............................................................................................................................................   26

2.5.9.      H@xx feltnr.xx permanent overskrift.........................................................................................................................................   26

2.5.10.     KK#xx felter fra andre kartoteker..............................................................................................................................................   26

2.5.11.     ? Hjælp oversigt over andre kartoteker...................................................................................................................................   26

2.5.12.     LINIE Kontoudtogstype rapport..............................................................................................................................................   27

2.5.13.     cr afslut denne linie....................................................................................................................................................................   27

2.5.14.     Blanke linier (dobbelt linieafstand)..........................................................................................................................................   27

2.6.        Frifelter...........................................................................................................................................................................................   27

2.6.1.      Overskrift og navn.......................................................................................................................................................................   27

2.6.2.      Feltformat......................................................................................................................................................................................   27

2.6.3.      Definition af feltformatet.............................................................................................................................................................   28

2.6.4.      Ændring af feltformater...............................................................................................................................................................   28

2.6.5.      Regnenøjagtighed (præcision)..................................................................................................................................................   28

2.6.6.      Automatisk feltudvidelse (overflow)........................................................................................................................................   28

2.7.        Automatiske totaler......................................................................................................................................................................   28

2.8.        Højde og bredde for en rapport..................................................................................................................................................   29

 

3.          Selektioner......................................................................................................................................................................................   31

3.1.        Normal brug af selektionerne......................................................................................................................................................   33

3.2.        Sletning af selektioner..................................................................................................................................................................   34

3.3.        Selektion på forskellig fra nul etc...............................................................................................................................................   34

3.4.        Selektion på alfanumeriske tekstfelter.......................................................................................................................................   34

3.5.        Beregninger i selektionerne.........................................................................................................................................................   34

3.6.        Selektionsangivelse ved start af rapporten..............................................................................................................................  34

3.7.        Selektion på dele af felter.............................................................................................................................................................   34

3.8.        ELLER selektioner kombineret med beregninger.....................................................................................................................   35

3.9.        QUICK Selektioner.......................................................................................................................................................................   35

 

4.          Beregninger....................................................................................................................................................................................   37

4.1.        Beregningsfunktionens struktur................................................................................................................................................   39

4.2.        Brug af beregningsmodulet.........................................................................................................................................................   39

4.3.        Ændring af beregninger...............................................................................................................................................................   40

4.4.        Operander og operatorer.............................................................................................................................................................   41

4.5.        Procentberegninger og division.................................................................................................................................................   41

4.6.        Dele af felter...................................................................................................................................................................................   42

4.7.        Alfanumeriske tekstfelter.............................................................................................................................................................   42

4.8.        Specialfelter...................................................................................................................................................................................   43

4.8.1.      #DD  dags dato............................................................................................................................................................................   43

4.8.2.      #PD  pr.dato..................................................................................................................................................................................   43

4.8.3.      #Dx  data,f.eks.#D1 op til #D7...................................................................................................................................................   43

4.8.4.      #DAx data,f.eks.#DA1 op til #DA7..........................................................................................................................................   44

4.8.5.      #PP  sidenummer..........................................................................................................................................................................   44

4.8.6.      #OK  status efter læsning af et andet kartotek........................................................................................................................   44

4.8.7.      #SC  skærmnummer.....................................................................................................................................................................   44

4.8.8.      #LEVEL total niveau nr...............................................................................................................................................................   44

4.8.9.      #GRUPPE total gruppe nummer.................................................................................................................................................   44

4.8.10.     Arbejdsfelter................................................................................................................................................................................   45

4.9.        REM bemærkninger......................................................................................................................................................................   45

4.10.       Funktioner.....................................................................................................................................................................................   45

4.10.1.     FNR afrunding til 2 decimaler....................................................................................................................................................   45

4.10.2.     FNH afrunding til ingen decimaler...........................................................................................................................................   46

4.10.3.     FND datovending.......................................................................................................................................................................   46

4.10.4.     FNA omregn dato DDMMÅÅ til antal dage fra år 1900.......................................................................................................   46

4.10.5.     FNB omregn antal dage fra år 1900 til dato DDMMÅÅ.......................................................................................................   46

4.10.6.     FNU omregn dato DDMMÅÅ til ugedag...............................................................................................................................   46

4.10.7.     FNV omregn dato DDMMÅÅ til uge ÅÅUU........................................................................................................................   46

4.10.8.     Intern lagring af funktionerne...................................................................................................................................................   47

4.11.       Basic funktioner...........................................................................................................................................................................   47

4.11.1.     ABS Absolut‑værdien af et tal.................................................................................................................................................   47

4.11.2.     SQR kvadratroden......................................................................................................................................................................   47

4.11.3.     FRA decimal‑delen af et felt......................................................................................................................................................   47

4.11.4.     INT heltalsdelen af et felt..........................................................................................................................................................   47

4.11.5.     SGN fortegnet for et felt.............................................................................................................................................................   47

4.11.6.     NOT Logisk negation.................................................................................................................................................................   47

4.11.7.     LEN Længden af en streng........................................................................................................................................................   47

4.11.8.     IF betingede beregninger..........................................................................................................................................................   47

4.11.9.     Relations‑operatorer...................................................................................................................................................................   48

4.11.10.    NÅR, hvornår skal der beregnes.............................................................................................................................................   48

4.11.11.    FØRST/NORMAL/SIDST og EFTER beregninger...............................................................................................................   49

4.11.12.    LOAD kommandoen..................................................................................................................................................................   49

4.11.12.1.  OCR checkciffer for girokort...................................................................................................................................................   50

4.11.12.2.  Modulus 11 check (f.eks.personnummer).............................................................................................................................   50

4.11.12.3.  Beregning af arbejdsdage........................................................................................................................................................   51

4.11.12.4.  Udplukning af for‑ og efternavne...........................................................................................................................................   51

4.11.13.    < Beregningslinier med faste linienumre................................................................................................................................   52

4.11.13.1.  Fastlåsning af index for en rapport........................................................................................................................................   52

4.11.13.2.  Fastlåsning af laveste total niveau........................................................................................................................................   52

4.11.13.3.  Fastlåsning af start/stop..........................................................................................................................................................   52

4.11.14.    Skrivning i kartoteker................................................................................................................................................................   52

 

5.          Sortering og totaler........................................................................................................................................................................   55

5.1.        Sortering.........................................................................................................................................................................................   57

5.1.1.      Subtotalniveauer..........................................................................................................................................................................   57

5.1.2.      Princippet ved sortering.............................................................................................................................................................   58

5.1.3.      Sorteringskartoteket DMSORTWORK....................................................................................................................................   58

5.1.4.      Sortering i faldende orden..........................................................................................................................................................   59

5.1.5.      Sekundær sorteringsorden.........................................................................................................................................................   59

5.1.6.      NY Sorteringsnøgle.....................................................................................................................................................................   59

5.2.        Subtotalniveauer uden sortering................................................................................................................................................   60

5.3.        Vejede totaler.................................................................................................................................................................................   61

5.3.1.      Princip............................................................................................................................................................................................   61

5.3.2.      Første gennemløb........................................................................................................................................................................   61

5.3.3.      Opsamling.....................................................................................................................................................................................   62

5.3.4.      Beregning......................................................................................................................................................................................   62

5.3.5.      Vejede totaler og selektion.........................................................................................................................................................   63

5.3.6.      Vejede totaler og quick selektioner...........................................................................................................................................   63

5.4.        Gennemløbet af en rapports beregninger..................................................................................................................................   64

5.5.        Beregnede totaler..........................................................................................................................................................................   64

5.5.1.      Princip............................................................................................................................................................................................   64

5.5.2.      Grundregel ved beregnede totaler.............................................................................................................................................   65

5.5.3.      Anvendelse af NÅR kommandoen...........................................................................................................................................   65

5.5.4.      Eksempel på beregnede totaler..................................................................................................................................................   65

5.5.5.      Teknik ved beregnede totaler....................................................................................................................................................   67

5.6.        Felter der skal totaliseres.............................................................................................................................................................   67

5.6.1.      ‑feltnr.udskriv felt på totallinien................................................................................................................................................   67

5.6.2.      ‑ ingen 'grande total' tekst..........................................................................................................................................................   68

5.6.3.      2% eller 3% totalpræcision.........................................................................................................................................................   68

5.7.        Gruppetotaler.................................................................................................................................................................................   68

5.7.1.      GRUPPETOTALER (J/N/NIVEAU)?.........................................................................................................................................   69

5.7.2.      GRUPPE FELTNR:,ANTAL KODER og NAVN......................................................................................................................   69

5.7.3.      'Udefinerede' gruppetotaler........................................................................................................................................................   70

5.7.4.      Dele af felter/andre kartoteker....................................................................................................................................................   70

 

6.          Flere kartoteker...............................................................................................................................................................................   71

6.1.        Princippet ved flere kartoteker....................................................................................................................................................   73

6.2.        Hjælp tasten...................................................................................................................................................................................   73

6.3.        READ i beregningerne.................................................................................................................................................................   75

6.4.        Forbindelse mellem kartotekerne................................................................................................................................................   75

6.5.        Videre læsning af tredje kartotek mm.........................................................................................................................................   75

6.6.        Kartoteker med flere index...........................................................................................................................................................   75

6.7.        Forskellige records fra samme kartotek.....................................................................................................................................   75

6.8.        Maximalt antal kartoteker.............................................................................................................................................................   76

6.9.        Betinget læsning af andre kartoteker.........................................................................................................................................   76

6.10.       Læsning EFTER selektionerne er foretaget.............................................................................................................................   76

6.11.       Sum af posteringer.......................................................................................................................................................................   76

6.12.       Kontoudtogstype rapport..........................................................................................................................................................   76

6.13.       Ikke‑indexed (relative) kartoteker og pointere.........................................................................................................................   76

6.14.       Helt specielle nøglestrukturer....................................................................................................................................................   76

6.15.       READ(KU) Saldoliste med kursomregning..............................................................................................................................   76

6.16.       Prisberegning med READ af flere kartoteker...........................................................................................................................   77

6.17.       Prisberegningen uden automatiske forbindelser....................................................................................................................   78

6.18.       Alternative leverandører:flere opslag i samme kartotek.........................................................................................................   78

6.19.       READ i forbindelse med totaler.................................................................................................................................................   79

6.20.       START/NEXT/OM Sum af posteringer...................................................................................................................................   80

6.20.1.     Betinget summering med START/NEXT/OM........................................................................................................................   81

6.20.2.     Flere løkker af START/NEXT/OM inden i hinanden............................................................................................................   81

6.20.3.     Selektion i forbindelse med START/NEXT/OM....................................................................................................................   81

6.21.       READH/LINIE kontoudtogs‑type rapport...............................................................................................................................   82

6.21.1.     Selektion i forbindelse med READH/LINIE............................................................................................................................   83

6.21.2.     Totaler i forbindelse med READH/LINIE................................................................................................................................   83

6.22.       Rapportgeneratorens nøgleopbygnings‑rutine......................................................................................................................   84

6.22.1.     Felter.............................................................................................................................................................................................   85

6.22.2.     Funktioner....................................................................................................................................................................................   85

6.22.3.     Sammenstilling af felter og funktioner.....................................................................................................................................  85

6.22.4.     Eksempler på nøgleopbygninger..............................................................................................................................................   85

 

7.          Breve og rettelse af rapporter......................................................................................................................................................   87

7.1.        Definition af et brev......................................................................................................................................................................   89

7.2.        Skærm‑forespørgselsprogrammer...............................................................................................................................................   89

7.3.        Brug af funktion 6 og 7................................................................................................................................................................   89

7.4.        Rettelse af brev eller rapport.......................................................................................................................................................   90

7.5.        Kommandoer i funktion 6 og 7....................................................................................................................................................   91

7.5.1.      Linienr............................................................................................................................................................................................   91

7.5.2.      Linienr.,position...........................................................................................................................................................................   91

7.5.3.      cr.....................................................................................................................................................................................................   91

7.5.4.      SLUT eller cr‑................................................................................................................................................................................   91

7.5.5.      ? eller hjælp‑tasten.......................................................................................................................................................................   92

7.5.6.      POS sæt startposition for skærmen...........................................................................................................................................   92

7.5.7.      PRINT udskrift på printer...........................................................................................................................................................   92

7.5.8.      F formular fremføring...................................................................................................................................................................   92

7.5.9.      PRINTER definer printertildeling og sidehøjde.......................................................................................................................   92

7.5.10.     RASTER slå printraster til/fra...................................................................................................................................................   92

7.5.11.     MODE vis feltformater/numre eller navne..............................................................................................................................   92

7.5.12.     IL eller LI indsæt en linie............................................................................................................................................................   93

7.5.13.     DL eller LD slet en linie..............................................................................................................................................................   93

7.5.14.     FORMAT ændring af format for frifelterne.............................................................................................................................   93

7.6.        Specialfelter i et brev/rapport......................................................................................................................................................   93

7.6.1.      #DD dags dato.............................................................................................................................................................................   94

7.6.2.      #PD pr.dato...................................................................................................................................................................................   94

7.6.3.      #PP sidenummer...........................................................................................................................................................................   94

7.6.4.      #KA kartoteksnr..........................................................................................................................................................................   94

7.6.5.      #SN systemnavn..........................................................................................................................................................................   94

7.6.6.      #SY systemnr...............................................................................................................................................................................   94

7.6.7.      #TI systemtid...............................................................................................................................................................................   94

7.6.8.      #NO programnummer..................................................................................................................................................................   94

7.6.9.      #SC skærmnummer......................................................................................................................................................................   94

7.7.        Specialtegn (gåseøjne mm.).........................................................................................................................................................   94

7.8.        Breve i flere versioner..................................................................................................................................................................   94

7.9.        Nyttige linier og positioner.........................................................................................................................................................   95

 

8.          Kopiering,sletning og dokumentation........................................................................................................................................   97

8.1.        Kopiering af en rapport................................................................................................................................................................   99

8.1.1.      Kopiering af rapporter mellem systemer...................................................................................................................................   99

8.2.        Sletning af en rapport...................................................................................................................................................................   99

8.3.        Dokumentation af rapportdefinitionerne.................................................................................................................................   100

8.4.        Andre funktioner........................................................................................................................................................................   102

8.4.1.      Formularfremføring....................................................................................................................................................................   103

8.4.2.      Afslutning...................................................................................................................................................................................   103

8.4.3.      Skift til andet system.................................................................................................................................................................   103

8.4.4.      Stop af baggrundsporten.........................................................................................................................................................   103

8.4.5.      Jobkø...........................................................................................................................................................................................   104

8.4.6.      Scope og systemprogrammer...................................................................................................................................................   104

 

9.          Start af en rapport........................................................................................................................................................................   105

9.1.        Brug af funktion 9.......................................................................................................................................................................   107

9.1.1.      Dags dato....................................................................................................................................................................................   108

9.1.2.      Pr.dato.........................................................................................................................................................................................   108

9.1.3.      Start fra og stop ved..................................................................................................................................................................   108

9.1.3.1.    x: Valg af index ved start fra....................................................................................................................................................   108

9.1.3.2.    SORT anvend samme sortering som sidst............................................................................................................................   109

9.1.4.      Ekstra data ved opstart.............................................................................................................................................................   109

9.1.5.      Advarsel om sortering/vejede totaler.....................................................................................................................................   109

9.1.6.      Laveste total niveau..................................................................................................................................................................   110

9.1.6.1.    Undertrykkelse af udskrift.......................................................................................................................................................   110

9.1.7.      Kartoteksnr.................................................................................................................................................................................   110

9.1.8.      Start på skærm/printer/baggrundsport...................................................................................................................................   110

9.1.9.      Testprint......................................................................................................................................................................................   110

9.2.        Generering af programmet.........................................................................................................................................................   111

9.3.        Betjening af baggrundsporte (phantomporte).......................................................................................................................   111

9.4.        Lampefunktioner.........................................................................................................................................................................   111

 

10.         Meddelelser.................................................................................................................................................................................   113

10.1.       Fejlmeddelelser...........................................................................................................................................................................   115

10.1.1.     HJÆLP ‑ PRINTEREN ER IKKE KLAR!................................................................................................................................   115

10.1.2.     DETTE PROGRAM FINDES IKKE........................................................................................................................................   115

10.1.3.     DENNE RAPPORT ER IKKE DEFINERET............................................................................................................................   115

10.1.4.     DENNE RAPPORT ER ALLEREDE DEFINERET.................................................................................................................   115

10.1.5.     DER ER IKKE FLERE FRIE RAPPORTER.............................................................................................................................   115

10.1.6.     DENNE RAPPORT ER IKKE DEFINERET MED DENNE RAPPORT­GENERATOR......................................................   115

10.1.7.     DETTE ER IKKE DIN RAPPORT...........................................................................................................................................   115

10.1.8.     DENNE RAPPORT ER I BRUG AF EN ANDEN..................................................................................................................   116

10.1.9.     FORKERT SYSTEMNUMMER..............................................................................................................................................   116

10.1.10.    RAPPORTGENERATOREN ER I BRUG AF EN ANDEN..................................................................................................   116

10.1.11.    RING VENLIGST TIL INSTALLATIONSGRUPPEN..........................................................................................................   116

10.1.12.    RING VENLIGST TIL SERVICEAFDELINGEN....................................................................................................................   116

10.1.13.    DETTE KARTOTEK FINDES IKKE.....................................................................................................................................   116

10.1.14.    DETTE KARTOTEK ER IKKE IMPLEMENTERET...........................................................................................................   116

10.1.15.    DETTE KARTOTEK ER IKKE IMPLEMENTERET (READ MANG­LER).......................................................................   116

10.1.16.    DETTE KARTOTEK ER IKKE IMPLEMENTERET (DRN MANGLER)..........................................................................   117

10.1.17.    DENNE RAPPORT KAN IKKE STARTES..........................................................................................................................   117

10.1.18.    RAPPORTFILEN ER FULD....................................................................................................................................................   117

10.1.19.    FORKERT KARAKTER I NUMERISK FELT......................................................................................................................   117

10.1.20.    FORKERT RAPPORTNR........................................................................................................................................................   117

10.1.21.    DER KAN IKKE SORTERES SAMTIDIG MED DEFINITION AF SORTERING...........................................................   117

10.1.22.    SORTERING ER IKKE IMPLEMENTERET.........................................................................................................................   117

10.1.23.    FORKERT FELTNR.................................................................................................................................................................   118

10.1.24.    FORKERT ANTAL..................................................................................................................................................................   118

10.1.25.    PROGRAMMET BLIVER FOR STORT................................................................................................................................   118

10.1.26.    DETTE FELT TOTALISERES ALLEREDE..........................................................................................................................   118

10.1.27.    BAGGRUNDSPORTEN ER OPTAGET, PRØV IGEN (J/N)................................................................................................   118

10.1.28.    LINIEN ER FOR LANG...........................................................................................................................................................   118

10.1.29.    BASIC FEJL NR.xxxx I LINIE NR.xxxx....................................................................................................................................   118

10.1.30.    BASIC FEJL NR.xxxx i LINIE NR.xxxx I DMS.RAP­GEN.xxx................................................................................................   119

10.1.31.    BEKLAGER ‑ DER ER IKKE NOK CORE FOR TESTPRINT.............................................................................................   119

10.1.32.    FEJL UNDER SORTERING, STATUS=x..............................................................................................................................   119

10.1.33.    FUNKTION x KAN IKKE UDFØRES PÅ DENNE RAPPORT..........................................................................................   119

10.1.34.    DISSE RAPPORTER ER IKKE FRIE.....................................................................................................................................   119

10.1.35.    FORKERT FORMAT..............................................................................................................................................................   119

10.1.36.    FORKERT FELTNUMMER, SKAL VÆRE MELLEM 1 OG xx..........................................................................................   119

10.1.37.    DER ER INGEN TOTALER PÅ BREVE................................................................................................................................   120

10.1.38.    SORTERINGSNØGLE FORKORTET TIL xx KARAKTERER............................................................................................   120

10.1.39.    DMS.RAPGEN ER IKKE INSTALLERET............................................................................................................................   120

10.2.       SAVE fejlnumre..........................................................................................................................................................................   120

10.2.1.     SAVE FEJL NR.104...................................................................................................................................................................   120

10.2.2.     SAVE FEJL NR.108...................................................................................................................................................................   120

10.3.       Basic fejlnumre...........................................................................................................................................................................   120

10.3.1.     Nr.1 Syntaxfejl...........................................................................................................................................................................   121

10.3.2.     Nr.2 Forkert alfanumerisk tekstbehandling...........................................................................................................................   121

10.3.3.     Nr.3 Programmet er for stort....................................................................................................................................................   121

10.3.4.     Nr.5 Forkert tegn.......................................................................................................................................................................   122

10.3.5.     Nr.9 Forkert ord.........................................................................................................................................................................   122

10.3.6.     Nr.11 Forkert parantes‑sætning..............................................................................................................................................   122

10.3.7.     Nr.15 Division med 0 eller aritmetisk overflow.....................................................................................................................   122

10.3.8.     Nr.18 For mange FOR/NEXT løkker.......................................................................................................................................   122

10.3.9.     Nr.25 Alfanumerisk felt (eller matrix) ikke dimen­sioneret....................................................................................................   122

10.3.10.    Nr.26 Logisk enhed er ikke aktiv............................................................................................................................................   122

10.3.11.    Nr.28 Forkert værdi for index,kanalnr. eller signal‑parameter............................................................................................   122

10.3.12.    Nr.30 FN funktion ikke defineret............................................................................................................................................   122

10.3.13.    Nr.42 Kartoteket findes ikke...................................................................................................................................................   122

10.3.14.    Nr.45 Kartoteket er læsebeskyttet.........................................................................................................................................   122

10.3.15.    Nr.47 Disken er fuld.................................................................................................................................................................   122

10.3.16.    Nr.50 Kartoteket er i brug af en anden..................................................................................................................................   123

10.3.17.    Nr.51 Forkert recordnr.............................................................................................................................................................   123

10.3.18.    Nr.52 Record findes ikke.........................................................................................................................................................   123

10.3.19.    Nr.73 Forkert parameter...........................................................................................................................................................   123

 

Figurer........................................................................................................................................................................................................   124

 

Stikordsregister.........................................................................................................................................................................................   126

 


 



 

 

 

 

 

 

 

 

 

 

 

                                1.          Indledning.



 

 

 

 

 DMS.RAPGEN er et arbejdsredskab for ikke‑programmeringskyndige. Efter en ganske kort indlæring kan alle ‑ i dialog med en dataskærm ‑ fremstille enkle rapporter. DMS.RAPGEN er et gennemtestet produkt, udviklet i samarbejde med en lang række EDB‑brugere over en 10 årig periode.

 

 Hovedmålsætningen for udviklingsarbejdet har været at opnå en enkel betjening ‑ således at dette redskab kan anvendes af alle.

 

 Rapporter kan udskrives til alle typer printere eller vises på en dataskærm.

 

 Rapportgeneratoren bygger på et DATA‑DICTIONARY, der er defineret ved installationen, dette indeholder en definition af alle kartotekerne på systemet. Herved bliver rapportgeneratoren i stand til at vejlede brugeren igennem de forskellige felter, uden det er nødvendigt med store manualer og beskrivelser af systemet.

 

 

 

2.1.        Rapportgeneratoren startes.

 

   Når rapportgeneratoren vælges får man følgende menu op på skærmen:

 

 

Figure 1   Rapportgeneratorens funktionsvalg.

 

DMS.RAPGEN                                                                     

                   KODE     FUNKTION                                           

                     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                                          

                     F......FORMULARFREMFØRING                                 

                     STOP...STOP AF UDSKRIFT                                   

                     INDTAST KODE:                                             

                                                                               

 

 

 

 

   og kan således vælge en af disse funktioner ved at indtaste nummeret på den ønskede funktion.

 

2.3.        Formålet med denne manual.

 

   Formålet med denne manual er at beskrive hver enkelt funktion af rapportgeneratoren i detaljer, for så vidt muligt illustreret med eksempler, således at brugeren kan få de bedste betingelser for at anvende rapportgeneratoren på en kreativ måde.

 

 Desuden gives en række oplysninger af mere teknisk art til brug for programmører, der installerer rapportgeneratoren eller ønsker selv at bygge videre på rapportgeneratorens genererede programmer, normalt i form af fodnoter til de enkelte afsnit.

 

 Rapportgeneratoren er yderst enkel at betjene, og kan læres i løbet af få minutter, også uden at man læser denne manual. Samtidig kan rapportgeneratoren udnyttes til fremstilling af endog meget komplicerede rapporter med sammenknytning af indtil 9 forskellige kartoteker samtidig. Rapportgeneratoren indeholder desuden en lang række muligheder for opstilling af rapporter, hvilket beskrives i det følgende.

 

 Det kan nævnes, at flere af vore kunder selv har opbygget mere end 100 rapporter og forespørgseler med denne.

 

 I manualens sidste afsnit findes en udførlig liste over fejlmeddelelser og forskellige fejlsituationer, man kan komme ud for i arbejdet med rapportgeneratoren.

 

 Sidst men ikke mindst findes en udførlig indholdsfortegnelse samt stikordsregister.

 

2.5.        Kartoteker benyttet til eksemplerne.

 

   Vi har valgt at benytte 4 små kartoteker, der alle er opbygget med DATAMASTER, til eksemplerne i denne manual for at gøre disse så simple og overskuelige som muligt.

 

 Rapportgeneratoren kan naturligvis installeres på alle former for kartoteker, uanset om disse måtte være indexed/relative, med pakkede/upakkede eller delvist pakkede nøgler, indeholdende forskellige recordformater og hvad man ellers kan finde på. Alt dette defineres af programmøren ved installationen af rapportgeneratoren, betjeningen vil være den samme uanset om kartoteksstrukturen er simpel eller kompliceret.

 

 For at kunne illustrere rapportgeneratorens anvendelse af flere kartoteker samtidig har vi valgt at tage udgangspunkt i et simpelt varekartotek, hver vare refererer til en varegruppe med oplysninger om varegruppens navn og en prisfaktor, der kan benyttes til udregning af ny salgspris på basis af købspris i leverandørens valuta.

 

 

Figure 2   Kartoteker benyttet til eksemplerne.

 

     KARTOTEKER.

                         Varenr

                         Leverandørnr                Gruppenr

                   

        VA                            GR               

        Varekartotek      ΨVaregruppekartotek

                   

                 Ω

                

                

                 Ϊ        Leverandørnr                Valutakode

                   

        LE                            KU               

        LeverandørkartotekΨValutakartotek   

                   

    

 

 

 

2.6.1.      VA Varekartoteket.

 

 

Figure 3   VA Varekartoteket.

 

         NR NAVN           FORMAT   LAYOUT                   INDEX

          1 VARENR.          4      xxxx                     NØGLE 1

          2 NAVN            20      xxxxxxxxxxxxxxxxxxxx

          3 SALGSPRIS        6,2    999999,99

          4 KØBSPRIS         6,2    999999,99

          5 SIDSTE KØBSDATO ,6,     99,99,99

          6 LEV.NR.          3      xxx                      NØGLE 2

          7 GRUPPENR.        2,     99,

          8 BEHOLDNING      ‑6      ‑999999

          9 ALTERNATIV LEV   3      xxx

         10 FRIFELT         ‑6,2    ‑999999,99

        

 

 

 

2.6.3.      LE Leverandørkartoteket.

 

 

Figure 4   LE Leverandørkartoteket.

 

         NR NAVN           FORMAT   LAYOUT                   INDEX

          1 LEV.NR.          3      xxx                      NØGLE 1

          2 NAVN            24      xxxxxxxxxxxxxxxxxxxxxxxx

          3 ADRESSE         24      xxxxxxxxxxxxxxxxxxxxxxxx

          4 BY              24      xxxxxxxxxxxxxxxxxxxxxxxx

          5 VALUTAKODE       2,     99

          6 SALDO           ,8,2    ‑99,999,999,99

        

 

 

 

2.6.5.      KU Valutakurskartotek.

 

 

Figure 5   KU Valutakurskartotek.

 
 

          NR NAVN           FORMAT   LAYOUT                   INDEX

           1 VALUTAKODE       2,     99                       NØGLE

           2 NAVN             4      xxxx

           3 KURS             4,4    9999,9999

         

 

 

2.6.7.      GR Varegruppekartoteket.

 

 

Figure 6   GR Varegruppekartoteket.

 
 

          NR NAVN           FORMAT   LAYOUT                   INDEX

           1 GRUPPENR.        2,     99                       NØGLE

           2 GRUPPENAVN      16      xxxxxxxxxxxxxxxx

           3 PRISFAKTOR       4,4    9999,9999

         

 

 

2.6.9.      Indholdet af kartotekerne.

 

 

Figure 7   Vare‑kartoteket.

 

 

ODATO:14.01.87               * VARELISTE *           PR.14.01.87   SIDE:   1   O

                                                                              

ONR   NAVN                   SALGSPRIS  KØBSPRIS     DATO LEV ALT GR BEHOLDNINGO

 0101 CHOKOLADESTÆNGER            2,00      1,50  1.01.87 271 270  0        100

O0102 STOR FRÆSEMASKINE       20000,00  10000,00  1.01.85 100   0  9          0O

 0110 AUTOBUSSER             100000,00  60000,00 15.12.86 123 100  2          1

O1001 PENGE,STORE SEDLER       1000,00    500,00 31.12.86 205 102  0        100O

 1005 STANSEMASKINE            2000,00   1500,00  1.06.86 100   0  1         10

O2001 KREDITKORT                 20,00     10,00  1.01.87 205 102  9         10O

 2002 ID‑KORT                    25,00     10,00 30.07.86 205 102  9        200

 

 

 

 

 

Figure 8   Leverandør‑kartoteket.

 

 

ODATO:14.01.87  * LEVERANDØRLISTE *  PR.14.01.87   SIDE:   1                   O

                                                                              

OLEV.NR. NAVN                     VALUTAKODE          SALDO                    O

 100     SORENCO A/S                       0           0,00                   

O102     DEN DANSKE BANK                   0      25.000,00                    O

 105     DANSK OLIE OG GAS                 0         500,00                   

O111     DMS A/S                           0       1.000,00                    O

 123     PITZNER AUTO A/S                  1           0,00                   

O205     PRIVATBANKEN                      1      20.000,00                    O

 260     CLORIUS MÅLERSERVICE              0       2.000,00                   

O270     FIDUSIA A/S                       2         200,00                    O

 271     UNICEF                            2           0,00                   

 

 

 

 

 

Figure 9   Kurs‑kartoteket.

 

 

ODATO:14.01.87  * KURSLISTE *  PR.14.01.87   SIDE:   1                         O

                                                                              

OVALUTAKODE NAVN      KURS                                                     O

          0 DKK   100,0000                                                    

O         1 LUF    18,5000                                                     O

          2 US$   770,0000                                                     

 

 

 

 

 

Figure 10  Varegruppe‑kartoteket.

 

 

ODATO:14.01.87  * VAREGRUPPELISTE *  PR.14.01.87   SIDE:   1                   O

                                                                               

OGRUPPENR GRUPPENAVN       PRISFAKTOR                                          O

        0 NORMALVARER          1,0000                                         

O       1 DIVERSEVARER         2,0000                                          O

        2 SPECIALVARER         1,2345                                         

O       9 SKAFFEVARER          3,0000                                          O

 

 

 

 

 

2.7.        Generelt om betjeningen.

 

   Taster man blot cr. i rapportgeneratorens menu vender man tilbage til systemets hovedmenu, f.eks. en TAMOS menu.

 

 Hver enkel funktion i rapportgeneratoren afsluttes ved at indtaste ordet SLUT eller trykke på cr.‑tasten.

 

 En funktion kan afbrydes ved at trykke ESCape, herved vil evt. ændringer til en rapport blive annuleret.

 

 En funktion kan vælges direkte, ved at taste fx. 4, 28 vælger man at udføre funktion 4 (definer kalkulationer) på rapport 28, sådan at man sparer tid ved ikke at skulle se rapportoversigten.

 

 Ved anvendelse af flere kartoteker kan man se disses felter ved at taste ? eller trykke på HJÆLP‑tasten, den funktionstast, der er placeret helt nederst til højre på tastaturet.

 

 

Figure 11  Tastaturplan for rapportgeneratoren.

 

     

                                                               

      =    L4 =     L3 =    L2 =     L1 =       =        

                                                               

     

                                                               

      =    R4 =     R3 =    R2 =     R1 =   S   = ON/OFF 

                         INDTAST VIS NØGLE                   

     

                                                             

        BS      Y      N                                    

                                                             

     

                                                             

         C      7      8      9                              

                                                             

      SLUT 

                                                             

                4      5      6                              

                                                             

     

                                                             

                1      2      3                              

                                                             

        CR  

                                                               

                 0              ,                        HJÆLP

                                                               

     

     

 

 

 

2.9.        Operativsystem.

 

   Rapportgeneratoren kan anvendes på alle operativsystemer, fra NIROS 3.2 til 6.0. Ved release af nye operativsystemer bliver rapportgeneratoren løbende opgraderet herfor.

 

 Rapportgeneratoren er skrevet i ren BASIC og anvender ikke nogen specielle assemblerrutiner eller lignende. Ligeledes produceres et rent BASIC program, der kan viderebearbejdes af en programmør om ønsket.

 

 Der kræves kun en active partitionsstørrelse på 16 KB, dog vil man kunne definere større rapporter (flere totaler) jo større denne er. Der kræves 16 data filer åbne (SYSMOD).

 

2.11.        Diskplads.

 

   Rapportgeneratoren kan normalt installeres på ca. 2500 sectorer.

 

 

 

 

Figure 12  Diskplads.

 

      Pladsforbruget kan beregnes på følgende måde:

         1. Rapportgeneratorprogrammer                   =1000 sektorer.

         2. Pr. ekstra skærm samtidig: x * 75, f.eks.0   =   0 sektorer.

         3. Pr. kartotek: x * 20,f.eks. 10               = 200 sektorer.

         4. Rapportfil pr. rapport: x * 4, f.eks. 44     = 176 sektorer.

         5. Tekstfil pr. rapport: x * 4, f.eks. 44       = 176 sektorer.

         6. Program pr. rapport: x * 16, f.eks. 44       = 704 sektorer.

         7. Sorteringskartotek pr. 1000: x * 150,fx.1000 = 150 sektorer.

                                                         ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑

                                                          2406 sektorer.

     

 

 

 I tilfælde af pladsproblemer kan punkt 6, programmer pr. rapport, udelades og installationen kan foretages helt uden sorteringskartotek, dvs. pladsbehovet reduceres til 1552 sektorer i ovennævnte eksempel.

 

2.13.        DATAMASTER.

 

   DATAMASTER er omtalt flere steder i denne bog; et andet produkt der kan anvendes til definition og vedligeholdelse af forskellige kartoteker af brugeren selv med en yderst enkel betjening, idet man blot definerer de enkelte felter med navn og format, så sørger DATAMASTER for resten. Desuden kan kartotekerne altid udvides med nye felter eller index, idet eventuelt allerede oprettede data bevares.

 

 DATAMASTER kan anvendes til f.eks. skuffekartoteker som personalekartotek, kunde emnekartotek m.v., eller til at udbygge et bestående system som f.eks. at tilføje et varegruppekartotek med prisfaktor såfremt man ikke har et sådant tilknyttet varekartotek i det normale system.

 

 DATAMASTER producerer helt normale kartoteker, der kan anvendes på samme måde som systemets andre kartoteker, både af rapportgeneratoren og af programmøren.

 

2.15.        Systemer.

 

   Et rapportgenerator‑system er selve installations‑beskrivelsen af rapportgeneratoren, der blandt andet fortæller maskinen, på hvilken disk, rapportgeneratoren er placeret.

 

 Der kan findes op til 100 forskellige systemer på samme maskine, men normalt vil man nok nøjes med eet.

 

 Ved hjælp af parametrene for et sådant system kan programmøren ved installation af rapportgeneratoren integrere denne ind i brugerens applikation, det være sig STAR, TAMOS, NIROS mm.

 

 Hvert system kan indeholde forskellige kartoteksdefinitioner, såfremt man kører forskellige applikationer på maskinen, eller disse kan være fælles for systemerne.

 

 Et system kan indeholde op til 88 rapporter, da rapportoversigten ellers ikke vil kunne vises på skærmen.Skulle man have behov for mere end dette kan der ganske enkelt installeres flere systemer.



 

 

 

 

 

 

 

 

 

 

 

                     3.          Definition af en rapport.



 

 

4.1.        Generelt

 

   Ved definition af en ny rapport med funktion 1 fortæller man rapportgeneratoren, hvilket kartotek rapporten skal opbygges over, tildeler rapporten et nummer og navn, hvorefter man angiver, hvilke felter der skal udskrives på rapporten.For at lette denne udvælgelse af felter viser rapportgeneratoren en oversigt over alle felterne i det valgte kartotek.

 

 Denne definition kan gøres meget simpel, idet man blot indtaster de ønskede feltnumre, hvorved rapportgeneratoren selv placerer disse på linien, pænt med overskrifter justeret til højre eller venstre, alt efter om felterne er numeriske eller alfanumeriske tekstfelter.

 

 Når man således har udvalgt felterne, kan man gå direkte til funktion 9 og starte rapporten, hvorved rapportgeneratoren danner et basicprogram på basis af de indtastede felter. Dette udskriver den definerede rapport på printeren eller på skærmen.Det tager således ikke mere end et par minutter at lære at lave sit første basicprogram.

 

 Ydermere vil der være dannet totaler på alle talkolonner, som rapportgeneratoren finder det fornuftigt at totalisere, og programmet vil være optimeret, så en programmør ikke ville kunne skrive det bedre.Det er altså ikke et helt simpelt program, man har fået lavet på disse par minutter.

 

 Definitionen kan gøres mere udførlig, idet man selv kan påsætte overskrifter for felterne, flytte disse til en bestemt position på linien, definere en rapport med flere linier, for ikke at tale om at hente felter fra andre kartoteker.Samtidig med at man opbygger udskriftslinien vil man kunne se på skærmen, hvordan denne vil komme til at se ud, med overskrifter og felternes format placeret ind.

 

 Når man definerer en rapport skal man kun bekymre sig om, hvilke felter, der skal placeres hvor på udskriften (rapportens layout).Når dette er gjort kan man senere udbygge rapporten med selektioner, sorteringer, beregninger og specielle totaler, der knyttes til det her definerede layout.Rapportgeneratoren er modulopbygget, således at man kan ændre beregningerne m.v.på en rapport uden at skulle bekymre sig om det een gang definerede layout.

 

 Til brug for netop beregningerne vises sammen med kartotekets felter på skærmen desuden 20 frie felter, som man i denne fase kan vælge at udskrive og herved knytte et navn og et format (antal cifre) til disse.Starter man rapporten umiddelbart, vil sådanne felter blot blive udskrevet som nul, ved hjælp af beregningsfunktionen kan man derefter give felterne et indhold.

 

 

 

4.3.        Brug af funktion 1.

 

   Når man vælger funktion 1, definition af en ny rapport, får man først en liste over de rapporter, der allerede er defineret i systemet, frem på skærmen.

 

 

 

 

Figure 13  Rapportoversigt

 

DMS.RAPGEN                                           1.....DEFINER NY RAPPORT  

  1 PRISLISTE                                                                  

  2 LAGERVÆRDILISTE                                                            

  3 DÆKNINGSGRADER                                                             

  4 PRISBEREGNING                                                              

  5 LABELS TIL LEVERANDØRER                                                     

  6 SALDOLISTE                                                                 

  7 VARELISTE                                                                   

  8 VAREGRUPPELISTE                                                            

  9 LEVERANDØRLISTE                                                            

10 KURSLISTE                                                                  

11 VARER PR.LEVERANDØR                                                        

                                                                               

                                                                               

                                                                                

                                                                               

                                                                                

                                                                               

                                                                                

                                                                               

                                                                               

                                                                               

                                                                               

RAPPORT NUMMER ? CR=NÆSTE FRIE RAPPORT ?                                        

                                                                               

 

 

 

 

4.4.1.      Rapportnummer.

 

   Normalt vil man blot taste cr.når rapportgeneratoren spørger om det rapportnummer, den nye rapport skal defineres som, idet rapportgeneratoren herved automatisk selv vil finde det næste frie rapportnummer og anvende dette.Det er dog også muligt selv at angive et nummer, således at man kan gruppere sine rapporter fornuftigt, man skal altså vælge et nyt nummer, der ikke står på skærmen.

 

 På et normalt system vil numrene 1 til 66 kunne anvendes.Har man ikke meget diskplads på systemet kan rapportgeneratoren dog være installeret sådan, at de laveste numre vil være hurtigst at starte, idet programmet for rapporter over et vist nummer vil blive dannet, hvergang disse startes, rapporter mindre end dette nr.starter direkte når programmet een gang er genereret.

 

 

 

4.4.3.      Kartotek.

 

   Når man har valgt et rapportnummer, skal man angive hvilket kartotek, rapporten skal defineres udfra.Rapportgeneratoren viser en liste over alle de kartoteker, der er installeret:

 

 

 

 

Figure 14  Kartoteker.

 

DMS.RAPGEN     1                                     1....DEFINER NY RAPPORT   

GR.... VAREGRUPPER                                                             

KU.... KURSER                                                                  

LE.... LEVERANDØRKARTOTEK                                                      

VA.... VAREKARTOTEK                                                            

                                                                               

                                                                               

                                                                               

                                                                               

                                                                               

                                                                                

                                                                               

                                                                               

                                                                               

KARTOTEKSNR.?                                                                  

                                                                                

                                                                               

                                                                                

                                                                               

                                                                                

                                                                               

                                                                               

                                                                               

                                                                               

                                                                               

 

 

 

 

   Hvert kartotek vises med en 2‑bogstavs forkortelse og en tekst, der beskriver kartotekets indhold.Man udvælger et kartotek ved at indtaste kartoteksforkortelsen.

 

 Det kartotek, man her vælger, vil blive rapportens hoved‑kartotek, dvs.det kartotek, der gennemlæses når rapporten køres.Udfra dette kan man om ønsket definere opslag i andre kartoteker.Specielt skal det ved udskrift af kontoudtogstypen af en rapport være liniekartoteket rapporten defineres på.

 

 For DATAMASTER kartoteker kan man på dette sted angive, at der skal skrives tilbage i kartoteket ved at taste komma W efter kartoteksforkortelsen, f.eks.XX, W.Herved vil det være muligt at regne på selve kartotekets felter, f.eks.steppe en rykkerkode op hvergang rykkerbrev udskrives tilbageskrivning i kartoteker;For at gøre brugeren opmærksom på, at det kan være farligt at skrive i kartoteket vil start af en sådan rapport blive password beskyttet.

 

 Ved specielle installationer af kartoteker kan programmøren have lagt flere forskellige varianter af kartoteket op, disse aktiveres ved at taste kartoteksforkortelse, variantnummer, f.eks.XX, 1 eller XX, A.Programmøren vil i disse tilfælde have instrueret i disse.

 

4.4.5.      Kartoteks‑password.

 

   Programmøren har ved installation mulighed for at passwordbeskytte enkelte kartoteker, f.eks.lønkartoteker, således at passwordet for det valgte kartotek skal angives på dette tidspunkt, for at der kan defineres en rapport på dette.Brugeren kan herefter selv knytte et password på den definerede rapport.

 

 

 

4.5.        Rapportens stamoplysninger.

 

   Herefter skal der indtastes en række stamoplysninger, der knyttes til rapporten i hele dens levetid:

 

 

 

 

Figure 15  Rapportens stamoplysninger.

 

DMS.RAPGEN     1                                     1....DEFINER NY RAPPORT   

GR.... VAREGRUPPER                                                             

KU.... KURSER                                                                  

LE.... LEVERANDØRKARTOTEK                                                      

VA.... VAREKARTOTEK                                                            

                                                                               

                                                                               

                                                                               

                                                                               

                                                                                

                                                                               

                                                                               

                                                                               

                                                                               

KARTOTEKSNR.?  VA......VAREKARTOTEK                                            

                                                                               

RAPPORT NAVN (FOR PROGRAMVALG)   ?   PRISLISTE                                  

                                                                               

ANTAL LINIER PR.SIDE  (CR=51)    ?   51                                        

                                                                               

OVERSKRIFT (N=INGEN,CR=SOM NAVN) ?   PRISLISTE                                 

                                                                               

SKAL NUL UDSKRIVES (J/N) ? J         BRUGERNAVN ? XXX                          

                                                                               

                                                                               

 

 

 

 

4.6.1.      Rapportnavn.

 

   Der skal indtastes et rapport navn på højst 25 karakterer, og dette navn må ikke være blankt.Navnet vises på oversigten over rapporter, hvergang en funktion vælges, og bør derfor være i en sådan form, at man let kan identificere rapporten.

 

 Selv om man kan indtaste 25 karakterer her, må man være opmærksom på, at hvis rapportgeneratoren er installeret med mulighed for mange rapporter, f.eks.88, kan det være færre karakterer, der egentlig er plads til i skærmbilledet, når rapportoversigten vises, hvorfor navnet vil blive kortet af på oversigten.

 

 Rapportnavnet kan senere ændres ved at kopiere rapporten til en anden.

 

 

 

4.6.3.      Antal linier pr.side.

 

   Rapportgeneratoren vil foreslå en standard sidehøjde ved installation;, og kvitterer man blot her med cr.får man denne værdi.Anvender man specialformularer, kan et andet antal linier angives, specielt er A4 papir 72 linier højt.Det må bemærkes, at labels normalt defineres ved hjælp af brevskrivningsmodulet, se funktion 6.

 

 Rapportgeneratoren vil herefter skifte side 3 linier før slutningen af papiret.Der er her mulighed for at ændre dette tal, således at der skiftes side før, ved at indtaste antal linier pr.side komma sideskiftslinier, f.eks.51, 5 vil definere 51 linier pr.side med sideskift 5 linier før siden er fuld, altså efter linie 46 er udskrevet.

 

 

 

4.6.5.      Overskrift.

 

   Tastes blot cr.her får man rapportens navn som overskrift, ellers har man mulighed for selv at angive en overskrift.Overskriften placeres på midten af første linie, idet længden af selve overskriftslinien bestemmes af, hvor bred listen defineres, altså hvor mange felter man vælger at udskrive.

 

 Tastes N får man overhovedet ingen overskrift på rapporten, hverken sidenumre eller feltoverskrifter vil blive udskrevet.

 

 

 

4.6.7.      Skal nul udskrives (J/N).

 

   Normalt vil man blot kvittere her, hvorved man svarer J.

 

 Der er mulighed for at undertrykke udskriften af felter, der er nul, på en rapport, således at disse bliver udskrevet som blanke istedet for 0, ved at taste N her.

 

 

 

4.6.9.      Printer.

 

   Dette spørgsmål vil kun blive stillet, såfremt programmøren ved installation har angivet mulighed for flere printere, og man kan i så fald vælge en bestemt printer, som rapporten skal udskrives på, her.

 

 Normalt vil man nok vælge at udelade denne funktion ved installation, således at udskriften styres via den normale printertildeling i TAMOS.

 

 Printervalget kan evt.begrænse længden af de linier, der kan defineres.

 

 

 

4.6.11.      Brugernavn.

 

   Man har mulighed for at password‑beskytte rapporten ved at indtaste et brugernavn her, dette skal i så fald opgives ved enhver ændring/sletning af rapportdefinitionerne.

 

 Normalt vil man blot taste cr., hvorved rapporten ikke bliver passwordbeskyttet.

 

 Indtaster man brugernavnet omgivet af control E, f.eks.ETESTE, vil dette ikke blive vist på skærmen ved indtastningen og vil desuden bevirke, at også start af rapportudskrift vil blive passwordbeskyttet.

 

 Brugernavnet kan ændres ved kopiering af rapporten, hvor man naturligvis skal opgive det gamle brugernavn først.Kan man ikke huske et brugernavn for en rapport må man kontakte den programmør, der er ansvarlig for installationen.

 

 

 

4.7.        TAMOS selektor.

 

   Normalt vil denne funktion ikke være aktiveret, man vil så gå direkte til definition af rapportlinierne.

 

 Såfremt rapportgeneratoren er installeret med integration til Tamos menu‑systemet, vil man efter indtastningen af brugernavnet få f.eks. følgende skærmbillede frem:

 

 

Figure 16  TAMOS selektor definition.

 

DMS.RAPGEN   1 PRISLISTE                             1.....DEFINER NY RAPPORT  

                                                                               

* TAMOS SELEKTOR *   RAPPORT NR: 1 PRISLISTE                                   

1 SYSTEM BETJENING    1 DAGLIGE PROCEDURER  1 SPØRGE PORTE        00/TA.STRPIQ

2                     2 HJÆLPEPROGRAMMER    2 SPØRGE ARKIVFIL     00/TA‑PRTARC

3                     3 DISK STYRING        3 SPØRGE LOGFIL       00/UT.ZDM   

4                     4                     4 UDSKRIVE LOGFIL     00/UT.ZDM   

5                     5                     5 ÆNDRE TID           00/TA.STRPIQ

6                     6                     6 PRINTERTILDELING    00/TA‑PRTASGN

7                     7                     7 SPØRGE SPOOLFIL     00/TA.DISPQ 

8                     8                     8 SPOOLER TILDELING   00/TA.PRTASGN

9                     9                     9 PRISLISTE           DMS.RAP     

10                    10                    10                                 

11                    11                    11                                 

12                    12                    12                                 

13                    13                    13                                 

14                    14                    14                                  

15                    15                    15                                 

NR.? 1                NR.? 2                NR.? 9                             

                                                                               

DETTE PROGRAMNR.ANVENDES AF:PRISLISTE                                          

                                                                               

ERSTAT DEN GAMLE RAPPORT (J/N) ?                                               

                                                                               

                                                                               

 

 

 

 

   Man kan her indtaste, på hvilke numre man ønske rapporten placeret i selektorens 3 niveauer.

 

 Tastes blot cr i første nr. placeres rapporten ikke i selektoren.

 

 Findes der allerede en rapport på det valgte sted i selektoren, vil man blive spurgt, opm man ønsker at erstatte denne med den nye.

 

 Det er ikke muligt at erstatte andre programmer end rapportprogrammer.

 

4.9.        Rapportlinierne

 

   Når man har indtastet rapportens stamoplysninger vil rapportgeneratoren vise en oversigt over samtlige felter i det valgte kartotek på skærmen, foruden 20 frifelter til brug for beregninger, markeret med teksten @FRI.

 

 

 

 

Figure 17  Rapportlinier.

 

DMS.RAPGEN     1 PRISLISTE                           1......DEFINER NY RAPPORT 

  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 @FRI                    29 @FRI                                            

12 @FRI                    30 @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

VARENR NAVN                 SALGSPRIS                                          

AAAA   AAAAAAAAAAAAAAAAAAAA ######.##                                          

LINIE NR.  1 FELTNR. ?                                                         

                                                                               

 

 

 

 

   Nederst på skærmen vises en kort instruktion, herefter er de næste 3 linier reserveret til at vise linierne, efterhånden som disse opbygges, og brugeren befinder sig nederst i feltet:

 

 LINIE NR. 1:FELTNR:

 

 Rapporten opbygges ganske enkelt ved at indtaste nummeret på de ønskede felter.Et felt vil blive placeret på linien med samme overskrift, som feltets navn, med en afstand på eet mellemrum fra det sidst valgte felt.Overskriften vil blive pænt højre eller venstrestillet alt efter om feltet er numerisk eller alfanumerisk.Når et felt vælges vil dette lyse op på skærmen således at man kan se, hvilke felter der er udvalgt, samtidig kan man følge med i linieopbygningen nederst.

 

 Når rapportlinierne således er defineret taster man SLUT (eller cr‑tasten), hvorved rapportgeneratoren vil lagre definitionerne på disken og rapporten kan startes.Udskriften kan komme til at se således ud:

 

 

Figure 18  Den færdige udskrift.

 

 

ODATO:14.01.87  * PRISLISTE *  PR.14.01.87   SIDE:   1                         O

                                                                              

OVARENR NAVN                 SALGSPRIS GRUPPENR                                O

 0101   CHOKOLADESTÆNGER          2,00        0                               

O0102   STOR FRÆSEMASKINR     20000,00        9                                O

 0110   AUTOBUSSER           100000,00        2                               

O1001   PENGE,STORE SEDLER     1000,00        0                                O

 1005   STANSEMASKINE          2000,00        1                               

O2001   KREDITKORT               20,00        9                                O

 2002   ID‑KORT                  25,00        9                                

O                                                                              O

 GRANDE TOTAL                123047,00                                         

 

 

 

 

   Der er indbygget en række specialfunktioner, man kan anvende under opbygningen af linierne for at editere udskriften:

 

 

 

4.10.1.      +xx flyt xx karakterer frem.

 

   Man kan ved hjælp af pilen på positionslinien se, hvor det næste felt vil blive placeret på linien, ved hjælp af f.eks.+5 kan man flytte sig 5 karakterer frem og således skabe mere luft mellem felterne.

 

 

 

4.10.3.      ‑xx flyt xx karakterer tilbage.

 

   Specielt bevirker ‑1 at man flytter sig en position tilbage, og da mellemrummet mellem felterne normalt er een karakter vil næste felt altså komme til at stå tæt på det foregående.Dette kan især bruges når man definerer rapporter med mange felter, og feltet er med fortegn, idet man så strengt taget ikke behøver at adskille felterne med en ekstra blank, fortegnet vil skrives som en blank eller et ‑ og således gøre listen læselig.

 

 Man kan aldrig bevæge sig længere tilbage end sidste felt på linien, er dette nødvendigt må man slette felterne igen med D kommandoen, se senere.

 

 

 

4.10.5.      Pxxx flyt til position xxx.

 

   Man flytter sig frem/tilbage til position xxx på linien, dog aldrig længere tilbage end sidste felt, se ovenfor.

 

 

 

4.10.7.      Hxx feltnr.xx med manuel overskrift.

 

   Indtaster man blot feltnummeret, vil feltets navn automatisk blive brugt som overskrift, taster man H foran feltnummeret, kan man selv indtaste overskriften.

 

 Overskriften for et felt er altid een linie på dette tidspunkt, ved hjælp af funktion 7, ændring af rapport, kan man evt. senere udbygge med flere overskriftslinier.

 

 

 

4.10.9.      D slet sidst valgte felt.

 

   Ved hjælp af D kan man bakke på linien, hvis man har valgt et felt og fået en automatisk overskrift, man ikke er helt tilfreds med, kan man taste D og vælge feltet igen med H foran feltnummeret for manuel overskrift.

 

 

 

4.10.11.      T tekst på linien.

 

   Taster man f.eks.TSALDO vil teksten SALDO blive placeret mellem felterne på linien (ikke som overskrift).

 

 

 

4.10.13.      Nxx feltnr. xx uden overskrift.

 

   Tastes N foran feltnummeret indsættes feltet på linien med en blank overskrift.

 

4.10.15.      N Fjern alle overskrifter fra linien.

 

   Tasten N alene undertrykkes alle overskrifter for denne linie, der udskrives heller ikke en blank linie i overskriften, hvilket ville være tilfældet, hvis de enkelte felter var valgt med Nxx. Denne funktion anvendes specielt ved rapporter med mange feltlinier, hvor man ikke ønsker ligeså mange overskriftslinier.

 

4.10.17.      H@xx feltnr.xx permanent overskrift.

 

   Denne kommando virker på sammer måde som Hxx, man kan altså indtaste en manuel overskrift for feltet.Overskriften vil nu også blive sat fast ind i kartoteksdefinitionerne som feltnavn, man retter altså i det af programmøren valgte feltnavn.

 

 Funktionen bruges typisk når programmøren har valgt længere feltnavne, end man nogen sinde vil bruge som overskrift for det pågældende felt.Man skal dog passe på, at man stadig kan genkende feltet, når man retter på denne måde.

 

 

 

4.10.19.     KK#xx felter fra andre kartoteker.

 

   Man kan udvælge felter fra andre kartoteker simpelt hen ved at angive kartoteksforkortelsen foran feltnummeret.Vælges sådanne felter kræver dette altid, at man definerer en beregningslinie for READ af kartoteket, se afsnittet om flere kartoteker.

 

 

 

4.10.21.

2.5.11.     ? Hjælp oversigt over andre kartoteker.

 

   Ved hjælp af ? eller hjælptasten kan man se alle kartoteker og disses felter, se afsnittet om flere kartoteker.

 

 

 

4.10.23.     LINIE Kontoudtogstype rapport.

 

   Denne kommando skal gives som den første på en ny linie og fortæller rapportgeneratoren, at de allerede definerede linier skal udskrives som et hoved på en slags kontoudtog, de linier, der defineres herefter, skal udskrives som de enkelte 'posteringslinier'.Selve styringen af dette foregår med READH kommandoen, se afsnittet om flere kartoteker.

 

 

 

4.10.25.

2.5.13.     cr afslut denne linie.

 

   Tastes blot cr bliver man bedt om at godkende linien med:

 

 ER LINIEN OK (J/N)?

 

 og kan altså annulere hele linien eller godkende denne blot ved at kvittere.Herved vises denne linies feltindhold en linie højere oppe på skærmen, og man kan nu definere næste linie, idet man kan se hvordan felterne bliver placeres i forhold til felterne på den foregående linie.Man vil normalt begynde definitionen af næste linie med at rykke et antal karakterer ind med +xx kommandoen, således at rapporten bliver pænt opstillet.

 

 Der kan defineres lige så mange linier på en rapport, som man ønsker, dog op til 3 linier fra den angivne sidehøjde.Labels bør defineres som et brev, ikke som en rapport.

 

 Til hver linie knyttes en overskriftslinie, definerer man mange linier kan overskriften blive større end ønsket, i så tilfælde kan man med N kommandoen frakoble overskriften for visse linier.

 

 

 

4.10.27.     Blanke linier (dobbelt linieafstand).

 

   Blanke linier på en rapport defineres ved først at godkende den definerede linie og herefter at godkende linien umiddelbart efter uden at vælge nogen felter. Rapporter med dobbelt linieafstand kan således defineres på denne måde.

 

 N kommandoen kan anvendes, såfremt man ikke samtidig ønsker at placere en blank linie i overskriften.

 

 

 

4.11.        Frifelter.

 

   Foruden kartotekets felter vises 20 frifelter på skærmen markeret med @FRI.Disse felter anvendes, når man vil udskrive beregnede felter, altså felter der ikke indgår direkte i kartoteket.

 

 

 

4.12.1.      Overskrift og navn.

 

   Når man vælger et sådant felt vil man altid blive bedt om at indtaste overskrift for feltet, da rapportgeneratoren ikke kan vide, hvad feltet vil komme til at indeholde.Denne overskrift vil også blive feltets navn på denne rapport, således at man når man f.eks.definerer beregninger ikke længere vil se feltet som @FRI, men derimod med den tekst, man har givet som overskrift.

 

 

 

4.12.3.      Feltformat.

 

   Rapportgeneratoren kan heller ikke vide, hvordan feltet skal se ud, altså hvor mange cifre eller karakterer, dette skal bestå af (feltets format), og derfor får man efter at have indtastet overskriften for feltet mulighed for at angive dette.Rapportgeneratoren vil selv foreslå et format, for de første 10 frifelter vil dette være ‑9, 2 altså ni cifre efterfulgt af to decimaler med fortegn, for de næste 10 frifelter vil forslaget være ‑5, altså fem cifre uden decimaler, men med fortegn.

 

 Dette feltformat kan ændres uanset hvilket forslag, rapportgeneratoren har givet, idet man skal følge nedenstående regler:

 

 

 

4.12.5.      Definition af feltformatet.

 

 

Figure 19  Definition af feltformatet.

 

            1.  xx,   angiver et tal på xx cifre uden fortegn.

            2.  xx,y  angiver et tal med xx cifre foran kommaet og

                      y decimaler, ingen fortegn.

            3.  ‑xx,  som 1, med fortegn.

            4.  ‑xx,y som 2, med fortegn.

            5.  ,xx,  som 1, med kommaeditering pr.1000

                      f.eks. 999,999,999

                ,6,   datofelt med kommaeditering: 99,99,99

            6.  ,xx,y som 2, med kommaeditering pr.1000

                      f.eks. 999,999,999.99

            7.  xx    udelades kommaet defineres et tekstfelt på

                      xx karakterer (maksimalt 80 karakterer).

           

 

 

4.12.7.      Ændring af feltformater.

 

   Når man først har fået knyttet et feltformat til et frifelt vil dette blive husket af rapportgeneratoren og kan ikke umiddelbart ændres, sker dette ved definitionen af rapporten er det letteste nok at bakke med D kommandoen og vælge et andet felt.Opdages det senere kan man i funktion 7, ændring af rapport, give kommandoen FORMAT og herved ændre feltformatet.

 

 Det er kun frifelterne, hvor man har adgang til at ændre feltformatet, selve kartotekets felter er det ikke muligt at ændre.

 

 Alfanumeriske tekstfelter er det ikke muligt at ændre, har man først een gang fået defineret et frifelt som et tekstfelt er der ingen anden mulighed end at vælge et andet felt, hvis formatet skal ændres.Dette skyldes, at rapportgeneratoren lagrer sådanne felter på en helt speciel og temmelig kompliceret måde, se også afsnittet om alfanumeriske tekstfelter.

 

 

 

4.12.9.      Regnenøjagtighed (præcision).

 

   Uanset hvilket format man vælger for et frifelt, vil dette altid blive beregnetmed flydende komma og maskinens maksimale regnenøjagtighed på 14 cifre, også selv om kun har bedt om f.eks.1, altså kun et ciffer uden decimaler.

 

 Dette kan naturligvis udnyttes ved mellemregninger etc., idet man sagtens kan regne med mange cifre på et frifelt, dog kan det give problemer med afstemning når man f.eks.totaliserer et sådant felt.Se afsnittet om afrunding under beregninger.

 

 

 

4.12.11.      Automatisk feltudvidelse (overflow).

 

   Såfremt et tal bliver større end det der kan rummes i det angivne format for et felt, vil basic normalt udskrive dette med *, således at det er umuligt at læse tallet.I så fald er man naturligvis nødt til at udvide feltformatet til det rigtige antal cifre.

 

 Rapportgeneratoren indeholder en facilitet så denne situation for så vidt muligt undgås, idet formatet for et numerisk felt automatisk vil blive udvidet med ekstra cifre til venstre, såfremt der er fri plads på linien til dette.Herved undgås langt de fleste 'overflow' situationer, specielt i forbindelse med totaler.

 

 Kommer man ud for en situation, hvor f.eks.en total for et felt udskrives som stjerner, kan dette altså afhjælpes ved at give noget bedre plads på rapporten til venstre for feltet, man behøver ikke nødvendigvis udvide feltformatet. Dette gælder både de frie felter og felterne i kartotekerne.

 

 

 

4.13.        Automatiske totaler.

 

   Når man definerer en rapport vil rapportgeneratoren selv danne en 'grande total' for listen på de felter, der kunne se ud til at være fornuftige at totalisere.Man får altså foræret en total, der normalt vil være relevant, i visse tilfælde vil det være æbler og pærer lagt sammen, hvilket må man så se bort fra eller gå over i funktion 3, definering af sortering og totaler, og selv definere, hvilke felter der skal totaliseres, samt eventuelt udbygge med subtotalniveauer etc.

 

 Rapportgeneratoren danner automatisk total på felterne iflg.følgende

 

 

Figure 20  Automatiske totaler.

 

       kriterier:

            1. Feltet skal være numerisk med

            2. mere end 4 cifre eller

            3. være angivet som 4 ords variabel (max.regnenøjagtighed)

            4. dog ikke hvis feltet er editeret som dato (,6,)

            5. eller er markeret med en speciel checkkode (1‑9)

               for f.eks.nøglefelter mv.

      

 

 

 

4.15.        Højde og bredde for en rapport.

 

   Man kan maksimalt angive 80 linier pr.side for en rapport, 72 linier vil svare til en normal A4‑side.Der kan defineres lige så mange linier, man ønsker, inden for dette, indtil 3 linier fra slutningen af en side.Dog skal man huske på, at en linie normalt tæller dobbelt, både som selve linien og som overskriftslinie.

 

 Køres en rapport over skærmen vil man skulle taste cr.hvergang en skærmside er fuld uanset den tidligere definerede sidehøjde, altså for hver 24 linier.

 

 Bredden på en rapport kan være op til 177 karakterer, dog begrænset af bredden på den anvendte printer, der normalt vil være 132 karakterer.A4 papir er 80 karakterer bredt svarende til skærmens bredde.

 

 Når en rapport defineres bredere end 80 karakterer vil visningen på skærmen af linierne med overskrift og feltformater flytte sig til venstre, således at man helt tiden kan se de sidste 80 karakterer, man har defineret.

 

 Køres en rapport, der er defineret bredere end 80 karakterer, på skærmen vil der vises 2 linier pr.defineret linie, hvilket kan give et mere eller mindre ulæseligt resultat.Ønsker man at bruge en rapport til skærmforespørgsler bør man altså begrænse sig til 80 karakterer.

 

 Ved specielle installationer (ikke optimerede systemer) kan rapportgeneratoren istedet bringes til at skære linierne af efter 80 karakterer.


 

 

 

 

 

 

 

 

 

 

 

                               5.          Selektioner.



 

 

   Selektioner anvendes til at udvælge bestemte records i et kartotek.

 

 

Figure 21  Leverandørlisten, kun saldi over 500 kr.udskrives

 

 

ODATO:14.01.87  * LEVERANDØRLISTE *  PR.14.01.87   SIDE:   1                   O

                                                                               

OLEV.NR. NAVN                     VALUTAKODE          SALDO                    O

 102     DEN DANSKE BANK                   0      25.000,00                   

O111     DMS A/S                           0       1.000,00                    O

 205     PRIVATBANKEN                      1      20.000,00                   

O260     CLORIUS MÅLERSERVICE              0       2.000,00                    O

 

 

 

 

 

6.1.        Normal brug af selektionerne.

 

   Når man vælger funktion 2, definering af selektioner på en rapport, får man oversigten over kartotekets felter frem på skærmen og kan udvælge et af disse ved at indtaste feltnummeret:

 

 

 

 

Figure 22  Definition af selektioner.

 

DMS.RAPGEN     1 PRISLISTE                           2......DEFINER SELEKTIONER

  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 @FRI                    29 @FRI                                            

12 @FRI                    30 @FRI                                            

13 @FRI                                                                       

14 @FRI                                                                       

15 @FRI                                                                       

16 @FRI                                                                       

17 @FRI                                                                       

18 @FRI                                                                        

                                                                               

                                                                               

GRUPPENR                    >=3                          <=15                  

BEHOLDNING                  >=100                                              

FELTNR:8                    MINIMUM:100                  MAXIMUM:              

                                                                               

 

 

 

 

   Man indtaster således feltnummeret og kan herefter angive minimum og maksimum for feltet, således at kun records, hvor dette felt ligger i det angivne interval, vil blive udskrevet.

 

 Man kan nøjes med at angive en af værdierne for minimum/maksimum og således f.eks.kun indsætte en mindsteværdi.

 

 Herefter kan man angive et nyt feltnummer og således definere kombinerede selektioner på flere felter.Man skal dog være opmærksom på, at dette vil være en OG selektion, altså både den første selektion OG den anden skal være opfyldt, f.eks.felt 7 skal være 5 OG felt 15 skal være 1 samtidig.Definerer man en selektion som felt 7 skal være 5 OG felt 7 skal være 9, vil man slet ikke få udskrevet noget på rapporten, da dette er en ELLER selektion, dette må gøres via beregningerne, se senere.

 

 Man kan selektere både på kartotekets felter, beregnede felter og felter fra andre kartoteker.

 

 Når man er færdig med definitionen tastes SLUT eller cr‑, hvorefter rapporten kan startes.

 

 

 

6.3.        Sletning af selektioner.

 

   Næste gang man vælger at definere selektioner på rapporten slettes de gamle selektioner automatisk og erstattes af de nye, afslutter man med det samme uden at definere nogen selektioner vil rapporten udskrives i sin helhed helt uden selektioner.

 

 

 

6.5.        Selektion på forskellig fra nul etc.

 

   Angiver man minimum/maksimum vil feltets værdi skulle ligge i dette interval.Man kan både i minimum og maksimum angive en af relations‑operatorerne dette afsnit under beregninger; og f.eks. definere:

 

 MINIMUM: <>0

 

 og intet maksimum, hvorved kun records med det givne felt ulig nul udskrives.

 

 

 

6.7.        Selektion på alfanumeriske tekstfelter.

 

   Man skal være opmærksom på, at minimum/maksimum værdi skal angives i gåseøjne, f.eks."A", såfremt feltet er alfanumerisk.Disse blev sat automatisk i tidligere versioner af rapportgeneratoren.

 

 

 

6.9.        Beregninger i selektionerne.

 

   Både i feltnr., minimum og maksimum kan man angive en beregning, man kan således f.eks.definere:

 

 

Figure 23  Beregninger i selektionerne.

 
 

                     FELTNR: #5+#7       MINIMUM: #15*100

                    

 

 

 

   og således definere selektion på at et felt skal være større end et andet etc.

 

 

 

6.11.        Selektionsangivelse ved start af rapporten.

 

 Specielt kan man anvende data, der indtastes ved start af rapporten (se afsnittet om dette), således at man hver gang man starter en rapport kan angive, hvilke records, der skal udskrives:

 

 MINIMUM: #D1 MAKSIMUM: #D2

 

 vil bevirke, at man, når rapporten startes, skal indtaste det interval, som det valgte felt skal ligge indenfor.Man kan endda via beregningerne få knyttet en tekst til disse specialfelter, som altså i klar tekst fortæller, hvad der skal indtastes ved opstarten.

 

 

 

6.13.        Selektion på dele af felter.

 

   Såfremt man ønsker at selektere på, at 3 ciffer i f.eks.en varegruppe skal være 5, kan man som feltnr.give #7(3, 3), se også afsnittet om dele af felter under beregningerne.(Denne funktion erstatter anvendelsen af ;;; i tidligere versioner)

 

 

 

6.15.        ELLER selektioner kombineret med beregninger.

 

   Det at man kan selektere på beregnede felter kan udnyttes til at opbygge mere komplicerede selektioner ved at beregne et frifelt til brug for selektionerne, f.eks.:

 

 #50=0

 

 IF #7=3 LET #50=1

 

 IF #7=5 LET #50=1

 

 IF #9>3 LET #50=0

 

 og herefter definere en selektion som:

 

 FELTNR:50 MINIMUM:1

 

 hvorved man kun får udskrevet de records, hvor felt 7 er enten 3 eller 5, dog ikke hvis felt 9 er større end 3.

 

 

 

6.17.        QUICK Selektioner.

 

   Denne funktion kan kun anvendes i forbindelse med kartoteker defineret med DATAMASTER kartoteks‑definitionsprogrammet eller tilsvarende.Funktionen kan ikke anvendes på STAR eller NYRUP kartoteker, derimod i forbindelse med COMET og DMS egne installationer.

 

 Normalt vil selektionerne foregå, efter at beregningerne er foretaget, dvs.efter at alle felter i alle kartoteker er indlæst og alle andre beregninger er foretaget.

 

 Med QUICK selektioner kan man angive, at eet bestemt felt skal indlæses før alt andet, og selektionen på dette felt skal foregå før noget som helst andet foretages, dvs.de normale READ‑statements skal ikke anvendes til selektionen, derimod skal rapportgeneratoren selv generere en højt prioriteret indlæsning af det enkelte felt.Dette kræver, at feltet er et simpelt numerisk felt, der ikke er pakket, og at der overfor rapportgeneratoren ved installation er defineret, hvor i recorden dette er placeret (bytenummer), hvilket specielt er tilfældet for DATAMASTER kartoteker.

 

 QUICK selektioner har altså kun betydning for hastigheden af rapporten, ikke for selve funktionen af denne, og finder især anvendelse ved udskrift af meget få records fra meget store kartoteker, hvor man til gengæld også kan opnå at få en rapport til at køre op til 20 gange hurtigere igennem et sådant kartotek. Vær dog opmærksom på vejede totaler, se afsnittet om denne funktion.

 

 Man kan selvklart ikke foretage nogen beregninger på andre felter i forbindelse med QUICK selektioner, da disse slet ikke er indlæst på dette tidspunkt.

 

 QUICK selektioner aktiveres ved i feltnr. at indtaste kommandoen QUICK hvorved rapportgeneratoren svarer med QUICK SELEKTIONER AKTIVERET. Derefter definerer man en helt normal selektion på et simpelt numerisk tal, og denne vil altså få prioritet over alt andet på rapporten.

 

 Såfremt feltet ikke er simpelt numerisk vil rapportgeneratoren ignorere angivelsen af quick selektion. Man kan højst definere 2 quick selektioner på een rapport.


 

 

 

 

 

 

 

 

 

 

 

                              7.          Beregninger.



 

 

8.1.        Beregningsfunktionens struktur.

 

   Beregningsfunktionens anvendes til at beregne felter, der skal udskrives på rapporten eller anvendes til f.eks.selektion eller sortering, og som ikke indgår direkte i et kartotek.Man kan f.eks.lægge to tal sammen, forhøje et felt med 10% etc.

 

 Ved at definere beregninger skriver brugeren faktisk deciderede BASIC linier, og herved opnår man, at den enkle syntax fra basic kan anvendes, dvs.man skriver ligesom man ville gøre normalt, f.eks.A=B+C.Desuden opnås den fordel, at alle basics mere sofistikerede funktioner kan anvendes, lige fra potensopløftning til kvadratrodsuddragning og sinus.Rapportgeneratoren vil også automatisk indeholde de nye faciliteter, der måtte blive implementeret i operativsystemet.

 

 Naturligvis er det ikke alene basic, der anvendes; Rapportgeneratoren er stærkt udbygget med mange flere funktioner.Man refererer f.eks.til et felt fra det pågældende kartotek blot ved at angive #7, dvs.et nummertegn foran feltnummeret. Man kan regne på et felt fra et andet kartotek ved blot at angive kartoteksforkortelsen foran feltnummeret, f.eks.KU#7, dvs.rapportgeneratoren holder selv styr på alt det svære, nemlig hvordan de enkelte tal (variabler) egentlig er lagret internt i programmerne og kartotekerne.

 

 Desuden findes der funktioner for afrunding til hele kr., hele ørebeløb, meget udbyggede datofunktioner for f.eks.beregning af antal dage mellem 2 datoer, endda antal arbejdsdage mellem 2 datoer, funktioner for læsning af andre kartoteker og funktioner for beregning af checkcifre på forskellige måder, f.eks. til udskrift af optisk læsbar OCR‑linie på girokort.

 

 Beregnede felter kan anvendes både ved selektion og sortering og naturligvis videre beregninger eller udskrift, og dette er nok en af de stærkeste sider ved rapportgeneratoren.Man kan f.eks.sortere en vareliste op efter et leverandør navn hentet fra leverandørkartoteket og kun udskrive de varer, hvor leverandøren skal betales i en bestemt valuta.

 

 

 

8.3.        Brug af beregningsmodulet.

 

   Når man vælger funktion 4, kalkulationer, får man følgende skærmbillede frem:

 

 

Figure 24  Beregninger.

 

DMS.RAPGEN     2 LAGERVÆRDILISTE                 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 @FRI                    29 @FRI                                             

12 @FRI                    30 @FRI                                            

13 @FRI                                                                       

14 @FRI                                                                       

15 @FRI                                                                       

16 @FRI                                                                       

17 @FRI                                                                       

18 @FRI                                                                       

                                                                               

                                                                               

BEREGNINGER INDTASTES SOM FX: #60=#21+#22 , PROCENT SOM FX. #61=#62%#63        

#DD=DATO , #PD=PR.DATO , #D1=DATA , #DA1=ALFA.DATA , NÅR=HVORNÅR BEREGNES      

BEREGNING ?                                                                     

                                                                               

 

 

 

 

   Ved definition af rapporten med funktion 1 har man f.eks.valgt at udskrive et af fri‑felterne på rapporten, og på denne måde har man fået givet frifeltet et navn og knyttet et format (antal cifre) til dette.Har man også udskrevet rapporten vil der have stået nul i det pågældende felt.

 

 Nu kan man indtaste sin beregningslinie, f.eks.

 

 #50=#21*#22

 

 hvilket altså betyder at feltnr.50 bliver beregnet som feltnr.21 gange med feltnr.22.Når man kvitterer for denne linie vil rapportgeneratoren oversætte beregningen til klar tekst ved at erstatte feltnumrene med de respektive feltnavne, og man bliver bedt om at godkende linien.Der er således mulighed for at læse korrektur på linien før man sender den af sted.

 

 

 

 

Figure 25  Indtastning af en beregning.

 

DMS.RAPGEN     2 LAGERVÆRDILISTE                 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 LAGERVÆRDI              29 @FRI                                            

12 @FRI                    30 @FRI                                            

13 @FRI                                                                        

14 @FRI                                                                       

15 @FRI                                                                        

16 @FRI                                                                       

17 @FRI                                                                        

18 @FRI                                                                       

                                                                               

BEREGNINGER INDTASTES SOM FX: #60=#21+#22 , PROCENT SOM FX. #61=#62%#63        

#DD=DATO , #PD=PR.DATO , #D1=DATA , #DA1=ALFA.DATA , NÅR=HVORNÅR BEREGNES      

LAGERVÆRDI=BEHOLDNING*KØBSPRIS                                                 

BEREGNING ?  #11=#8*#4                                                         

                                                                 OK (J/N) ?    

 

 

 

 

   Når man godkender linien lyser det beregnede felt op og man kan fortsætte med næste beregningslinie eller slutte her og starte rapporten.Man har således et overblik over hvilke felter, man allerede har beregnet.

 

 

 

8.5.        Ændring af beregninger.

 

   Når man vælger beregningsfunktionen på en rapport, hvor man i forvejen har defineret beregninger, vil man få de eksisterende linier frem på skærmen een for een og oversat disse til klar tekst, hvorefter man kan godkende eller ændre hver linie:

 

 

Figure 26  Ændring af en beregning.

 

DMS.RAPGEN     2 LAGERVÆRDILISTE                 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 LAGERVÆRDI              29 @FRI                                             

12 @FRI                    30 @FRI                                            

13 @FRI                                                                        

14 @FRI                                                                       

15 @FRI                                                                        

16 @FRI                                                                       

17 @FRI                                                                       

18 @FRI                                                                       

                                                                               

BEREGNINGER INDTASTES SOM FX: #60=#21+#22 , PROCENT SOM FX. #61=#62%#63        

#DD=DATO , #PD=PR.DATO , #D1=DATA , #DA1=ALFA.DATA , NÅR=HVORNÅR BEREGNES      

LAGERVÆRDI=BEHOLDNING*KØBSPRIS                                                 

BEREGNING ?  #11=#8*#4                                                         

                                                                 OK (J/N/I) ?  

 

 

 

 

   Man bliver således bedt om at taste OK (J/N/I) og kan i dette felt gøre et af følgende:

 

 J=JA, linien godkendes og næste vises.

 

 N=NEJ, linien slettes og næste vises.

 

 I=INDSÆT, linien fjernes fra skærmen (venter), og man kan indtaste en ny linie, der indsættes før den ventende.

 

 xx=Tastes et tal, f.eks.5, godkendes de næste 5 linier.

 

 Når man således har gennemgået de bestående linier kan man tilføje nye beregningslinier som ved oprettelse af beregninger første gang. Såfremt man trykker escape skal man være opmærksom på, at alle ændringer annuleres og de gamle beregninger bevares.

 

8.7.        Operander og operatorer.

 

   Da de indtastede beregningslinier af rapportgeneratoren oversættes til BASIC linier, har brugeren mulighed for at anvende alle basic‑funktioner og kan skrive udtryk med komplicerede parantesniveauer og potensopløftninger etc.

 

 Der findes følgende operatorer i basic:

 

 + plus

 

 ‑ minus

 

 * gange

 

 / divideret med

 

 ; potensopløftning

 

 og disse vil normalt blive udført i følgende orden:

 

 ; først alle potensopløftninger

 

*/ herefter ganges eller divideres

 

+‑ hvorefter addition eller subtraktion udføres

 

 Denne orden kan ændres ved brug af paranteserne.

 

 Som operander vil man normalt anvende felter, der angives ved at taste et nummertegn foran feltnummeret, f.eks.#7 betyder feltnr.7.

 

 Eventuelt vil man bruge felter fra andre kartoteker, disse angives ved desuden at taste kartoteksforkortelsen foran nummertegnet, f.eks.KU#15 betyder felt 15 fra kartotek KU.

 

 Der er naturligvis også mulighed for at lade konstanter indgå i et udtryk, f.eks 100.Dog skal man passe på decimaltal, idet DECIMALKOMMA ALTID SKAL SKRIVES SOM PUNKTUM, f.eks.10.47.

 

 Som resultat af en beregning vil man normalt anvende et af de 20 frifelter, som kartoteket er udbygget med.

 

 

 

8.9.        Procentberegninger og division.

 

   Division er noget specielt, idet man i basic under ingen omstændigheder må dividere med 0.Man bør faktisk hver gang man udfører en division sikre sig dette ved at gøre beregningen betinget (med IF), medmindre det er en konstant man dividerer med.

 

 Da divisionen typisk anvendes ved procentberegninger er der i rapportgeneratoren indlagt en ekstra operator for at lette brugeren, nemlig % procenttegnet.

 

 Skal felt 50 beregnes som felt 21 i procent af felt 22 kan dette skrives som f.eks.:

 

 #50=#21%#22

 

 altså en meget enkel indtastning, som rapportgeneratoren automatisk, uden brugeren ser dette, vil oversætte til to beregningslinier:

 

 #50=0

 

 IF #22<>0 LET #50=#21*100/#22

 

 altså først en nulstilling af det pågældende felt og herefter en division så fremt dette er tilladt.

 

 Skal man selv udføre andre divisioner end i forbindelse med procentberegninger må man selv omskrive sin beregning til sådanne 2 linier.Gør man ikke det risikerer man under kørsel af rapporten at få basic fejl 16 i den pågældende linie.

 

 Forøvrigt bør man være opmærksom på at maskinen er langt hurtigere til at gange end til at dividere, udtrykket

 

 #50=#21/4

 

 kan gøres hurtigere ved at skrive dette som:

 

 #50=#21*0.25

 

 Det er ikke tilladt at anvende % tegnet samtidig med afrundingsfunktionenr og lignende, her må beregningen splittes op i to linier.

 

8.11.        Dele af felter.

 

   Det kan en gang imellem være nødvendigt at bearbejde enkelte karakterer eller cifre af et felt, og rapportgeneratoren indeholde faciliteterne til brug for dette:

 

 #7(3, 4) er den 3 og 4 karakter/ciffer af felt 7.

 

 KU#15(5, 8) er karakter/ciffer 5 til 8 af felt 15 i det externe kartotek KU.

 

 Man kan således lave en beregningslinie, hvor man f.eks.kun udfører en bestemt beregning såfremt det 3 ciffer af felt 7 er 5:

 

 IF #7(3, 3)=5 LET.....

 

 Det er også muligt at lade et enkelt ciffer indgå direkte i en beregning:

 

 #50=#21*#7(3, 3)+#22

 

 For alfanumeriske tekstfelter, og kun for disse, kan man desuden indsætte een eller flere karakterer midt i feltet:

 

 #15(3, 4)="AB"

 

 hvorved den 3 og 4 karakter i felt 15 altid bliver sat lig teksten AB.Dette er kun muligt for alfanumeriske tekstfelter, da basic supporterer disse direkte, for numeriske felter udfører rapportgeneratoren selv en udplukning af de relevante cifre ved at gange og dividere med en potens af 10, hvorfor dele af numeriske felter kun kan anvendes på højre side af lighedstegnet.

 

8.13.        Alfanumeriske tekstfelter.

 

   Når man skriver sine beregningslinier eller selektioner er der stor forskel på, om et felt er et numerisk tal eller et alfanumerisk tekstfelt.Der gælder følgende specielle regler for alfanumeriske tekstfelter:

 

 1) Man kan ikke regne på et alfanumerisk felt selv om dette kun indeholder cifre, dog kan man sætte et numerisk frifelt lig med tekstfeltet uden andre beregninger og herefter regne videre med frifeltet.

 

 2) Tekstkonstanter skal altid være angivet i gåseøjne, skal man f.eks.selektere på at det alfanumeriske felt er lig med A skal minimum og maximum angives som "A".I tidligere versioner af rapportgeneratoren blev disse gåseøjne sat automatisk i forbindelse med selektion.

 

 3) Man kan sætte en tekst direkte ind i en del af et alfanumerisk felt, hvilket ikke kan lade sig gøre med et numerisk felt, f.eks.

 

 #15(7, 8)="XY"

 

 4) Hvis man anvender denne funktion og sætter f.eks.#15(7, 8)="X", dvs.lægger færre karakterer over i et større felt, bliver resten af karaktererne efter karakter 8 skubbet tilbage! Når man sætter noget ind i et alfanumerisk felt bør man altid lade dette følge af en række blanke (gerne flere end nødvendigt), og altså skrive linier som

 

#15(7, 8)="X "

 

 Dette gælder specielt ved tilbageskrivning tilbageskrivning;, hvor man ellers risikerer at flytte samtlige efterfølgende tekster i kartoteket.

 

I stedet for at sætte en række blanke efter feltet kan man anvende rapportgeneratorens specialvariabel S9$ og skrive liniern som #15(7, 8)="X", S9$ idet S9$ altid indeholder blanke nok (nemlig 128).

 

 5) Man kan kombinere alfanumeriske felter ved at sætte komma mellem felterne som vist ovenfor med S9$, hvilket ikke kan lade sig gøre med numeriske felter.Dette betyder, at en linie som READ(KU), #1, #2 altså opslag i kartoteket KU med en nøgle kombineret af felt 1 og felt 2 kun er tilladt såfremt både felt 1 og felt 2 er alfanumeriske.

 

 Såfremt man udskriver feltdefinitionerne med funktion 8 vil man kunne se, hvilke felter der er alfanumeriske, idet disse er markeret med et antal A'er i feltformatet hvorimod numeriske tal er markeret med # eller ‑.

 

 

 

8.15.        Specialfelter.

 

   Som vi har set kan man i forbindelse med beregninger angive felter som f.eks.:

 

 #7 feltnummer 7

 

 KU#15 feltnummer 15 fra kartotek KU kartoteksnummeret.;

 

 Foruden disse normale felter fra kartotekerne kan man anvende en række special felter:

 

8.16.1.      #DD  dags dato

 

   Denne værdi indtastes som første dato ved start af programmet.

 

8.16.3.      #PD  pr.dato

 

   Denne værdi indtastes som anden dato ved start.

 

8.16.5.      #Dx  data,f.eks.#D1 op til #D7

 

   Ved at angive et sådant datafelt definerer man, at op til 7 forskellige parametre skal indtastes foruden de normale ved start af udskriften.

 

 Data kan f.eks.anvendes til at omregne et valuta‑beløb efter dagskurs, der indtastes ved start, eller måske specielt i forbindelse med selektioner, idet disse så kan varieres, hvergang rapporten startes.

 

 Man kan få knyttet et navn til et sådant opstarts‑datafelt ved at definere et frifelt med navnet #D1navn, fx.ved at definere en beregning som:

 

 #50=#D1

 

 felt 50: navn: #D1DAGSKURS

 

8.16.7.      #DAx data,f.eks.#DA1 op til #DA7.

 

   Disse felter svarer til #Dx, blot indeholder disse alfanumeriske tekster. Kan anvendes til f.eks.at indtaste initialer ved start af udskriften.Dog kan man ialt maksimalt angive op til 80 karakteres tekst incl.start/stop ved, så romaner kan ikke skrives her.

 

8.16.9.      #PP  sidenummer.

 

   Man har adgang til sidenummeret i forbindelse med beregningerne.

 

8.16.11.      #OK  status efter læsning af et andet kartotek.

 

   Efter udførelsen af en beregningslinie, hvor et andet kartotek læses, f.eks. READ (KU) kan man spørge om dette gik godt og herved styre andre beregninger eller eventuelt selektion, f.eks.

 

 IF #OK=0 LET #7=1 (alt gik godt) eller

 

 IF #OK>0 READ (LE) (sidste læsning ikke ok)

 

 

 

8.16.13.      #SC  skærmnummer.

 

   Man kan gøre beregningerne betinget af, hvilken skærm der har startet rapporten, f.eks.i forbindelse med udskrift af journaler, hvor kun records registreret fra denne skærm skal udskrives.

 

8.16.15.      #LEVEL total niveau nr.

 

   Det er muligt at gøre beregningerne betinget af hvilket total niveau man befinder sig på, dog kun såfremt man i funktion 3, definer sortering og totaler, har valgt at totaler skal beregnes før udskrift, da det ellers kun vil være de enkelte linier, hvor beregninger udføres.

 

 For en normal linie vil #LEVEL være 0, for første subtotal niveau 1, næste 2 etc frem til grande total.Er der kun grande total på listen vil #LEVEL være 1 for denne.

 

 Feltet anvendes normalt kun i relativt komplicerede rapporter, f.eks.en saldoliste omregnet efter valuta med beregning af totaler pga.en procentberegning, totallinierne skal naturligvis ikke omregnes efter valuta.

 

8.16.17.      #GRUPPE total gruppe nummer.

 

   I helt specielle tilfælde kan man få brug for gruppenummeret i forbindelse med beregnede totaler, f.eks.hvis hver gruppe skal tilknyttes en tekst:

 

 IF #GRUPPE=1 LET #50="TEXT1"

 

 IF #GRUPPE=2 LET #50="TEXT2"

 

 Normalt vil man i en sådan beregning anvende det felt, som gruppen er styret af.En gruppe opsplittet ifølge felt 7 vil, når gruppetotalen udskrives, have samme værdi af #7 som #GRUPPE.Beregninger som READ (KU)7 kan således anvendes til at hente teksten for gruppetotalen.

 

 For 'udefinerede' grupper vil #GRUPPE indeholde nummeret på gruppen internt i rapportgeneratorens sorteringstabel, hvilket normalt ikke kan anvendes til noget fornuftigt. Brug feltet istedet.

 

 #LEVEL indeholder en værdi beregnet på basis af subtotalniveau og gruppenr, i det øjeblik gruppetotalen udskrives, altså ikke selve subtotalniveau nummeret.

 

8.16.19.     Arbejdsfelter.

 

   Som vi har set i nogen af de foregående eksempler, har rapportgeneratoren en række arbejdsfelter, som man kan anvende f.eks.ved kald af specielle rutiner. Det kan være ved rimeligt komplicerede sammenstillinger af tekststrenge, f.eks.til at plukke karakterer ud af felter eller sammenstille felter for beregning af checkcifre eller til nøgler for opslag i andre kartoteker.

 

 Der er i rapportgeneratoren indbygget en del funktioner, der overtager de fleste situationer, hvor arbejdsfelter ellers måtte anvendes, da brugeren må have noget kendskab til basic for at kunne udnytte disse.For eksempel kan dele af felter refereres som #7(3, 4), hvor man ellers skulle have anvendt f.eks.T2$=#7 using "######" og herefter #50=T2$(3, 4). versioner.;

 

Ligeledes kan nøgler sammenstilles ved at angive READ (KU)1, 2(3, 6), P med dele af felter og pakning m.v.

 

 I visse situationer kan man have fordel af at anvende arbejdsfelter, f.eks.opbygge en helt speciel nøgle i T2$ og herefter læse et kartotek med READ (KU), T2$.

 

Rapportgeneratoren har følgende arbejdsfelter, der frit kan anvendes:

 

 T2$....256 karakterers tekst

 

 T9$....128 karakterers tekst

 

 R$......32 karakterers tekst til brug for nøgler

 

 S9$....128 blanke, må ikke ændres

 

 T3.......4 ords numerisk arbejdsfelt

 

 T3(1)....4 ords numerisk arbejdsfelt

 

8.17.

4.9.        REM bemærkninger

 

   Ved at indlægge REM linier imellem beregningerne kan man forklare i klar tekst, hvad det egentligt er der foretages, således at man umiddelbart kan forstå sin egen tankegang igen, når man ser rapporten om måske to år.

 

 Det anbefales stærkt at indlægge sådanne kommentarlinier med en ganske kort for klaring såfremt man vover sig ud i store komplicerede beregninger, f.eks.

 

 REM beregning af forfaldsdage.

 

 Det må bemærkes, at BASIC har en anden form for bemærkninger, nemlig /* der kan sættes efter en beregningslinie.Denne funktion kan IKKE anvendes i rapportgeneratoren, idet rapportgeneratoren selv anvender denne til at holde styr på den af brugeren indtastede (source) beregningslinie i forhold til den genererede basic linie.;

 

8.19.       Funktioner.

 

   Der er i rapportgeneratoren indbygget en række funktioner for afrunding, datoberegning etc., der kan være særdeles nyttige ved definition af beregninger: Alle datorutinerne tager naturligvis højde for skudår m.v.

 

 

 

8.20.1.

4.10.1.     FNR afrunding til 2 decimaler.

 

   FNR (123.456)=123.46

 

 I princippet bør man altid afrunde sit resultat når man enten ganger eller dividerer, idet resultatet ellers vil blive med det maximale antal cifre, som maskinen kan regne med, nemlig 14 cifre, hvilket kan give afrundingsdifferencer, såfremt man regner videre på resultatet, typisk ved totalisering af feltet. F.eks.bør beregninger

 

 #50=#21‑#22/100 skrives som

 

 #50=FNR(#21*#22/100)

 

 Bemærk at % tegnet ikke kan anvendes direkte, her må skrives 2 linier:

 

 #50=#21%#22

 

 #50=FNR(#50)

 

8.20.3.

4.10.2.     FNH afrunding til ingen decimaler.

 

   Fungerer i princippet som FNR, blot afrundes til heltal.

 

8.20.5.

page \* arabic474.10.3.     FND datovending.

 

   FND(DDMMÅÅ)=ÅÅMMDD

 

 Bruges til vending af datoer, enten for at få et pænt udskriftsformat eller for at få datoen til at passe til selektion, sortering eller en af de følgende datofunktioner.

 

 Specielt ved selektioner er man nødt til sørge for, at datoerne findes på formen ÅÅMMDD, idet maskinen betragter datoen som et helt almindeligt tal, hvor f.eks:

 

 860101 er større end 851231 men

 

 311286 er større end 10186

 

 man er således nødt til at anvende FND(#7) istedet for #7 hvis felt 7 er et datofelt på formen DDMMÅÅ.

 

8.20.7.

4.10.4.     FNA omregn dato DDMMÅÅ til antal dage fra år 1900.

 

   Dette tal alene vil ikke kunne bruges til noget, men tager man forskellen mellem 2 datoer, f.eks.i #20 og #21:

 

 #50=FNA(#20)‑FNA(#21)

 

 får man antallet af dage mellem disse datoer og dette kan f.eks.anvendes i renteberegningsformler etc.

 

 Man skal være opmærksom på, at datoerne skal være på formen DDMMÅÅ, er dette ikke tilfældet må de vendes fra ÅÅMMDD og samme beregning vil se ud som følger:

 

 #50=FNA(FND(#20))‑FNA(FND(#21))

 

8.20.9.

date \@ "MMMM d, yyyy"januar 10, 20084.10.5.     FNB omregn antal dage fra år 1900 til dato DDMMÅÅ

 

   Denne funktion kan heller ikke bruges selvstændigt, derimod kan den være yderst nyttig i forbindelse med FNA funktionen, idet man kan lægge et antal dage til en dato, f.eks.

 

 #50=FNB(FNA(#20)+10)

 

 vil få felt 50 til at indeholde datoen i felt 20 plus 10 dage.

 

8.20.11.

4.10.6.     FNU omregn dato DDMMÅÅ til ugedag.

 

   Resultat af denne funktion bliver 0 for lørdag, 1 for søndag og så videre frem til 6 for fredag.

 

8.20.13.

4.10.7.     FNV omregn dato DDMMÅÅ til uge ÅÅUU.

 

   Ved hjælp af denne funktion kan man omregne en dato til et ugenr.:

 

 FNV(010486)=8618

 

 Denne funktion kan udnyttes til f.eks. ugeopdeling af lister/totaler mv.

 

 Ugenummeret beregnes med skyldig hentagen til skudår og efter normal standard, således at første torsdag i året bestemmer årets startuge.

 

8.20.15.

4.10.8.     Intern lagring af funktionerne.

 

   Rapportgeneratorens funktionsdefinitioner findes i tekstfilen DMS.RAPGEN.S6A, der inkluderes i det genererede program i det øjeblik brugeren i beregningerne eller via selektionerne refererer til en FN funktion.Om ønsket kan man indlægge ekstra specialfunktioner i denne textfil, blot må man være opmærksom på, at en eventuel ny version af rapportgeneratoren naturligvis ikke vil indeholde disse ekstra funktioner.

 

8.21.

4.11.       Basic funktioner

 

   Der er indbygget en række nyttige funktioner i basic, hvor de mest benyttede beskrives kort i det følgende, i øvrigt henvises til BASIC manualen:

 

8.22.1.     ABS Absolut‑værdien af et tal.

 

   ABS (#7) betyder felt 7 positivt, uden fortegn.

 

8.22.3.     SQR kvadratroden.

 

   SQR(#7) giver kvadratroden af felt 7.

 

8.22.5.     FRA decimal‑delen af et felt.

 

   FRA(123.45) giver 0.45 , altså decimalerne af tallet.

 

8.22.7.     INT heltalsdelen af et felt.

 

   INT (123.45) giver 123, altså tallet uden decimaler.

 

8.22.9.     SGN fortegnet for et felt.

 

   SGN(#7) giver ‑1, 0 eller 1 alt efter om feltet er negativt, nul eller positivt.

 

8.22.11.     NOT Logisk negation.

 

   NOT(#7) giver 0, såfremt felt 7 ikke er 0, og 1 hvis felt 7 er 0.

 

8.22.13.     LEN Længden af en streng.

 

   LEN(T2$) giver længden af teksten i T2$.

 

8.22.15.     IF betingede beregninger

 

   Ved hjælp af betingede beregningslinier kan man styre sine beregninger og f.eks. kun beregne et felt, såfremt en kode har en bestemt værdi, eller evt.beregne feltet på en anden måde for en anden kode.

 

 Det er altid en vældig god ide at nulstille resultatfelterne for sådanne betingede beregninger først, bliver den betingede beregning ikke udført vil resultatet fra den foregående record blive slæbt med over, hvilket kan resultere i f.eks.mærkelige totaler.Se også afsnittet om procentberegning, hvor det er nødvendigt at anvende IF for at undgå division med 0.

 

 Et eksempel på betingede beregninger kan være:

 

 #50=0

 

 IF #7=2 LET #50=#21%#22

 

 hvor man bemærker, at det ellers overflødige basic ord LET er nødvendigt efter IF udtrykket.

 

 Man kan kombinere flere IF på samme linie:

 

 IF #7>1 IF #7<5 LET #50=#21%#22

 

 hvor begge IF skal være opfyldt for at beregningen udføres, dette er altså et OG udtryk, ikke et ELLER udtryk.

 

 Betingede beregninger kan specielt anvendes i forbindelse med selektioner.Hvis man f.eks.ønsker at udskrive alle, hvor felt 7 er 2 eller 5 kan dette ikke lade sig gøre direkte, man er nødt til at selektere på et frifelt, f.eks.felt 50, og beregne feltet som:

 

 #50=0

 

 IF #7=2 LET #50=1

 

 IF #7=5 LET #50=1

 

 Betingede beregninger kan også anvendes i forbindelse med læsning af andre kartoteker, f.eks.:

 

 IF #7=2 READ(KU)

 

 hvorved læsningen af kartoteket KU kun vil foregå hvis felt 7 er 2.Denne funktion kan udnyttes til henhv.at øge hastigheden i forbindelse med udskrift af rapporter med integration til flere kartoteker, og specielt i forbindelse med READH kan dette udnyttes til at udelukke records fra hovedfilen uden linier (se denne kommando).

 

 

 

8.22.17.     Relations‑operatorer.

 

   Ved selektion og ved IF beregninger kan man anvende følgende:

 

 = lig med

 

 > større end

 

 < mindre end

 

 >= støre end eller lig med

 

 <= mindre end eller lig med

 

 <> forskellig fra

 

 Der findes i basic ingen logiske operatorer (og/eller).

 

 Man kan spørge direkte på værdien i et felt, f.eks.:

 

 IF #7 LET #50=5

 

 hvilket betyder hvis felt 7 er forskellig fra 0.

 

 Et sådant spørgsmål kan vendes:

 

 IF NOT #7 LET #50=5

 

 dvs.hvis felt 7 er nul så...

 

8.22.19.    NÅR, hvornår skal der beregnes.

 

   Kommandoen NÅR kan anvendes, når der er flere muligheder for at få udført beregningerne, og det er der i følgende tilfælde:

 

 Hvis listen er sorteret eller man har defineret et ekstra gennemløb for opsamling af vejede totaler, udføres beregningerne både under sorteringen (første gennemløb) og under selve udskriften (andet gennemløb).

 

 Hvis man har defineret beregnede totaler vil beregningerne både blive udført for de normale linier, svarende til records i kartoteket, og for totallinierne.

 

 Man indtaster i beregningerlinierne kommandoen

 

 

Figure 27  NÅR, hvornår skal der beregnes.

 
 

               NÅR          hvorefter man bliver spurgt om:

               BEREGN I PASS: 0=BEGGE,1=KUN FØRSTE,2=KUN ANDET?

               BEREGN TOTAL:  0=ALTID,1=IKKE TOTAL,2=KUN TOTAL?

              

 

 

 

   og på denne måde kan man altså styre, at de efterfølgende beregninger, indtil næste NÅR mødes, kun udføres under visse omstændigheder, f.eks.at totalen for brug til en vejet total kun opsamles i første gennemløb eller kursomregning ikke foretages for totaler.

 

 En anden anvendelse af NÅR kommandoen kan være at udelade opslag i andre kartoteker under en sortering, hvor disse opslag måske ikke er nødvendige, men kun tidskrævende.

 

 Rent teknisk sker der det, at rapportgeneratoren gemmer det linienr., hvor NÅR kommandoen udstedes, og i det øjeblik næste NÅR mødes eller idet brugeren afslutter beregningerne, genereres da på dette huskede een eller to linier alt efter de givne parametre:

 

 IF X/IF NOT X GOTO før første/andet gennemløb.

 

 IF P8/IF NOT P8 GOTO for totaler/ikke totaler.

 

8.22.21.

4.11.11.    FØRST/NORMAL/SIDST og EFTER beregninger.

 

   Ved at indtaste ordet FØRST og godkende beregningslinien vil rapportgeneratoren hermed skifte til at danne beregningslinier, der kan udføres ved start af rapporten før første record læses fra kartoteket.

 

 Med SIDST kan man definere beregninger, der udføres umiddelbart før afslutning af rapporten, efter grande total er udskrevet. genererer subrutine 5150;

 

 Med NORMAL vender man tilbage til de normale beregninger, der udføres umiddelbart efter læsning af hver record i kartoteket, før selektioner og sortering foretages, samt eventuelt for totaler. Disse beregninger kan desuden styres med NÅR kommandoen. 5200;

 

 Med EFTER kommandoen kan man definere beregninger, der udføres efter selektionerne, altså kun for de records i kartoteket, der opfylder selektionskriterierne.

 

 Disse 4 kommandoer anvendes normalt kun i ret komplicerede rapporter, hvor FØRST specielt kan udnyttes til dimensionering af egne variable m.v.

 

 EFTER kan med fordel anvendes til at øge kørselshastigheden for rapporter, der er selekteret, og hvor der foretages opslag i andre kartoteker der kan udføres efter selektionerne.

 

8.22.23.    LOAD kommandoen.

 

   Foruden de nævnte basic funktioner indeholder rapportgeneratoren en række specielle subrutiner, der kan aktiveres ved at angive en beregningslinie som f.eks. LOAD CHECK og derefter sætte en række parametre op efterfulgt af en linie med GOSUB linienr.

 

 Ved en sådan kommando vil tekstfilen DMS.RAPS.xxxxxx blive loaded ind i programmet, således at man får tilgang til de specielle subrutiner.

 

 De følgende afsnit beskriver de rutiner, der pt.er implementeret i rapportgeneratoren.

 

 

 

8.22.24.1.

4.11.12.1.  OCR checkciffer for girokort.

 

 

Figure 28  OCR checkciffer for girokort.

 
 

                      1. LOAD CHECK

                      2. T2$=#1 USING "###############"

                      3. GOSUB 4200

                      4. #50=T2$

                     

 

 

   Disse linier vil bevirke at:

 

 1. Rapportgeneratorens rutine for OCR checkciffer aktiveres.

 

 2. Parameteren T2$ sættes op som værende 15 karakterer indeholdende det numeriske felt nr.1, f.eks.et kundenummer.

 

 3. Checkciffer rutinen kaldes.

 

 , 4. Resultatet i T2$ flyttes over i et 16 karakteres frifelt felt 50, der herefter kan udskrives på girokortet.

 

 Rutinen tager altså parameteren T2$ og erstatter alle blanke karakterer med 0 hvorefter der påsættes en ekstra karakter som checkciffer beregnet iflg.modulus 10 formlen med vægtene 2121 etc.

 

 For Danmark skal længden af T2$ være 15 før kaldet, dvs.der udskrives ialt 16 karakterer på linien, for Norge kan andre længder komme på tale.

 

 

 

8.22.24.3.

4.11.12.2.  Modulus 11 check (f.eks.personnummer)

 

 

Figure 29  Modulus 11 check (f.eks.personnummer)

 

                         1. LOAD CHEX

                         2. T2$=#1 USING "#########"

                         3. T9$="090507020506090701"

                         4. GOSUB 4200

                         5. #50=T2$

                        

 

 

 

   Disse linier vil bevirke, at:

 

 1. Rapportgeneratorens rutine for modulus 11 check aktiveres.

 

 2. Parametrene T2$ sættes op som værende 9 karakterer indeholdende det numeriske feltnr.1, f.eks.et kundenr.

 

 3. Parameteren T9$ sættes op med vægte for de enkelte cifre i T2$, idet hver 2 karakterer svarer til vægten for een karakter heri, i dette tilfælde beregnes:

 

9*1.ciffer+5*2.ciffer+...+1*9.ciffer.

 

 4. Checkciffer rutinen kaldes.

 

 5. Resultatet i T2$ flyttes over i et 10 karakters frifelt felt 50, der herefter kan udskrives.

 

 Rutinen tager altså parameteren T2$ og erstatter alle blanke karakterer med 0, hvorefter der påsættes en ekstra karakter som checkciffer beregnet iflg.modulus 11 formlen med vægte iflg.parameteren T9$.

 

 Det må bemærkes, at man ikke kan anvende både modulus 10 og modulus 11 checkciffer rutinerne i samme rapport, da disse rutiner anvender de samme linienr.i programmet.

 

 Modulus 11 checkcifre anvendes som regel af banker og PBC.

 

8.22.24.5.

page \* arabic684.11.12.3.  Beregning af arbejdsdage

 

 

Figure 30  Beregning af arbejdsdage

 

                                1. LOAD ARB

                                2. T3=#PD

                                3. T3(1)=#20

                                4. GOSUB 4220

                                5. #50=T3

                               

 

 

 

   Disse linier bevirker, at:

 

 1. Rapportgeneratorens rutine for beregning af arbejdsdage aktiveres.

 

 2. Parameteren T3 sættes op som den ved start af rapporten indtastede pr.dato (på formen DDMMÅÅ).

 

3. Parameteren T3(1) sættes op som felt 20, der antages at være et datofelt på formen DDMMÅÅ.

 

 4. Beregningsrutinen kaldes.

 

 5. Resultatet i T3 flyttes over i det numeriske frifelt felt 50, der altså nu indeholder antallet af arbejdsdage mellem den indtastede pr.dato og datoen i felt 20.

 

 Rutinen beregner først antallet af dage mellem de to datoer, hvorefter alle lørdage og søndage fratrækkes.Herefter slås der op i en indbygget kalender, hvor samtlige forskydelige og eventuelt halve helligdage, der ikke er lørdage eller søndage, er angivet, og disse fratrækkes, såfremt de ligger i det givne interval.

 

 Denne indbyggede kalender kan om nødvendigt tilpasses til forskellige lande/firmaer (det er nok specielt de halve arbejdsdage, der kan komme på tale her), ved at justere i DATA linierne nederst i tekstfilen DMS.RAPS.ARB.Man bør dog være opmærksom på, at en evt.ny version af rapportgeneratoren ikke vil indeholde disse individuelle tilpasninger).

 

 

 

8.22.24.7.

4.11.12.4.  Udplukning af for‑ og efternavne.

 

   Såfremt et kundekartotek er oprettet med normale navnefelter, dvs.fornavn efterfulgt af efternavn, giver dette et problem såfremt man ønsker at udskrive en liste sorteret iflg.navn fra dette kartotek, idet man naturligt ønsker at sortere iflg.efternavn.

 

 Dette kan løses med rutinen NAVN på f.eks.følgende måde:

 

 

Figure 31  Udplukning af for‑ og efternavne.

 
 

                                1. LOAD NAVN

                                2. T2$=#2

                                3. GOSUB 4220

                                4. #50=T2$

                               

 

 

   1. Rapportgeneratorens navnerutine aktiveres.

 

 2. Parameteren T2$ sættes lig med navnefeltet.

 

 3. Navnerutinen kaldes.

 

 4. Frifeltet #50 sættes lig returværdien efternavn, fornavn og der kan nu defineres en sortering på dette felt.

 

 Rutinen konverterer således et navnefelt i T2$ til efternavn, fornavn, der ligeledes returneres i T2$.

 

 Ved denne konvertering ignoreres de mest anvendte forkortelser, nemlig HR, HR., FR, FR., FRU, FRK, A/S, APS således at disse ikke kommer til at indgå som en betydende del af navnenøglen. Ligeledes ignoreres eventuelle foranstillede blanke karakterer.

 

 Såfremt navnefeltet indeholder et komma antages det, at navnet allerede er indtastet som efternavn, fornavn og rutinen returnerer direkte med dette.

 

 Desuden returneres følgende ekstra variable:

 

 

Figure 32  Udplukning af for‑ og efternavne.

 
 

                          T2$(101)=fornavn efternavn

                          T2$(201)=fornavn

                          T2$(301)=efternavn

                         

 

 

 

8.22.25.

date \@ "MMMM d, yyyy"januar 10, 20084.11.13.    < Beregningslinier med faste linienumre.

 

   Denne funktion er kun beregnet til meget specielle opgaver og kræver, at brugeren har overblik over selve det genererede rapportprogram.

 

 Rapportgeneratoren vil normalt danne beregningerne som en subrutine i linierne 5200‑5299.Ved hjælp af <xxxx kan man placere en beregningslinie på linie xxxx i programmet og herved overskrive rapportgeneratorens standardrutiner.

 

 En anden mulighed er at placere start‑beregninger som f.eks.DIM af sine egne arbejds‑variable i linienr.1000‑1099.

 

8.22.26.1.  Fastlåsning af index for en rapport

 

   <1000 R1(0, 2)=2

 

 Denne linie vil bevirke, at rapporten udskrives fra index 2 uanset hvilket index der angives ved START FRA i forbindelse med opstarten.

 

 

 

8.22.26.3.  Fastlåsning af laveste total niveau

 

   <1001 X0(15)=1

 

 Herved vil laveste totalniveau altid blive sat til 1, dvs.der udskrives aldrig specifikation på rapporten uden hensyn til hvad brugeren vælger ved opstarten.

 

 

 

8.22.26.5.  Fastlåsning af start/stop.

 

 

Figure 33  Fastlåsning af start/stop.

 
 

                               <1002 R1$="4711"

                               <1003 R2$="4712"

                               <1004 R3$=R1$

                              

 

 

 

   Disse tre linier vil bevirke, at rapporten altid vil køre i intervallet fra nummer 4711 til 4712.

 

8.22.27.    Skrivning i kartoteker.

 

   Normalt vil det ikke være muligt for brugeren at skrive i nogen kartoteker med rapportgeneratoren, da dette ville være alt for risikabelt, sandsynligheden for at ødelægge installationen på et eller andet tidspunkt ville være alt for stor.

 

 En undtagelse er dog de kartoteker, brugeren selv har defineret i DMS's kartoteksvedligeholdelsesprogrammet DATAMASTER.Her tillades tilbageskrivning, dog beskyttet af et password, udfra den filosofi at de data, man selv har defineret, har man så meget overblik over at tilbageskrivning kan forsvares.

 

 Dog gælder det generelt, at hvis programmøren ved installation af rapportgeneratoren sammen med READ statements for et kartotek lægger WRITE statements, vil disse blive udført.Man bør naturligvis være forsigtig med dette og som regel vil det ikke være alle felter, der indlægges i disse WRITE statements.Et eksempel kunne være et kundekartotek, hvor saldoen under ingen omstændigheder bør være tilgængeligt for opdatering, til gengæld kan man have stor fornøjelse af at skrive en række frifelter tilbage i kartoteket, da man så f.eks.kan tælle en rykkerkode op i forbindelse med udskrift af et rykkerbrev i rapportgeneratoren.

 

 Tilbageskrivningen foregår for brugeren ganske enkelt ved at man beregner felter i kartoteket istedet for at beregne frifelterne, f.eks.#7=#7+1 bevirker at felt 7 (f.eks.rykkerkoden) tælles een op, hver gang rapporten køres, dog kun for de records, der udskrives, ikke for de records, der er selekteret fra.

 

 Der er ingen mulighed for ændring af indexfelter med denne form for tilbageskrivning, regner man på et indexfelt vil indholdet af nøglen og data i recorden blive inkonsistent.DATAMASTER vil herefter afvise ethvert forsøg på ændring/ sletning af sådanne nøglefelter, dog vil kartoteket kunne rettes op igen ved at vælge DATAMASTER funktionen for udvidelse af et kartotek, hvorved de nye nøgler opbygges udfra felterne i datarecorden.

 

 Der er pt.ikke mulighed for at opbygge andre kartoteker i rapportgeneratoren, og ved kørsel med integration til flere kartoteker er der kun mulighed for at skrive tilbage i hovdkartoteket, dvs.det som rapporten er defineret på.

 

 Tilbageskrivning i et kartotek opbygget med DATAMASTER skal aktiveres allerede ved definition af rapporten når kartoteksforkortelsen indtastes, man taster komma W efter denne, f.eks.KU, W.Herved hentes en anden tekstfil for read statements, istedet for den normale DMREAD.KU aktiveres DMREAD.KUW.Samtidig bliver rapporten password beskyttet, således at man ved opstart skal indtaste dette password.


 

 

 

 

 

 

 

 

 

 

 

                                              9.

next5.          Sortering og totaler.



 

 

   Sortering og totaler defineres med samme funktion, da subtotalniveauer på en rapport hænger nøje sammen med den orden, rapporten udskrives i. Et subtotalniveau fremkommer, når en eller flere karakterer af kartotekets nøgle eller sorteringsnøglen skifter værdi.

 

10.1.        Sortering.

 

   Når funktion 3 vælges bliver man spurgt om listen skal sorteres, svarer man J hertil fortsættes med definition af sorteringsnøglen, svares N spørges om der ønskes vejede totaler, se senere.

 

 

Figure 34  Opbygning af sorteringsnøgle.

 

DMS.RAPGEN     2 LAGERVÆRDILISTE        3......DEFINER SORTERING OG TOTALER    

  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 LAGERVÆRDI              29 @FRI                                            

12 @FRI                    30 @FRI                                            

13 @FRI                                                                       

14 @FRI                                                                       

15 @FRI                                                                       

16 @FRI                                                                        

17 @FRI                                                                       

18 @FRI                                                                        

NB:FØR UDSKRIFTEN STARTES GÅR ET STYKKE TID MED GENNEMLÆSNING AF KARTOTEKET.   

                                                                               

GRUPPENR                                                                       

##                                                 FRA KARAKTER:1              

SORTERING:    FELTNR. ? 7                          TIL KARAKTER:2              

TOTAL NIVEAU (J/N) ? J TOTAL NAVN ? GRUPPE  SIDESKIFT (J/N) N                  

 

 

 

 

   Man definerer nu sorteringsnøglen ved at indtaste

 

 FELTNR: FRA KARAKTER: TIL KARAKTER:

 

 og kan altså udvælge de felter og dele af felter, som man ønsker listen sorteret efter. Denne procedure gentages indtil man taster SLUT (eller cr.‑) i feltnr., hvorved man kan kombinere flere felter eller delfelter til en sorteringsnøgle. Opbygningen af sorteringsnøglen vises nederst på skærmen.

 

 Tastes blot cr. i fra/til karakter tages hele feltet.

 

10.2.1.      Subtotalniveauer

 

   For hvert felt spørges desuden om:

 

 TOTAL (J/N) og hvis man svarer J:

 

 TOTAL NAVN: SIDESKIFT (J/N)

 

 Svarer man J til total vil man få en subtotal udskrevet på listen hvergang den indtil nu definerede del af sorteringsnøglen skifter. Total navnet, f.eks. varegruppetotal, vil blive udskrevet på denne linie, og såfremt man svarer J til sideskift vil der blive skiftet til ny side efter denne udskrift af totalen.

 

 

Figure 35  Liste med subtotaler, sorteret efter varegruppe.

 

 

ODATO:14.01.87      * LAGERVÆRDILISTE *              PR.14.01.87   SIDE:    1  O

                                                                              

ONR.    NAVN                 GRUPPENR  KØBSPRIS BEHOLDNING LAGERVÆRDI LEV.NR.  O

 0101   CHOKOLADESTÆNGER            0      1,50        100     150,00 271     

O1001   PENGE,STORE SEDLER          0    500,00        100   50000,00 205      O

                                                                              

OIALT GRUPPE  0                                              50150,00          O

                                                                              

O1005   STANSEMASKINE               1   1500,00         10   15000,00 100      O

                                                                              

OIALT GRUPPE  1                                              15000,00          O

                                                                              

O0110   AUTOBUSSER                  2  60000,00          1   60000,00 123      O

                                                                              

OIALT GRUPPE  2                                              60000,00          O

                                                                              

O0102   STOR FRÆSEMASKINE           9  10000,00          0       0,00 100      O

 2001   KREDITKORT                  9     10,00         10     100,00 205     

O2002   ID‑KORT                     9     10,00        200    2000,00 205      O

                                                                               

OIALT GRUPPE  9                                               2100,00          O

                                                                              

OGRANDE TOTAL                                               127250,00          O

                                                                              

O                                                                              O

 

 

 

 

 

10.2.3.      Princippet ved sortering.

 

   Sorteringen foregår ved at rapportgeneratoren, før selve udskriften påbegyndes, gennemlæser kartoteket i et såkaldt første gennemløb og opbygger et sorteringskartotek (DMSORTWORK). Under denne procedure foretages både beregningerne og selektionerne på rapporten.

 

 Det er altså muligt at sortere på såvel beregnede felter som på felter fra andre kartoteker, f.eks. kan en vareliste sorteres op iflg. leverandørnavn.

 

 Det er kun de records fra kartoteket, der opfylder selektionskriterierne, der indsættes i sorteringskartoteket, hvorved der spares plads og tid.

 

 Ved start af en sorteret rapport bliver brugeren advaret om, at det vil tage et stykke tid at udføre denne sortering og man skal således ikke blive nervøs fordi selve udskriften ikke starter med det samme. Selvom der kun skal sorteres 2 records skal det gamle sorteringskartotek slettes først, og hvis sidste sortering har været på l0000 records kan dette tage et par minutter.

 

 Det er muligt at anvende samme sortering af et kartotek ved at taste SORT når man starter næste sorterede rapport, se afsnittet under start af en rapport.

 

 Ved hjælp af NÅR kommandoen kan man styre, om beregningerne på rapporten skal udføres under sorteringen og/eller under udskriften, se også afsnittet om vejede totaler. Specielt kan man udelade læsning af andre kartoteker under sorteringen, såfremt dette ikke er nødvendigt, idet hastigheden så vil øges. En sorteret rapport låser sorteringskartoteket under udskriften, det er således ikke muligt at køre 2 sorterede rapporter samtidig fra 2 skærme, med mindre man har fået installeret ekstra systemer med selvstændig sorteringskartotek for dette.

 

 Ligeledes er det ikke muligt at definere sortering, samtidig med en sorteret rapport udskrives, idet den maksimale længde af sorteringsnøglen hentes fra dette kartotek, hvilket ikke er muligt når dette er låst.

 

10.2.5.      Sorteringskartoteket DMSORTWORK.

 

   Rapportgeneratoren udfører sorteringen ved at opbygge et indexed kartotek DMSORTWORK, der indeholder sorteringsnøglerne med recordnummer pegende på rapportens hovedkartotek.

 

 Dette kartotek er oprettet af programmøren ved installation af rapportgeneratoren med det maksimale antal records, man ønsker sorteret på een gang, dvs. normalt ligeså stort som det største kartoteket i systemet. Ved væsentlige kartoteksudvidelser bør man således sørge for at få dette kartotek udvidet samtidig.

 

 Sorteringskartoteket fylder ca. l00 sektorer pr. l000 records, da dette kun oprettes som et rent indexkartotek uden data record overhovedet.

 

 På systemer med sparsom diskplads er det muligt helt at udelade sorteringskartoteket, hvorved det så selvfølgelig ikke vil være muligt at definere sorterede rapporter, hvorimod alle andre funktioner i rapportgeneratoren kan udnyttes.

 

 Såfremt man har kartoteker, hvor programmøren har sparet diskplads ved ikke at lade index‑nøglen indgå i selve kartotekets datarecord, vil sorteringskartoteket dog blive noget større, nemlig 150 sectorer pr. 1000 records, idet dette må oprettes med en data‑record med plads til lagring af denne nøgle, da denne information ellers mistes under sorteringen.

 

 Længden af sorteringskartotekets nøgle kan maksimalt være 30 karakterer, og heraf bruger rapportgeneratoren selv de 3 løbenr.pakket;, hvilket altså giver mulighed for at definere en sorteringsnøgle på maksimalt 27 karakterer. Overskrides dette antal vil rapportgeneratoren give meddelelse om at sorteringsnøglen er forkortet.

 

 For at spare plads på systemet kan sorteringsnøglen være defineret kortere, 20 karakterer er normalt rigeligt til langt de fleste sorteringer.

 

 Denne sorteringsmetode med opbygning af et selvstændigt kartotek er valgt fremfor udnyttelse af operativsystemets sorteringsrutine, der muligvis kunne være lidt hurtigere, af mange forskellige grunde, for det første ville det begrænse rapportgeneratorens muligheder væsentligt at udnytte denne funktion idet sortering på beregnede felter og felter fra andre kartoteker ikke ville være mulig, for det andet kan rapportgeneratoren anvendes på alle operativsystemer uanset om denne facilitet findes eller ej, for det tredje har netop operativsystemets sorteringsrutine desværre været ret fejlbehæftet igennem tiderne.

 

10.2.7.      Sortering i faldende orden.

 

   Normalt vil sorteringen altid foregå i stigende orden, således at f.eks. kunder med laveste saldo vil komme først. Ønsker man en liste sorteret i faldende orden, altså med højeste saldo først, må dette gøres med en lille finte, idet man sorterer på et frifelt, der beregnes som et stort tal minus saldoen, f.eks. #50=l000000000‑#24 (dette kaldes invertering).

 

 Husk at definere frifeltet med plads til tilstrækkeligt antal cifre, idet rapportgeneratorens automatiske funktion for udvidelse af et felt, der er for lille, (overflow), ikke træder i kraft under selve sorteringsproceduren.

 

10.2.9.      Sekundær sorteringsorden.

 

   Såfremt man sorterer en leverandørliste efter f.eks. valutakode og ikke andet vil leverandørerne med samme valutakode komme i den orden, som de blev læst oprindeligt fra kartoteket.

 

 Køres listen således normalt vil dette være leverandørnr.orden, køres listen med angivelse af et navneindex ved start fra vil leverandørerne blive udskrevet i navneorden indenfor hver valuta.

 

10.2.11.      NY Sorteringsnøgle.

 

   En helt speciel form for sortering kan foretages på kartoteker, hvor man har flere felter i en record med samme betydning og ønsker denne record udskrevet flere steder på listen, både sorteret efter det ene og det andet felt.

 

 Dette kan f.eks. være et obligationskartotek, der ønskes sorteret efter terminsdatoer, eller et varekartotek, hvor varen skal udskrives på listen både under hovedleverandøren og under en sekundær leverandør.

 

 Man definerer først sortering på det ene felt på helt normal måde, og herunder defineres også eventuelle subtotalniveauer.

 

 Herefter tastes i stedet for SLUT: NY i feltnr., hvorpå rapportgeneratoren svarer med NY SORTKEY og man kan definere sorteringen efter det andet felt, her skal ikke defineres subtotalniveauer.

 

 

Figure 36  Varer sorteret efter primær og sekundær leverandør.

 

 

ODATO:14.01.87          * VARER PR.LEVERANDØR *         PR.14.01.87    SIDE   1O

                                                                              

OVARENR VARENAVN            LEV.NR. ALTERNATIV LEV  KØBSPRIS SIDSTE KØBSDATO   O

 0102   STOR FRÆSEMASKINE   100                  0  10000,00         1.01.85  

O1005   STANSEMASKINE       100                  0   1500,00         1.08.86   O

 0102   STOR FRÆSEMASKINE   100                  0  10000,00         1.01.85  

O0110   AUTOBUSSER          123                100  60000,00        15.12.86   O

 1005   STANSEMASKINE       100                  0   1500,00         1.06.86  

O1001   PENGE,STORE SEDLER  205                102    500,00        31.12.86   O

 2001   KREDITKORT          205                102     10,00         1.01.87  

O2002   ID‑KORT             205                102     10,00        30.07.86   O

 0110   AUTOBUSSER          123                100  60000,00        15.12.86  

O1001   PENGE,STORE SEDLER  205                102    500,00        31.12.86   O

 2001   KREDITKORT          205                102     10,00         1.01.87  

O2002   ID‑KORT             205                102     10,00        30.07.86   O

 0101   CHOKOLADESTÆNGER    271                270      1,50         1.01.87  

O0101   CHOKOLADESTÆNGER    271                270      1,50         1.01.87   O

 

 

 

 

   Det bemærkes, at NUL‑værdier af det alternative sorterings‑kriterie ikke optræder på listen.

 

10.3.        Subtotalniveauer uden sortering.

 

   Selv om man svarer nej til sortering vil det stadig være muligt at definere subtotaler på en rapport, idet der stilles spørgsmål der minder om opbygningen af en sorteringsnøgle:

 

 

Figure 37  Definition af subtotalniveau.

 

DMS.RAPGEN     2 LAGERVÆRDILISTE        3......DEFINER SORTERING OG TOTALER    

  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 LAGERVÆRDI              29 @FRI                                            

12 @FRI                    30 @FRI                                            

13 @FRI                                                                       

14 @FRI                                                                       

15 @FRI                                                                        

16 @FRI                                                                       

17 @FRI                                                                        

18 @FRI                                                                       

                                                                                

                                                                               

VARENR                                                                         

AAAA                                               FRA KARAKTER:1              

TOTALNIVEAU: FELTNR. ? 1                           TIL KARAKTER:2              

TOTAL NIVEAU (J/N) ? J TOTAL NAVN ? VAREGR  SIDESKIFT (J/N) N                  

 

 

 

 

   Hvor man ved sortering kunne definere et subtotalniveau hver gang en bestemt del af sorteringsnøglen skiftede, er det her muligt at definere et niveau hver gang en bestemt del af kartotekets normale nøgle skifter, f.eks. kan de 2 første cifre i varenummeret være anvendt til en varegruppe.

 

 Man er naturligvis nødt til at kende noget til kartotekets nøgleopbygning ved en sådan definition, og vælger man at køre listen på et andet index ved opstarten vil subtotalerne sandsynligvis ikke være relevante.

 

 

 

 

Figure 38  Udskrift med subtotaler.

 

 

ODATO:14.01.87          * LAGERVÆRDILISTE *          PR.14.01.87   SIDE:    1  O

                                                                              

OVARENR NAVN                 GRUPPENR  KØBSPRIS BEHOLDNING LAGERVÆRDI LEV.NR.  O

 0101   CHOKOLADESTÆNGER            0      1,50        100     150,00 271     

O0102   STOR FRÆSEMASKINE           9  10000,00          0       0,00 100      O

 0110   AUTOBUSSER                  2  60000,00          1   60000,00 123     

O                                                                              O

 VAREGR 01                                                   60150,00         

O                                                                              O

 1001   PENGE,STORE SEDLER          0    500,00        100   50000,00 205     

O1005   STANSEMASKINE               1   1500,00         10   15000,00 100      O

                                                                               

OVAREGR 02                                                   65000,00          O

                                                                              

O2001   KREDITKORT                  9     10,00         10     100,00 205      O

 2002   ID‑KORT                     9     10,00        200    2000,00 205     

O                                                                              O

 VAREGR 20                                                    2100,00         

O                                                                              O

                                                                              

OGRANDE TOTAL                                               127250,00          O

 

 

 

 

 

Figure 39  Udskrift kun med subtotaler.

 

 

ODATO:14.01.87          * LAGERVÆRDILISTE *          PR.14.01.87   SIDE:    1  O

                                                                              

OVARENR NAVN                 GRUPPENR  KØBSPRIS BEHOLDNING LAGERVÆRDI LEV.NR.  O

                                                                              

OVAREGR 01                                                   60150,00          O

 VAREGR 02                                                   65000,00         

OVAREGR 20                                                    2100,00          O

                                                                               

OGRANDE TOTAL                                               127250,00          O

 

 

 

 

 

   Faktisk er det helt ligegyldigt, hvilke felter man vælger ved definition af sådanne subtotalniveauer, det væsentlige er det antal karakterer, der defineres, idet disse refererer til kartotekets nøgle.

 

 Ved kartoteker med pakkede nøgler er det antal karakterer i den udpakkede nøgle man skal regne med. 4800/4900;

 

10.5.        Vejede totaler.

 

10.6.1.      Princip.

 

   En vejet total er et tal, der er sat i forhold til totalen for hele listen, f.eks. en kundeliste, hvor hver enkelt kundes saldo sættes i forhold til summen af alle kundens saldi.

 

 

 

10.6.3.      Første gennemløb.

 

   For at danne en sådan vejet total er rapportgeneratoren nødt til at gennemlæse kartoteket før udskriften starter, således at totalen for alle kunder dannes i dette første gennemløb, hvorefter total‑tallet er til rådighed i andet gennemløb, hvor selve udskriften foretages.

 

 Et sådant første gennemløb defineres ved enten at definere sortering på rapporten, hvorved kartoteket gennemlæses og sorteringsnøglerne opbygges, før udskriften starter, eller ved at svare J til spørgsmålet om vejede totaler.

 

 

 

10.6.5.      Opsamling

 

   Selve totalen opsamles ved hjælp af beregningerne, idet man definerer et frifelt, hvor man summerer det valgte felt i første gennemløb. Med NÅR kommandoen kan man angive, om beregningslinierne skal udføres i første, andet eller begge gennemløb:

 

 NÅR:kun første gennemløb:

 

 #50=#50+#24

 

 

 

10.6.7.      Beregning

 

   Frifeltet #50 kommer således til at indeholde summen af saldofeltet #24, og dette felt anvendes herefter til en beregning i andet gennemløb, altså under udskriften;f.eks. :

 

 NÅR:kun andet gennemløb:

 

 #51=#24%#50

 

 Således at man beregner et nyt frifelt #51 som saldofeltet #24 i procent af den opsamlede total #50. Felt 51 kan herefter udskrives på linien som den vejede total eller evt. anvendes til selektion, således at f.eks. kun kunder, der udgør mere end 2% af den samlede saldo udskrives.

 

 

 

 

Figure 40  Udskrift med vejede totaler og subtotaler.

 

 

ODATO:14.01.87      * VEJET LAGERVÆRDILISTE *        PR.14.01.87   SIDE:    1  O

                                                                              

OVARENR NAVN                 KØBSPRIS BEHOLDNING LAGERVÆRDI         VEJET      O

 0101   CHOKOLADESTÆNGER         1,50        100     150,00          0,12     

O0102   STOR FRÆSEMASKINE    10000,00          0       0,00          0,00      O

 0110   AUTOBUSSER           60000,00          1   60000,00         47,15     

O                                                                              O

 VAREGR 01                                         60150,00         47,27     

O                                                                              O

 1001   PENGE,STORE SEDLER     500,00        100   50000,00         39,29     

O1005   STANSEMASKINE         1500,00         10   15000,00         11,79      O

                                                                              

OVAREGR 02                                         65000,00         51,08      O

                                                                              

O2001   KREDITKORT              10,00         10     100,00          0,08      O

 2002   ID‑KORT                 10,00        200    2000,00          1,57     

O                                                                              O

 VAREGR 20                                          2100,00          1,65     

O                                                                              O

                                                                              

OGRANDE TOTAL                                     127250,00        100,00      O

 

 

 

 

 

Figure 41  Rapportdefinitionen for vejede totaler.

 

 

 

ODMS.RAPGEN        RAPPORT NR.12   VEJET LAGERVÆRDI       JAN 14, 1987 11:34:03O

                                                                               

OPRINTER:$LPT   STARTPOSITION:001   ANTAL LINIER PR.SIDE:51                    O

                                                                               

OKARTOTEK: 1 VA    VAREKARTOTEK               8/CH.VAKA#                       O

                                                                              

O                                                                              O

   1...,....10...,....20...,....30...,....40...,....50...,....60...,....70...,.

O1:DATO:#DD              * VEJET LAGERVÆRDI *         PR.#PD           SIDE:#PPO

 2:                                                                           

O3:VARENR NAVN                  KØBSPRIS BEHOLDNING    LAGERVÆRDI         VEJETO

 4:                                                                           

O5:#1     #2                   #4           #8      #11               #12      O

   1...,....10...,....20...,....30...,....40...,....50...,....60...,....70...,.

O                                                                              O

 SELEKTIONER:                                                                 

O                                                                              O

 BEREGNINGER:                                                                 

O   #11=#8*#4                    LAGERVÆRDI=BEHOLDNING*KØBSPRIS                O

    #12=#11%#13                  VEJET=LAGERVÆRDI%TOTAL VÆRDI                 

O   #12=FNR(#12)                 VEJET=FNR(VEJET)                              O

                                 NÅR 10    KUN FØRSTE PASS   ALTID            

O   #13=#13+#11                  TOTAL VÆRDI=TOTAL VÆRDI+LAGERVÆRDI            O

                                                                              

OLISTEN KRÆVER GENNEMLÆSNING AF KARTOTEKET FOR VEJEDE TOTALER.                 O

 TOTALNIVEAUER                                                                

O                                                                              O

  SKAL LISTEN SORTERES (J/N) ? N                                              

O                                                                              O

  VEJEDE TOTALER (KRÆVER EXTRA GENNEMLØB) (J/N) ? J                           

O                                                                              O

  TOTAL‑NIVEAU: FELTNR. ? 1(1,2)  VARENR  TOTAL NIVEAU (J/N) ? J              

O                                         TOTAL NAVN ? VAREGR SIDESKIFT (J/N) ?O

                                                                              

O SKAL TOTALER BEREGNES FØR UDSKRIFT (J/N) ? N                                 O

                                                                              

O FELTER DER SKAL TOTALISERES:                                                 O

     #11   LAGERVÆRDI                                                          

O    #12   VEJET                                                               O

                                                                               

 

 

 

 

 

10.6.9.      Vejede totaler og selektion.

 

   Man skal være opmærksom på, at selv om man definerer selektion på en rapport vil beregningerne altid blive udført uden hensyn til, om en record opfylder selektionskriteriet eller ej, det er kun selve udskriften, der vil blive undertryke, såfremt recorden er selekteret fra.

 

 For vejede totaler betyder dette, at selv om man kun vælger at udskrive f.eks. kundegruppe 2, vil den vejede total blive beregnet af summen af samtlige kunders saldi medmindre andet er angivet.

 

 Ønsker man den vejede total baseret på kun kunderne i gruppe 2 må dette gøres ved hjælp af IF betingelserne i beregningen, f.eks.:

 

 NÅR:Kun første gennemløb.

 

 IF #7=2 LET #50=#50+#24

 

 således at felt #50 kun opsamles for kunder, hvor kundegruppen i felt #7 er lig 2.

 

 En anden måde er at anvende EFTER kommandoen i forbindelse med beregningerne, se afsnittet om denne kommando.

 

10.6.11.      Vejede totaler og quick selektioner.

 

   Quick selektioner (se dette afsnit) er dog specielle, idet disse udføres før alt andet på rapporten, det er netop dette, der gør den hurtigere. Defineres en quick selektion på en rapport med vejede totaler vil opsamlingen af totalen således ikke omfatte de records, der er selekteret fra med quick selektionen!

 

 

 

10.7.        Gennemløbet af en rapports beregninger.

 

   Før vi går videre, må vi lige kaste et blik på selve den interne struktur i rapportgeneratorens subrutiner, således at de efterfølgende afsnit kan ses i sammenhæng med denne oversigt.

 

 

Figure 42  Behandling af en rapport.

 

 

                     

                           START    

                     

                             

                     

                      FØRST beregn 

                     

Ψ

                    

                     Find næste rec

                    

                             Χ

                     Ja                                  

                         Total ?                     

                                                        

                             Nej                                        

                   Ja               

              Slut ?             Beregnede totaler        

                                   

                            Nej              Nej              Ja      

Ja                   

Χ Flere pass ?    Læs record                      Felter=totaler

                     

          Nej                                                         

                     

  SIDST beregn    NORMAL beregn                   NORMAL beregn

                     

                                                                      

   

      SLUT         Selektioner   Print totaler Print totaler

   

                                                                       

                  Nej                 

Χ     OK ?                        Restore felter

                                      

                             Ja                                        

                                    

                     EFTER beregn          Adder next/nulstil       

                                    

                                                                        

            SorteringNej                                

           Første pass ?         

                           

                            Vejet          

            total  

   Indsæt Sortkey                 Udskriv linie

                   

                                           

                                           

 

 

 

 

10.9.        Beregnede totaler.

 

   Normalt vil man blot svare Nej til spørgsmålet om

 

 SKAL TOTALER BEREGNES FØR UDSKRIFT (J/N)?

 

 idet beregninger på totaler som regel kun er nødvendige ved procenttotaler eller lignende.

 

 

 

10.10.1.      Princip.

 

   Normalt vil beregningerne på en rapport blive udført for hver record, der læses fra kartoteket, altså pr.linie på rapporten, og totalerne vil blive dannet som summen af de felter, man har bedt om at få totaliseret. Dette vil være passende på langt de fleste rapporter.

 

 Indeholder beregningerne procentberegninger, f.eks. dækningsgraden for hver vare, vil totalen derfor blive summen af de enkelte liniers procenter, hvilket ikke er fornuftigt. Ved at angive at totalerne skal beregnes før udskrift kan man få rapportgeneratoren til at udføre procentberegningen også for totalen.

 

 Det er dog ikke alle totalfelter, der er fornuftige at beregne, udskrives f.eks. linier med et felt beregnet som kurs * beløb vil man ikke ønske at gennemføre beregninger for totalen af dette felt, idet total kurs gange total beløb vil være nonsens. Ved anvendelse af beregnede totaler vil man normalt også anvende NÅR kommandoen i forbindelse med beregningerne, idet man ved hjælp af denne kan angive, hvilke beregninger, der skal udføres pr.linie og hvilke, der skal udføres for totalerne. For mere specielle rapporter kan specialfelterne #LEVEL og #GRUPPE endda anvendes til at styre forskellige beregninger for forskellige totalniveauer eller totalgrupper.

 

 

 

10.10.3.      Grundregel ved beregnede totaler.

 

   Ved beregnede totaler skal alle felter, der indgår i beregningerne, totaliseres!

 

 Beregnes f.eks.#51=#24%#50 skal alle de indgåede felter, altså felterne 24, 50 og 51, defineres som totaler, også selv om ikke alle felterne udskrives på rapporten. Herved vil rapportgeneratoren sørge for, at totalværdien af felterne er til stede ved beregningen af totalen. Defineres man ikke total på et felt vil dette felt være 0 på det tidspunkt, totalberegningerne udføres, og man vil ikke opnå det ønskede resultat.

 

 

 

10.10.5.      Anvendelse af NÅR kommandoen.

 

   Ved hjælp af NÅR kommandoen under beregningerne, se denne, kan man styre, hvilke beregningslinier, der skal udføres hvornår:

 

 0=Både for totaler og linier.

 

 1=Kun for totaler, ikke for linier.

 

 2=Kun for linier, ikke for totaler.

 

 og således styre at f.eks. kursomregning kun skal foretages for linierne, hvorimod procentberegninger både skal foretages for linier og totaler.

 

 Vi vil i det følgende opbygge en rapport, hvor lagerværdien beregnes som beholdning * købspris, hvilket er et typisk eksempel på en ikke‑beregnet total, idet (total beholdning) * (total købspris) er noget vås.

 

 Samtidig indeholder listen en dækningsgrad % DG, som til gængæld skal beregnes for at totalerne kan blive rigtige for feltet.

 

10.10.7.      Eksempel på beregnede totaler.

 

 

Figure 43  Listen uden beregnede totaler, dækningsgrad er forkert.

 

 

ODATO:14.01.87         * DÆKNINGSGRADER *            PR.14.01.87   SIDE:    1  O

                                                                              

ONR   NAVN              GR SALGSPRIS KØBSPRIS        DB     DG  BEH       VÆRDIO

 0101 CHOKOLADESTÆNGER   0      2,00     1,50      0,50  33,33  100      150,00

O0102 STOR FRÆSEMASKINE  9  20000,00 10000,00  10000,00 100,00    0        0,00O

 0110 AUTOBUSSER         2 100000,00 60000,00  40000,00  66,67    1    60000,00

O1001 PENGE,STORE SEDLER 0   1000,00   500,00    500,00 100,00  100    50000,00O

 1005 STANSEMASKINE      1   2000,00  1500,00    500,00  33,33   10    15000,00

O2001 KREDITKORT         9     20,00    10,00     10,00 100,00   10      100,00O

 2002 ID‑KORT            9     25,00    10,00     15,00 150,00  200     2000,00

O                                                                              O

 GRANDE TOTAL                                           583,33        127250,00

 

 

 

 

 

Figure 44  Listen med beregnede totaler, lagerværdi er forkert.

 

 

ODATO:14.01.87         * DÆKNINGSGRADER *            PR.14.01.87   SIDE:    1  O

                                                                               

ONR   NAVN              GR SALGSPRIS KØBSPRIS        DB     DG  BEH       VÆRDIO

 0101 CHOKOLADESTÆNGER   0      2,00     1,50      0,50  33,33  100      150,00

O0102 STOR FRÆSEMASKINE  9  20000,00 10000,00  10000,00 100,00    0        0,00O

 0110 AUTOBUSSER         2 100000,00 60000,00  40000,00  66,67    1    60000,00

O1001 PENGE,STORE SEDLER 0   1000,00   500,00    500,00 100,00  100    50000,00O

 1005 STANSEMASKINE      1   2000,00  1500,00    500,00  33,33   10    15000,00

O2001 KREDITKORT         9     20,00    10,00     10,00 100,00   10      100,00O

 2002 ID‑KORT            9     25,00    10,00     15,00 150,00  200     2000,00

O                                                                              O

 GRANDE TOTAL              123047,00 72021,50  51025,50  70,85  421 30321051,50

 

 

 

 

 

Figure 45  Listen med beregnede totaler og NÅR beregninger.

 

 

ODATO:14.01.87         * DÆKNINGSGRADER *            PR.14.01.87   SIDE:    1  O

                                                                              

ONR   NAVN              GR SALGSPRIS KØBSPRIS        DB     DG  BEH       VÆRDIO

 0101 CHOKOLADESTÆNGER   0      2,00     1,50      0,50  33,33  100      150,00

O0102 STOR FRÆSEMASKINE  9  20000,00 10000,00  10000,00 100,00    0        0,00O

 0110 AUTOBUSSER         2 100000,00 60000,00  40000,00  66,67    1    60000,00

O1001 PENGE,STORE SEDLER 0   1000,00   500,00    500,00 100,00  100    50000,00O

 1005 STANSEMASKINE      1   2000,00  1500,00    500,00  33,33   10    15000,00

O2001 KREDITKORT         9     20,00    10,00     10,00 100,00   10      100,00O

 2002 ID‑KORT            9     25,00    10,00     15,00 150,00  200     2000,00

O                                                                              O

 GRANDE TOTAL                                            70,85        127250,00

 

 

 

 

 

Figure 46  Rapportdefinitionen for beregnede totaler.

 

 

ODMS.RAPGEN        RAPPORT NR.3    DÆKNINGSGRADER         JAN 14, 1987 11:37:05O

                                                                              

OPRINTER:$LPT   STARTPOSITION:001   ANTAL LINIER PR.SIDE:51                    O

                                                                              

OKARTOTEK: 1 VA    VAREKARTOTEK               8/CH.VAKA#                       O

                                                                              

O                                                                              O

   1...,....10...,....20...,....30...,....40...,....50...,....60...,....70...,.

O1:DATO:#DD              * DÆKNINGSGRADER *           PR.#PD           SIDE:#PPO

 2:                                                                            

O3:NR   NAVN               GR SALGSPRIS KØBSPRIS      DB     DG    BEH   VÆRDI O

 4:                                                                            

O5:#1   #2                 #7 #3       #4       #11     #12    #8     #13      O

   1...,....10...,....20...,....30...,....40...,....50...,....60...,....70...,.

O                                                                              O

 SELEKTIONER:                                                                 

O                                                                              O

 BEREGNINGER:                                                                 

O                                NÅR 1    BEGGE PASS   IKKE TOTALER            O

    #11=#3‑#4                    DB=SALGSPRIS‑KØBSPRIS                        

O   #13=#8*#4                    LAGERVÆRDI=BEHOLDNING*KØBSPRIS                O

    #14=#4                       KØBSPRIS=KØBSPRIS                            

O   #15=#11                      DB=DB                                         O

                                 NÅR 0    BEGGE PASS    ALTID                 

O   #12=#15%#14                  DG=DB%KØBSPRIS                                O

    #12=FNR(#12)                 DG=FNR(DG)                                   

O                                                                              O

 TOTALNIVEAUER                                                                 

O                                                                              O

  SKAL LISTEN SORTERES (J/N) ? N                                              

O                                                                              O

  VEJEDE TOTALER (KRÆVER EXTRA GENNEMLØB) (J/N) ? N                           

O                                                                              O

  SKAL TOTALER BEREGNES FØR UDSKRIFT (J/N) ? J                                

O                                                                              O

  FELTER DER SKAL TOTALISERES:                                                

O    #12   DG                                                                  O

     #13   LAGERVÆRDI                                                         

O    #14   KØBSPRIS                                                            O

     #15   DB                                                                 

OTOTALER BEREGNES FØR UDSKRIFT.                                                O

                                                                              

 

 

 

 

   Bemærk anvendelsen af frifelterne 14 og 15: På listen udskrives felterne 4 og 11, men der ønskes ikke totaler for disse. I stedet totaliseres felt 14 og 15 og anvendes i total‑beregningerne, disse felter udskrives ikke på listen, men sættes lig felt 4 henholdsvis felt 11 for hver linie (ikke totaler) i beregningerne.

 

10.10.9.      Teknik ved beregnede totaler.

 

   Normalt vil rapportgeneratoren opsamle totalerne for de valgte felter i et selvstændigt (4 ords) sæt af felter (array), der direkte udskrives på totallinien.

 

 Defineres beregnede totaler vil kartotekets felter blive ændret til 4 ords felter (deallokeret og redimensioneret), idet totalniveauet opstår, hvorefter de felter, der er angivet som totalfelter, flyttes over i disse nye store kartoteksfelter (dvs.S1, S2, S3, S4), beregningerne udføres med de normale variable og totallinien udskrives, hvorefter kartoteksfelterne igen sættes ned på normal størrelse.

 

 En rapport med beregnede totaler vil således være lidt mere pladskrævende end en rapport uden.

 

 Ved beregnede totaler bør man undlade at totalisere felter fra andre kartoteker direkte og i stedet flytte disse over i frifelter, der så totaliseres, idet der ikke udføres en sådan deallokering‑redimensionering for de eksterne kartotekers felter, hvilket i værste fald kan betyde afrundingsfejl på totalen for disse felter.

 

 

 

10.11.        Felter der skal totaliseres.

 

   Her indtastes numrene på de felter, man ønsker totaliseret på rapporten, de valgte felter vil blive vist med stærk lysstyrke på skærmen. Et felt kan kun vælges een gang og det er naturligvis kun numeriske talfelter, der kan totaliseres, forsøg på at vælge et alfanumerisk tekstfelt vil resultere i en fejlmeddelelse. Op til 34 felter kan totaliseres på een rapport.

 

 

Figure 47  Felter, der skal totaliseres.

 

DMS.RAPGEN     2 LAGERVÆRDILISTE             3......DEFINER SORTERING OG TOTALER

  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 DB                      29 @FRI                                            

12 DG                      30 @FRI                                            

13 LAGERVÆRDI                                                                 

14 KØBSPRIS                                                                   

15 DB                                                                         

16 @FRI                                                                       

17 @FRI                                                                       

18 @FRI                                                                       

DER ER AUTOMATISK GRANDE TOTAL PÅ ALLE LISTER.                                 

SKAL TOTALER BEREGNES FØR UDSKRIFT (J/N) ? N                                   

                                                                               

                                                                               

FELTER DER SKAL TOTALISERES: FELTNR:14                                         

                                                                               

 

 

 

 

   Man kan vælge felter fra externe kartoteker, f.eks. KU#24.

 

 Ved beregnede totaler skal alle felter, der indgår i totalberegningen, totaliseres.

 

 Når man er færdig med totalfelterne tastes SLUT (eller cr‑).

 

 Der er desuden mulighed for mere speciel styring af totalerne:

 

10.12.1.      ‑feltnr.udskriv felt på totallinien.

 

   Indtaster man f.eks. ‑7 vil dette felt ikke blive totaliseret, men blot udskrevet på totallinien, naturligvis kun såfremt det er placeret på linien i rapportdefinitionen. Indholdet af feltet vil være den sidste værdi fra kartoteket, med mindre man har defineret andet ved hjælp af beregninger.

 

 Funktionen benyttes typisk til at hente et kundenavn ned på totallinien for kunden, eller til f.eks. at udskrive navnet på varegruppen på en varegruppetotallinie. Et sådant navn kan enten skrives direkte i rapporten ved hjælp af beregnede totaler, eller eventuelt læses ved hjælp af opslag i et andet kartotek.

 

 

 

10.12.3.      ‑ ingen 'grande total' tekst.

 

   Tastes minus alene undertrykkes udskriften af teksten 'GRANDE TOTAL' på rapportens sidste linie.

 

 Funktionen anvendes typisk på rapporter, hvor der ikke er plads til en sådan tekst, dvs. et felt til venstre på rapporten skal totaliseres. Udskrift af teksten grande total på en sådan rapport vil bevirke, at resten af totalkolonnerne vil blive forskudt det antal karakterer til højre, som der ikke er plads til for denne tekst i forhold til første felt.

 

10.12.5.      2% eller 3% totalpræcision.

 

   Rapporter med mange totaler, f.eks. gruppetotaler og subtotalniveauer på mange felter, kan blive så store, at programmet ikke kan køres.

 

 Totalerne opsamles normalt med maskinens største regnenøjagtighed, dvs. såkaldte 4 ords variable, der tillader 14 betydende cifre, og lagres i en matrix hvis størrelse bestemmes af:

 

 (antal felter der totaliseres + 1)*(antal totalniveauer + 1)*(antal grupper + 1)

 

 For at spare plads på en sådan rapport kan man naturligvis reducere en af ovenstående faktorer, eller ved hjælp af angivelse af 2% eller 3% i totalfeltnr. sætte præcision på tabellen ned. Med 3% får man op til 10 cifre i totalerne, med 2% op til 6 cifre, begge dele med flydende komma, således at det vil være de mindst betydende cifre, der vil tabes, hvis tallet overstiger denne grænse.

 

 Alternativt kan man naturligvis øge hele maskinens programstørrelse (aktiv partition) for at få plads til sådanne rapporter, dette er et spil mellem hastighed og til rådighed værende memory.

 

 

 

10.13.        Gruppetotaler.

 

   Ved hjælp af gruppetotalerne kan man til sidst på rapporten få udsplittet totallerne med angivelse af at der f.eks. er 5 kunder i gruppe 7 med total saldo 9000 kr. etc.

 

 

Figure 48  Eksempel på gruppetotaler.

 

 

ODATO:14.01.87         * DÆKNINGSGRADER *            PR.14.01.87   SIDE:    1  O

                                                                              

ONR   NAVN              GR SALGSPRIS KØBSPRIS        DB     DG  BEH       VÆRDIO

 0101 CHOKOLADESTÆNGER   0      2,00     1,50      0,50  33,33  100      150,00

O0102 STOR FRÆSEMASKINE  9  20000,00 10000,00  10000,00 100,00    0        0,00O

 0110 AUTOBUSSER         2 100000,00 60000,00  40000,00  66,67    1    60000,00

O1001 PENGE,STORE SEDLER 0   1000,00   500,00    500,00 100,00  100    50000,00O

 1005 STANSEMASKINE      1   2000,00  1500,00    500,00  33,33   10    15000,00

O2001 KREDITKORT         9     20,00    10,00     10,00 100,00   10      100,00O

 2002 ID‑KORT            9     25,00    10,00     15,00 150,00  200     2000,00

O                                                                              O

     2 GRUPPE   0                                        99.80         50150,00

O    1 GRUPPE   1                                        33.33         15000,00O

     1 GRUPPE   2                                        66,67         60000,00

O    3 GRUPPE   9                                       100,05          2100,00O

                                                                              

OGRANDE TOTAL                                            70,85        127250,00O

 

 

 

 

10.14.1.      GRUPPETOTALER (J/N/NIVEAU)?

 

   Man skal først angive, om der overhovedet ønskes gruppetotaler på rapporten, svares Nej returnerer rapportgeneratoren til menuen, svares J fortsættes med næste spørgsmål.

 

 

Figure 49  Definition af gruppetotaler.

 

DMS.RAPGEN     2 LAGERVÆRDILISTE             3......DEFINER SORTERING OG TOTALER

  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 DB                      29 @FRI                                            

12 DG                      30 @FRI                                            

13 LAGERVÆRDI                                                                 

14 KØBSPRIS                                                                   

15 DB                                                                          

16 @FRI                                                                       

17 @FRI                                                                        

18 @FRI                                                                       

SKAL TOTALERNE OPSPLITTES I FLERE GRUPPER (J/N/NIVEAU) ? J                     

                                                                               

                                                                               

GRUPPE FELTNR.? 7  ANTAL KODER I GRUPPEN ? 10  GRUPPE NAVN ? GRUPPE            

GRUPPE FELTNR.? U6 ANTAL KODER I GRUPPEN ? 20  GRUPPE NAVN ? LEVERANDØR        

                                                                               

 

 

 

 

   Såfremt rapporten defineres med flere SUBTOTAL niveauer, vil gruppetotalerne blive udskrevet på alle niveauer. Såfremt man kun ønsker gruppetotalen til sidst på listen kan man istedet for J indtaste det totalniveau, man ønsker gruppetotalerne udskrevet fra, idet niveauerne nummereres som:

 

 1=første subtotal

 

 2=næste subtotal

 

 x=grande total

 

 For en rapport med en enkelt subtotal skal man altså indtaste 2 for kun af få gruppetotaler til sidst på listen.

 

 

 

10.14.3.      GRUPPE FELTNR:,ANTAL KODER og NAVN.

 

   Her indtastes nummeret på det felt, der skal styre grupperingen af totalerne, feltet skal være numerisk (se senere) og indeholder en kode f.eks. mellem 0 og 100.

 

 Den højeste værdi af feltet angives i ANTAL KODER I DENNE GRUPPE, f.eks.100, og bevirker at rapportgeneratoren sætter plads af til koderne 0‑100, andre værdier vil blive opsamlet i diverse‑gruppen 0. Bemærk at der ikke er tale om 100 forskellige værdier, men derimod værdierne 0 til 100.

 

 Antallet af sådanne værdier i en gruppe påvirker naturligvis størrelsen af en rapport.

 

 Til sidst indtastes et gruppenavn, der udskrives på totallinien, og rapportgeneratoren vender tilbage til spørgsmålet om gruppe feltnr. Der kan defineres op til 3 forskellige grupperinger af totalerne på samme rapport, definitionen afsluttes ved at taste SLUT (eller cr‑).

 

 

 

10.14.5.      'Udefinerede' gruppetotaler.

 

   Een af gruppetotalerne kan defineres som en såkaldt udefineret gruppe, hvilket gøres ved at taste U foran gruppefeltnummeret, f.eks. U7.

 

 Herved vil rapportgeneratoren oprette en tabel over de forskellige værdier, der findes af det pågældende felt ved gennemlæsning af kartoteket. Man skal således i ANTAL KODER for en sådan gruppe angive antal forskellige værdier for det pågældende felt, ikke som ellers højeste værdi af koden.

 

 Man kan altså få opsplittet totalerne f.eks. efter en 4 cifret kode eller et datofelt, og specielt kan sådanne grupper også defineres med et alfanumerisk tekstfelt, f.eks. ved gruppering i A, B, C etc. Forekommer flere end det angivne antal værdier af feltet vil resten blive placeret i en diverse gruppe.

 

 

Figure 50  Eksempel på flere grupper, den sidste 'udefineret'.

 

 

ODATO:14.01.87         * DÆKNINGSGRADER *            PR.14.01.87   SIDE:    1  O

                                                                               

ONR   NAVN              GR SALGSPRIS KØBSPRIS        DB     DG  BEH       VÆRDIO

 0101 CHOKOLADESTÆNGER   0      2,00     1,50      0,50  33,33  100      150,00

O0102 STOR FRÆSEMASKINE  9  20000,00 10000,00  10000,00 100,00    0        0,00O

 0110 AUTOBUSSER         2 100000,00 60000,00  40000,00  66,67    1    60000,00

O1001 PENGE,STORE SEDLER 0   1000,00   500,00    500,00 100,00  100    50000,00O

 1005 STANSEMASKINE      1   2000,00  1500,00    500,00  33,33   10    15000,00

O2001 KREDITKORT         9     20,00    10,00     10,00 100,00   10      100,00O

 2002 ID‑KORT            9     25,00    10,00     15,00 150,00  200     2000,00

O                                                                              O

     2 GRUPPE   0                                        99,80         50150,00

O    1 GRUPPE   1                                        33,33         15000,00O

     1 GRUPPE   2                                        66,67         60000,00

O    3 GRUPPE   9                                       100,05          2100,00O

                                                                              

O    2 LEVERANDØR 100                                    91,30         15000,00O

     1 LEVERANDØR 123                                    66,67         60000,00

O    3 LEVERANDØR 105                                   100,96         52100,00O

     1 LEVERANDØR 271                                    33,33           150,00

O                                                                              O

 GRANDE TOTAL                                            70,85        127250,00

 

 

 

 

10.14.7.      Dele af felter/andre kartoteker.

 

   Gruppetotaler kan defineres styret af en del af et felt ved at indtaste f.eks. #7(3, 4), altså den 3 til den 4 karakter af feltnr.7.

 

 Endvidere kan man angive felter fra andre kartoteker til at styre grupperingen, f.eks. KU#7, eller endda dele af disse, f.eks. KU#7(3, 4).

 

 Beregnede frifelter kan naturligvis også anvendes til at styre grupperingen.



 

 

 

 

 

 

 

 

 

 

 

                          11.          Flere kartoteker.



 

 

12.1.        Princippet ved flere kartoteker

 

   En rapport fødes altid med et bestemt hovedkartotek, og langt de fleste rapporter vil sandsynligvis kun anvende et kartotek.Fra dette kan brugeren plukke felter ud ved angivelse af feltnumre og lade disse felter indgå i udskriften, i selektioner, beregninger, sorteringer og totaler.

 

 Et felt refereres som f.eks.#7, og da rapportgeneratoren ved, hvilket kartotek, dette felt stammer fra, nemlig hovedkartoteket, er denne betegnelse nok.Skal man anvende et felt fra et andet kartotek end hovedkartoteket, må man foruden feltnummeret angive kartoteksforkortelsen foran, KU#7 refererer således til felt 7 i kartoteket KU.

 

 Man kan anvende sådanne felter fra andre kartoteker alle steder, hvor man kan anvende felter fra hovedkartoteket, hvilket vil sige at en liste for eksempel uden videre kan sorteres iflg. et felt i et andet kartotek, ligesom man frit kan lade felter fra andre kartoteker indgå i de videre beregninger.

 

 Forbindelsen til de andre kartoteker knyttes ved at brugeren i beregningerne angiver READ (XX) og i forbindelse hermed hvordan kartoteket skal læses (nøgleopbygning). Nøglen angives i form af feltnumre efter READ, for eksempel READ (XX), #1.

 

 Denne forbindelse kan eventuelt være defineret af programmøren ved installation af rapportgeneratoren, så man kun behøver READ (XX) hvilket vil lette definitionen af sådanne rapporter betydeligt.

 

 Da felter fra andre kartoteker uden videre kan anvendes i beregningerne, kan et tredje kartotek læses med anvendelse af felter fra det andet og så fremdeles.Det er muligt at have op til 9 kartoteker ialt på en rapport.

 

12.3.        Hjælp tasten.

 

   Normalt vil brugeren hele tiden have en liste på skærmen over de felter, der findes i hovedkartoteket, ved på anvendelse af flere kartoteker gives adgang til samtlige felter i samtlige kartoteker, og herved skabes naturligvis det problem, at ikke alle felter kan vises samtidig.

 

 Dette kunne klares ved at udstyre brugeren med en liste over kartoteker og felter, men da dette er en meget omstændelig løsning er rapportgeneratoren udstyret med en HJÆLP funktion, der aktiveres ved at taste ? eller hjælptasten (nederste højre funktionstast).

 

Herved vises en oversigt over samtlige kartoteker i rapportgeneratoren og man kan, ved at indtaste en kartoteksforkortelse, få vist felterne i det pågældende kartotek.På denne måde er det sikret at brugeren kan finde rundt i sine kartoteker og måske flere tusinde felter uden brug af lister.

 

 

Figure 51  Kartoteksoversigt ved brug af hjælp‑funktionen.

 

DMS.RAPGEN   19 UDGÅEDE LEVERANDØRER                4......DEFINER KALKULATIONER

GR VAREGRUPPER                                                                  

KU KURSER                                                                      

LE LEVERANDØRKARTOTEK                                                           

VA VAREKARTOTEK                                                                

                                                                               

                                                                               

                                                                               

                                                                               

                                                                               

                                                                                

                                                                               

                                                                                

                                                                               

                                                                               

                                                                               

                                                                               

                                                                                

                                                                               

#DD=DATO , #PD=PR.DATO , #D1=DATA , #DA1=ALFA.DATA , NÅR=HVORNÅR BEREGNES      

SIDSTE KØB=0                                                                   

START (VA.02)                                                                  

NEXT (VA.02)                                                                   

BEREGNING ?                                                                    

                                                TAST FILNUMMER ELLER cr:       

 

 

 

 

 

Figure 52  Hjælp for et enkelt kartotek.

 

DMS.RAPGEN   19 UDGÅEDE LEVERANDØRER                4......DEFINER KALKULATIONER

1 VARENR                                                                      

2 NAVN                                                                        

3 SALGSPRIS                                                                   

4 KØBSPRIS                                                                    

5 SIDSTE KØBSDATO                                                             

6 LEV.NR.                                                                     

7 GRUPPENR                                                                     

8 BEHOLDNING                                                                  

9 ALTERNATIV LEV                                                               

10 FRIFELT                                                                     

                                                                                

                                                                               

                                                                               

                                                                               

                                                                               

                                                                                

                                                                               

                                                                                

#DD=DATO , #PD=PR.DATO , #D1=DATA , #DA1=ALFA.DATA , NÅR=HVORNÅR BEREGNES      

SIDSTE KØB=0                                                                   

START (VA.02)                                                                  

NEXT (VA.02)                                                                   

BEREGNING ?                                                                    

VA  VAREKARTOTEK             8/CH.VAKA#         TAST FILNUMMER ELLER cr:       

 

 

 

 

 

Figure 53  Udvidet hjælp ved indtastning af VA01

 

DMS.RAPGEN   19 UDGÅEDE LEVERANDØRER                4......DEFINER KALKULATIONER

1 VARENR                                  9 ALTERNATIV LEVERANDØR             

   NØGLE 1.                                  REFERENCE TIL LEVERANDØRKARTOTEKET

   SKAL VÆRE EENTYDIGT.                   10 FRIFELT                           

2 NAVN                                      ANVENDES IKKE PT.                 

3 SALGSPRIS                                                                   

   VEJLEDENDE UDSALGSPRIS,DANSKE KRONER                                         

4 KØBSPRIS                                                                    

   KØBSPRIS I LEVERANDØRENS VALUTA.                                            

5 SIDSTE KØBSDATO                                                             

   OPDATERES VED LAGERTILGANG.                                                 

6 LEV.NR.                                                                     

   NØGLE 2.                                                                    

   REFERENCE TIL LE,LEVERANDØRKARTOTEKET                                       

7 GRUPPENR                                                                    

   REFERENCE TIL GR,VAREGRUPPEKARTOTEKET,                                       

   DVS.VAREGRUPPENAVN OG PRISFAKTOR.                                           

8 BEHOLDNING                                                                   

   AKTUEL LAGERBEHOLDNING PÅ DENNE VARE                                        

#DD=DATO , #PD=PR.DATO , #D1=DATA , #DA1=ALFA.DATA , NÅR=HVORNÅR BEREGNES      

SIDSTE KØB=0                                                                   

START (VA.02)                                                                  

NEXT (VA.02)                                                                   

BEREGNING ?                                                                    

VA  VAREKARTOTEK             8/CH.VAKA#         TAST FILNUMMER ELLER cr:       

 

 

 

 

   Udvidet hjælp for et kartotek fremkommer, når man taster kartotekesforkortelsen efterfulgt af et feltnummer, for eksempel VA01.

 

 Herved vises så mange felter fra kartoteket, startende fra det angivne feltnr, som der er plads til på skærmen, med extra forklarende tekst.

 

 Denne funktion kan være yderst nyttig specielt på systemer med mange kode‑felter, faktisk kan den totale dokumentation af kartotekerne indlægges som udvidede hjælpetekster, hvilket naturligvis kræver et ekstra arbejde af programmøren ved installation. Installation af udvidede hjælpetekster må derfor aftales særskilt. fildefinitionen.;

 

12.5.        READ i beregningerne.

 

   Når man anvender felter fra et andet kartotek end hovedkartoteket, må man definere, hvordan dette kartotek skal læses. Der kan i værste fald være flere forskellige muligheder, så rapportgeneratoren umiddelbart selv kan vide dette.

 

Brugeren skal i forbindelse med beregningerne på rapporten altid indlægge en instruktion om READ af de andre kartoteker, der er anvendt, f.eks. READ(KU) for at læse kartoteket KU.

 

12.7.        Forbindelse mellem kartotekerne.

 

   I forbindelse med en sådan READ er det nødvendigt for rapportgeneratoren at vide, hvordan nøglen til kartoteket skal opbygges, det kan være at felt 15 i hovedkartoteket indeholder et kundenr., der skal anvendes ved opslag i kartoteket KU, Der er flere muligheder for at fortælle rapportgeneratoren dette:

 

 1) Programmøren kan have defineret denne ved installation af kartotekerne og brugeren behøver i så fald slet ikke at tænke på dette, han udsteder blot kommandoen READ(KU).

 

 2) Brugeren er nødt til at angive feltnummeret efter kommandoen, f.eks. som:READ(KU), #15.

 

 3) Såfremt det ikke er så simple nøgler, der er tale om, er der mulighed for at udelade kommaet og feltnummertegnet og skrive READ(KU)15 herved får man de samme muligheder som i kartoteksdefinitionsprogrammet DATAMASTER til at sammenstille nøgler af flere felter, dele af felter, pakke disse etc.Se senere.

 

12.9.        Videre læsning af tredje kartotek mm.

 

   Når man først har indlæst et kartotek med READ instruktionen er der herefter mulighed for at referere til samtlige dette kartoteks felter ved at angive f.eks.KU#15 på lige fod med hovedkartotekets felter, og således anvende disse videre i beregninger etc.

 

Da selve READ instruktionen kan opfattes som en beregningslinie i sig selv, kan man altså fortsætte med læsning af flere kartoteker udfra felter i det/de kartoteker, man allerede har læst, ved f.eks.at angive READ(XX), KU#7 hvorved kartotek XX læses med feltnr.7 fra kartoteket KU som nøgle.

 

 I det tilfælde, hvor programmøren ved installation har angivet en automatisk forbindelse mellem de forskellige kartoteker, således at brugeren kun behøver taste READ(XX) vil rapportgenratoren selv scanne de allerede implicerede kartoteker startende med hovedkartoteket, derefter først refererede kartotek etv. indtil en forbindelse mellem et 'kendt' kartotek og det nye kartotek findes.

 

 Bruges den specielle nøgleopbygningsrutine kan dog kun hovedkartotekets felter og de 20 frifelter anvendes, felter fra andre kartoteker må om nødvendigt flyttes hertil.

 

12.11.        Kartoteker med flere index.

 

   Har et kartotek flere index kan man udføre opslag i index 2 ved f.eks. at taste READ(KU.02), #15.

 

Ligesom hvilke felter, der skal anvendes som nøgle kan programmøren angive hvilket index der skal benyttes ved installation af kartoteksforbindelserne.

 

12.13.        Forskellige records fra samme kartotek.

 

   Man kan komme ud for situationer, hvor flere forskellige records fra samme kartotek skal behandles samtidig.Her kan man referere samme kartotek KU med store eller små bogstaver, hvorved man opnår at anvende samme kartoteksdefinition men forskellige records.

 

Felterne KU#1 og ku#1 stammer altså fra hver sin record i samme kartotek og der skal udføres både en READ(KU) og READ(ku) i beregningerne.

 

Kombinationerne KU, ku, Ku og kU kan anvendes, dvs.max.4 forskellige records fra eet kartotek kan behandles.Hver af disse referencer tæller som et selvstændigt kartotek i det totale antal kartoteker på rapporten.

 

12.15.        Maximalt antal kartoteker

 

   En rapport kan maximalt bearbejde 9 kartoteker samtidigt, dvs.hovedkartoteket med opslag i op til 8 andre kartoteker.

 

12.17.        Betinget læsning af andre kartoteker.

 

   Ved at placere READ instruktionerne i forbindelse med beregningerne på rapporten opnås den fordel, at læsning af andre kartoteker lige så vel som alle andre beregningeslinier kan gøres betingede ved hjælp af IF sætninger, f.eks.IF #7=3 READ(KU), #15.

 

12.19.       Læsning EFTER selektionerne er foretaget.

 

   Man kan placere opslag i andre kartoteker efter de normale selektioner på rapporten ved at benytte EFTER kommendoen ved definition af beregningerne, hvorved kørselshastigheden kan øges, naturligvis kun såfremt man ikke selekterer på nogen af felterne fra disse andre kartoteker.

 

12.21.

6.11.       Sum af posteringer.

 

   Man kan i beregningerne lave et gennemløb af f.eks.posteringerne på en kunde for at samle det totale posterede beløb op i et frifelt.

 

Kommandoerne START (XX), NEXT(XX) og OM(XX) definerer henholdsvis et interval i kartoteket XX, læser næste record hvorefter man kan indlægge beregningslinier for summation m.v., og gør det igen indtil der ikke er flere records i intervallet.

 

12.23.       Kontoudtogstype rapport.

 

   Der findes funktioner for 'kontoudtogs'typen af rapporter, hvor der udskrives stamoplysninger fra en kunde, herefter en række posteringer og endelig en total.

 

Her splittes udskriftsdefinitionerne op i henholdsvis hoved og linier med LINIE kommandoen ved definition af rapporten på posteringskartoteket, og som beregning udstedes kommandoen READH(KU) der vil udskrive et hoved, hvergang kunden skifter.

 

 

 

12.25.

6.13.       Ikke‑indexed (relative) kartoteker og pointere.

 

   De ovennævnte eksempler har alle været baseret på opslag i indexed kartoteker, hvilket er langt de hyppigst fremkommende i enhver installation.Relative, ikke indexed kartoteker kan naturligvis også behandles med kommandoerne READR og READX.

 

 Disse funktioner kan også anvendes ved kartoteksstrukturer, hvor et kartotek indeholder en pointer til et andet kartotek i form af en recordnummer, enten explicit eller relativt til første data record nummer.

 

12.27.       Helt specielle nøglestrukturer.

 

   Desuden kan brugeren i tilfælde af hele mærkelige nøgleopbygninger definere en beregning af et arbejdsfelt f.eks.T2$ helt ned til bitmanipulationer med assembler CALLs og herefter udføre READ(KU), T2$.

 

12.29.       READ(KU) Saldoliste med kursomregning.

 

   Vi ønsker at opbygge en saldoliste med følgende udseende:

 

 

Figure 54  Saldoliste med kursomregning.

 

 

ODATO:14.01.87     * SALDOLISTE *     PR.14.01.87   SIDE:   1                  O

                                                                              

OLEV.NR. NAVN                             SALDO       SALDO DKR                O

 100     SORENCO A/S                       0,00 DKK        0,00               

O102     DEN DANSKE BANK              25.000,00 DKK   25.000,00                O

 105     DANSK OLIE OG GAS               500,00 DKK      500,00               

O111     DMS A/S                       1.000,00 DKK    1.000,00                O

 123     PITZNER AUTO A/S                  0,00 LUF        0,00                

O205     PRIVATBANKEN                 20.000,00 LUF    3.700,00                O

 260     CLORIUS MÅLERSERVICE          2.000,00 DKK    2.000,00               

O270     FIDUSIA A/S                     200,00 US$    1.540,00                O

 271     UNICEF                            0,00 UD$        0,00               

O                                                                              O

 GRANDE TOTAL                                         33.740,00               

 

 

 

 

   Leverandørkartoteket LE vælges som rapportens hovedkartotek og under definition af rapporten med funktion 1 placeres valutabetegnelsen fra valutakartoteket KU#2 efter saldofeltet. Et frit felt kaldes SALDO DKR.

 

 Ved beregningerne skal kurskartoteket læses, hvorefter saldo dkr. skal beregnes på følgende måde:

 

 READ (KU)5

 

 #7=FNR (#6*KU#3/100)

 

 READ (KU)5, hvor 5 placeres umiddelbart efter slutparantesen uden mellemrum eller komma, angiver at valutakartoteket skal læses med felt 5 fra hovedkartoteket (leverandørkartoteket) som nøgle, altså valutakoden.

 

 Valutakoden i leverandørkartoteket er defineret som 2 cifre, og nøglen til valutakartoteket opbygges som 2 karakterer ud fra denne, med foranstillet nul, såfremt koden er mindre end 10.

 

12.31.       Prisberegning med READ af flere kartoteker.

 

   Udfra varekartoteket som hovedkartotek kan vi opbygge følgende prisberegningsliste:

 

 

Figure 55  Beregning af ny pris udfra kurs og prisfaktor.

 

 

ODATO:14.01.87         * PRISBEREGNING *             PR.14.01.87   SIDE:    1  O

                                                                              

ONR   NAVN               KØBSPRIS             DKR GR PRISFAKTOR NY SALGSPRIS   O

 0101 CHOKOLADESTÆNGER       1,50 US$       11,55  0     1,0000        11,55  

O0102 STOR FRÆSEMASKINE  10000,00 DKK    10000,00  9     3,0000     30000,00   O

 0110 AUTOBUSSER         60000,00 LUF    11100,00  2     1,2345     13702,95  

O1001 PENGE,STORE SEDLER   500,00 LUF       92,50  0     1,0000        92,50   O

 1005 STANSEMASKINE       1500,00 DKK     1500,00  1     2,0000      3000,00  

O2001 KREDITKORT            10,00 LUF        1,85  9     3,0000         5,55   O

 2002 ID‑KORT               10,00 LUF        1,85  9     3,0000         5,55  

 

 

 

 

   med følgende beregninger tilknyttet:

 

 

Figure 56  Prisberegning med READ af flere kartoteker.

 

         1. READ (LE)

         2. READ (KU)

         3. READ (GR)

         4. #11=FNR(#4*KU#3/100)     DKR=FNR(KØBSPRIS*KURS/100)

         5. #12=FNR(#11*GR#3)        NY SALGSPRIS=FNR(DKR*PRISFAKTOR)

        

 

 

 

   I dette eksempel kommer vi alle kartotekerne igennem:

 

 1. Først læses leverandørkartoteket udfra varekartoteket, hvorved valutakoden fra leverandøren nu kendes.

 

 2. Herefter læses kundekartoteket (med opslag via leverandørens valutakode).

 

 3. Endelig læses varegruppekartoteket (udfra varens felt for varegruppe).

 

 4. Der kan nu beregnes en købspris i danske kroner ved omregning ifølge kursen.

 

 5. Ny salgspris i danske kroner beregnes som købsprisen gange varegruppens prisfaktor.

 

 Såfremt rapportgeneratoren havde været installeret med mulighed for tilbageskrivning i kartotekerne kunne man have opdateret varernes pris direkte ved at indlægge en ekstra linie:

 

 #3=#11 Salgspris = ny salgspris

 

 

 

12.33.       Prisberegningen uden automatiske forbindelser.

 

   I dette eksempel har vi forudsat, at programmøren har installeret rapportgeneratoren med automatisk forbindelse mellem kartotekerne, det er derfor ikke nødvendigt at angive, hvilke felter der skal benyttes som nøgle til de forskellige læsninger, ligesom rapportgeneratoren selv finder ud af, at valutakartoteket skal læses udfra et felt i leverandørkartoteket.

 

 Havde disse automatiske forbindelser ikke været defineret, ville indlæsningen blive lidt mere kompliceret:

 

 

Figure 57  Prisberegningen uden automatiske forbindelser.

 
 

                               1. READ (LE),#6

                               2. #13=LE#5

                               3. READ (KU)13

                               4. READ (GR)7

                              

 

 

   Vi ser her den store fordel ved definition af automatiske forbindelser, da man ellers skal kende en del til kartotekernes nøgler:

 

 1. Leverandørkartoteket læses med varekartotekets felt 6 som nøgle, da dette er alfanumerisk kan vi anvende såvel READ (LE), #6 som READ(LE)6 idet vi ikke har brug for rapportgeneratorens nøgleopbygningsrutine for en så simpel nøgle.

 

 2. Når vi skal læse videre på kurskartoteket skal denne rutine anvendes, da valutakoden er 2 cifre numerisk. Dette kan ikke gøres direkte, da READ (KU)LE#5 ikke er tilladt, istedet må vi benytte frifeltet #13 og definere dette som 2 cifre numerisk lig med LE#5. En anden måde at gøre dette på kunne være:

 

 2.T2$=LE#5 USING "##"

 

 3.READ (KU), T2$

 

 således at man selv opbygger et alfanumerisk arbejdsfelt med nøglen og benytter dette ved læsningen.

 

 4. Ved læsningen af varegruppekartoteket kan vi direkte anvende nøglerutinen og angive læsning med felt 7, varegruppe, som nøgle.

 

12.35.       Alternative leverandører:flere opslag i samme kartotek.

 

   Hvis vi vil definere en vareliste, hvor navnet på både den normale leverandør og den alternative leverandør skal udskrives, skal det samme kartotek læses flere gange.

 

 

Figure 58  Opslag i samme kartotek flere gange.

 

 

ODATO:14.01.87    * ALTERNATIVE LEVERANDØRER *       PR.14.01.87   SIDE:    1  O

                                                                              

ONR   NAVN               LEV NAVN                   ALT NAVN                   O

 0101 CHOKOLADESTÆNGER   271 UNICEF                 270 FIDUSIA A/S           

O0102 STOR FRÆSEMASKINE  100 SORENCO A/S                                       O

 0110 AUTOBUSSER         123 PITZNER AUTO A/S       100 SORENCO A/S           

O1001 PENGE,STORE SEDLER 205 PRIVATBANKEN           102 DEN DANSKE BANK        O

 1005 STANSEMASKINE      100 SORENCO A/S                                      

O2001 KREDITKORT         205 PRIVATBANKEN           102 DEN DANSKE BANK        O

 2002 ID‑KORT            205 PRIVATBANKEN           102 DEN DANSKE BANK       

 

 

 

 

   Dette kan gøres med beregningerne:

 

 1.READ (LE)6

 

 2.READ (le)9

 

 idet anden leverandør angives med små bogstaver. Vi kunne istedet have anvendt Le eller lE altså en vilkårlig kombination af store og små bogstaver, hvert kartotek kan indgå i en rapport i op til 4 varianter. Hver variant tæller som eet kartotek ud af de maksimale 9 kartoteker for een rapport.

 

 Første læsning foretages med felt 6, normalt leverandørnr., som nøgle, anden læsning med felt 9, alternativt leverandørnr., som nøgle. Bemærk at det er uden betydning om feltet er numerisk (#9) eller alfanumerisk (#6), da rapportgeneratorens nøgleopbygningsrutine anvendes.

 

 Ved definition af rapporten udskrives som første navn LE#2 som andet navn le#2.

 

 Samme effekt kunne være opnået på en anden måde ved at udskrive to frifelter, f.eks. #11 og #12, som man begge definerer som 24 karakterer, hvis man istedet indlægger følgende beregninger:

 

 

Figure 59  Alternative leverandører:flere opslag i samme kartotek.

 
 

                                1. READ (LE)6

                                2. #11=LE#2

                                3. READ (LE)9

                                4. #12=LE#2

                               

 

 

   Her indlæses først den normale leverandør, hvorefter de felter, man skal benytte fra denne, gemmes væk i frifelter, hvorefter den alternative leverandør indlæses fra samme kartotek, oven i den foregående record, LE#2 skifter herved indhold. I dette tilfælde vil man kun have udnyttet eet kartotek af rapportgeneratorens maksimum på 9 kartoteker pr. rapport.

 

12.37.       READ i forbindelse med totaler.

 

   Eksemplet i afsnittet om gruppetotaler kan udbygges med udskrift af varegruppenavn for hver gruppe:

 

 

Figure 60  Eksempel på gruppetotaler.

 

 

ODATO:14.01.87         * DÆKNINGSGRADER *            PR.14.01.87   SIDE:    1  O

                                                                              

ONR   NAVN              GR SALGSPRIS KØBSPRIS        DB     DG  BEH       VÆRDIO

 0101 CHOKOLADESTÆNGER   0      2,00     1,50      0,50  33,33  100      150,00

O0102 STOR FRÆSEMASKINE  9  20000,00 10000,00  10000,00 100,00    0        0,00O

 0110 AUTOBUSSER         2 100000,00 60000,00  40000,00  66,67    1    60000,00

O1001 PENGE,STORE SEDLER 0   1000,00   500,00    500,00 100,00  100    50000,00O

 1005 STANSEMASKINE      1   2000,00  1500,00    500,00  33,33   10    15000,00

O2001 KREDITKORT         9     20,00    10,00     10,00 100,00   10      100,00O

 2002 ID‑KORT            9     25,00    10,00     15,00 150,00  200     2000,00

O                                                                              O

     2 GRUPPE   0     NORMALVARER                        99.80         50150,00

O    1 GRUPPE   1     DIVERSEVARER                       33.33         15000,00O

     1 GRUPPE   2     SPECIALVARER                       66,67         60000,00

O    3 GRUPPE   9     SKAFFEVARER                       100,05          2100,00O

                                                                              

OGRANDE TOTAL                                            70,85        127250,00O

 

 

 

 

   Dette gøres ved yderligere at definere følgende beregningslinier:

 

 

Figure 61  READ i forbindelse med totaler.

 
 

         1.                            NÅR 2 BEGGE PASS  KUN TOTALER

         2. READ (GR)7

         3. #2=GR#2,S9$                NAVN=GRUPPENAVN,S9$

         4. IF #LEVEL=1 LET #2=S9$     IF LEVEL=1 LET NAVN=S9$

        

 

 

   Desuden må man ved definition af hvilke felter, der skal totaliseres, angive ‑2, dvs. udskrift af felt 2, varenavnet, på totallinien.Der skal naturligvis defineres beregnede totaler på listen.

 

 Beregningerne udfører følgende:

 

 1. Linierne skal kun udføres for totaler.

 

 2. Varegruppekartoteket læses med felt 7 som nøgle.

 

 3. Varenavnet sættes lig med det læste varegruppenavn, for en sikkerhedsskyld sættes et antal blanke efter dette med S9$.

 

 4. Hvis det er GRANDE TOTAL, der udskrives (#LEVEL=1) sættes varenavnet lig blanke, udskrift af varegruppenavn er ikke relevant på denne linie.

 

12.39.       START/NEXT/OM Sum af posteringer.

 

   Hvis vi ønsker at definere en rapport på et kartotek med et underliggende posteringskartotek, hvor selve posteringerne ikke skal udskrives, derimod kun en sum af disse, kan dette gøres ved hjælp af START/NEXT/OM kommandoerne.

 

 

 

 

Figure 62  Total lagerværdi opsamlet med START/NEXT/OM.

 

 

ODATO:14.01.87  * LEVERANDØR‑VÆRDI *  PR.14.01.87   SIDE:   1                  O

                                                                              

OLEV.NR. NAVN                        LAGERVÆRDI                                O

 100     SORENCO A/S                   15000,00                               

O102     DEN DANSKE BANK                   0,00                                O

 105     DANSK OLIE OG GAS                 0,00                               

O111     DMS A/S                           0,00                                O

 123     PITZNER AUTO A/S              60000,00                               

O205     PRIVATBANKEN                  52100,00                                O

 260     CLORIUS MÅLERSERVICE              0,00                               

O270     FIDUSIA A/S                       0,00                                O

 271     UNICEF                          150,00                                

O                                                                              O

 GRANDE TOTAL                         127250,00                               

 

 

 

 

 

Figure 63  Rapportdefinitionen for summering af lagerværdi.

 

 

ODMS.RAPGEN        RAPPORT NR.15   LEVERANDØR‑VÆRDI       JAN 14, 1987 13:34:03O

                                                                              

OPRINTER:$LPT   STARTPOSITION:001   ANTAL LINIER PR.SIDE:51                    O

                                                                              

OKARTOTEK: 1 LE    LEVERANDØRKARTOTEK         8/CH.LEKA#                       O

 KARTOTEK: 2 VA    VAREKARTOTEK               8/CH.VAKA#                      

O                                                                              O

   1...,....10...,....20...,....30...,....40...,....50...,....60...,....70...,.

O1:DATO:#DD  * LEVERANDØR‑VÆRDI *   PR.#PD           SIDE:#PP                  O

 2:                                                                           

O3:LEV.NR. NAVN                   LAGERVÆRDI                                   O

 4:                                                                           

O5:#1      #2                  #7                                              O

   1...,....10...,....20...,....30...,....40...,....50...,....60...,....70...,.

O                                                                              O

 SELEKTIONER:                                                                 

O                                                                              O

 BEREGNINGER:                                                                 

O   #7=0                         LAGERVÆRDI=0                                  O

    START (VA.02),#1             START (VA.02),LEV.NR.                        

O   NEXT (VA.02)                 NEXT (VA.02)                                  O

    #7=#7+VA#8*VA#4              LAGERVÆRDI=LAGERVÆRDI+BEHOLDNING*KØBSPRIS    

O   OM (VA)                      OM (VA)                                       O

                                                                              

OTOTALNIVEAUER                                                                 O

                                                                               

O FELTER DER SKAL TOTALISERES:                                                 O

     #11   LAGERVÆRDI                                                          

 

 

 

 

   I eksemplet har vi valgt at udskrive leverandørkartoteket og pr.leverandør at summere dennes vare‑lagerværdi. Vi vælger et frifelt #7 til at indeholde lagerværdien, og dette felt udskrives og totaliseres på rapporten. Beregningerne opbygges på følgende måde:

 

 1.#7=0 Først nulstilles sum‑feltet for lagerværdi:

 

 2.START(VA.02), #1 herefter startes summeringen af records i varekartoteket, idet VA.02 angiver, at vi ønsker at gennemlæse kartoteket ifølge 2.index, hvilket er leverandørnummer‑nøglen. I forbindelse med START kommandoen defineres, hvilket felt, der skal anvendes som nøgle ved læsningen, på samme måde som ved READ kommandoen, i dette tilfælde felt 1, leverandørnummeret.

 

 3.NEXT(VA.02) med kommandoen NEXT læses en vare fra varekartoteket, og de næste beregninger foretages indtil der ikke er flere varer, hvorefter rapportgeneratoren springer til beregningslinien efter OM.

 

 4.#7=#7+VA#8*VA#4 Summeringer af lagerværdi foretages.

 

 5.OM(VA) og med kommandoen OM hoppes tilbage til NEXT linien, hvorved summeringen fortsætter, indtil der ikke er flere varer.

 

 Det bemærkes, at nøgleopbygningen angives i forbindelse med START kommandoen, og at denne ikke er nødvendig ved NEXT og OM kommandoerne (nøglen kan naturligvis også være automatisk defineret). Indexnummeret skal angives både ved START og NEXT kommandoen, såfremt man ikke anvender første index, hvorimod dette er overflødigt ved OM kommandoen.

 

 

 

12.40.1.     Betinget summering med START/NEXT/OM

 

   Summeringen af lagerværdi kan naturligvis gøres betinget med IF, f.eks.

 

 IF VA#7=1 LET #7=#7+VA#8*VA#4

 

 IF VA#7<>1 LET #8=#8+VA#8*VA#4

 

 hvorved man kan få opsplittet lagerværdien for alle varer i varegruppe 1 og alle andre varer. (Husk at nulstille både felt 7 og felt 8 før summeringen).

 

 

 

12.40.3.     Flere løkker af START/NEXT/OM inden i hinanden.

 

   Man kan inden i en sådan løkke af START/NEXT/OM have andre løkker af samme slags, såfremt systemet var opbygget således at beholdningen af en vare lå i et selvstændigt kartotek opdelt pr. lagersted (LA), kunne summeringen også foregå med en løkke over disse:

 

 

Figure 64  Flere løkker af START/NEXT/OM inden i hinanden.

 

                             1. #7=0

                             2. START (VA.02),#1

                             3. NEXT (VA.02)

                             4 .START (LA),VA#1

                             5. NEXT (LA)

                             6. #7=#7+LA#8*VA#4

                             7. OM (LA)

                             8. OM (VA)

                            

 

 

   På samme måde kan man indeni en sådan løkke have READ af andre kartoteker, f.eks. finde prisfaktoren for varens varegruppe.

 

 

 

12.40.5.     Selektion i forbindelse med START/NEXT/OM.

 

   Selektion i forbindelse med START/NEXT/OM kan typisk benyttes til oprydningskørseler. Man ønsker f.eks. at få en liste over alle leverandører, hvor man ikke har købt varer siden en indtastet pr.dato:

 

 

Figure 65  Leverandører ikke aktive siden d.30/6‑1986.

 

 

ODATO:14.01.87  * UDGÅEDE LEVERANDØRER *   PR.30.06.86   SIDE:   1             O

                                                                              

OLEV.NR. NAVN                                                                  O

 100     SORENCO A/S                                                           

O102     DEN DANSKE BANK                                                       O

 105     DANSK OLIE OG GAS                                                     

O111     DMS A/S                                                               O

 260     CLORIUS MÅLERSERVICE                                                 

O270     FIDUSIA A/S                                                           O

 

 

 

 

 

   Vi udnævner her frifeltet #7 til at styre selektionen og definerer denne som kun records, hvor #7 er lig nul, skal udskrives.

 

 Beregningerne defineres som følgende:

 

 

Figure 66  Selektion i forbindelse med START/NEXT/OM.

 

                     1. #7=0

                     2. START (VA.02),#1

                     3. NEXT (VA.02)

                     4. IF FND (VA#5)>FND (#PD) LET #7=1

                     5. OM (VA)

                    

 

 

 

   Felt 7 bliver således 1, såfremt leverandøren har een eller flere varer, hvor sidste købsdato er større end den ved start indtastede pr.dato, og sådanne leverandører udskrives ikke (bemærk datovendingen med FND, da datoerne her er på formen DDMMÅÅ).

 

12.41.       READH/LINIE kontoudtogs‑type rapport.

 

   Hvis vi ønsker at lave en rapport, hvor en leverandørs varer udskrives, defineres denne med funktion 1 med hovedkartoteket varekartoteket, altså 'posteringskartoteket'.

 

 

Figure 67  Varer pr.leverandør med READH og LINIE.

 

 

ODATO:14.01.87             * VARER PR.LEVERANDØR *        PR.14.01.87    SIDE 1O

                                                                              

ONR  NAVN                                                                      O

                        VARENR NAVN             BEHOLDNING  KØBSPRIS      VÆRDI

O100 SORENCO A/S                                                               O

                          0102 STOR FRÆSEMASKINE         0  10000,00       0,00

O                         1005 STANSEMASKINE            10   1500,00   15000,00O

                                                                               

O123 PITZNER AUTO A/S                                                          O

                          0110 AUTOBUSSER                1  60000,00   60000,00

O                                                                              O

 205 PRIVATBANKEN                                                              

O                         1001 PENGE,STORE SEDLER      100    500,00   50000,00O

                          2001 KREDITKORT               10     10,00     100,00

O                         2002 ID‑KORT                 200     10,00    2000,00O

                                                                              

O271 UNICEF                                                                    O

                          0101 CHOKOLADESTÆNGER        100      1,50     150,00

O                                                                              O

 GRANDE TOTAL                                          421  72021,50  127250,00

 

 

 

 

   På første linie af rapporten udskrives felterne LE#1 og LE#2, leverandørnr. og navn fra leverandørkartoteket. Herefter afsluttes denne linie (med cr.) og godkendes.

 

 Før næste linie defineres gives kommandoen LINIE, hvorved man fortæller rapportgeneratoren, at de allerede definerede linier kun skal udskrives, hver gang leverandøren skifter, de næstfølgende linier skal derimod udskrives for hver enkelt vare.

 

 Linien defineres nu med de felter fra varekartoteket, som man ønsker udskrevet.

 

 Som beregning skal man definere forbindelsen mellem kartotekerne:

 

 READH (LE), #3

 

 denne kommando virker på samme måde som den normale READ kommando, leverandørkartoteket læses altså med varekartotekets felt 3, leverandørnr., som nøgle. Desuden sker der det, at såfremt, og kun såfremt, der herved læses en ny leverandør, vil de først definerede linier, altså leverandørnr. og navn, blive udskrevet.

 

 For at få en fornuftig udskrift skal varekartoteket være sorteret efter leverandørnr., således at alle varer til samme leverandør kommer samlet, dette kan gøres ved at starte rapporten via index 2.

 

 Havde det istedet for været varegruppen, der skulle have styret rapporten, ville man have været nødt til at sortere listen, da varegruppen ikke er defineret som et index i systemet.

 

12.42.1.     Selektion i forbindelse med READH/LINIE

 

   Såfremt vi definerer en selektion på listen, således at varer med varegruppe 0 ikke udskrives, vil listen komme til at se ud som følger:

 

 

Figure 68  Selektion på varegruppe > 0.

 

 

ODATO:14.01.87             * VARER PR.LEVERANDØR *        PR.14.01.87    SIDE 1O

                                                                               

ONR  NAVN                                                                      O

                        VARENR NAVN             BEHOLDNING  KØBSPRIS      VÆRDI

O100 SORENCO A/S                                                               O

                          0102 STOR FRÆSEMASKINE         0  10000,00       0,00

O                         1005 STANSEMASKINE            10   1500,00   15000,00O

                                                                              

O123 PITZNER AUTO A/S                                                          O

                          0110 AUTOBUSSER                1  60000,00   60000,00

O                                                                              O

 205 PRIVATBANKEN                                                             

                          2001 KREDITKORT               10     10,00     100,00

O                         2002 ID‑KORT                 200     10,00    2000,00O

                                                                               

O271 UNICEF                                                                    O

                                                                              

OGRANDE TOTAL                                          221  71520,00   77100,00O

 

 

 

 

   Vi bemærker, at leverandørnr. 271 udskrives, da denne her vare er tilknyttet i systemet, også selv om der ikke findes varer, der skal udskrives på rapporten, disse er nemlig selekteret fra.

 

 For at undgå udskrift af sådanne leverandører er vi nødt til at styre overskriften også og ændre vores beregning til:

 

 IF #7<>0 READH (LE), #6

 

 således at leverandørkartoteket kun læses, hvis varegrupper er forskellig fra 0. Selektionen indkoorpereres således i læsningen.

 

 En anden måde at undgå 'nul‑leverandører' er at definere beregningen som en EFTER beregning, altså en beregning, der kun foretages for de varer, der opfylder selektionskriteriet. Dette gøres ved at indtaste kommandoen EFTER på beregningslinien før læsningen:

 

 

Figure 69  Selektion i forbindelse med READH/LINIE

 
 

                               1. EFTER

                               2. READH (LE),#6

                              

 

 

12.42.3.     Totaler i forbindelse med READH/LINIE

 

   Såfremt vi på rapporten ønsker en total af lagerværdien pr. leverandør:

 

 

Figure 70  Totaler ved START/NEXT/OM.

 

 

ODATO:14.01.87             * VARER PR.LEVERANDØR *        PR.14.01.87    SIDE 1O

                                                                              

ONR  NAVN                                                                      O

                        VARENR NAVN             BEHOLDNING  KØBSPRIS      VÆRDI

O100 SORENCO A/S                                                               O

                          0102 STOR FRÆSEMASKINE         0  10000,00       0,00

O                         1005 STANSEMASKINE            10   1500,00   15000,00O

                                                                               

OIALT 100                                                              15000,00O

                                                                               

O                                                                              O

 123 PITZNER AUTO A/S                                                         

O                         0110 AUTOBUSSER                1  60000,00   60000,00O

                                                                              

OIALT 123                                                              60000,00O

                                                                              

O                                                                              O

 205 PRIVATBANKEN                                                             

O                         2001 KREDITKORT               10     10,00     100,00O

                          2002 ID‑KORT                 200     10,00    2000,00

O                                                                              O

 IALT 205                                                               2100,00

O                                                                              O

 GRANDE TOTAL                                                          77100,00

 

 

 

 

   kan dette gøres ved at definere et subtotalniveau for hver gang, de første 3 cifre i varekartotekets nøgle 2 skifter, altså hver gang leverandørnummeret skifter.

 

12.43.       Rapportgeneratorens nøgleopbygnings‑rutine.

 

   En nøgle til et kartotek er altid et alfanumerisk tekstfelt på op til 30 karakterer.

 

 Programmøren har ved opbygning af kartoteket beskrevet, hvordan nøglen opbygges ud fra kartotekets felter, da disse felter tit er numeriske må der ske en form for konvertering fra tal til tekst før feltet kan anvendes som nøgle. Det er denne konvertering, som rapportgeneratorens nøgleopbygningsrutine tager sig af.

 

 For at spare diskplads kan programmøren desuden have 'pakket' tal sammen i nøglen, hvilket vil fylde det halve på disken og gøre programmerne dobbelt så komplicerede. Det er også normalt, at der er anvendt dele af felter eller tekstkonstanter i nøglerne.

 

 Det kan således være en temmelig kompliceret sag at få de forskellige kartoteksnøgler til at stemme, man er ihvertfald nødt til at have en dokumentation over systemets nøgler.

 

 Denne dokumentation kan man få programmøren til at indlægge på maskinen, således at rapportgeneratoren kender de forskellige nøgler i systemet, hvorved brugeren er fri for at spekulere over disse.

 

 Specielt skal man være opmærksom på om tal indgår i nøglerne med eller uden foranstillede nuller.

 

 Rapportgeneratorens nøgleopbygningsrutine aktiveres ved at skrive nøgledefinitionen umiddelbart efter READ (XX) uden mellemrum eller komma. Feltnumre angives uden # foran og tekstkonstanter skal anføres i gåseøjne (").

 

 Ved hjælp af bogstaver kan man specificere specialfunktioner såsom Pakning, Datovending og Zero (undertryk foranstillede nuller). Dele af felter angives på normal måde, for eksempel 10(5, 6) betyder karakter 5 til 6 af felt 10.

 

 En nøgle indeholder altid et lige antal karakterer, såfremt man har et femcifret kundenummer vil dette altid være lagret i systemet som 6 karakterer i nøglen. Denne ekstra karakter kan være en nul‑karakter, tallet 0 eller en blank. Med Space funktionen kan man udfylde nøglen med blanke. I det følgende vil den fulde syntax for denne nøgledefinition blive beskrevet efterfulgt af nogle eksempler herpå.

 

12.44.1.     Felter.

 

   Felter angives som feltnummer uden # foran:

 

 

Figure 71  Felter.

 

           10      = feltnummer 10

           10(5,6) = karakter 5‑6 af felt 10

           R       = Recordnummer (exakt)

           N       = Recordnummer (relativt til første data record)

           "XX"    = Tekstkonstant

          

 

 

 

12.44.3.     Funktioner.

 

   Funktioner angives umiddelbart efter feltet som et bogstav:

 

 

Figure 72  Funktioner.

 
 

              D       = Datovending (DDMMÅÅ ==> ÅÅMMDD som FND)

              P       = Pakning

              Z       = Zero, nulundertrykkelse

              S       = Space, et antal blanke

             

 

 

12.44.5.     Sammenstilling af felter og funktioner.

 

   Flere felter kombineres ved at adskille disse med komma. P funktionen kan anvendes for hvert enkelt felt eller alene uden feltnummer, i sidste tilfælde pakkes hele den indtil nu definerede nøgle. S funktionen kan kun anvendes til sidst og alene.

 

12.44.7.     Eksempler på nøgleopbygninger.

 

 

Figure 73  Eksempler på nøgleopbygninger.

 

         1.  1        Felt 1

         2.  1,2      Felt 1 efterfulgt af felt 2

         3.  1,2,P    Som ovenfor, hele nøglen pakket

         4.  1P,2     Felt 1 pakket efterfulgt af felt 2 upakket

         5.  1(3,4),2 Karakter 3 til 4 af felt 1 efterfulgt af felt 2

         6.  "01",1   Konstanten 01 efterfulgt af felt 1

         7.  1,S      Felt 1 med eventuelt efterstillede blanke

         8.  2,NP,S   Felt 2, relativt recordnummer pakket, blanke

        

 

 

 De to sidste nøgleopbygninger anvendes normalt af DATAMASTER, den første ved definition af en eentydig nøgle, den anden ved definition af en nøgle, hvor der må forekomme flere ens værdier af feltet.


 

 

 

 

 

 

 

 

 

 

 

               13.          Breve og rettelse af rapporter.



 

 

   Et brev er en rapport, hvor der udskrives een side på printeren (skærmen) for hver record i kartoteket, i modsætning til en rapport (liste), hvor der typisk kun udskrives een linie for hver record i kartoteket.

 

 På et brev kan man ligesom på en anden rapport definere selektioner, sortering og beregninger og altså f.eks. udskrive brevet til udvalgte kunder eventuelt sorteret op efter postnummer for at opnå portobesparelse. Der kan ikke defineres totaler på et brev, da dette ikke kan anses for at være relevant.

 

 Som eksemplar på breve kan nævnes:

 

 Labels

 

 Rykkerbreve/meddelelser

 

 Girokort, evt.med OCR linie

 

 Checks

 

 Etiketter

 

 specielt defineres labels som et brev med få linier pr.side.

 

14.1.        Definition af et brev.

 

   Et brev defineres ved at vælge funktion 6, hvorefter man skal indtaste rapportens stamoplysninger på nøjagtig samme måde som ved definition af en liste med funktion 1, se beskrivelse af denne. Dog skal der ikke angives nogen overskrift, da denne er irrelevant for et brev.

 

 Herefter får man stillet en blank skærm til rådighed, hvor man kan placere felter og tekst helt frit imellem hinanden og på denne måde opbygge et brev med f.eks. navn og adresse fra kartoteket og en fast tekst indeholdende f.eks. saldo. Da papiret kan være større både i højden og i bredden, end skærmen kan rumme, kan man ved hjælp af kommandoer flytte skærmsiden til en vilkårlig position på papiret, skærmen kan altså betragtes som et vindue, hvorigennem man kan se et udsnit af brevet.

 

14.3.        Skærm‑forespørgselsprogrammer.

 

   Et brev, der køres på skærm, kan anvendes som forespørgselsprogram, idet de faste tekster på brevet vises med svag lysstyrke, felterne fra kartoteket med stærk lysstyrke, og det er altid kun de 24 første linier af brevet, der vises, uanset om brevet er defineret længere.

 

 Når een record er vist på skærmen bliver man bedt om at taste cr for næste side, og herved kan man bladre sig igennem kartoteket. Der er også mulighed for at indtaste et nummer, f.eks. kundenummer, hvorved denne kunde vil blive vist på skærmen, og på denne måde kan programmet altså anvendes som et decideret forespørgselsprogram.

 

 Tastes PRINT vil man få udskrevet det brev, der er vist på skærmen, på printeren i sin helhed, dvs. eventuelt med mere end 24 linier på siden. Herved kan man f.eks. bladre igennem på skærmen og kun udskrive de breve, der godkendes.

 

 Tastes SLUT afsluttes forespørgselen.

 

14.5.        Brug af funktion 6 og 7.

 

   Der vises et skærmbillede som f.eks.:

 

 

Figure 74  Definition af et brev.

 

1...;....10...;....20...;....30...;....40...;....50...;....60...;....70...;....8

                                                                               1

                                                                               2

                                                                               3

                                                                               4

                                                                               5

                                                                               6

                                                                               7

                                                                               8

                                                                               9

          xxxxxxxxxxxxxxxxxxxxxxxx                                            10

          xxxxxxxxxxxxxxxxxxxxxxxx                                            11

          xxxxxxxxxxxxxxxxxxxxxxxx                                            12

                                                 Kbh.V    D.##.##.##          13

                                                                              14

                                                                              15

      VEDR.KONTONR.xxx.                                                       16

                                                                              17

                                                                              18

LINIE,POS: 17                                                                   

1...Ω....10...Ω....20...;....30...;....40...;....50...;....60...;....70...;....8

VEDR.KONTONR.#1 .                                                              

                                                                               

VI HAR DD.OPGJORT SALDOEN PÅ DENNE KONTO TIL KR.#6          .                  

                                                                               

 

 

 

 

   og man bliver placeret nederst på skærmbilledet i feltet LINIE, POS.

 

 Felterne vises altså på skærmen med deres feltformat, idet em række x‑er indikerer et tekstfelt, en række # eller ‑ markerer et numerisk felt. Man kan vælge en linie ved at indtaste nummeret på denne eller eventuelt linienummeret komma en position på linien, hvorved denne linie, den foregående og den næste vil blive vist nederst på skærmen, nu ikke med feltformater med derimod med feltnumre.

 

 Linien kan nu ændres, og i det øjeblik man taster cr. vil den nye linie blive placeret på skærmen, idet feltnumrene oversættes til de respektive feltformater, og man returnerer til LINIE, POS. Det er kun det antal karakterer, man indtaster, der bliver ændret, resten af linien bevares, ønsker man linien slettet, må man altså blanke denne ud. Man kan holde samme karakter ved at bruge ; tasten.

 

 Definitionen afsluttes ved at taste SLUT eller cr‑.

 

14.7.        Rettelse af brev eller rapport.

 

   Vælges funktion 7 kan man ændre brevet på nøjagtig samme måde, som det blev defineret, man har altså en skærmside til rådighed, hvor tekster/felter kan placeres som ønsket.

 

 Vælges funktion 7 på en rapportliste, defineret med funktion 1, får man ligeledes vist hele rapportens opbygning på skærmen (layout) og kan således ændre i dette.

 

 

Figure 75  Ændring af en rapport.

 

1...;....10...;....20...;....30...;....40...;....50...;....60...;....70...;....8

DATO:##,##,##  * PRISLISTE *  PR.##.##.##   SIDE:####                          1

                                                                               2

VARENR NAVN                 SALGSPRIS GRUPPENR                                 3

                                                                               4

xxxx   xxxxxxxxxxxxxxxxxxxx ######.##       ##                                 5

                                                                               6

                                                                               7

                                                                               8

                                                                               9

                                                                              10

                                                                              11

                                                                              12

                                                                              13

                                                                              14

                                                                              15

                                                                              16

                                                                              17

                                                                              18

LINIE,POS: PRINTER                                                             

1...;....10...;....20...;....30...;....40...;....50...;....60...;....70...;....8

PRINTER NR.? 1       (CR=$LPT,1=$RPL4)                                         

STARTPOSITION (CR=001) ?       SLUTPOSITION (CR=080) ?                          

ANTAL LINIER PR.SIDE (CR=051) ? 72                                             

                                                                                

 

 

 

 

   På denne måde kan man specielt ændre overskriftslinierne, evt. opbygge overskrifterne i flere linier, eller tilføje/fjerne felter på rapporten.

 

 Man skal dog være opmærksom på, at rapportgeneratoren har døbt liniernes betydning, idet rapporten blev defineret, og dette kan ikke ændres, man kan altså ikke tilføje eller slette nogen linier. For en rapport defineret med een linie med felter vil det således altid gælde, at linie 1 til 4 anvendes som overskriftslinier, linie 5 som den linie, der udskrives for hver record i kartoteket. Tilføjes ekstra linier vil disse ganske enkelt blive ignoreret, fjernes felterne fra linie 5 vil der blot blive udskrevet en blank linie for hver record i kartoteket.

 

 Ved hjælp af kommandoen PRINTER er det også muligt at ændre printertildelingen eller sidehøjden på en rapport. Man kan altså om ønsket placere felter i overskriftslinierne på en rapport, idet overskriften først udskrives, når første record fra kartoteket udskrives.

 

14.9.        Kommandoer i funktion 6 og 7.

 

   Man kan i LINIE, POS anvende følgende specialkommandoer:

 

14.10.1.      Linienr

 

   Tastes et linienr. vælges en linie og denne kan rettes, hvorefter linien vises på skærmen, idet skærmbilledet rulles op/ned, hvis den valgte linie ligger udenfor det valgte linienummerinterval.

 

14.10.3.      Linienr.,position

 

   Som ovenfor, linien kan rettes fra den angivne position.

 

14.10.5.      cr

 

   Skærmbilledet rulles een linie op.

 

14.10.7.      SLUT eller cr‑.

 

   Definitionen afsluttes.

 

14.10.9.      ? eller hjælp‑tasten

 

   Man kan se felterne i dette eller andre kartoteker, se også beskrivelsen af hjælpfunktionen under flere kartoteker.

 

14.10.11.      POS sæt startposition for skærmen

 

   Hermed kan man flytte skærmbilledet til at starte i en anden position på rapporten, såfremt denne er bredere end 80 karakterer.

 

14.10.13.      PRINT udskrift på printer.

 

   Rapportens layout udskrives på den printer, rapporten er tilknyttet. Dette kan specielt anvendes ved korrektur på fortrykte formularer.

 

14.10.15.      F formular fremføring

 

   Skifter een side frem på printeren, svarende til rapportens definerede sidehøjde.

 

14.10.17.      PRINTER definer printertildeling og sidehøjde

 

   Med denne kommando kan man dirigere rapporten til en bestemt printer (denne skal dog være defineret ved installation, normalt anvendes TAMOS printertildeling), foruden man kan ændre første og sidste printposition for linierne, dvs. specielt flytte rapportens venstre margin ind til højre.

 

 Desuden kan sidehøjden, dvs. antal linier pr.side, ændres, både for breve og andre rapporter.

 

14.10.19.     RASTER slå printraster til/fra

 

   Når man giver RASTER kommandoen første gang slås funktionen til, næste gang fra. Når rasteret er aktivt vises en markering over hele skærmen af positionerne, således at det er lettere at identificere de enkelte felt/tekst placeringer, og dette raster vil også blive udskrevet, såfremt man anvender PRINT kommandoen.

 

 

Figure 76  RASTER kommandoen aktiveret.

 

1...;....10...;....20...;....30...;....40...;....50...;....60...;....70...;....8

....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,....1

....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,....2

....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,....3

....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,....4

....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,....5

....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,....6

....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,....7

....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,....8

....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,....9

....,....!xxxxxxxxxxxxxxxxxxxxxxxx,....!....,....!....,....!....,....!....,...10

....,....!xxxxxxxxxxxxxxxxxxxxxxxx,....!....,....!....,....!....,....!....,...11

....,....!xxxxxxxxxxxxxxxxxxxxxxxx,....!....,....!....,....!....,....!....,...12

....,....!....,....!....,....!....,....!....,....Kbh.V,...D.##.##.##.!....,...13

....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,...14

....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,...15

....,.VEDR.KONTONR.xxx..,....!....,....!....,....!....,....!....,....!....,...16

....,.VI.HAR.DD.OPGJORT.SALDOEN.TIL.KR.‑‑‑‑‑‑‑‑‑#.##..,....!....,....!....,...17

....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,...18

LINIE,POS:                                                                     

1...;....10...;....20...;....30...;....40...;....50...;....60...;....70...;....8

                                                                               

                                                                                

                                                                               

                                                                                

 

 

 

 

14.10.21.

7.5.11.     MODE vis feltformater/numre eller navne.

 

   Ved hjælp af MODE kommandoen kan man definere, hvordan felterne skal vises på skærmbilledet samt ved udskrift med PRINT kommandoen, idet man bliver bedt om at indtaste et tal for:

 

 0=feltnumre vises

 

 1=felter vises ikke overhovedet, blankes ud istedet

 

 2=feltnavne vises, forsåvidt der er plads til dette

 

 3=feltformater vises (normalt)

 

 

 

 

Figure 77  Kommandoen mode 0,feltnumre.

 

1...;....10...;....20...;....30...;....40...;....50...;....60...;....70...;....8

                                                                               1

                                                                               2

                                                                               3

                                                                               4

                                                                               5

                                                                               6

                                                                               7

                                                                               8

                                                                               9

          #2                                                                  10

          #3                                                                  11

          #4                                                                  12

                                                 Kbh.V    D.#DD               13

                                                                              14

                                                                              15

      VEDR.KONTONR.#1 .                                                       16

      VI HAR DD.OPGJORT SALDOEN TIL KR.#6                                     17

                                                                              18

LINIE,POS:                                                                      

1...;....10...;....20...;....30...;....40...;....50...;....60...;....70...;....8

                                                                                

                                                                               

                                                                               

                                                                               

 

 

 

 

14.10.23.     IL eller LI indsæt en linie

 

   Med en af disse kommandoer kan man indsætte en linie før et bestemt linienr., idet resten af liniernes flyttes ned.

 

14.10.25.

7.5.13.     DL eller LD slet en linie

 

   Med en af disse kommandoer kan man slette en bestemt linie, idet resten af linierne på rapporten flyttes op.

 

14.10.27.     FORMAT ændring af format for frifelterne

 

   Første gang man anvender et af de 20 frifelter bliver man bedt om at indtaste et navn og et format for feltet (se beskrivelsen under definition af rapport). Ønsker man senere at ændre formatet for et sådant felt kan dette gøres med FORMAT kommandoen, idet man bliver bedt om at angive:

 

 FELTNR:

 

 NYT FORMAT:

 

 Funktionen kan kun anvendes på de 20 frifelter, ikke på selve kartotekets felter, og såfremt et frifelt først een gang er givet et alfanumerisk format kan dette ikke siden ændres, om nødvendigt må man istedet anvende et andet frifelt. Formatet for et felt i et kartotek kan kun ændres for denne rapport ved at flytte feltet over i et af frifelterne, således at et 30 karakters navn på denne måde kan udskrives som blot 20 karakterer.

 

14.11.        Specialfelter i et brev/rapport.

 

   Man kan foruden de normale felter:

 

 #xx=feltnr.xx fra hovedkartoteket

 

 KK#xx=feltnr.xx fra kartoteket KK.

 

 anvende følgende specialfelter:

 

14.12.1.      #DD dags dato

 

   Indtastet ved start af rapporten. (##.##.##)

 

14.12.3.      #PD pr.dato

 

   Indtastet som anden dato ved start af rapporten. (####) x(8);

 

14.12.5.      #PP sidenummer

 

   Tildeles automatisk fortløbende ved sideskift. (####) x0(13);

 

14.12.7.      #KA kartoteksnr.

 

   Kan kun anvendes for specialkartoteker, hvor kartoteksnavnet indeholder ? (se installationsvejledningen). (####)

 

14.12.9.      #SN systemnavn

 

   Kan anvendes såfremt rapportgeneratoren er installeret med flere systemer, f.eks. forskellige selskaber/kartotekssæt. Hentes som feltnr.1 fra DMS.RAPGEN.SYS, dvs. sat op ved installationen. (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) til T8$(159, 188);

 

14.12.11.      #SY systemnr.

 

   Som #SN, giver nummeret på det aktuelle system. (xxx) T8$(155, 157);

 

14.12.13.      #TI systemtid.

 

   Hentes fra maskinens indbyggede ur. (##.##.##) call 99, T2$;

 

14.12.15.      #NO programnummer

 

   Rapportens programnr., f.eks. for rapportnr. 15 er dette 1015. (####) oversættes til x(1);

 

14.12.17.      #SC skærmnummer

 

   Nummeret på den skærm, der har startet udskriften (##) x(10);

 

14.13.        Specialtegn (gåseøjne mm.).

 

   Teksten i en rapport må ikke indeholde gåseøjne ("") eller pil baglæns (<) , idet disse tegn er basic specialkarakterer og vil forårsage fejl ved generering af programmet. Anvend f.eks. ' (enkelt ping) for gåseøjne.

 

 En tekst kan ikke placeres umiddelbart til venstre for et felt, idet rapportgeneratoren ville opfatte dette som reference til et andet kartotek, f.eks. vil SALDO#7 opfattes som felt 7 fra kartoteket DO, skriv SALDO #7 istedet.

 

14.15.        Breve i flere versioner

 

   Denne facilitet i rapportgeneratoren er delvist udgået, idet den kun kan anvendes på systemer, der er installeret uden optimeringskoden er aktiveret, altså ikke i forbindelse med flere filer. Ønsker man at udnytte denne kan man på samme maskine få installeret et specielt rapportgeneratorsystem for dette.

 

 Ved oprettelse af et nyt brev med funktion 6 vil rapportgeneratoren spørge om man ønsker at definere flere forskellige versioner af brevet, og, i bekræftende fald, hvor mange versioner, der ønskes, og hvilket feltnr. der skal styre disse versioner.

 

 

Figure 78  Definition af brev i flere versioner.

 

DMS.RAPGEN     5 BREV                                6....DEFINER NYT BREV     

GR.... VAREGRUPPER                                                             

KU.... KURSER                                                                  

LE.... LEVERANDØRKARTOTEK                                                      

VA.... VAREKARTOTEK                                                            

                                                                                

                                                                               

                                                                                

                                                                               

                                                                                

                                                                               

                                                                               

                                                                               

                                                                               

KARTOTEKSNR.?  LE......LEVERANDØRKARTOTEK                                       

                                                                               

RAPPORT NAVN (FOR PROGRAMVALG)   ?   BREV                                       

                                                                               

ANTAL LINIER PR.SIDE  (CR=51)    ?   72            BRUGERNAVN ? XXX            

                                                                               

SKAL BREVET UDSKRIVES I FLERE VERSIONER (SPROG) (J/N) ? J                      

HVORMANGE VERSIONER FORUDEN DENNE ? 2                                          

RAPPORTERNE: 6 7 TILRETTES TIL VERSION 1,2...                                  

BEREGNINGER MM.DEFINERES PÅ DENNE RAPPORT.                                      

HVILKET FELTNR SKAL STYRE VERSIONSNUMMERET ? 5                                 

 

 

 

 

   Herefter definerer man brevet på normal måde, og dette bliver grundversionen. Rapportgeneratoren vil lagre en kopi af denne grundversion i de næstfølgende rapporter, svarende til det ønskede antal versioner. Disse rapporter skal således være frie når et brev med flere versioner defineres.

 

 Man kan nu ændre de forskellige versioner med funktion 7, rettelse af rapport, f.eks. oversætte disse til forskellige sprog eller lade et rykkerbrev blive skrappere og skrappere.

 

 Det felt, der styrer versionerne, skal være en kode med værdien 0, 1, 2 osv., således at brevets version 1 udskrives for kode 1, version 2 for kode 2 etc., falder koden udenfor en defineret version udskrives grundversionen. Styrefeltet kan være et beregnet felt.

 

 Kun grundversionen af rapporten kan startes, ligesom beregninger, selektioner og sortering skal defineres på denne. De øvrige versioner er kun slaveversioner, der styres af grundversionen, og kan ikke behandles selvstændigt.

 

 Der kan max.defineres 9 versioner foruden grundversionen.

 

 Hver version kan knyttes til en selvstændig printer, girokort og checks kan således udskrives i samme kørsel såfremt man har 2 printere til rådighed.

 

14.17.        Nyttige linier og positioner

 

   En A4 side er 72 linier høj og 80 karakterer bred, undgå dog at skrive i position 80, da dette kan bevirke dobbelt linieskift.

 

 En normal printside er 132 karakterer bred og 51 linie høj.

 

 Girokort er normalt 24 linier.

 

 Årsopgørelser til skattevæsenet er normalt 48 linier.

 

 En normal rudekuvert har adressefeltet startende på linie 10 i position 10.

 

 Labels er mellem 8 og 12 linier. Postvæsenet tillader udskrift af kundenr. øverst på en label.



 

 

 

 

 

 

 

 

 

 

 

         15.          Kopiering,sletning og dokumentation.



 

 

16.1.        Kopiering af en rapport.

 

   En rapport kan kopieres til en anden ved hjælp af funktion 10, hvor man angiver:

 

 

Figure 79  Kopiering af en rapport.

 
 

                              FRA RAPPORT NR:

                              TIL RAPPORT NR:

                              NYT RAPPORT NAVN:

                              NYT BRUGERNAVN:

                             

 

 

   hvorefter rapporten kopieres.Første gang den nye rapport startes vil programmet blive genereret, dvs.selve basic programmet kopieres ikke.Kopifunktionen kan specielt udnyttes til at tage en kopi af en bestående rapport, man ønsker at udbygge, men for alt i verden ikke ødelægge, og herefter udbygge kopien.

 

 

Figure 80  Kopiering af en rapport.

 

DMS.RAPGEN                                          10.....KOPIERING           

  1 PRISLISTE                                                                  

  2 LAGERVÆRDILISTE                                                            

  3 DÆKNINGSGRADER                                                             

  4 PRISBEREGNING                                                              

  5 LABELS TIL LEVERANDØRER                                                    

  6 SALDOLISTE                                                                  

  7 VARELISTE                                                                  

  8 VAREGRUPPELISTE                                                             

  9 LEVERANDØRLISTE                                                            

10 KURSLISTE                                                                  

11 VARER PR.LEVERANDØR                                                        

                                                                               

                                                                               

                                                                               

                                                                                

                                                                               

                                                                                

                                                                               

                                                                                

                                                                               

                                                                               

                                                                               

RAPPORT NUMMER ? 2   TIL RAPPORTNR.? 12                                        

NYT RAPPORTNAVN ? VEJET LAGERVÆRDI   NYT BRUGERNAVN ? YYY                       

 

 

 

 

16.2.1.      Kopiering af rapporter mellem systemer.

 

   En speciel facilitet er implementeret for kopiering mellem forskellige rapportgeneratorsystemer.

 

Denne kan naturligvis kun finde anvendelse, hvis rapportgeneratoren er installeret med flere systemer, hvor kartotekerne for disse systemer er ens, for eksempel for at have mere end 88 rapporter til rådighed.

 

Man skal være i det system, man ønsker at kopiere en rapport FRA, som TIL rapport kan man herefter angive systemnummer komma rapportnummer, f.eks.l0, 2 giver system 10 rapport 2.

 

16.3.        Sletning af en rapport.

 

   Ved hjælp af funktion 5 kan man slette en rapport, dog skal man først svare ja til spørgsmålet SLET (J/N) således at man ikke ved en fejltagelse sletter en forkert rapport.

 

 Sletningen kan også bruges på en speciel måde, måske især af programmøren ved installation af rapportgeneratoren, idet man kan svare nej til at slette rapporten, herved bliver rapportdefinitionerne naturligvis bevaret, men til gengæld slettes det genererede basic program for rapporten.Dette vil således blive genereret igen ved næste start af rapporten, hvorved eventuelle ændringer i standardrutiner eller read‑statements vil blive aktive i det nygenererede program.

 

 Dog skal man være opmærksom på, at read‑statements for andre kartoteker knyttes til rapporten idet beregningslinien READ (xx) indtastes, der lagres en kopi af disse i rapportens tekstfil DMT10xx, for at få nye versioner af disse ind i en rapport er man nødt til at vælge funktion 4, beregninger, og herefter godkende alle beregningslinier, hvilket lettest gøres ved at taste 99 i OK (J/N/I).

 

 

Figure 81  Sletning af en rapport.

 

DMS.RAPGEN                                           5.....SLET EN RAPPORT     

  1 PRISLISTE                                                                  

  2 LAGERVÆRDILISTE                                                            

  3 DÆKNINGSGRADER                                                              

  4 PRISBEREGNING                                                              

  5 LABELS TIL LEVERANDØRER                                                     

  6 SALDOLISTE                                                                 

  7 VARELISTE                                                                  

  8 VAREGRUPPELISTE                                                            

  9 LEVERANDØRLISTE                                                            

10 KURSLISTE                                                                  

11 VARER PR.LEVERANDØR                                                        

                                                                                

                                                                               

                                                                               

                                                                               

                                                                               

                                                                               

                                                                               

                                                                                

                                                                               

                                                                                

                                                                               

RAPPORT NUMMER ? 5 LABELS TIL LEVERANDØRER   SLET (J/N) ?                      

                                                                               

 

 

 

 

16.5.        Dokumentation af rapportdefinitionerne

 

   Med funktion 8 kan man udskrive dokumentation for rapportdefinitionerne for een eller flere rapporter.Man bliver bedt om at angive rapportnr., og her kan naturligvis på normal måde indtastes et rapportnr. Der kan også angives en række rapporter, hvor hvert rapportnummer adskilles med komma, eller et interval af rapporter med minus mellem laveste og højeste nr.

 

 F.eks.vil 5, 10‑13, 7 bevirke udskrift af rapporterne 5, 10, 11, 12, 13 og 7.

 

 

Figure 82  Udskrift af definitioner.

 

DMS.RAPGEN                                       8.....UDSKRIFT AF DEFINITIONER

  1 PRISLISTE                                                                  

  2 LAGERVÆRDILISTE                                                            

  3 DÆKNINGSGRADER                                                             

  4 PRISBEREGNING                                                              

  5 LABELS TIL LEVERANDØRER                                                    

  6 SALDOLISTE                                                                  

  7 VARELISTE                                                                  

  8 VAREGRUPPELISTE                                                             

  9 LEVERANDØRLISTE                                                            

10 KURSLISTE                                                                  

11 VARER PR.LEVERANDØR                                                        

                                                                               

                                                                               

                                                                               

                                                                               

                                                                               

                                                                               

                                                                               

                                                                               

                                                                               

                                                                               

                                                                               

RAPPORT NUMMER ? 1‑2,12  SKAL FELTOVERSIGT UDSKRIVES (J/N/S) ? J               

                                                                               

 

 

 

 

   Når man har angivet den/de rapporter, der skal dokumenteres, skal man svare på spørgsmålet:

 

SKAL FELTOVERSIGT UDSKRIVES (J/N/S)?

 

 N=Feltoversigt udskrives ikke.

 

 J=Der udskrives en oversigt med 1 side pr.refereret kartotek med en liste over felterne i kartoteket, altså en noget større dokumentation.

 

 S=Som J, for hvert felt udskrives også den basic variabel, som rapportgeneratoren anvender for feltet.

 

 D=DUMP, fungerer som S, efter udskriften af feltoversigten udskrives også et dump af det genererede program, dog kun hvis et sådant findes.Denne funktion bruges normalt kun i forbindelse med fejlrapporter eller andre spørgsmål til programmøren.

 

 

Figure 83  Rapportdefinitionen for vejede totaler.

 

 

 

ODMS.RAPGEN        RAPPORT NR.12   VEJET LAGERVÆRDI       JAN 14, 1987 11:34:03O

                                                                              

OPRINTER:$LPT   STARTPOSITION:001   ANTAL LINIER PR.SIDE:51                    O

                                                                              

OKARTOTEK: 1 VA    VAREKARTOTEK               8/CH.VAKA#                       O

                                                                              

O                                                                              O

   1...,....10...,....20...,....30...,....40...,....50...,....60...,....70...,.

O1:DATO:#DD              * VEJET LAGERVÆRDI *         PR.#PD           SIDE:#PPO

 2:                                                                            

O3:VARENR NAVN                  KØBSPRIS BEHOLDNING    LAGERVÆRDI         VEJETO

 4:                                                                            

O5:#1     #2                   #4           #8      #11               #12      O

   1...,....10...,....20...,....30...,....40...,....50...,....60...,....70...,.

O                                                                              O

 SELEKTIONER:                                                                 

O                                                                              O

 BEREGNINGER:                                                                 

O   #11=#8*#4                    LAGERVÆRDI=BEHOLDNING*KØBSPRIS                O

    #12=#11%#13                  VEJET=LAGERVÆRDI%TOTAL VÆRDI                 

O   #12=FNR(#12)                 VEJET=FNR(VEJET)                              O

                                 NÅR 10    KUN FØRSTE PASS   ALTID            

O   #13=#13+#11                  TOTAL VÆRDI=TOTAL VÆRDI+LAGERVÆRDI            O

                                                                              

OLISTEN KRÆVER GENNEMLÆSNING AF KARTOTEKET FOR VEJEDE TOTALER.                 O

 TOTALNIVEAUER                                                                 

O                                                                              O

  SKAL LISTEN SORTERES (J/N) ? N                                              

O                                                                              O

  VEJEDE TOTALER (KRÆVER EXTRA GENNEMLØB) (J/N) ? J                           

O                                                                              O

  TOTAL‑NIVEAU: FELTNR. ? 1(1,2)  VARENR  TOTAL NIVEAU (J/N) ? J              

O                                         TOTAL NAVN ? VAREGR SIDESKIFT (J/N) ?O

                                                                              

O SKAL TOTALER BEREGNES FØR UDSKRIFT (J/N) ? N                                 O

                                                                              

O FELTER DER SKAL TOTALISERES:                                                 O

     #11   LAGERVÆRDI                                                         

O    #12   VEJET                                                               O

                                                                              

 

 

 

 

 

 

Figure 84  Feltoversigt ved dokumentation af en rapport.

 

 

 

OKARTOTEK:VA   VAREKARTOTEK              8/CH.VAKA#                            O

   1 VARENR                     4     AAAA                                    

O  2 NAVN                      20     AAAAAAAAAAAAAAAAAAAA                     O

   3 SALGSPRIS                 6,2    ######.##                               

O  4 KØBSPRIS                  6,2    ######.##                                O

   5 SIDSTE KØBSDATO           ,6,    ##,##,##                                

O  6 LEV.NR.                    3     AAA                                      O

   7 GRUPPENR                  2,     ##                                      

O  8 BEHOLDNING                ‑6,    ‑‑‑‑‑‑#                                  O

   9 ALTERNATIV LEV            3,     ###                                     

O 10 FRIFELT                   ‑6,2   ‑‑‑‑‑‑#.##                               O

  11 LAGERVÆRDI                ‑9,2   ‑‑‑‑‑‑‑‑‑#.##                           

O 12 VEJET                     ‑9,2   ‑‑‑‑‑‑‑‑‑#.##                            O

  13 TOTAL VÆRDI               ‑9,2   ‑‑‑‑‑‑‑‑‑#.##                           

O 14 @FRI                      ‑9,2   ‑‑‑‑‑‑‑‑‑#.##                            O

  15 @FRI                      ‑9,2   ‑‑‑‑‑‑‑‑‑#.##                           

O 16 @FRI                      ‑9,2   ‑‑‑‑‑‑‑‑‑#.##                            O

  17 @FRI                      ‑9,2   ‑‑‑‑‑‑‑‑‑#.##                            

O 18 @FRI                      ‑9,2   ‑‑‑‑‑‑‑‑‑#.##                            O

  19 @FRI                      ‑9,2   ‑‑‑‑‑‑‑‑‑#.##                           

O 20 @FRI                      ‑9,2   ‑‑‑‑‑‑‑‑‑#.##                            O

  21 @FRI                      ‑6,    ‑‑‑‑‑‑#                                 

O 22 @FRI                      ‑6,    ‑‑‑‑‑‑#                                  O

  23 @FRI                      ‑6,    ‑‑‑‑‑‑#                                 

O 24 @FRI                      ‑6,    ‑‑‑‑‑‑#                                  O

  25 @FRI                      ‑6,    ‑‑‑‑‑‑#                                 

O 26 @FRI                      ‑6,    ‑‑‑‑‑‑#                                  O

  27 @FRI                      ‑6,    ‑‑‑‑‑‑#                                 

O 28 @FRI                      ‑6,    ‑‑‑‑‑‑#                                  O

  29 @FRI                      ‑6,    ‑‑‑‑‑‑#                                 

O 30 @FRI                      ‑6,    ‑‑‑‑‑‑#                                  O

 

 

 

 

 

 

   Dokumentationen udskrives altid på den til skærmen knyttede printer ($LPT), dog kan man i forbindelse med spørgsmålet om feltoversigt angive en anden printer, såfremt dette er nødvendigt:

 

 N, $ORDP bevirker udskrift på printeren $ORDP

 

 N;001131080, $ORDP sætter også printer‑open parametrene.

 

 Specielt for test kan lampe 4 (R4) tændes, hvorved dokumentationen udskrives på skærmen.

 

16.7.        Andre funktioner.

 

   Foruden de normale funktioner 1 til 10 for vedligeholdelse af rapporter kan man anvende en række specialfunktioner for kommunikation med printerne, operativsystemet etc.

 

 

Figure 85  Rapportgeneratorens funktionsvalg.

 

DMS.RAPGEN                                                                      

                   KODE     FUNKTION                                           

                     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                                          

                     F......FORMULARFREMFØRING                                 

                     STOP...STOP AF UDSKRIFT                                   

                     INDTAST KODE:                                             

                                                                               

 

 

 

 

16.8.1.      Formularfremføring.

 

   F giver 2 siders formularfremføring på skærmens printer ($LPT).

 

 F1, F2, F3, F4, F5 giver formularfremføring på printer 1‑5 iflg.definitionerne i DMS.RAPGEN.SYS.

 

 TOFx giver x siders formularfremføring på skærmens printer ($LPT).

 

 

 

16.8.3.      Afslutning.

 

   SLUT bevirker at rapportgenerator‑sessionen afsluttes og man vender tilbage til den normale selector, denne er sat op ved hjælp af backchain parameteren i DMS.RAPGEN.SYS.

 

 cr i funktionsvalget vil også bevirke afslutning.

 

 

 

16.8.5.      Skift til andet system.

 

   SYSTEM giver en oversigt på skærmen over de forskellige systemer, der er installeret på maskinen, og man kan herefter udvælge det system, man ønsker at anvende.Denne kommando anvendes normalt kun når rapportgeneratoren er installeret med flere systemer f.eks.for at have mere end 88 rapporter.

 

 Rapportgeneratoren vil flytte det valgte system, sat op med DMS.RAPGEN.SYS, fra den pågældende record i filen 0/CHSYSTEM ned i common‑area.

 

 

 

16.8.7.      Stop af baggrundsporten.

 

   Ved hjælp af denne kommando kan man stoppe et program, der kører på baggrunds (phantom)porten.

 

 Man skal være yderst varsom med denne kommando, da det er muligt at stoppe et hvilket som helst program, også selv om dette ikke er et rapportgeneratorprogram, det er endda muligt at stoppe en skærm, der kører et helt andet program.

 

 For installationer på STAR systemer er denne kommando derfor ikke tilladt.

 

 STOP Stopper ethvert program, der måtte køre på phantomporten. Nummeret på phantomporten er angivet i DMS.RAPGEN.SYS.

 

 STOP EXEp Stopper ethvert program, der måtte køre på port nr.p. Denne kommando anvendes normalt kun i forbindelse med store installationer, hvor der anvendes flere baggrundsporte.

 

 Det må bemærkes, at før en baggrundsport overhovedet kan anvendes efter at systemet er startet (IPL), skal denne stoppes.Dette er normalt indlagt i forbindelse med den normale dagsstart man kan altså også gøres manuelt med STOP kommandoen såfremt dette ikke skulle være tilfældet.

 

 

 

16.8.9.      Jobkø.

 

   Ved hjælp af Q kommandoen er det muligt at skifte til DMS jobkø programmet, såfremt dette er installeret på maskinen (dette er ikke det samme som TAMOS jobkø).Rapporter kan være indsat i denne kø ved hjælp af Q kommandoen i forbindelse med start af en rapport (funktion 9) ved spørgsmålet START (J/N/S/P).

 

 

 

16.8.11.      Scope og systemprogrammer.

 

   # bevirker chain til scope såfremt dette er tilladt for det anvendte password i operativsystemet.

 

 #xxxx bevirker chain til programmet xxxx.



 

 

 

 

 

 

 

 

 

 

 

                        17.          Start af en rapport.



 

 

18.1.        Brug af funktion 9.

 

   Når funktion 9 for start af en rapport vælges får man følgende skærmbillede frem:

 

 

Figure 86  Start af udskrift

 

DMS.RAPGEN     1 PRISLISTE                    9.....START AF UDSKRIFT          

                                                                               

                                                                               

    DAGS DATO ?               060187                                           

                                                                               

    PR.  DATO ?               060187                                           

                                                                               

    START FRA ?                                     INDEX:                     

                                                    1:VARENR                    

    STOP  VED ?                                     2:LEVERANDØRNR             

                                                                                

                                                                               

                                                                                

                                                                               

                                                                               

                                                                               

                                                                               

                                                                                

                                                                               

                                                                                

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) ?                                                              

                                                                               

                                                                               

 

 

 

 

   og man indtaster disse startoplysninger samt bestemmer, hvorvidt rapporten skal køres på skærm eller printer.

 

 For STAR systemer vil billedet se således ud:

 

 

Figure 87  STAR systemers opstartsbillede.

 

DMS.RAPGEN     1 PRISLISTE                    9.....START AF UDSKRIFT          

                                                                               

                                                                               

         PROGRAM:     1 PRISLISTE                                              

                                                                               

         UDSKRIFT ELLER DANNELSE AF SPOOL (U/K/D):                             

         SKAL DEN GAMLE SPOOLFIL SLETTES (J/N):                                 

         RESTART FRA:                      TIL:                                

                                                                                

                                                                               

         DIREKTE/KOPI ELLER UDSKRIFT VIA SPOOL (D/K/S):                        

                                                                               

         DAGS DATO (ÅÅMMDD):                                                   

         PR.  DATO (ÅÅMMDD):                                                   

                                                                               

         FRA OG MED NR.:                                                        

         TIL OG MED NR.:                                                       

                                                                                

         LAVESTE TOTAL NIVEAU (0‑1):                                           

         BAGGRUND (J/N/S):                                                     

         TESTPRINT (J/N):                                                      

                                                                               

                                                                               

                                                                               

                                                                                

 

 

 

 

   Herefter startes rapporten, idet rapportgeneratoren første gang en rapport startes vil generere et basic program til at udskrive denne (hvilket tager ca. 30 sekunder) og save dette på disken, således at det ligger klart til næste gang rapporten startes. Ændrer man i rapportdefinitionerne vil dette basic program blive fjernet og således genereret igen med ændringerne ved næste start.

 

 Idet programmet genereres foretages en kontrol af, at alle beregningslinier m.v. overholder basic syntaxen, er dette ikke tilfældet får brugeren en fejlmeddelelse og må rette definitionen, inden rapporten kan startes. Denne kontrol foretages af maskinens basic selv, og rapportgeneratoren har således automatisk indbygget de fremtidige udvidelser, der evt. måtte komme heri.

 

 Køres rapporten på skærmen bliver man bedt om at taste cr. for hver skærmside. Køres en rapport på printer via skærmen bliver man blot bedt om at taste cr. ved afslutningen af rapporten. Køres rapporten på baggrundsporten (phantomporten) får man en meddelelse på skærmen når udskriften er færdig, også selv om man på dette tidspunkt ikke skulle befinde sig i rapportgenerator‑systemet.

 

 En rapport kan startes, før man har defineret denne færdigt, således at man hen ad vejen kan godkende f.eks. layout før man definerer sine beregninger, eller først definere en tidskrævende sortering til sidst, når resten af rapporten er godkendt. Det må altid betragtes som god skik at køre en lille testkørsel på sin nydefinerede rapport over skærmen indenfor et lille nummerinterval, før man starter en stor kørsel. Skulle man være så uheldig slet ikke at få nogen records udskrevet, bør man checke at der indenfor det angivne interval virkelig findes records, der opfylder de angivne selektions‑kriterier, og eventuelt køre over et større interval eller kople selektionerne helt fra for test af dette.

 

 I det følgende beskrives de enkelte parametre i detaljer:

 

18.2.1.      Dags dato

 

   Felterne for henhv. dags dato og pr. dato udskrives normalt på første overskriftslinie på rapporten og anvendes ikke til andet, medmindre man har defineret beregninger eller selektioner på disse. #DD.;

 

 Kvitterer man blot i dette felt fås datoen fra maskinens indbyggede ur. Normalt vil denne dato vendes som ÅÅMMDD, for systemer installeret af DMS vil denne dog normalt være DDMMÅÅ.

 

 Der foretages ikke nogen decideret datovalidering, man kan altså indtaste datoen retvendt eller omvendt som man ønsker eller som det passer bedst for de definerede beregninger.

 

18.2.3.      Pr.dato

 

   Indtastes på samme måde som dags dato ovenfor.

 

 Pr.datoen anvendes typisk, såfremt man vil definere beregninger eller selektion på et datofelt.

 

18.2.5.      Start fra og stop ved

 

   I felterne start fra og stop ved kan man angive det nummerinterval i kartoteket, hvorpå rapporten skal køres, f.eks. fra kundenummer til kundenummer Tastes blot cr. i start Tastes blot cr. i start fra/stop ved køres rapporten på hele kartoteket.

 

 Man kan nøjes med at indtaste en del af nummeret, idet udskriften altid vil starte fra det nummer, der er højere end eller lig med det indtastede, og slutte når kartotekets nøgle bliver større end stop værdien.

 

 Det er nødvendigt, at man kender lidt til nøgleopbygningen for sine kartoteker for at kunne angive start og stopværdierne, f.eks. om et kundenr. på 5 cifre indeholder foranstillede nuller eller ej, da start/stop ellers ikke vil fungere efter hensigten.

 

 I feltet start fra kan man desuden angive:

 

18.2.6.1.    x: Valg af index ved start fra.

 

   Arbejder man med et kartotek med flere index kan man i start fra indtaste f.eks. 2:4711, hvorved udskriften vil køre iflg. index 2 startende fra nr. 4711. Stop ved angives som normalt, uden indexnr.

 

 For DATAMASTER kartoteker vil rapportgeneratoren til højre for start fra feltet vise en oversigt over de mulige index for det pågældende kartotek. Programmøren har ved installation mulighed for at indlægge en tilsvarende facilitet for systemets andre kartoteker, men dette er ikke normalt standard.

 

18.2.6.3.    SORT anvend samme sortering som sidst

 

   Når man starter en sorteret rapport vil denne opbygge et sorteringskartotek før selve udskriften starter, hvilket naturligvis tager noget tid såfremt det er et stort kartotek, der skal sorteres. Ønsker man senere at køre samme eller en anden rapport på samme kartotek med samme sortering kan man spare denne sorteringstid ved at taste SORT i start fra og ingenting i stop ved, hvorved rapportgeneratoren vil anvende det allerede opbyggede sorteringskartotek.

 

 Det er op til brugeren selv at sørge for, at sidste sortering virkelig er foregået på samme kartotek, er dette ikke tilfældet vil udskriften komme i helt tilfældig orden, eventuelt kan 'nul‑records' blive udskrevet og basic fejl 51 fremkomme under kørselen.

 

 Man skal være opmærksom på, at selektionerne på en rapport udføres før sorteringsnøglen opbygges, er den rapport, der danner sorteringskartoteket, således selekteret, vil næste rapport, der startes med SORT, kun behandle de records, der opfylder den første rapports selektionskriterier.

 

18.2.7.      Ekstra data ved opstart.

 

   Såfremt man i beregningerne eller selektionerne har anvendt et eller flere af felterne #D1 til #D7 eller #DA1 til #DA7 vil man ved start af rapporten blive bedt om at indtaste værdierne for disse felter:

 

 

Figure 88  Data ved start

 

DMS.RAPGEN     1 PRISLISTE                    9.....START AF UDSKRIFT          

                                                                               

                                                                               

    DAGS DATO ?               060187                                            

                                                                               

    PR.  DATO ?               060187                                            

                                                                               

    START FRA ?                                     INDEX:                     

                                                    1:VARENR                   

    STOP  VED ?                                     2:LEVERANDØRNR             

                                                                               

    FRA GRUPPE:               1                                                

    TIL GRUPPE:               5                                                

                                                                               

                                                                               

                                                                               

                                                                               

                                                                               

                                                                               

                                                                               

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) ?                                                              

                                                                               

                                                                                

 

 

 

 

   Denne funktion kan specielt være nyttig til at bestemme selektionernes minimum/maximum idet rapporten startes.

 

 Man kan få knyttet en tekst til et sådant felt ved at kalde et af frifelterne #D1tekst, denne tekst vil så vises istedet for teksten DATA 1 og give operatøren vejledning i, hvad der skal indtastes.

 

18.2.9.      Advarsel om sortering/vejede totaler.

 

   Såfremt rapporten er sorteret eller der er defineret vejede totaler vil man blive advaret om dette idet rapporten startes, således at man ikke bliver utålmodig fordi der går et stykke tid, før udskriften starter.

 

 Selvom en rapport måske kun skal sortere 2 records, skal der først foretages en oprydning af sorteringskartoteket fra sidste kørsel af en sorteret rapport, og hvis denne har været på 10.000 records kan det godt tage et par minutter.

 

 Man kan ikke starte en sorteret rapport, såfremt der allerede kører en rapport, der udfører sortering, idet sorteringskartoteket i så fald vil være låst.

 

18.2.11.      Laveste total niveau.

 

   Normalt vil man blot taste cr.her, hvorved hele rapporten udskrives.

 

 Der er mulighed for at angive, at man kun ønsker totalerne for en rapport udskrevet, således at selve specifikationen af de enkelte records i kartoteket udelades.

 

 1 refererer til første subtotal, 2 til næste og så fremdeles. Er der ikke subtotal niveauer på rapporten vil 1 bevirke, at kun grande totalen udskrives.

 

18.2.12.1.    Undertrykkelse af udskrift.

 

   Specielt for rapportgenerator‑programmer med tilbageskrivning i kartoteket, f.eks. ved DATAMASTER systemer, bevirker angivelse af laveste total niveau 9 at rapporten køres helt uden udskrift på printeren, dvs.kun den angivne opdatering foretages.

 

18.2.13.      Kartoteksnr.

 

   Dette spørgsmål vil normalt kun fremkomme ved specialinstallationer, f.eks. klientbogføring, hvor man på samme account har mange forskellige variabter af samme kartotek.

 

 Såfremt programmøren har defineret et kartoteksnavn, der indeholder ?, vil brugeren blive bedt om at indtaste kartoteksnummeret ved opstart, det indtastede vil erstatte ? når kartoteket åbnes.

 

 Herved kan samme rapport og system køres på mange forskellige kartoteker.

 

 

 

18.2.15.      Start på skærm/printer/baggrundsport.

 

   Man angiver her, hvorvidt programmet skal køres på skærm eller printer:

 

 J=Ja, rapporten startes på baggrundsporten (phantomporten) og udskriften kommer på den hertil knyttede printer. Samtidig med rapporten kører vil skærmen være fri til andet brug.

 

 S=Skærm, rapporten køres på skærm uden printer, dvs.listen vises på skærmen.

 

 P=Print, rapporten køres på skærmen med udskrift på skærmens tildelter printer.

 

 1‑3=Som J, rapporten startes på den angivne baggrundsport.

 

 Q=Indsæt i jobkø. Rapporten indsættes i systemets jobkø, enten TAMOS jobkø, såfremt denne er aktiveret, eller DMS.JOBQUEUE. Se beskrivelsen af jobkøen for yderligere parametre såsom prioritet for denne kommando.

 

 

 

18.2.17.      Testprint

 

   Såfremt man svarer J til udskrift af testprint vil der udskrives een side af rapporten på printeren, således at man kan indstille især fortrykte formularer, hvorefter spørgsmålet om testprint stilles påny, dvs.testprintet kan gentages indtil formularen er justeret.

 

 Rapporten starter når man svarer N til testprint.

 

 På systemer med meget lidt memory (KB) vil testprint af store breve ikke være mulig.

 

 

Figure 89  Eksempel på testprint.

 

 

ODATO:##.##.##               * VARELISTE *             PR.##.##.##    SIDE:####O

                                                                              

ONR   NAVN                  SALGSPRIS  KØBSPRIS     DATO LEV ALT GR BEHOLDNING O

                                                                               

Oxxxx xxxxxxxxxxxxxxxxxxxxx ######.## ######.## ##,##,## xxx ### ##    ‑‑‑‑‑‑# O

 

 

 

 

 

18.3.        Generering af programmet.

 

   Første gang en rapport startes vil der blive genereret et basic program til at udskrive denne, programmet saves på disken og kaldes direkte næste gang rapporten startes uden ændringer. Genereringen foretages i 4 tempi:

 

 Programmet genereres

 

 Programmet optimeres

 

 Programmet loades

 

 Programmet startes

 

 Under genereringen kombineres brugerens rapportdefinitioner såsom beregninger m.v. med rapportgeneratorens rutiner til et egentligt basic program.

 

 Under optimeringen dannes print linier for rapportens layout m.v., dvs. samtlige parameterstyringer af rapporten fjernes for at gøre programmet hurtigere. Denne fase kan udelades såfremt en parameter i rapportgeneratorsystemet angiver dette.

 

 Ved loadningen overgives det færdige program til operativsystemets basic, der foretager kontrol af de indtastede beregninger m.m. og saver dette på disken såfremt programmet er fejlfrit. Denne save kan foregå normalt eller optimeret iflg. en parameter i rapportgeneratorsystemet. Når programmet startes kaldes dette basicprogram og brugerens forskellige kartoteker åbnes via et specielt opstartsmodul. foregår i DMS.RAPGEN.99.;

 

18.5.        Betjening af baggrundsporte (phantomporte).

 

   En baggrundsport fungerer som en ekstra skærm, som rapporten kan startes på, og samtidig vil skærmen være fri til anden brug.

 

 Normalt vil der kun være een af denne slags baggrundsporte på systemet, og denne vil have skærmnummer 1.

 

 Programmøren kan om ønsket configurere flere baggrundsporte, og hvert rappportgeneratorsystem sættes herefter op med sin normale baggrundsport, hvor udskriften starter, når man svarer J til start. Desuden kan man dirigere udskriften til en bestemt port blot ved at indtaste nummeret på den pågældende istedet for J.

 

 Såfremt der allerede kører et program på baggrundsporten vil man få meddelelse om at baggrundsporten er optaget og blive spurgt om man ønsker at prøve igen, dvs. man må afvente, at det kørende program bliver færdigt, eller evt. afbryde opstarten ved at trykke escape.

 

 Et program, der kører på en baggrundsport, kan afbrydes med STOP kommandoen (se denne) eller TAMOS funktionen for spørge porte.

 

 Når et baggrundsprogram er færdigt gives meddelelse om dette til den skærm, der startede programmet.

 

18.7.        Lampefunktioner

 

   Når en rapport køres på skærmen har man mulighed for at anvende følgende lampe‑taster:

 

 R1 = lampe 1: Den kartoteksnøgle, der pt.behandles, vises nederst på skærmen.

 

 R2 = lampe 2: Man bliver bedt om at indtaste næste nøgle.

 

 Ved at trykke R1 ned kan man specielt under sorteringen af en rapport se hvor langt denne er kommet. Desuden kan denne funktion anvendes, såfremt man er i tvivl om nøgleopbygningen for det pågældende kartotek.

 

 Ved at aktivere R2 kan man springe i nummerrækken for udskriften, denne funktion anvendes specielt for test af rapporter.



 

 

 

 

 

 

 

 

 

 

 

                              19.         Meddelelser



 

 

20.1.       Fejlmeddelelser.

 

20.2.1.     HJÆLP ‑ PRINTEREN ER IKKE KLAR!

 

   Den angivne printer er ikke tændt/mangler papir eller farvebånd.

 

 Printeren kan eventuelt også være optaget af en anden bruger.

 

 Printeren bestemmes af TAMOS printertildeling, evt.mangler denne, specielt for phantom‑port 1, eller er sat forkert op.

 

 Fejlen kan også forekomme hvis man forsøger at skrive længere linier end printeren er beregnet til, typisk 132 eller 80 karakterer.

 

20.2.3.     DETTE PROGRAM FINDES IKKE.

 

   En rapport skal være defineret med funktion 1 eller 6 (brev), før man kan anvende de andre funktioner på denne.

 

20.2.5.     DENNE RAPPORT ER IKKE DEFINERET.

 

   En rapport skal være defineret med funktion 1 eller 6 (brev), før man kan anvende de andre funktioner på denne.

 

20.2.7.     DENNE RAPPORT ER ALLEREDE DEFINERET.

 

   Man kan ikke definere en rapport med funktion 1 eller 6 (brev), når rapportnummeret er anvendt i forvejen.

 

 Eventuelt må den gamle rapport først slettes med funktion 5.

 

 Ligeledes kan man ikke kopiere til en rapport, der allerede er defineret, med funktion 10.

 

20.2.9.     DER ER IKKE FLERE FRIE RAPPORTER.

 

   Antallet af rapporter pr.system er bestemt ved installation og kan maksimalt være 88 af hensyn til skærmbredden.

 

 Ved sletning af rapporter med funktion 5 skaffes der plads til nye, idet de gamle definitioner fjernes.

 

 Antallet af rapporter kan evt.udvides med DMS.RAPGEN.SYS, ligeledes kan man evt.oprette op til 100 forskellige systemer med max.88 rapporter i hver.

 

20.2.11.     DENNE RAPPORT ER IKKE DEFINERET MED DENNE RAPPORTGENERATOR.

 

   Rapportdefinitionen er for gammel til at kunne behandles af denne version af DMS.RAPGEN.

 

 Kan kun forekomme ved opgradering af systemer til nyere version, såfremt disse er installeret før 1/1‑1978.Alle nyere versioner/releases er baglæns kompatible.

 

20.2.13.     DETTE ER IKKE DIN RAPPORT.

 

   Ved oprettelse af en ny rapport med funktion 1 eller 6 (brev), samt ved kopiering til en rapport med funktion 10, kan der knyttes et password til en rapport.

 

 Dette password skal herefter angives ved enhver rettelse af rapporten. Såfremt control E er anvendt før og efter passwordet skal dette også angives ved start af udskriften. Fejlmeddelelsen indikerer forkert indtastning af passwordet (også kaldet brugernavn).

 

 

 

20.2.15.     DENNE RAPPORT ER I BRUG AF EN ANDEN.

 

   En anden skærm er i gang med at definere rapporten, og der er således ikke tilgang til det valgte rapportnummer fra andre skærme. Såfremt man afbryder en rapportdefinition med escape vil det rapportnummer, man var igang med at definere, forblive reserveret for skærmen og kan ikke fjernes på andre måder end ved at definere en rapport fra samme skærm og herefter slette denne. Dog vil en udvidelse af rapportfilen med DMS.RAPGEN.SYS fjerne alle sådanne reservationer automatisk, da det må antages at systemet er lukket, når en sådan operation foretages.

 

 

 

20.2.17.     FORKERT SYSTEMNUMMER.

 

   Med kommandoen SYSTEM er det muligt at skifte system i rapportgeneratoren, det angivne systemnummer er ikke defineret med DMS.RAPGEN.SYS. Ligeledes kan fejlmeddelelsen fremkomme ved kopiering af en rapport til et andet system med funktion 10, idet til rapportnummeret her kan angives som systemnr., rapportnr.

 

 

 

20.2.19.    RAPPORTGENERATOREN ER I BRUG AF EN ANDEN.

 

   Ved installation af rapportgeneratoren oprettes et antal arbejdsfiler (maksimalt 9) med DMS.RAPGEN.SYS, ved kørsel af rapportgeneratoren kræver hver skærm tilgang til een sådan arbejdsfil. Systemet er således installeret med for få arbejdsfiler, hvilket kan ændres med DMS.RAPGEN.SYS, hver kræver ca.100 sectores diskplads.

 

 

 

20.2.21.

10.1.11.    RING VENLIGST TIL INSTALLATIONSGRUPPEN.

 

   Denne fejlmeddelelse kan kun forekomme på tidligere versioner af DMS.RAPGEN ved uoverensstemmelse mellem discadressen for rapportgeneratoren (RDA for HBA af DMS.RAPGEN) ved installation og ved kørsel. Fejlen afhjælpes ved kørsel af DMS.RAPGEN.SYS på det givne system. Fejlen kan opstå ved uautoriseret kopiering af rapportgeneratoren eller ved CLEANUP.

 

 

 

20.2.23.    RING VENLIGST TIL SERVICEAFDELINGEN.

 

   Udløbsdatoen sat med DMS.RAPGEN.SYS er overskredet. Det anbefales at sætte denne til 999999, med mindre der er tale om prøveinstallation eller tidsbegrænset lejekontrakt.

 

 

 

20.2.25.

10.1.13.    DETTE KARTOTEK FINDES IKKE.

 

   Forsøg på at definere en rapport på, eller knytte en forbindelse til, et kartotek, der ikke eksisterer.

 

20.2.27.    DETTE KARTOTEK ER IKKE IMPLEMENTERET.

 

   Forsøg på at definere en rapport på et kartotek, der er til stede i systemet, men ikke tilladt for rapportgeneratoren (utility code i DMFILES skal være 999 for tilladelse, sættes ved installation).

 

 

 

20.2.29.    DETTE KARTOTEK ER IKKE IMPLEMENTERET (READ MANGLER).

 

   Tekstfilen indeholdende READ‑statements er ikke tilstede (eller er evt. protected på gamle operativsystemer op til 5.0). Denne tekstfil lægges op ved installation og skal placeres på samme lu som DMFILES og kan i rækkefølge hedde: filnavn.READ, DMREAD.xx eller READ.xx hvor DM er prefix for files.

 

 

 

20.2.31.    DETTE KARTOTEK ER IKKE IMPLEMENTERET (DRN MANGLER).

 

   Kartoteket er ikke korrekt tilmeldt rapportgeneratoren, idet datadefinitions‑nummeret (DRN) mangler i DMFILES, til trods for utility koden er sat korrekt og read statements findes.

 

 

 

20.2.33.    DENNE RAPPORT KAN IKKE STARTES.

 

   Forsøg på start af en rapport, hvor tekstfilen DMT10xx ikke findes, f.eks.kan et brev defineret med flere versioner kun startes ved at vælge grundversionen, en underversion er ikke en selvstændig rapport.

 

 

 

20.2.35.    RAPPORTFILEN ER FULD.

 

   Det er ikke sammenhængende (continous) plads nok i rapportfilen til at lagre denne rapport, kan specielt fremkomme ved store breve eller hvis antallet af records i DMREPORT ved installation er defineret for lille i forhold til antallet af rapporter (normalt 4 gange). Rapportfilen må udvides med DMS.RAPGEN.SYS, hvorved der også samtidig udføres CLEANUP på denne, idet den frigivne plads for slettede rapporter gøres sammenhængende. Det er således ikke sikkert at det hjælper at slette rapporter, da den frigivne plads ikke nødvendigvis bliver sammenhængende.

 

 

 

20.2.37.    FORKERT KARAKTER I NUMERISK FELT.

 

   Forekommer kun på tidligere versioner af DMS.RAPGEN ved forsøg på selektion på et numerisk felt og angivelse af karakterer i minimum/maksimum.I nyere versioner kan minimum/maksimum være beregninger, hvorfor denne kontrol ikke udføres.

 

 

 

20.2.39.    FORKERT RAPPORTNR.

 

   Der er ved installation ikke defineret så mange rapporter på systemet. Evt.kan DMREPORT udvides med DMS.RAPGEN.SYS, eller der kan defineres flere systemer, idet max.er 88 rapporter pr.system af hensyn til skærmbredden.

 

 

 

20.2.41.    DER KAN IKKE SORTERES SAMTIDIG MED DEFINITION AF SORTERING.

 

   Der kører en sorteret rapport og denne har låst sorteringskartoteket, således at en anden rapport ikke fejlagtigt kan destruere dette. Derfor kan sortering heller ikke defineres, idet dette kræver åbning af sorteringskartoteket for at aflæse nøglelængden, der kan være variabel.

 

 

 

20.2.43.    SORTERING ER IKKE IMPLEMENTERET.

 

   Der er ikke oprettet noget sorteringskartotek (DMSORTWORK) på systemet ved installation, typisk af hensyn til diskplads. Dette kartotek kan oprettes med BUILDXF med en keylængde på 10‑15 words, recordlængde 2 og antal records = det maksimale antal records, der skal kunne sorteres på een gang. Evt.er sorteringskartoteket protected (på ældre versioner af operativsystemet).

 

 

 

20.2.45.    FORKERT FELTNR.

 

   Der er ikke så mange felter i kartoteket,

 

 

 

20.2.47.    FORKERT ANTAL.

 

   Når man definerer gruppe‑totaler skal antallet af mulige koder i gruppen være større end 0.

 

 

 

20.2.49.    PROGRAMMET BLIVER FOR STORT.

 

   Fremkommer specielt ved definition af rapporter med mange felter, der skal totaliseres evt.i mange niveauer og store grupper. Den maksimale størrelse er bestemt af active file size (partition size), der er angivet for systemet i DMS.RAPGEN.SYS. Evt.må antallet af felter, der totaliseres, antallet af subtotalniveauer eller antallet af grupper/koder i hver gruppetotal skæres ned. Det vil også hjælpe at angive en mindre præcision for totalfelterne, idet den normale er maskinens største, nemlig op til 16 cifre svarende til 4 ord.Dette gøres ved i FELTER DER SKAL TOTALISERES:FELTNR: at indtaste enten 3% (max.10 cifre) eller 2% (max.6 cifre).Overskrides antallet af cifre i en total vil de mindst betydende cifre blive 0, men totalen vil stadig være fornuftig, dog med mindre præcision.Det må bemærkes, at 'udefinerede gruppetotaler' er temmelig pladskrævende for et program.

 

 

 

20.2.51.    DETTE FELT TOTALISERES ALLEREDE.

 

   Forsøg på at definere total for et felt 2 gange.

 

 

 

20.2.53.    BAGGRUNDSPORTEN ER OPTAGET, PRØV IGEN (J/N).

 

   Det er ikke muligt at starte programmet på baggrundsporten (phantomporten), da der allerede kører et program her. Afvent evt.programmet bliver færdigt og svar J eller afbryd opstarten med escape og kør fra skærmen istedet. Det må bemærkes, at efter hver start af maskinen (IPL) kræver NIROS, at phantomporten stoppes før noget program kan startes herpå, og dette bør være indlagt i system ets opstartsrutine..Evt.kan rapportgeneratorens STOP kommando anvendes, men pas på ikke uhensigtsmæssigt at stoppe et kørende program.

 

 

 

20.2.55.    LINIEN ER FOR LANG.

 

   Den maksimale linielængde er 175 karakterer eller mindre, afhængig af den valgte printer.

 

 

 

20.2.57.    BASIC FEJL NR.xxxx I LINIE NR.xxxx.

 

   Se efterfølgende liste over basic fejl. Meddelelsen vil normalt blive efterfulgt af den beregningslinie, hvor fejlen er opstået, således at fejlfinding er enkel. Kontrol af rigtig indtastning ved beregninger etc.foretages først ved start og generering af programmet og resulterer således i fejlmeddelelser på dette tidspunkt.

 

 

 

20.2.59.    BASIC FEJL NR.xxxx i LINIE NR.xxxx I DMS.RAPGEN.xxx.

 

   Se næstfølgende liste over basic fejl. Check installationen, specielt coresize i DMS.RAPGEN.SYS ikke er større end partition size (active file size), og at antallet af data files i SYSMOD er tilstrækkeligt stort (20). Er dette i orden må fejlen rapporteres hertil med angivelse af hvordan denne fremkommer.

 

 

 

20.2.61.    BEKLAGER ‑ DER ER IKKE NOK CORE FOR TESTPRINT.

 

   Testprint kræver noget mere plads end selve kørselen af rapporten, specielt for store breve. Undlad at anvende testprint for denne rapport eller sæt active file size op med SYSMOD/DMS.RAPGEN.SYS.

 

 

 

20.2.63.    FEJL UNDER SORTERING, STATUS=x.

 

   Der er opstået en fejl ved indsættelse af en nøgle i sorteringskartoteket DMSORTWORK, den angivne status er fejlkoden fra search kommandoen. Normalt opstår denne fejl kun når sorteringskartoteket er for lille, hvorved status 2 eller 3 returneres.Man må så enten selektere sin rapport eller vælge et mindre interval, således at det ikke er så mange records der skal sorteres, den rigtige løsning er dog nok at bygge et større sorteringskartotek (med BUILDXF, recordlen=2, keylen=f.eks.10).Desværre forekommer der en fejl i visse operativsystemer, således at status 5 returneres, hvorefter sorteringskartoteket er ødelagt når det een gang er løbet fuldt (ved næste forsøg på sortering frem kommer basic fejl 79).I dette tilfælde er der ikke andet at gøre end at bygge et nyt sorteringskartotek.

 

 

 

20.2.65.    FUNKTION x KAN IKKE UDFØRES PÅ DENNE RAPPORT.

 

   Fremkommer ved forsøg på definition af selektioner, beregninger etc.på en underversion af et brev i flere versioner.Disse definitioner skal indlægges på hovedversionen.Fejlmeddelelsen fremkommer når definitionstekstfilen DMT10xx for rapporten ikke findes.

 

 

 

20.2.67.    DISSE RAPPORTER ER IKKE FRIE.

 

   Ved definition af et brev i flere versioner skal de næste rapporter være frie. Defineres f.eks.rapport nr.10 som et brev i 4 versioner skal rapporterne 10 til 13 alle være frie.

 

 

 

20.2.69.    FORKERT FORMAT.

 

   Ved angivelse af et format for et frifelt er dette ikke korrekt. Alfafelter defineres som f.eks.10 numeriske felter som f.eks.3, eller 8, 2 evt. ‑8, 2 eller , 8, 2.

 

 

 

20.2.71.    FORKERT FELTNUMMER, SKAL VÆRE MELLEM 1 OG xx.

 

   Forkert feltnr.indtastet.

 

 

 

20.2.73.    DER ER INGEN TOTALER PÅ BREVE.

 

   Forsøg på at definere totaler på en rapport defineret med funktion 6 som et brev.Der kan kun defineres totaler på udskrifter defineret som normale lister med funktion 1.

 

 

 

20.2.75.    SORTERINGSNØGLE FORKORTET TIL xx KARAKTERER.

 

   Man har defineret f.eks.sortering på et navnefelt på 32 karakterer, hvor der maksimalt kan være 27 karakterer i en nøgle.Sorteringen vil foregå korrekt, dog kun på de første 27 karakterer.Længden af sorteringsnøglen bestemmes af key‑længden på DMSORTWORK og er maksimalt denne minus 3 karakterer.

 

 

 

20.2.77.    DMS.RAPGEN ER IKKE INSTALLERET.

 

   (Error #xx AT xxxx FILE: xxxxxxxxx).

 

 Fejl ved åbning af en af rapportgeneratorens systemkartoteker ved start af rapportgeneratoren, f.eks.fil‑ eller felt‑definitionskartotekerne. Rapportgeneratoren kan ikke anvendes før DMS.RAPGEN.SYS er sat korrekt op.

 

20.3.       SAVE fejlnumre.

 

   Save fejl kan forekomme i det øjeblik rapportgeneratoren forsøger at lagre det genererede program på disken, typisk på grund af manglende diskplads.

 

20.4.1.     SAVE FEJL NR.104.

 

   Save fejl er generelt beskrevet i basic håndbogen under SAVE processoren. Save fejl 104 indikerer forkert cost/protection eller lignende og fremkommer normalt kun ved flytning af en ældre rapportgenerator til operativsystem 5.0 eller nyere, idet det ikke her er tilladt at save et program med partition size 0. Udskift rapportgeneratoren til nyere version eller indlæg evt.rettelsesblad 6 af 15/2‑84 punkt 4 i DMS.RAPGEN.091 stat.500.

 

 

 

20.4.3.     SAVE FEJL NR.108.

 

   Der er ikke plads på disken til at save dette program, evt.for ældre operativ systemer, er der ikke givet plads nok med utility til den aktuelle account. Fejlen afhjælpes bedst ved at skaffe den fornødne diskplads, dog vil sletning af rapporter hjælpe midlertidigt. Disse kan eventuelt slettes ved at vælge funktion 5 for sletning og herefter svare N til at slette, idet det genererede basic‑program så vil blive slettet og frigive diskplads, dette vil blive dannet igen ved næste start af rapporten. Evt.kan antallet af savede rapporter i DMS.RAPGEN.SYS sættes ned, dog på bekostning af hastighed, idet rapporter over et her defineret nummer i så fald genereres hver gang disse startes.

 

 

 

20.5.       Basic fejlnumre.

 

   I det følgende beskrives de hyppigst forekommende BASIC fejl, og muligheder for at afhjælpe disse. I øvrigt henvises til BASIC manualen, hvor samtlige fejl er beskrevet bagerst.

 

 Fejlmeddelelsen kan se ud som f.eks.:

 

 

Figure 90  Eksempel på BASIC fejlmeddelelse.

 

DMS.RAPGEN        2 LAGERVÆRDILISTE                                            

                                                                               

                                                                               

                                                                               

                                                                               

                                                                               

                                                                                

                                                                               

                                                                                

                                                                               

                                                                                

                                 ‑ PROGRAMMET GENERERES ‑ V E N T...           

                                 ‑ PROGRAMMET OPTIMERES ‑ V E N T...           

                                 ‑ PROGRAMMET LOADES ‑ V E N T...              

                                 #11=(#8*#4                                    

                                                                                

                                                                               

                                 BASIC FEJL NR. 11 I LINIE NR. 5201            

                                                                               

                                 FORKERT PARANTES.                             

                                                                               

                                                                               

                                                                                

TAST CR.                                                                       

                                                                                

 

 

 

 

   Man får altså oplysning om fejlnummeret og dette oversat til klar tekst, foruden rapportgeneratoren fremfinder den beregningslinie, hvori fejlen forekommer.

 

20.6.1.     Nr.1 Syntaxfejl.

 

   Maskinen forstår ikke beregningslinien, f.eks. er der skrevet to gangetegn efter hinanden eller en ulovlig tekst, eventuelt mangler man 'felt=' i en beregning.

 

20.6.3.     Nr.2 Forkert alfanumerisk tekstbehandling.

 

   Når man udfører beregninger med et alfanumerisk tekstfelt skal værdier sættes i gåseøjne og numeriske værdier må ikke indgå.

 

 Typisk er selektion på et alfanumerisk felt defineret uden gåseøjne om værdien (skal være f.eks. "A" som minimum) tidligere versioner.;

 

 Et alfanumerisk felt, der indeholder et tal, som man ønsker at anvende i en beregning, må konverteres til et numerisk felt først ved f.eks. #50=#2, hvorefter man kan regne videre på det numeriske felt. Se også afsnittet om alfanumeriske felter under beregningerne.

 

20.6.5.     Nr.3 Programmet er for stort.

 

   Rapportgeneratoren vil normalt ikke tillade brugeren at definere et for stort program, idet antallet af totalniveauer/grupper kontrolleres op mod det ved installation angivne maksimum KB. Skulle fejlen alligevel forekomme må antallet af totaler sættes ned (se afsnittet om totaler), eller teksten på et stort brev må reduceres. Det letteste er dog at udvide maskinens interne lager, kontakt evt. programmør vedr. dette.

 

 Forekommer fejlen under definition af en rapport er maksimum KB angivet større end det egentlig er ved installationen

 

 På nyere operativsystemer (5.0 ff.) afbrydes programmet uden fejlmeddelelse og man vender tilbage til TAMOS selektoren umiddelbart, fejlen kan i så fald aflæses i systemets logfil.

 

20.6.7.     Nr.5 Forkert tegn.

 

   Svarer til fejl 1, syntaxfejl.

 

20.6.9.     Nr.9 Forkert ord.

 

   Svarer til fejl 1, syntaxfejl.;

 

20.6.11.     Nr.11 Forkert parantes‑sætning.

 

   Antal højreparanteser svarer ikke til antal venstreparanteser i en beregningslinie.

 

20.6.13.     Nr.15 Division med 0 eller aritmetisk overflow.

 

   Man må aldrig dividere med 0, se afsnittet om division og procentberegninger. Selv om listen er selekteret således at man ikke burde gøre dette, udføres beregningerne for alle records, også de, der ikke opfylder selektioner.

 

 Ved beregning på et kartoteks felter, f.eks. for tilbageskrivning, kan værdien for et 1‑ords felt ikke overskride +/‑7999.

 

20.6.15.     Nr.18 For mange FOR/NEXT løkker.

 

   Kan forekomme ved installation af tidligere versioner af rapportgeneratoren på nyere operativsystemer (5.1 ff.). Udskift rapportgeneratoren med nyeste version.

 

20.6.17.     Nr.25 Alfanumerisk felt (eller matrix) ikke dimensioneret.

 

   Ved reference til felter fra et andet kartotek skal beregningerne indeholde READ af dette kartotek, og denne linie skal placeres før der regnes videre på kartotekets felter.

 

20.6.19.    Nr.26 Logisk enhed er ikke aktiv.

 

   Ved start af en rapport forsøges på at åbne et kartotek på en disk (lu) , der ikke er tilgængelig. Evt. er installationen af dette kartotek ikke foretaget korrekt.

 

20.6.21.

10.3.11.    Nr.28 Forkert værdi for index,kanalnr. eller signal‑parameter.

 

   Forekommer kun ved helt specielle beregninger.

 

20.6.23.    Nr.30 FN funktion ikke defineret.

 

   Stavefejl ved kald af basicfunktion, f.eks. FNE(#50).

 

20.6.25.

10.3.13.    Nr.42 Kartoteket findes ikke.

 

   Når rapporten startes og kartoteket åbnes kan dette ikke findes. Evt. er der monteret en forkert disk, kartoteket er ikke tilgængeligt på denne account eller installationen af kartoteket er ikke korrekt udført.

 

20.6.27.    Nr.45 Kartoteket er læsebeskyttet.

 

   Forekommer kun på operativsystemer før 5.0 og indikerer, at protektion for kartoteket er sat, dvs. dette er ikke tilgængeligt fra denne account. Anvend den rigtige account eller kontakt programmør for at få dette ændret, da der kan være en begrundelse for beskyttelsen.

 

20.6.29.    Nr.47 Disken er fuld.

 

   Kan forekomme, såfremt der ikke er plads til et af rapportgeneratorens arbejdskartoteker, f.eks. under generering af et program. Der må skaffes fri plads på disken, evt. kan rapportgeneratoren flyttes til en anden disk.

 

20.6.31.    Nr.50 Kartoteket er i brug af en anden.

 

   Kartoteket er låst for opdatering fra en anden skærm.

 

 Specielt kan man ikke køre flere sorterede rapporter samtidig, se afsnittet om sortering.

 

20.6.33.    Nr.51 Forkert recordnr.

 

   Kartotekets index defekt, kontakt programmør. Evt. er SORT anvendt til opstart, uden at sorteringskartoteket stemmer overens med rapportens kartotek, start da rapporten normalt uden SORT. På ældre operativsystemer (3.3) kan fejlen også blot betyde, at printeren ikke er klar.

 

20.6.35.    Nr.52 Record findes ikke.

 

   Som fejlnr., 51.

 

20.6.37.    Nr.73 Forkert parameter.

 

   Check printertildelingen i TAMOS samt evt. om den angivne printer er aktiveret i SYSMOD. Fejlen kan forekomme ved forsøg på at skrive for bredt på en printer eller hvis karakterstørrelsen i TAMOS er defineret for en printer uden denne facilitet.

 

 Fejlen kan også forekomme, såfremt sorteringskartoteket een gang er løbet fuldt, pga. en fejl i operativsystemet. Det vil være nødvendigt at slette dette og oprette et nyt.


                                                                            Figurer

 

Figure 1   Rapportgeneratorens funktionsvalg......................................................................................................................................  11

Figure 2   Kartoteker benyttet til eksemplerne........................................................................................................................................   12

Figure 3   VA Varekartoteket.....................................................................................................................................................................   12

Figure 4   LE Leverandørkartoteket..........................................................................................................................................................   12

Figure 5   KU Valutakurskartotek.............................................................................................................................................................   13

Figure 6   GR Varegruppekartoteket.........................................................................................................................................................   13

Figure 7   Vare‑kartoteket...........................................................................................................................................................................   13

Figure 8   Leverandør‑kartoteket..............................................................................................................................................................   13

Figure 9   Kurs‑kartoteket..........................................................................................................................................................................   13

Figure 10  Varegruppe‑kartoteket.............................................................................................................................................................   13

Figure 11  Tastaturplan for rapportgeneratoren.....................................................................................................................................   14

Figure 12  Diskplads...................................................................................................................................................................................   15

Figure 13  Rapportoversigt........................................................................................................................................................................   20

Figure 14  Kartoteker..................................................................................................................................................................................   21

Figure 15  Rapportens stamoplysninger.................................................................................................................................................   22

Figure 16  TAMOS selektor definition....................................................................................................................................................   24

Figure 17  Rapportlinier..............................................................................................................................................................................   24

Figure 18  Den færdige udskrift................................................................................................................................................................   25

Figure 19  Definition af feltformatet.........................................................................................................................................................   28

Figure 20  Automatiske totaler..................................................................................................................................................................   29

Figure 21  Leverandørlisten, kun saldi over 500 kr.udskrives..............................................................................................................   33

Figure 22  Definition af selektioner..........................................................................................................................................................   33

Figure 23  Beregninger i selektionerne....................................................................................................................................................   34

Figure 24  Beregninger...............................................................................................................................................................................   39

Figure 25  Indtastning af en beregning...................................................................................................................................................   40

Figure 26  Ændring af en beregning.........................................................................................................................................................   40

Figure 27  NÅR, hvornår skal der beregnes............................................................................................................................................   49

Figure 28  OCR checkciffer for girokort...................................................................................................................................................   50

Figure 29  Modulus 11 check (f.eks.personnummer).............................................................................................................................   50

Figure 30  Beregning af arbejdsdage.......................................................................................................................................................   51

Figure 31  Udplukning af for‑ og efternavne..........................................................................................................................................   51

Figure 32  Udplukning af for‑ og efternavne..........................................................................................................................................   52

Figure 33  Fastlåsning af start/stop.........................................................................................................................................................   52

Figure 34  Opbygning af sorteringsnøgle...............................................................................................................................................   57

Figure 35  Liste med subtotaler, sorteret efter varegruppe...................................................................................................................   58

Figure 36  Varer sorteret efter primær og sekundær leverandør...........................................................................................................   60

Figure 37  Definition af subtotalniveau...................................................................................................................................................   60

Figure 38  Udskrift med subtotaler...........................................................................................................................................................   61

Figure 39  Udskrift kun med subtotaler...................................................................................................................................................   61

Figure 40  Udskrift med vejede totaler og subtotaler............................................................................................................................   62

Figure 41  Rapportdefinitionen for vejede totaler..................................................................................................................................   63

Figure 42  Behandling af en rapport.........................................................................................................................................................   64

Figure 43  Listen uden beregnede totaler, dækningsgrad er forkert...................................................................................................   65

Figure 44  Listen med beregnede totaler, lagerværdi er forkert............................................................................................................   66

Figure 45  Listen med beregnede totaler og NÅR beregninger...........................................................................................................   66

Figure 46  Rapportdefinitionen for beregnede totaler...........................................................................................................................   66

Figure 47  Felter, der skal totaliseres........................................................................................................................................................   67

Figure 48  Eksempel på gruppetotaler......................................................................................................................................................   68

Figure 49  Definition af gruppetotaler......................................................................................................................................................   69

Figure 50  Eksempel på flere grupper, den sidste 'udefineret'..............................................................................................................   70

Figure 51  Kartoteksoversigt ved brug af hjælp‑funktionen................................................................................................................   73

Figure 52  Hjælp for et enkelt kartotek.....................................................................................................................................................   74

Figure 53  Udvidet hjælp ved indtastning af VA01...............................................................................................................................   74

Figure 54  Saldoliste med kursomregning...............................................................................................................................................   77

Figure 55  Beregning af ny pris udfra kurs og prisfaktor......................................................................................................................   77

Figure 56  Prisberegning med READ af flere kartoteker........................................................................................................................   77

Figure 57  Prisberegningen uden automatiske forbindelser.................................................................................................................   78

Figure 58  Opslag i samme kartotek flere gange.....................................................................................................................................   78

Figure 59  Alternative leverandører:flere opslag i samme kartotek.....................................................................................................   79

Figure 60  Eksempel på gruppetotaler......................................................................................................................................................   79

Figure 61  READ i forbindelse med totaler..............................................................................................................................................   79

Figure 62  Total lagerværdi opsamlet med START/NEXT/OM...........................................................................................................   80

Figure 63  Rapportdefinitionen for summering af lagerværdi...............................................................................................................   80

Figure 64  Flere løkker af START/NEXT/OM inden i hinanden..........................................................................................................   81

Figure 65  Leverandører ikke aktive siden d.30/6‑1986..........................................................................................................................   81

Figure 66  Selektion i forbindelse med START/NEXT/OM..................................................................................................................   82

Figure 67  Varer pr.leverandør med READH og LINIE..........................................................................................................................   82

Figure 68  Selektion på varegruppe > 0...................................................................................................................................................   83

Figure 69  Selektion i forbindelse med READH/LINIE..........................................................................................................................   83

Figure 70  Totaler ved START/NEXT/OM.............................................................................................................................................   84

Figure 71  Felter...........................................................................................................................................................................................   85

Figure 72  Funktioner.................................................................................................................................................................................   85

Figure 73  Eksempler på nøgleopbygninger...........................................................................................................................................   85

Figure 74  Definition af et brev.................................................................................................................................................................   90

Figure 75  Ændring af en rapport..............................................................................................................................................................   91

Figure 76  RASTER kommandoen aktiveret............................................................................................................................................   92

Figure 77  Kommandoen mode 0,feltnumre.............................................................................................................................................   93

Figure 78  Definition af brev i flere versioner.........................................................................................................................................   95

Figure 79  Kopiering af en rapport...........................................................................................................................................................   99

Figure 80  Kopiering af en rapport...........................................................................................................................................................   99

Figure 81  Sletning af en rapport............................................................................................................................................................   100

Figure 82  Udskrift af definitioner...........................................................................................................................................................   100

Figure 83  Rapportdefinitionen for vejede totaler................................................................................................................................   101

Figure 84  Feltoversigt ved dokumentation af en rapport..................................................................................................................   102

Figure 85  Rapportgeneratorens funktionsvalg...................................................................................................................................   103

Figure 86  Start af udskrift.......................................................................................................................................................................   107

Figure 87  STAR systemers opstartsbillede.........................................................................................................................................   107

Figure 88  Data ved start..........................................................................................................................................................................   109

Figure 89  Eksempel på testprint.............................................................................................................................................................   111

Figure 90  Eksempel på BASIC fejlmeddelelse.....................................................................................................................................   121

 


                                                                            Stikordsregister