Dann läßt sich auch gut mit dem bei manchen verpönten "with" arbeiten.
"With" grundsätzlich nicht zu benutzen, das ist ja auch völlig überzogen. Man schaue sich das mal an :
Delphi-Quellcode:
procedure TAusg.FormShow(Sender: TObject);
begin
with DataModule1.Dataset1 do begin
Close;
SelectSQL.Clear;
SelectSQL.Add ('SELECT A.NR,A.BEZ, SP.* FROM ART8 A,')
SelectSQL.Add ('A1,')
SelectSQL.Add ('A2,')
...
SelectSQL.Add ('SONDER8 SP ');
SelectSQL.Add ('WHERE (A.ID = SP.ID_ART) AND...');
SelectSQL.Add ('AND A.NR >= :VonArtNr');
SelectSQL.Add ('AND A.NR <= :BisArtNr');
SelectSQL.Add ('ORDER BY A.NR');
ParamByName...
ParamByName...
ParamByName...
Open;
end;
inherited; // erst hier, sonst DS noch nicht besetzt
end;
Und dann das :
Delphi-Quellcode:
procedure TAusg.FormShow(Sender: TObject);
begin
DataModule1.Dataset1.Close;
DataModule1.Dataset1.SelectSQL.Clear;
DataModule1.Dataset1.SelectSQL.Add ('SELECT A.NR,A.BEZ, SP.* FROM ART8 A,')
DataModule1.Dataset1.SelectSQL.Add ('A1,')
DataModule1.Dataset1.SelectSQL.Add ('A2,')
...
DataModule1.Dataset1.SelectSQL.Add ('SHOPKUSONDER8 SP ');
DataModule1.Dataset1.SelectSQL.Add ('WHERE (A.ID = SP.ID_ART) AND...');
DataModule1.Dataset1.SelectSQL.Add ('AND A.NR >= :VonArtNr');
DataModule1.Dataset1.SelectSQL.Add ('AND A.NR <= :BisArtNr');
DataModule1.Dataset1.SelectSQL.Add ('ORDER BY A.NR');
DataModule1.Dataset1.ParamByName...
DataModule1.Dataset1.ParamByName...
DataModule1.Dataset1.ParamByName...
DataModule1.Dataset1.Open;
inherited; // erst hier, sonst DS noch nicht besetzt
end;
Wer da das with ignoriert und alles ausschreibt, der ist selber Schuld. So etwas hilft höchstens den Monitorherstellern. Für unnötigerweise lange Zeilen hilft ja schon ein 32" Monitor, um alles direkt zu sehen. Beim Drucken gehts dann eben wieder von vorne los.