Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Sisällysluettelo

Table of Contents

ReportBuilderin SKJ funktiot

ReportBuilderillä voidaan tulostaa karkeasti ajatellen neljänlaista dataa:

  1. Kiinteä teksti (esim otsikot)
  2. Järjestelmämuuttujia (esim päivämäärät / sivunumerot jne)
  3. Tietokantakenttiä (esim tuotetiedot, jotka tulevat kannasta)
  4. Funktioiden tuottamaa informaatiota

Funktioiden selitys

Funktioiden selitys:
Jokaisen funktion kohdalla on seuraavantyyppinen selitys:

...

  • Kenttä (=varastosaldotietueen kenttä)
  • Tuotekoodi (=mistä tuotteesta halutaan varastosaldotietue)
  • Varasto (=minkä varaston varastosaldotietue halutaan)

...

  1. Luo lomakkeelle vaikkapa Variable -tyyppinen komponentti (työkalurivillä laskimen näköinen kuva ja sen jälkeen klikkaa mihin komponentin haluat)
  2. Klikkaa luomaasi Variablea hiiren oikealla ja valitse Calculations..
  3. Lisää haluamasi funktio avautuvaan ruutuun, esimerkiksi siten että:

    Panel
    Value := Varastosaldo('invpvm',Tuotteet['numero'],5);

    ,joka palauttaa Variableen pipelinen Tuotteet kentän Numero -vastaavan tuotteen inventointipäivämäärä -kentän varaston 5 osalta.

Funktiot

AnsiCapitalize

Code Block
function AnsiCapitalize(Const s: String): String;

Muuttaa tekstin sanojen alkukirjaimet isoiksi (huomioi skandit). Esim. kissan äidin häntä -> Kissan Äidin Häntä.

Panel

Esimerkki: Caption := AnsiCapitalize(Tuotteet['Nimi']);


AsiakasTieto

Code Block
function AsiakasTieto(const Asiakas: Integer; const Kentta: String): Variant;

Palauttaa parametrina annetun kentän arvon halutulle asiakkaalle (parametri Asiakas). Koskee siis vain asiakas -taulua, ei lainkaan asiakas2 -taulua.

...

Panel
procedure Label3OnGetText(var Text: String);
var 
s: string;
t: string;
begin
t := DbPipeline1['TUOTE'];
t := StringReplace(t,chr(39),chr(39)+chr(39),3);
s := avoinkysely('select sum(summa) as summa from tuotemyy where tuote = '+chr(39)+t+chr(39),'');
if copy(s,1,7)='*error*:' then
text := 'Virhe kyselyssä '+s
else
Text := s;
end;


GetAsTxt

Code Block
function GetAsTxt(Const Asiakas: Integer; Const Otsikko:string):String;

Hakee asiakkaan teksteistä annetulla otsikolla tekstin.

GetTryhmaNimi

Code Block
function GetTryhmaNimi(Const nro: Integer):String;

Palauttaa tuoteryhmän nimen.

GetTuoteDoc

Code Block
function GetTuoteDoc(Const Tuote,Otsikko:string):String;

Hakee tuotteen dokumentti -taulusta annetulla otsikolla dokumentin nimen.

GetTuoteKuva

Code Block
function GetTuoteKuva(Const Tuote: String; Jarjestys: Integer; Var kuvateksti: string):String;

Hakee tuotteen kuvatekstin ja palauttaa kuvan tiedostonimen. Järjestys ilmoittaa järjestysavaimen.

Esimerkki artikkelissa Reportbuilder ohjeita

GetTuoteTxt

Code Block
function GetTuoteTxt(Const Tuote,Otsikko:string):String;


Palauttaa tuotteen tekstin annetulla otsikolla.

KassaanMaksuStr

Code Block
function KassaanMaksuStr(const i: Integer): string;

Palauttaa kassaanmaksun nimen (parametrin i pitää olla laillinen kassaanmaksun numero).

LuoPankkiviivakoodi

Code Block
LuoPankkiviivakoodi(const tilinro, viitenro: string; const erapaiva: TDateTime; const summa: Double; const tyyppi: Integer)
  • Tilinumero
  • Viitenumero
  • Eräpäivä
  • Summa
  • Tyyppi (2/4)

MaksutapaNimiStr

Code Block
function MaksuTapaNimiStr(const i: integer): string;

