FastReport i zmienne

0

WItam,

bawie sie z FastReportem przegladajac dema i jednoczesnie probujac napisac mala aplikacje.

Udalo mi sie dowiedziec, ze zeby wyswietlic stringa z mojego kodu w raporcie np. w memo to musze uzyc zadeklarowac w raporcie zmienne i potem ladowac je w metodzie:

frxReportGetValue(const VarName: string; var Value: Variant);  

wiec wchodze w raport w designerze, Raport>ZMienne, tworze nowy folder i w srodku tworze swoja zmienna XXX
potem klikam na memo, ktore wstawilem na formularz raportu i tam wpisuje [XXX].

po odpaleniu na raporcie mam tekst, ktory zadeklarowalem.

Pytanie:

Jak tworzyc zmienne recznie i jak ustawiac te zmienne do konkretnych komponentow, najczesciej memo?

0

Wchodzisz w zakładkę Kod i tam możesz deklarować zmienne. Później odnosisz się do nich identycznie jak do zmiennych utworzonych ręcznie.

Jest też druga metoda zmieniania danych w elementach raportu - możesz podstawić coś do kontrolki widocznej na raporcie w kodzie.

0

A czy ta zakladke KOD maja wszystkie wersje FastReport?

Czy moge prosic jakis przyklad jak tam deklarowac i przypisywac zmienne?

znalazlem cos takiego:

 var
Variable: TfrxVariable;
Variable := frxReport1.Variables.Insert(1);
Variable.Name := 'My Variable 1';
Variable.Value := 10;

dodawanie zmiennej programistycznie... nie wiem czy tak to sie robi poprawnie.
No i jak przypisac zmienna do kontrolki np. memo20?

0

Czy mają wszystkie wersje to nie wiem, aż tak dobrze nie znam FR.

Dla przykładu powinien wystarczyć taki kod:

var        
Test : String;                                                                   
  
begin
    Test := 'abcdef';                                                                      
end.
0

metoda działa i jest fajna:

var        
Test : String;                                                                   
 
begin
    Test := 'abcdef';
    memo10.Text := test;                                                 
end. 

z tym, że Skrypty mają wszystkie wersje oprocz BASIC.
A ja sie przymierzam do zakupu BASIC.
Z okazji swiat jest obnizka cen na wszystkie FastReporty - 20%
i tak wersja z vat:
BASIC - ok 250 zl
STANDARD - 500zl

wersja, ktora mam to trial bodajze profesional wiec ma wszystko.

Teraz pytanie czy jest oplacalne kupowac Standard zeby miec chociazby te SKRYPTY?
Ma ktos taki problem :)?

0

Wróóóć...

Powyzszym sposobem nie mamy dostepu do kontrolek formy...:

var        
Test : String;                                                                   
 
begin
    Test := 'abcdef';
    memo10.Text := FORM.EDIT.TEXT //  ----------- NIE DZIALA                                                 
end. 

wiec nie mozemy sie komunikowac forma-raport...

0

To dziwne ponieważ ja mam dostęp:

var        
Test : String;                                                                   
  
begin
    Test := 'abcdef';
    Memo1.Text := Edit1.Text;                                              
end.

Oczywiście rozmawiamy o kontrolce (Edit1) umieszczonej na formatce TfrxDialogPage oraz kontrolce (Memo1) umieszczonej na stronie raportu.

0

Nie bardzo wiem co to jest to TfrxDialogPage

piszac Edit mialem na mysli forme programu, nie raportu --- np: Form1.Edit2.Text.

0

może najpierw napisz po co CI takie coś to się zobaczy czy nie próbujesz czegoś zrobić naokoło

0

Ok, generalnie udało mi się osiągnąć cel, ale jako że zaczynam to może coś robię naokoło faktycznie.

Więc, na ogół robi się raporty, że podpina się bazę danych do 'masterdata' w FR i on sobie już pobiera dane i drukuje na formularzu.

Ja w swoim raporcie zrezygnowałem z tego typu połączeń danych.
Raport poskładałem sobie sam z obrazków i obiektów Memo.

ale nie za bardzo wiedziałem jak przekazać zmienne z mojej aplikacji do raportu.
Obecnie potworzyłem zmienne i je uzupełniam jak w postach powyżej coś w stylu:

procedure TEdytujPacjentkeForm.RaportGetValue(const VarName: String;
  var Value: Variant);
begin
  if VarName = 'NrKsiegi' then
    Value := NrKsiegiEdit.Text;

  if VarName = 'Przyjecie' then
    Value := DataPrzyjeciaEdit.Text + ' ' +
             GodzinaPrzyjeciaEdit.Text; ... 

i tak to jest zrobione.

Czy to dobrze to nie wiem.

PS. Zamówiłem właścnie FastReporta 4 vcl za 240 zł u polskiego dystrybutora :) promocja -20% do 10 stycznia 2013.

1 użytkowników online, w tym zalogowanych: 0, gości: 1