Печать Qrcode

отредактировано 00:16 Раздел: FastReport 4.0
Стоит задача сгенерировать и напечатать пачку Qr-кодов, и если с генерацией все ок, то все попытки засунуть в FastReport провалились.
Последняя попытка была сгенерировать массив и через пользовательский набор данных пихать в переменные на OngetValue, но тут тупик, если для мемо можно задать text [имя переменной], то для picture я не смог найти.
Еще были идеи OnBeforePrint обрабатывать, но тогда везде первый QRCOde идет.

Компонента в теме (https://www.fastreport.ru/ru/forum/index.php?showtopic=8833&st=15&gopid=36226&#entry36226) тоже пока нерабочая. :)
Может кто подскажет как? Delphi XE3 и FastReport 4.0 соответственно.

Комментарии

  • gpigpi
    отредактировано 00:16
    написал:
    Еще были идеи OnBeforePrint обрабатывать, но тогда везде первый QRCOde идет.
    Должно работать. Вычисляйте выражение с помощью TfrxReport.Calc, формируйте штрихкод и передавайте сформированный штрихкод в TfrxPictureView
  • отредактировано 00:16
    gpi написал: »
    Должно работать. Вычисляйте выражение с помощью TfrxReport.Calc, формируйте штрихкод и передавайте сформированный штрихкод в TfrxPictureView
    А можно чуть подробнее или пример какой? Как я понимаю основная проблема
    получить значение строки для кода, я делал так
    StrAccount:=repdataset.DataSource.DataSet.FieldByName('Account').AsString; // получаем из датасета строку с параметрами
    GetQR(StrAccount);// формируем qrCode
    TfrxPictureView(frxReport1.FindObject('Picture1')).Picture:=image1.Picture; // присваиваем qrcode в поле
    но по ходу датасет еще не двигается в этот момент.
    что надо забросить в calc?
  • gpigpi
    отредактировано 00:16
    if Sender.Name = 'Picture1' then
      StrAccount := frxReport1.Calc('<YourDatasetName."Account">');
    ...
    
  • отредактировано September 2017
    gpi написал: »
    if Sender.Name = 'Picture1' then
      StrAccount := frxReport1.Calc('<YourDatasetName."Account">');
    ...
    

    Не знает такого свойства...
    [dcc32 Error] mfrmQrCode.pas(200): E2003 Undeclared identifier: 'Name'
  • gpigpi
    отредактировано 00:16
    Должно знать
    procedure TForm1.frxReport1BeforePrint(Sender: TfrxReportComponent);
    begin
      if Sender.Name = 'Picture1' then
        StrAccount := frxReport1.Calc('<YourRealDatasetName_ThisIsJustASample."Account">');
    end;
    

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.