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 = 'CANSHOWCHILD' then
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;