[ sosingus @ 24.08.2005. 11:42 ] @
Imam problem sa rave-om i nacinom na koji funkcionise.
Ne mogu da nadjem dokumentaciju o svim komandama koje se mogu upotrebiti u event editoru rave-a, a zanima me kako da nebitno od komponente za koju pisem event dobijam/dodeljujem vrednost parametrima reporta?
Param.parametar ne radi, a ni samo parametar.

A drugi problem koji imam, je vezan za privremeno zaobilazno resenje koje sam nasla a svodi se na filtriranje kroz delphi.
Za instancu TRvDataSetConnection klase definisala sam OnValidateRow event koji radi ono sto ne umem izvesti u rave-u. Problem se svodi na to da mi se za parametar koji sumira vrednosti po jednoj strani OnValidateRow okida i za prvi red sledece strane. Tako da nikad nemam pravu sumu jedne strane.
Ovo mi je jako bitno i hitno, zna li neko, please?
[ vlaiv @ 24.08.2005. 12:23 ] @
Hajde ispocetka?

Nisam sasvim siguran da sam razumeo sta je tacno problem ...

Koji je Rave u pitanju? (verzija?)

Imam neki pdf za rave scripting, ako ti treba, javi pa cu ti baciti na mail.

Za sumiranje vrednosti (bilo konacna suma ili trceci saldo) preporucujem calctext ili neku kombinaciju datacycle, calcop i calctotal komponenti ....
[ sosingus @ 24.08.2005. 12:41 ] @
Verzija Rave-a je 5.0, calcop, calctext ni calc sum mi ne zavrsavaju posao jer sumiram vrednost jednog polja u zavisnosti od drugog - tj. za jednu pojavu polja A ima vise pojava polja B, ako sumiram sve pojave polja B ne mogu da razdvojim koliko u toj sumi pripada svakoj od pojava polja A. NPR Ako su mi pojave polja A {'visoko', 'srednje', 'nisko'} a medju pojavama polja B ima hiljade brojeva meni treba na svakoj strani sumirati npr 'visoko' = 123456 , 'nisko' = 456789, 'srednje' = 5555565.
To izvodim kroz parametre a filtriram u Delphi-ju kroz OnValidateRow event TRvDataConnection objekta. I sve bi bilo lepo da on ne validira jedan slog vise nego sto stane na stranu. Suma je tacna, samo za sve slogove na strani + prvi slog sledece strane. A na sledecoj strani krece od drugog sloga te strane + prvi slog sledece...
[ sosingus @ 24.08.2005. 13:09 ] @
A taj pdf za rave scripting bi mi sigurno dobro dosao, jer nisam nasla dobar resurs za scripting, ima nesto na nevroninom sajtu u tips & tricks sekciji, ali ne dovoljno. Pa mi baci na mail :)
thanks
[ sosingus @ 24.08.2005. 13:14 ] @
Sorry nisam upisala mail: [email protected]
[ sosingus @ 25.08.2005. 11:30 ] @
Izgleda da mi nema pomoci, odlucila sam da napravim zaobilazno resenje i sada radi, ali mi se ne svidja.
Znaci, prebrojala sam koliko redova staje na stranu i presek sam tu napravila. I premestila sam da event bude u OnGetRow mada funkcionise isto s tim sto se mora dodati jedan red :
Code:
Connection.DoGetRow;

Ne svidja mi se jer je dovoljno da se promeni velicina fonta i opet ne valja.
Ako se neko doseti zasto sam imala problem tj. kako bi se resio neka kaze. Rado bih promenila ovo resenje.
[ Trodmi @ 20.09.2005. 15:35 ] @
Toliko problema ni oko cega... Zasto uopste pisati evente u Rave-u? Lepo sloziti sve na formi , odraditi oncalc event ako ima potrebe za tim i tada kompletno sve prebaciti u rave. Ako treba jos pomoci www.delcode.com.
[ sosingus @ 23.09.2005. 11:52 ] @
Da, kada bi sume bile samo na kraju reporta a ne na svakoj strani!
[ Rapaic Rajko @ 23.09.2005. 14:27 ] @
'Ajd baci ovde kako izgleda OnValidateRow event (kod)...

Rajko
[ sosingus @ 23.09.2005. 15:18 ] @
Nije mi vise u ValidateRow nago u OnGetRow eventu.
Skratila sam, kod jer je poduzi
Code:

procedure TDM.rvdsPregledPoreskogZaduzenjaGetRow(
  Connection: TRvCustomConnection);
var
  ...
