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.