Hallo,
ich möchte noch eine Lanze für die PageProducer-Komponenten brechen. Hier wäre eine Gelegenheit für den Einsatz von TDataSetPageProducer. Einfach das
HTML-Template zuweisen:
XML-Code:
<tr>
<td width=9% bgcolor=#666666><font color=#FFFFFF size=2 face=Arial> <#FIELD name=KLASSEN></font></td>
<td width=9% bgcolor=#666666><font color=#FFFFFF size=2 face=Arial> <#FIELD name=S></font></td>
<td width=9% bgcolor=#666666><font color=#FFFFFF size=2 face=Arial> <#FIELD name=FUER></font></td>
<td width=9% bgcolor=#666666><font color=#FFFFFF size=2 face=Arial> <#FIELD name=WER></font></td>
<td width=9% bgcolor=#666666><font color=#FFFFFF size=2 face=Arial> <#FIELD name=FACH</font></td>
<td width=9% bgcolor=#666666><font color=#FFFFFF size=2 face=Arial> <#FIELD name=RAUM></font></td>
<td width=37% bgcolor=#666666><font color=#FFFFFF size=2 face=Arial> <#FIELD name=BEMER_SCH></font></td>
</tr>
Und ein kleines Stück Code:
Delphi-Quellcode:
procedure TDataModel.DataSetPageProducerHTMLTag(Sender: TObject; Tag: TTag;
const TagString:
String; TagParams: TStrings;
var ReplaceText:
String);
var
fldName:
string;
producer: TDataSetPageProducer;
begin
producer := Sender
as TDataSetPageProducer;
if (Tag = tgCustom)
and SameText(TagString, '
FIELD')
then
begin
fldName := TagParams.Values['
name'];
if Assigned(producer.DataSet.Fields.FindField(fldName))
then ReplaceText := VarToStr(producer.DataSet.FieldValues[fldName])
else ReplaceText := Format('
[?%s]', [fldName]);
end;
end;
{ ... }
procedure TDemoForm.ButtonClick(Sender: TObject);
begin
with DataModel
do
begin
Query.Open;
while not Query.Eof
do
begin
Memo.Lines.Add(DataSetPageProducer.Content);
Query.Next;
end;
Query.Close;
end;
end;
So richtig gut wird das ganze mit verketteten Producern.
Darüber meditieren ihr solltet.
Gute Nacht