2016-08-03 10 views
0

Wie ich den Parameterwert von Form übergeben Builder melden?Delphi - Form Parameter an den Berichts-Generator

Oder jeder Fehler

Bericht Builder SQL:

SELECT * FROM Member Where MemberID = :MemberID 

Formularcode:

procedure TfmRbTest.Button1Click(Sender: TObject); 
begin 
    ppReport1.Template.FileName = 'Member.rtm' 
    ppReport1.Template.LoadFileName; 
    ppReport1.Parameters['MemberID'].Value := '000001'; 
    ppReport1.Print; 
end; 
+0

Wie Sie das Feld MemberID in der Datenbank definiert sind? – Dsm

+0

Haben Sie ppReport1.add ('MemberID', dtString, '000001') versucht? Ersetzen Sie Datentyp mit dem, was ‚000001‘ passiert zu sein ... –

+0

MemberID - VARCHAR (12), – Woondy

Antwort

1

Sie haben nicht genügend Informationen liefern, um sicher zu sein, aber hier ist meine Vermutung.

Sie müssen sich mit Parametertypen vorsichtig sein. Die SQL Sie erzeugen ist

SELECT * FROM Member where MemberID = 000001 

Wenn MemberID Text ist, müssen Sie

SELECT * FROM Member where MemberID = '000001' 

, die Sie mit dem folgenden Code

procedure TfmRbTest.Button1Click(Sender: TObject); 
begin 
    ppReport1.Template.FileName = 'Member.rtm' 
    ppReport1.Template.LoadFileName; 
    ppReport1.Parameters['MemberID'].Value := '''000001'''; 
    ppReport1.Print; 
end; 

Alternativ denken erzeugen würde ich Sie den Code verlassen könnte als und die Abfrage zu

SELECT * FROM Member where MemberID = ':MemberID' 
ändern

aber ich bin nicht 100% darauf.