Om man i ett numeriskt fält vill ha med negativa tal måste detta anges:-999999999,
minus och så alla 9:or. Vill man t.ex bara ha med kunder med negativt Köpt till dato
skulle inslaget bli
Fr.o.m. -9999999999 T.o.m. -1
Här är vår första rapport, något förkortad och modifierad:
------------------------------------------------------------------------------------------------------------------------
adMix Rapportgenerator Utskrift Kunder ~~~Kundnamnslista 2003-04-08 14:10 Sida 3
Visar kunderna i bokstavsordning, med årets inköp i SEK la Framtidsvisionen
-------------------------------------------------------------------------------------------------------------------------
Namn Telefon Köpt
åtd
-------------------------------------------------------------------------------------------------------------------------
Hans Olle Lundström AB x 098-665419 195674.56
Hjalmars Data & Program 1052523.42
Hotell Långbergs 36124.20
PSIONOlle Lundström AB 098-665419 1852202.00
Poll-Olle Lundström AB 098-665419 2926.00
Postens 79947.00
Tidningen Arbetet 031-123432
Ulla Order-Direktbest 098-665419 32235.00
UtleveranstestKund 031-123432 4515.00
Vrännebrona
------------------------------------------------------------------------------------------------------------------------
adMix Rapportgenerator Utskrift Kunder ~~~Kundnamnslista 2003-04-08 14:10 Sida 4
Visar kunderna i bokstavsordning, med årets inköp i SEK la Framtidsvisionen
------------------------------------------------------------------------------------------------------------------------
Namn Telefon Köpt
-------------------------------------------------------------------------------------------------------------------------
Antal poster: 194
Antal utskrivna: 160
T o t a l t: 4686519.43
Medelvärde: 29290.75
Högsta värde: 1852202.00
-------------------------------------------------------------------------------------------------------------------------
Man kan nu välja denna rapport i genereringsprogrammet, och modifiera den, bygga vidare med flera
fält osv.
Man kan skapa egna fält i rapportgeneratorn, genom funktionen Kalkyl av kolumner.
Det innebär att man t.ex kan skapa ett nytt fält av kundregistrets fält för Köpt år
till dato och Köpt förra året genom att addera dessa och ge det nya fältet ett
eget namn.
Man kan kalkylera med alla numeriska fält som komponenter, och det kan ske i flera led
där ett kalkylerat fält är ingående komponet i ett annat o.s.v.
Omvänd polsk notation
Man använder Omvänd polsk notation vid dessa kalkyler, och det är inte så
märkvärdigt som det kan låta.
På en del miniräknare måste användaren skriva in det som ska beräknas enlig
en matematisk konvention som kallas omvänd polsk notation (OPN).
Det sätt att beskriva ett uttryck som vi är vana vid kallas infix.
Man kan uttrycka varje infix-uttryck med ett OPN.
Fördelen med OPN är att parenteser inte behövs
(den prioritering man vill åstadkomma med parenteser uttrycks istället
med ordningen mellan operatorerna). Prioriteten mellan operatorerna
(t.ex. att * ska beräknas före +) behöver man vid beräkningen av uttrycket inte
känna till, det ligger implicit i uttrycket.
Grundprincipen är att operatorn står efter operanderna.
Några exempel:
1 + 3
Så skriver vi vanligen en liten beräkning. Med omvänd polsk notation blir detta:
3 1 +
Vi skriver (på vanligt sätt):
1 + 3 - 2
Med omvänd polsk notation blir detta:
2 3 1 + -
Man börjar med den sista siffran närmast operanderna(+,-): 1
sedan tar man den första operanden (+) och så nästa siffra åt vänster 3, och så
nästa operand - minus - och slutligen nästa siffra åt vänster 2. Man börjar i mitten och
arbetar sig utåt kanterna med siffrorna på vänster hand och operanderna på höger.
På så sätt blir t.ex
5 x (4 - 2)
med omvänd polst notation:
5 2 4 - x
Låt oss titta närmare på saken i ett exempel. Vi väljer att skapa en ny rapport, och
får upp denna bild:
Ange önskad sida
Börja med att ange en eller ett par grunduppgifter, t.ex kundnummer och namn. Dessa blir då
fält 1 och 2 i rapporten. Efter enter kommer vi åter till Ange önskad sida. Ange nu
0 för kalkylerade kolumner. Bilden kommer tillbaka efter enter, men efter ytterligare
ett enter visas nästa bild:
Kolumner som skall kalkyleras
I denna bild ger Du dem de nummer de skall ha i rapporten. T.ex 3 och 4. Se bilden nedan:
Kolumn 3 och 4 angiven.
Definiera vald kolumn
Här visas nu en bild med alla tillgängliga fält som kan ingå i en kalkyl. Denna genomgång
syftar till att vara generell för hela rapportgeneratorn, så vi går inte in på de olika
fältens betydelse här, dessa växlar ju för varje rapportgenerator. Några enkla regler om
detta:
-
De flesta fält är självförklarande, t.ex Kundnummer, Distrikt, Kreditgräns.
-
För de fält som inte är detta kan man jämföra med motsvarande registervårdprogram.
I detta fall alltså Registervård: Kunder: Kunder Ink. Saldon. Där finns dessa
fält, och mer information om dessa kan får med Hjälpknappen.
-
Vissa förkortningar som används är:
-
ptd = Period till dato
-
åtd = År till dato
-
f = Förra året
-
ff = Förrförra året
-
per = period
-
förf = förfallet
Vi skall nu fylla i en formel. Se bilden nedan:
Ifylld formel
Först har vi gett det beräknade fältet - kolumnen - ett namn: Kalkyl1-Köpt. Detta
namn är helt fritt och namnet kommer att användas i rapportens rubrik.
Sedan själva beräkningen. Vi vill här summera det kunden köpt i år, förra året och
förr-förra året. Genom att studera bilden kan vi lokalisera dessa fälts nummer,
21, 22, och 23.
Efterssom man kan arbeta med både Fält och Konstanter skall fältens nummer
föregås av ett F. F21F22F23 således. Sedan kommer tecknen ++. Hela formeln blir:
F21F22F23++
Fält23 + fält22 + fält 21.
Vi går nu vidare till nästa fält:
Sedan nästa kalkyl.
Denna bilden liknar ju den tidigare, men observera att vårt nyligen skapade fält (kalkyl)
ligger valbart som fält nummer 67. Den kan alltså nu ingå i en annan kalkyl. Låt oss titta
på detta:
Kalkyl med andra kalkyler ingående
Vi skapar här en kalkyl som heter Uppfyllelse. Detta fält innehåller sålt i kronor,
det förra fältet (nr 67),
dividerat med fältet Budget (nr. 16) gånger konstanten(K) 100. Fältet visar
alltå hur budget har uppfyllts i procent, där 100 innebär att budget uppnåtts.
Formeln blir:
K100F16F67/*
Alltså fält 67 Köpt dividerat med Fält 16 Budget, gånger Konstanten 100.
Nedan kan vi se hur denna rapport blev:
adMix Rapportgenerator Utskrift Kunder Kalkylexempel 2003-04-09 7:46 Sida 1
Kalkylfält ingår la Framtidsvisionen
-------------------------------------------------------------------------------------------------------------------------
Kund Namn Kalkyl1-köpt Uppfyllelse
nummer
-------------------------------------------------------------------------------------------------------------------------
300 Begnbågen AB 265220.00 102.00
301 Båtaffären AB 1200.00 0.33
306 Kontrollkund Bettid 1800.00 0.72
307 Utländska AB 65450.00 65.45
315 Lasses Bil & Båt 3700.00 3700.00
316 ComFirm AB 8800.00 2.20
-------------------------------------------------------------------------------------------------------------------------
adMix Rapportgenerator Utskrift Kunder Kalkylexempel 2003-04-09 7:46 Sida 2
Kalkylfält ingår la Framtidsvisionen
-------------------------------------------------------------------------------------------------------------------------
Kund Namn Kalkyl1-köpt Uppfyllelse
nummer
-------------------------------------------------------------------------------------------------------------------------
Antal poster: 194
Antal utskrivna: 6
T o t a l t: 346170.00 3870.70
Minsta värde: 1200.00 0.33
Medelvärde: 57695.00 645.12
Högsta värde: 265220.00 3700.00
-------------------------------------------------------------------------------------------------------------------------
Om vi vill modifiera en befintlig rapport, utgår vi från den första bilden i rapportgeneratorn.
Vid modifiering av rapport kan man antingen ändra i en befintlig, eller med
utgångspunkt från en befintlig rapport skapa en ny rapportmed eget namn.
Startbild adMix rapportgenerator
Tidigare valde vi Definiera ny rapport, nu väljer Välj tidigare rapport.
Vi får då upp bilden med alla skapade rapporter:
Tidigare skapade rapporter
Vi väljer här den rapport vi vill modifiera. Vi anger nummer och sedan enter.
Observera att rapporten inte skall startas.
Ange endast dess nummer och sedan enter. Du hamnar nu åter på Startbilden .
Startbild adMix rapportgenerator
I startbilden väljer Du nu moment beroende på vad Du vill göra.
-
Val av kolumner - Här kan Du lägga till nya kolumner, eller ändra.
-
Kalkyl av kolumner - Här anges vilka som skall kalkyleras.
-
Brytpunkt och summering. Här kan man andra i summeringar och delsummeringar.
-
Utskriftsintervall ger möjlighet att modifiera vila fält som skall ha
angivelse för fr.o.m - t.o.m vid rapportstart.
-
Urvalskriterier används ej.
-
Diverse övriga layoutmässiga val innehåller en del generella funktioner, bk.a.
för att skapa filer till andra system.
-
Val av nytt rapportnamg ger möjlighet att spara den modofierade rapporten
som en ny rapport under eget namn, samt att påverka skrivare, och att ange en kommentar.
Detta har hanterats tidigare. I och med att rapportgeneratorn har två ingångar: en för skapande
- generering - av rapporter, och en ingång för endast utskrift av genererade rapporter
bör man se till att de användare som endast skall skriva ut rapporter endast har
tillgång till den menyn. De får då en enklare valbild, och kan inte av misstag skada någon
rapport.
Om det är fler rapporter skapade än vad som kan ses på en bild, slår man enter för
att hoppa till nästa bild, osv.
Kolumnerna - fälten - väljs med hjälp av nummer, 1, 2, 3, osv. Det får inte finnas några
hopp i sekvensen. Man kan inte ha en rapport med fälten 1, 2, 4, 5. Då klagar programmet
på att 3:an saknas. På samma sätt kan man inte ha dubbla nummer: 1, 2, 3, 3, 4 ,5. Detta
kan låta trivialt, men när man t.ex modifierar i en stor rapportgenerator med många
fält, spridda över kanske 6-7 valsidor kan man få problem med detta om man inte
har en genomtänkt plan. Om man t.ex har en rapport med 10 fält och skall lägga in ett
nytt fält först måste ju alla övriga fält flyttas fram ett nummer. 1 blir 2, 2 blir 3 etc
för att ge plats åt det nya fältet som ju skulle ligga först. Om nu dessa fält är spridda
över många olika valsidor i generatorn kan det uppstå lägen där det antingen saknas ett
nummer, eller där något nummer är dubbelt. I samband med bildväxligen sker vissa kontroller,
och programmet kan då klaga över att visst fält är dubbelt eller saknas.
Bäst är att ändra bakifrån, så att det sista fältet ökas upp med ett, sedan det näst
sista som får ta det tidigare fältets nummer osv.
Vid komplexa rapporter är det bästa att först dokumentera rapporten med skärmdumpar, och
sedan föra in de ändringar man vill göra med en penna på dumparna, och sedan registrera
en helt ny rapport med dumparna som manus. Det går garanterat fortare än att ändra om
rapporten är komplex.
Många av adMix rapportgeneratorer innehåller fler fält än vad som kan visas i kalkylsidan.
Det innebär att vissa fält inte kan bearbetas där, samt att det heller inte finns plats
för tidigare kalkyler som ingångsvärden.
Summeringar kan ske på flera nivåer (max 4) och dessa kan hanteras på olika sätt.
I ett kundregister eller ett artikelregister har man ofta olika statistikkoder av typen
Distrikt, huvudgrupp, kundkategori, artikeltyp, mm.mm. När man arbetar med rapporter eller filer
från ett system vill man kunna göra summeringar på dessa begrepp, ett och ett eller i
olika kombinationer. T.ex kan en lista med distriktstotaler på ett enkelt sätt visa vad våra
olika säljare presterar. Genom att då lägga distriktsfältet som första kolumn i en kundrapport
och begära summering för denna kolumn, så får man en summa på rapporten så fort det blir
ett nytt distrikt.
Vill man endast ha dessa distriktstotaler väljer man sedan
under Layoutmässiga val att
endast summarader skall skrivas.
Ett exempel:
Distrikt Kundnummer Namn Köpt i år
1 200 Volvo AB 100.000
1 220 SAAB 35.000
1 250 SKF 670.000
2 180 Skanska 15.000
2 500 Trelleborg 379.000
Blir med distriktstotaler:
Distrikt Kundnummer Namn Köpt i år
1 200 Volvo AB 100.000
1 220 SAAB 35.000
1 250 SKF 670.000
1 805.000
2 180 Skanska 15.000
2 500 Trelleborg 379.000
2 394.000
I en rapportgenerator som Utleveranshistorik där både kund- och artikelregister möts
som sekundära register till utleveranshistoriken som ju är primärt register,
kan man tänka sig summeringar på ytterligare nivåer. T.ex kan man lägga in Artikelgrupp
som andra kolumn i rapporten och på så sätt redovisa hur de olika artikelgrupperna säljs
inom varje distrikt. Vänder man på det så att Artikelgruppen ligger först, och
Distrikt som 2:a kommer man att redovisa hur de olika Distrikten säljer
inom varje artikelgrupp. De flesta register i adMix innehåller ett flertal möjligheter att
kategorisera posterna, och med hjälp av dessa kategorier kan man i rapportgeneratorn
skapa en mångfald av intressanta rapporter.
Låt oss ta en titt på bilden igen:
Brytning med summering
Första inslagsfältet Brytning med summering t.o.m. kolumn:
innebär att man kan ange att brytning skall skr t.o.m. fält 1, 2 3 eller 4, men i
denna rapport har vi inga lämpliga fält för brytning. Både namn och telefonnummer är unika
begrepp. Därför tittar vi på en annan rapport,
från rapportgeneratorn Utleveranshistorik, där det ingår fler statistikbegrepp:
Brytning med summering
Här har vi från kundregistret:distrikt och kategori,
och från artikelregistret: huvudgrupp och artikelgrupp.
Det skulle kunna ge en maffig uppsättning av summeringar, om vi valde brytning t.o.m.
kolumn 4: För varje distrikt kan vi se hur kundkategorierna köpt varor, och för
varje kundkategori inom distriktet kan vi se detta fördelat på huvudgrupper av artiklar.
Och för varje huvudgrupp slutligen ser vi en fördelning på artikelgrupper.
För att göra detta exempel lite tydligare:
-
Distrikt är ju normalt som i tidigare exempel ett geografiskt område, Västsverige,
Södra Sverige, Mellersta Sverige etc.
-
Kundkategori kan ju vara om kunden är en kommun, ett litet företag, en myndighet
eller statlig. Lite mer specifikt kan det vara sportaffärer, dagligvaruhandel,
presentbutiker etc. Allt efter vår verksamhet.
-
Huvudgrupp kanske är Maskiner, Handverktyg och Tillbehör.
-
Artikelgrupp kanske då kan vara Borrmaskiner, Stansmaskiner
under Huvudgrupp Maskiner, Handelborr och Handfräs under Huvudgrupp Handverktyg,
samt Borrar och Frässtål under Huvudgruppen Tillbehör.
Det behöver ju inte vara så många nivåer, men det är fullt möjligt.
I bilden finns ett annat val: Sidbyte vid brytning t.o.m. Här anges med en
siffra till vilken brytnivå sidbyte skall ske. Skulle vi sätta den till 4 fick vi ny
sida varje gång det blev ny artikelgrupp - lite mycket sidor kanske. Sätter vi den
till 1 blir det ny sida vid varje nytt distrikt.
Det kan vara praktiskt om t.ex olika säljare skall ha var sin del
av en rapport.
På nästa rad: Ange kolumnsummering (j) samt undantag för brytning (n) nedan:
Det innebär att man dels anger vilka kolumner som skall summeras med ett j.
I bilden ovan är det enda vettiga kolumnen Netto SEK.
Men undantag för brytning då? vad är det?
Om man t.ex har kundnummer och namn, eller artikelnummer och benämning med som kolumner
vill man inte ha en total när det blir nytt nummer, och en total när det blir nytt namn.
Då blir det två totaler per kund
eller per artikel. Därför sätter man ett undantag för brytning (n)för
den första kolumnen av ett sådant kolumnpar.
Det är oftast lika bra att välja alla fält som möjliga för intervallangivelse.
Om man gör det kan man med ett ögonkast se vilka fält som ingår i rapporten,
samt göra olika kombinationer av intervall vid uppstart av rapporten - alla
köp i distrikt 2-3 av kundtyp 5 avseende huvudgrupp 8-18, etc.
Arbetar man med utleveranshistoriken eller andra transaktionsregister, där det kan
bli många poster med tiden skall man i alla fall alltid ha med datum och se till
att göra detta valbart för intervall.Annars kan det bli olidligt långa listor med
mycket gammal information.
I vårt exempel är fältet netto SEK inte valt för intervall-val. Dock kan det vara intressant
att ta ut alla köp under 999 kronor etc.
Intervallangivelse
Denna rubrik används ej.
Layoutmässiga val
Här finns en hel del varianter, vilka alla påverkar rapportens utseende.
Det mesta av vikt är beskrivet tidigare.
Se här för info
Detta beskrivs i tidigare material.
Se här för info