Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Asiantuntijat

Reportbuilder ohjeita

ReportBuilder on SKJ:n käyttämä raporttityökalu, jolla tulostetaan useat raportit ja tuotetulosteet.

http://www.digital-metaphors.com/download/learning_reportbuilder.html

Tuotekuvien lisääminen tulosteeseen

Tilausvahvistukseen, hinnastoon tms. määriteltävään lomakkeeseen pystyy lisäämään tuotteen kuvan seuraavasti:

  • Kuva pitää olla tietenkin tuotteen kuvataulussa.
  • Haluamalle rbuilderin bandillle (esim. detail) Image
  • Detail band:n beforeprint event laita laita koodia esim. seuraavasti. Tässä se on tehtynä myyntitilaukselle. Image1 on kuvakomponentin nimi
    procedure DetailBeforePrint;
    var
    FileName,kuvateksti: String;
    begin
    FileName :=GetTuoteKuva(Tilaukset['Tuote'],  1, kuvateksti);
    if FileExists(filename) then
    begin
    Image1.visible := true;
    Image1.Picture.loadFromFile(filename);
    end
    else
    begin
    image1.visible := false;
    end;
    
  • Tässä ohjelma hakee kuvan jonka järjestys on 1.
  • Kuvalle kannattaa laittaa strecth ja MaintainAspectRatio päälle.
  • Jos haluat, että kuvattomat rivit ovat matalampia, laita detail bandille DynamicHeight
  • Tietyt kuvaformaatit vaativat 'DirectDraw' -asetuksen päälle.

Tuotetekstin lisääminen tulosteeseen

Tilausvahvistukseen, hinnastoon tms. määriteltävään lomakkeeseen pystyy lisäämään tuotteen tekstin seuraavasti:
Lisätään haluttuun paikkaaa esim. Memo
ja memon OnPrint eventtiin koodi

procedure Memo1OnPrint;
begin
memo1.lines.text := GetTuoteTxt( Tilaukset['Tuote'], 'KUVAUS');
end;
  • Tässä ohjelma hakee kuvaus otsikon alla olevan tekstin, esimerkki on tehty myyntitilausta varten . Tilaukset'tuote' korvataan tilanteeseen sopivalla viittauksella.

Myyjän ja asiakkaan kopion tulostaminen automaattisesti

Joskus halutaan esim. lähetteestä tai kassakuistista erilainen versio asiakkaalle ja myyjälle. Tälläinen esimerkkihän on oletuskuittipohjassa, jossa alhaalla lukee myyjän kappale ja asiakkaan kappale. Idea tässä on se, että laitetaan tulosteen kopiomääräksi haluttujen erilaisten versioden määrä ja ensimmäisellä kopiolla tulostetaan esim. asiakkaalle näkyvät ja toisella myyjälle näkyvät. Tässä esimerkissä lisätään joka tuoteriville viivakoodi, joka tulostuu vain myyjän kappaleeseen ja alas label, jossa lukee kumman kappale tämä on.
Tämä tehdään seuraavasti Rbuilderin lomakemäärittelyllä:
#Aseta raporttipohjan kopiot arvoon 2. File -> Page setup -> Copies 2

  1. Laita kaikki komponentit (jos ei ole jo) mihin muunnos vaikuttaa lomakepohjaan
    #Mene Calc välilehdelle
    ##vasemmasta yläkulmasta klikkaa hiiren oikealla ja valitse Module.
    ##Sitten valitse Global ja Declarations.
    ##Oikealta puolelta klikkaa Variables hiiren oikealla ja valitse New.
    1. Alapuolelle tulee Var ja sen alle kirjoita {{FCopy: Integer; }} FCopy on tässä nyt muuttuja, joka ilmaisee tulostettavavn kopion numeron
      #Calc välilehden vasemmasta ylänurkasta valitse hiiren oikealla Events.
  2. Valitse Vasemmasta yläkulmasta Report ja oikealta OnStartPage ja hiiren oikealla ota new. Kirjoita alastulleeseen tilaan koodi if (Report.SecondPass = True ) and (Report.AbsolutePageNo = 1) then
    FCopy := FCopy + 1;
  3. Vasemmalta hae Detail ja oikealta klikkaa BeforePrint hiiren oikealla ja valitse New (jos new harmaana, se on perustettu). Alas kirjoita koodi
    DbBarCode1.Visible := FCopy = 2;
    if Fcopy = 2 then
    Label39.Caption := 'Myyjän kappale'
    else
    Label39.Caption := 'Asiakkaan kappale';

Tässä ratkaisussa on yksi virhe. Jos tulostus tehdään polkua -> esikatsele -> tulostus esikatseluikkunasta, niin kappaleet tulotustuvat väärässä järjestyksessä johtuen siitä, että FCopy kasvaa jos esikatselussa arvo on 1.

Veloitusmuoto myyntitilauslomakkeelle

If Tilaukset['Veloitustapa']=0
   then Value := '-';
If Tilaukset['Veloitustapa']=1
   then Value := 'Laskutus / ' + MaksuEhto['Nimi'];
If Tilaukset['Veloitustapa']=2
   then Value := 'Tili';
If Tilaukset['Veloitustapa']=3
   then Value := 'Kassa';
If Tilaukset['Veloitustapa']=4
   then Value := 'Verkkopankki';
If Tilaukset['Veloitustapa']=5
   then Value := 'Luottokortti';
If Tilaukset['Veloitustapa']=6
   then Value := 'Postiennakko';
If Tilaukset['Veloitustapa']=7
   then Value := 'Tilisiirto';
If Tilaukset['Veloitustapa']=8
   then Value := 'Suomen Verkkomaksu';
If Tilaukset['Veloitustapa']=9
   then Value := 'Bussiennakko';
If Tilaukset['Veloitustapa']=10
   then Value := 'Lindorff lasku';
If Tilaukset['Veloitustapa']=11
   then Value := 'Klarna lasku';
If Tilaukset['Veloitustapa']=12
   then Value := 'Klarna tili';

Katso myös

Reportbuilderin laajennus funktiot

Luokka__Tekninen palvelu
Luokka__Asennus ja määrittely

  • No labels