Fastreport DisplayFormat programból

Fastreport DisplayFormat programból
2007-06-24T15:53:51+02:00
2007-07-10T11:52:56+02:00
2022-11-05T04:30:34+01:00
Veriakilis1
Programból szeretném állítani egy Fastreport nyomtatáson egy ftMemoView DisplayFormat tulajdonságát.


Az ftMemoView paraméterezve kapja ráadásul egy Query mezőjének az értékét az frReport1GetValue esemyényben:


... ParValue:= DM.QF10.FieldByName(ListBox4.Items [MezoSzam]).AsVariant; ...


Ezzel próbálkoztam:

procedure TfrmF10.BitBtnNyomtatClick(Sender: TObject); var T: TfrBandView ; VV : TfrMemoView; TXTDoboz : String; I : Integer; begin frReport1.LoadFromFile(ExtractFilePath(Application.ExeName) + 'F10List.frf'); MezoSzerkezetlekeres(Self,DM.QF10.FieldByName(ListBox4.Items[0]).FieldName); TXTDoboz:= 'Memo0'; VV:= (frReport1.FindObject(TXTDoboz)) as TfrMemoView ; if Assigned(VV) then begin VV.dx:= MezoSzelesseg * 7; Left1:=VV.x; // Left, bal Width1:= VV.dx; // Szélesség end; For I:= 1 to ListBox4.Items.Count - 1 do begin TXTDoboz:= 'Memo' + IntToStr(I); VV := (frReport1.FindObject(TXTDoboz)) as TfrMemoView ; if Assigned(VV) then begin MezoSzerkezetlekeres(Self,DM.QF10.FieldByName(ListBox4.Items[I]).FieldName); If MezoTipus = 'ftString' then begin VV.x:= Left1 + Width1 + 2; VV.dx:= MezoSzelesseg * 7; Left1:= VV.x; Width1:= VV.dx; end; If MezoTipus = 'ftFloat' then begin VV.FormatStr:= '%2.2m'; VV.x:= Left1 + Width1 + 2; VV.dx:= 70; Left1:= VV.x; Width1:= VV.dx; // (VV as TfrMemoView).Highlight.FillColor := clRed ; // (VV as TfrMemoView).HighlightStr := '[Line#] mod 2 = 0' ; end; end; end; // ********************* MezoSzerkezetlekeres(Self,DM.QF10.FieldByName(ListBox4.Items[0]).FieldName); TXTDoboz:= 'M0'; VV := (frReport1.FindObject(TXTDoboz)) as TfrMemoView ; if Assigned(VV) then begin VV.dx:= MezoSzelesseg * 7; Left1:= VV.x; Width1:= VV.dx; end; For I:= 1 to ListBox4.Items.Count - 1 do begin TXTDoboz:= 'M' + IntToStr(I); VV := (frReport1.FindObject(TXTDoboz)) as TfrMemoView ; if Assigned(VV) then begin MezoSzerkezetlekeres(Self,DM.QF10.FieldByName(ListBox4.Items[I]).FieldName); If MezoTipus = 'ftString' then begin VV.x:= Left1 + Width1 + 2; VV.dx:= MezoSzelesseg * 7; Left1:= VV.x; Width1:= VV.dx end; If MezoTipus = 'ftFloat' then begin VV.x:= Left1 + Width1 + 2; VV.dx:= 70; Left1:= VV.x; Width1:= VV.dx end; end; end;
Mutasd a teljes hozzászólást!
Az a megoldás, hogy a mezőnek kell állítani a DisplayFormat-ját.


TFloatField( DM.QF10.FieldByName(Items[i].Name) ).currency:= TFloatField( frmSearch.Uni.FieldByName(Items[i].Name) ).currency; TFloatField( DM.QF10.FieldByName(Items[i].Name) ).DisplayFormat := TFloatField( frmSearch.Uni.FieldByName(Items[i].Name) ).DisplayFormat; If TFloatField( frmSearch.Uni.FieldByName(Items[i].Name) ).DisplayFormat = '' then begin TFloatField( DM.QF10.FieldByName(Items[i].Name) ).currency:= False; end;
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd