2016-08-03 2 views
0

Как передать значение параметра из формы в построитель отчетов?Delphi - параметр передачи формы в построитель отчетов

Или любая ошибка

Построитель отчетов SQL:

SELECT * FROM Member Where MemberID = :MemberID 

Код формы:

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

Как поле MemberID определено в базе данных? – Dsm

+0

Вы пробовали ppReport1.add ('MemberID', dtString, '000001')? Замените тип данных любым «000001» ... –

+0

MemberID - VARCHAR (12), – Woondy

ответ

1

Вы не дают достаточно информации, чтобы быть уверенным, но вот мое предположение.

Вам нужно быть осторожным с типами параметров. SQL вы создаете это

SELECT * FROM Member where MemberID = 000001 

Если MemberID это текст, вам нужно

SELECT * FROM Member where MemberID = '000001' 

, который вы бы генерировать с помощью следующего кода

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

Кроме того, я думаю, вы могли бы оставить код как is и изменить запрос к

SELECT * FROM Member where MemberID = ':MemberID' 

, но я не 100% на этом.

Смежные вопросы