доступ к полю, которого нет в Memoview

отредактировано 15:35 Раздел: FastReport 4.0
Есть отчет по документам
каждый док имеет doc_id
На экране его светить не надо
Но при клике на номер документа желательно по doc_id подгрузить dll со всей информацией по документу.
Можно ли этот doc_id куда-то записать - как-то его достать?

Комментарии

  • gpigpi
    отредактировано 15:35
    Запишите в TfrxMemoView.TagStr
  • отредактировано 15:35
    gpi написал: »
    Запишите в TfrxMemoView.TagStr
    попробовал:
    procedure Memo20OnPreviewClick(Sender: TfrxView; Button: TMouseButton; Shift: Integer; var Modified: Boolean);
    begin
    ShowMessage(VarToStr(Memo20.tagstr));
    bz_fastbpls_set_var('id_doc', Memo20.tagstr);
    bz_call_dll(bz_get_full_bpls_dir('DocDir') + 'DocInfo.dll', '');
          
    end;
      
    procedure Memo20OnBeforePrint(Sender: TfrxComponent);
    begin
      Memo20.tagstr := VarToStr(<Data_order."id_doc">);
    end;
    

    не работает - значение Memo20.tagstr - пустое
  • отредактировано 15:35
    записал в дизайнере
    Memo20.tagstr = [Data_order."id_doc"]

    Всё равно в Memo20OnPreviewClick
    вызов ShowMessage(VarToStr(Memo20.tagstr));
    возвращает не значение id_doc, а строку [Data_order."id_doc"]
  • отредактировано 15:35
    спасибо, всё решил

    Помог ответ AlexTZ:
    Проблема в том, что объекта Memo8 во время превью в скрипте не существует. Доступен только объект, вызвавший событие, и к нему надо обращаться не по имени, а как TfrxMemoView(Sender).TagStr.

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

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