Palauttaa maksutavan nimen (parametrin i on oltava laillinen maksutavan numero).

MaksuehtoNimiStr

Code Block
function MaksuehtoNimiStr(const i: integer): string;

Palauttaa maksuehdon nimen (parametrin i on oltava laillinen maksuehdon numero).

MemoKoko

Code Block
function MemoKoko(Report:TppReport; s:string; fname:string; fsize:integer):Integer;

Antaa arvion raportin yksiköissä mikä on annetun tekstin (s) korkeus fontilla jonka nimi on fname ja koko fsize.

MkNakyy

Code Block
function MkNakyy:Boolean;

Kertoo onko järjestelmään määritelty markat näkyviin.

MuotoileVarastoSaldo

Code Block
function MuotoileVarastoSaldo(const Saldo:double; Const Pullokoko:Double):String;

Muotoilee alkoholivarastosaldot tulostettavaan muotoon (esim. saldo 1.5, Pullokoko 50 cl -> tulee 1P 25).

MyyjaNimiStr

Code Block
function MyyjaNimiStr(const i: integer): string;

Palauttaa myyjän nimen (parametrin i on oltava laillinen myyjän numero)

Nimi2Norm

Code Block
function Nimi2Norm(Const Str:string):String;

Muotoilee nimen "normaaliin muotoon" esim. Koistinen Mika -> Mika Koistinen.

OnRavintola

Code Block
function OnRavintola:Boolean;

Palauttaa TRUE, jos asetuksissa on ravintolabitti on päällä ja palauttaa FALSE, mikäli ei ole päällä.

OstoLajiStr

Code Block
function OstoLajiStr(const i: integer): string;

Palauttaa ostolajin kuvauksen annetulla numerolla.

SenttiPyoristys

Code Block
function SenttiPyoristys(summa:Double):Double;

Laskee lähimpään viiteen senttiin pyöristetyn summan (esim. annetaan parametriksi 10.53, tulos = 10.55).

SetReportParameter

Code Block
function SetReportParameter(Report:TppReport; Parameter:String; Value:Variant);


SkjAsetusB

Code Block
function SkjAsetusB(Const asetusName:string):Boolean


SkjAsetusS

Code Block
function SkjAsetusS(Const asetusName:string):String;

Palauttaa skj:n perusasetuksia. Parametri voi olla jokin seuraavista:

...

  • Tilinumero1
  • Tilinumero2
  • Tilinumero3
  • iban1
  • iban2
  • iban3
  • bic1
  • bic2
  • bic3

Esimerkki:

Code Block
Variable1.Value := SkjAsetusS('puh1');


StringReplace

Code Block
function StringReplace(const Mjono: string; const Mista,Mihin: string; const flags:integer): string;


Korvaa merkkijonosta osia.

  • MJono: tästä merkkijonosta etsitään ja korvataan
  • Mista: Mikä merkkijono korvataan
  • Mihin: Millä merkkijonolla korvataan
  • Flags: 1 =Korvaa kaikki, 2 = ei vertaa kirjainkokoa, 3= molemmat
  • Paluuarvo: korvattumerkkijono
    esim
    s := StringReplace('Joulupukki kävi kylässä korjaamassa SAHAPUKKIA','pukki','muori',3);
    s on nyt Joulumuori kävi kylässä korjaamassa SAHAmuoriA

StrPad

Code Block
function StrPad(Const Str:string; Pituus:Integer; c:char):String;


StrPvmToDispPvm

Code Block
function StrPvmToDispPvm(Const StringPvm:string):String;

Muuttaa yyyymmdd muotoisen päivämäärän visuaalisempaan muotoon, esim. 20111224 -> 24.12.2011

StrPvmToDate

Code Block
function StrPvmToDate(Const StringPvm:string):DateTime;

Muuttaa yyyymmdd päivän DateTime tyyppiksi

ToimEhtoNimiStr

Code Block
function ToimEhtoNimiStr(const i: integer): string;

ToimittajaNimi

Code Block
function ToimittajaNimi(const Tunnus: String): string;

Palauttaa toimittajan nimen jos se löytyy, muuten tyhjän.

ToimittajaTieto

Code Block
function ToimittajaTieto(const Tunnus, Kentta: String): Variant;

