Einzelnen Beitrag anzeigen

Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.393 Beiträge
 
Delphi 12 Athens
 
#11

AW: FastReport: RFT Länge ermitteln

  Alt 10. Feb 2023, 14:16
Danke...

Diese Varianten habe ich alle durch. Ich bin nie zu einem stabilen Ergebnis gekommen. Erst Recht nicht mit dem Bug in if/then.

TRIM hat bei mir alle Zeichen, auch die benötigten, entfernt -> Lenght = 0
Zitat:
Lines.Text (unter Windows) immer mindestens = 2
...nicht ganz. Wenn du imho auf ein NULL Feld triffst ist, Lines.Count = 0 und Länge = 0

Ich habe jetzt eine CustomerFunction eingebaut, die mir im Delphi Quelltext das Datenfeld in das Dummy RichEdit einliest und mir den Text ohne Steuerzeichen emittelt und einen Boolean zurückgibt. Damit funktioniert es stabil...
Delphi-Quellcode:
function TdmReport.frxReport1UserFunction(const MethodName: string; var Params: Variant): Variant;
begin
  if MethodName = 'CANSHOWCHILDthen
  begin
    Result := CanShowChild(Params[0], Params[1]);
  end;
end;
...
function TdmReport.CanShowChild(DataSetName, FieldName: string): Boolean;
var
  Data: TDataSet;
begin
  Result := False;

  if FCurrentPrint.ReportDictionaryDataSets.ContainsKey('frx' + DataSetName) then
  begin
    Data := FCurrentPrint.ReportDictionaryDataSets['frx' + DataSetName];
    if Assigned(Data) then
    begin
      Stream.Clear;
      TBlobField(Data.FieldByName(Fieldname)).SaveToStream(Stream);
      Stream.Position := 0;
      Rich.Lines.LoadFromStream(Stream);

      Result := (Trim(Rich.Lines.Text) > '');
    end;
  end;
end;
  Mit Zitat antworten Zitat