BrSlPoStr :=strtoint(trvp.GetParam('paramBrojSlogaPoStrani'));
//ovo je neophodno zbog toga sto event dva puta validira poslednji slog(eof)
if BrojValidacija < ibQuery.RecordCount then
  begin
    Connection.DoGetRow;
    trenutnaStopa := FormatFloat('#,###,###,##0.00', ibQuery.FieldByName('STOPA').asFloat);
    if trenutnaStopa = trvp.GetParam('paramDonosStopa1') then
      begin
        nextOsnovica:= ibQuery.fieldByName('OSNOVICA').AsFloat;
        nextOsnovica:= strtofloat(trvp.GetParam('paramSumOsnovica1'));
        newSumOsnovica1 := strtofloat(trvp.GetParam('paramSumOsnovica1')) + ibQuery.fieldByName('OSNOVICA').AsFloat;
        newSumPorez1 := strtofloat(trvp.GetParam('paramSumPorez1')) + ibQuery.fieldByName('POREZ').AsFloat;

        trvp.SetParam('paramSumOsnovica1', floattostr(newSumOsnovica1));
        trvp.SetParam('paramSumPorez1', floattostr(newSumPorez1));
      end
    else if trenutnaStopa = trvp.GetParam('paramDonosStopa2') then
            begin
              ...
            end;
  trvp.SetParam('paramBrojValidacija', inttostr(BrojValidacija+1));

  if (strtoint(trvp.GetParam('paramBrojSlogaPoStrani')) = 38) or (ibQuery.RecordCount=UkupnoSlogova) then
    begin
      trvp.SetParam('paramBrojSlogaPoStrani', '1');
      with trvp.ProjMan do begin
        MyPage := FindRaveComponent('PregledPoreskogZaduzenja.Page1',nil) as TRavePage;
        // osnovica1
        MyText := FindRaveComponent('txtSumOsnovica1',MyPage) as TRaveText;
        MyText.Text := Format('%12.2n', [strtofloat(trvp.GetParam('paramSumOsnovica1'))]);
        // porez1
        MyText := FindRaveComponent('txtSumPorez1',MyPage) as TRaveText;
        MyText.Text := Format('%12.2n', [strtofloat(trvp.GetParam('paramSumPorez1'))]);
        ...
      end;
      //kreiranje parametara za donos / prenos
      //poslednji donos
      oldSumOsnovica1:=strtoFloat(trvp.getParam('paramDonosOsnovica1'));
      ...
      oldSumPorez1:=strtoFloat(trvp.getParam('paramDonosPorez1'));
      ...
      //sume na strani + donos
      newSumOsnovica1:=strtoFloat(trvp.getParam('paramSumOsnovica1')) + oldSumOsnovica1;
      ...
      newSumPorez1:=strtoFloat(trvp.getParam('paramSumPorez1')) + oldSumPorez1;
      ...
      //napuni parametre donosa za sledecu stranu
      trvp.SetParam('paramDonosOsnovica1', floattostr(newSumOsnovica1));
      ...
      //novi prenos
      with trvp.ProjMan do begin
        //osnovica1
        MyText := FindRaveComponent('txtDonosOsnovica1', MyPage) as TRaveText;
        MyText.Text := Format('%12.2n', [newSumOsnovica1 ]);
        MyText := FindRaveComponent('txtUkupnoOsnovica1', MyPage) as TRaveText;
        MyText.Text := Format('%12.2n', [newSumOsnovica1 ]);
        ...
      end;
      ...
    end
  else
    trvp.SetParam('paramBrojSlogaPoStrani', inttostr(strtoint(trvp.GetParam('paramBrojSlogaPoStrani'))+1));

  end;
end;

To sad radi ovako ali mi je ruzno sigurno moze u rave event editor-u da se napravi da bude puno krace.
A i bilo bi mnogo jednostavnije da event-i ne kace uvek i prvu sledecu stavku nove strane.
[ Trodmi @ 23.09.2005. 22:20 ] @
Ceo taj ekran da stane u jednu kljucnu rec "Running-sum" :). Ajd' kad niko nece da ti odgovori... Napravis na Rave jedan databand. Na taj databand postavis polje koje sumira neko od prethodnih polja. Postavis ga na running sum. Podesis band da se stampa na kraju/pocetku svake nove strane... Problem resen?

Sve ostalo bi valjalo resiti na samoj formi i to bez upotrebe rogobatnih query,parambyname i ostalih dzidza bidza. Ako je bas frka, posalji opis celog problema na [email protected] i 'ce da bidne reseno.

[Ovu poruku je menjao Trodmi dana 23.09.2005. u 23:31 GMT+1]
[ sosingus @ 24.09.2005. 08:25 ] @
Ovo radi kako radi, tako da nije frka. Samo mi nije jasno kako niko ne razume?
Ja cu imati podatke koji ce npr ovako na databand-u biti:

Osnovica | ProcPDV | IznosPDV
------------------------------
1000.00 | 18.00 | 180.00
1000.00 | 8.00 | 80.00
10000.00| 18.00 | 1800.00
10000.00| 8.00 | 800.00
------------------------------
UKUPNO(strana 1)
------------------------------
11000.00| 18.00| 1980.00
11000.00| 8.00| 880.00
-----------------------------
strana2
----------------------------
Osnovica | ProcPDV | IznosPDV
------------------------------
1000.00 | 18.00 | 180.00
1000.00 | 8.00 | 80.00
10000.00| 18.00 | 1800.00
10000.00| 8.00 | 800.00
------------------------------
UKUPNO(strana 2)
------------------------------
11000.00| 18.00| 1980.00
11000.00| 8.00| 880.00
-----------------------------
UKUPNO SVE
-----------------------------
22000.00| 18.00 | 3960.00
22000.00| 8.00 | 1760.00
-----------------------------

Znaci, meni se u poju osnovica nalaze osnovice za oporezivanje po vise poreskih stopa i tako mi trebaju sumirane.
To je nesto sto na nivou celog reporta mogu da dobijem jednostavnim sql upitom sa group by. Ali mi to treba na svakoj strani.
Meni se taj databand i stampa na svakoj strani ali ne umem razdvojiti koliko je osnovice i poreza 8 a koliko 18 ili 0% na svakoj strani pojedinacno.
Vidim da zelis da mi pomognes:) , a ja verovatno se nisam ni izrazila ispravno od samog starta. Ja sa delpi-jem i rave-om radim dva meseca nista duze i zato sam sigurna da postoji mnogo bolje resenje.
[ sosingus @ 06.03.2006. 14:42 ] @
Posle poduzeg vremena, postoji nacin da se iz rave event editora dobije parametar.
Mozda nekom i posluzi. Na kraju je smesno kako je jednostavno.

RaveProject.GetParam('paramName');
[ Miloš Baić @ 06.03.2006. 15:25 ] @
Ovde ima sve što treba, otprilike...

www.nevrona.com/files/ravedevguide5.pdf