Palauttaa parametrina annetun kentän arvon halutulle toimittajalle (parametri Tunnus).

  • Esimerkki: ToimittajaTieto('1001', 'Nimi');

translate

Code Block
function translate(s:string; Kieli: Integer):string;

TuoteOminaisuusArvot

Code Block
function TuoteOminaisuusArvot(const TuoteNro: String; const Tyyppi: Integer; const erotin: string; const myosarvonimet: Boolean): string;

Funktio, jolla saadaan luettua tuotteen ominaisuudet ja niiden arvot.

...

Tällä on tarkoitus hakea multituotteen ominaisuuksia tulosteille (Tyyppi 2 = valikko).

TuoteRyhmaTieto

Code Block
function TuoteRyhmaTieto(const Nro: Integer; const Kentta: String): Variant;
Palauttaa parametrina annetun kentän arvon halutulle tuoteryhmälle (parametri Nro).
  • Esimerkki: TuoteRyhmaTieto(200, 'Nimi');

TuoteTieto

Code Block
function TuoteTieto(const numero, kentta: String): Variant

Palauttaa parametrina annetun kentän arvon halutulle tuotteelle (parametri numero). Käyttää sekä tuote että tuote2 -tauluja.

Esimerkki: TuoteTieto('1234567890123', 'Hinta');

Tuoteviivakoodi

Code Block
function Tuoteviivakoodi(const Tuote: string; Nro:Integer): String;

Haetaan tuotteen viivakoodi tuotenumerolla. Parametri tuote on tuotenumero ja parametri nro ilmoittaa sen, että haetaanko viivakooditaulusta lopusta alkuun (<0) vai alusta loppuun (>=0) Esimerkkinä myyntitilauksella vaikka Labelin OnGetText tapahtumassa

...

Code Block
Text := TuoteViivakoodi( Tilaukset['Tuote'],0);

Lajitelman viivakoodi tulee

Code Block
function Lajitelmaviivakoodi(const Tuote: string; Nro,id1,id2:Integer): String;

Esimerkiksi ostotilauksella:

Panel
procedure BarCode1OnPrint;
begin
	Barcode1.data := Lajitelmaviivakoodi(Tilaukset['Tuote'],0,Tilaukset['id1'], Tilaukset['Id2']);
end;

Varastosaldo

Code Block
function varastosaldo(Const kentta, tuote: String; const varasto): varastosaldo; 

Hakee varastosaldotaulusta tietyn kentän, esim:

Panel
varastosaldo('invpvm',Tuotteet['numero'],5)

Lajitelman varastosaldo



Code Block
function LajitelmanVarastosaldo(const kentta, tuote: string; const id1, id2, varasto: Integer): Variant; 

Hakee lajitelman varastosaldotaulusta tietyn kentän, esim haetaan minimi1 varastosta 5

Code Block
languagedelphi
text := Lajitelmanvarastosaldo('minimi1', Tuotteet['numero'],Tilaukset['Id1'], Tilaukset['Id2'], 5);


Lajitelman Nimi

...

Code Block
languagedelphi

Palauttaa annetun lajitelman nimen.  Palauttaa pitkan nimen jos se on annettu, muuten "normaalin" lyhyen. esim alla otetaan lajitelma1 teksti ja perään kauttaviivalla mahdollinen 2 lajitelmaid nimi.

Code Block
languagedelphi
procedure Label402OnGetText(var Text: String);
begin
  Text := VariKokoNimiFunction(Tilaukset['Id1']);
  if Tilaukset['Id2'] <> 0 then
    text := text+'/'+VariKokoNimiFunction(Tilaukset['Id2']);
end;


UlosMaksuStr

Code Block
function UlosMaksuStr(const i: Integer): string;

UnixToDateTime

Code Block
function UnixToDateTime(Const unixDate:Integer):DateTime;

WeekOf

Code Block
function WeekOf(const dt: TDateTime): Integer;

Palauttaa parametrina annetun päiväyksen (parametri dt) viikkonumeron (1-52).

Esimerkkejä:

  • WeekOf(CurrentDateTime) -> palauttaa nykyisellä hetkellä olevan päiväyksen viikkonron
  • WeekOf(EncodeDate(2011, 2, 1)) -> palauttaa vuoden 2011 helmikuun ensimmäisen päivän viikkonron

WordCount

function WordCount(Teksti: String; erotin: String): Integer

...