Как подцепить из CheckBox FR3 формы приложения

visor123visor123 Днепропетровск
отредактировано October 2005 Раздел: FastReport 3.0
Из ComboBox сорри, или вообще вызвать по событию форму в общем случае.
Можно ли вызвать из FR3 формы справочников из ComboBox формы FR3 ???
Думаю, что можно, но нет времени сильно глубоко вникать в вызовы FR3.
Может нужно обертку написать для базового класса формы справочника и через нее вызывать?
Если можно покажите пож-ста пример обертки либо вызова... .

Могу поделиться обертками к компонентам ZeosDBO 6.x под FR2 и FR3

Комментарии

  • отредактировано October 2005
    О чем это Вы? Лично я ничего не понял, как наверное и другие. Видимо стоит сформулировать вопрос.
  • отредактировано 21:28
    Мне кажется visor123 имел в виду следующее (если я правильно понял). Есть две формы FastReport. Необходимо по событию (неважно какому) на элемент Combobox (хотя наверное тоже не важно какому) вызвать другую форму FastReport. Вопрос конечно интресный.

    Беглый поиск по документации не дал результатов (возможно я и ошибаюсь). Когда сделал отчет с двумя формами, так и не понял как показать второе диалоговое окно. Метод Show у него не определн, а вот обработчик OnShow можно поставить. Вот так.
  • Stalker4Stalker4 123
    отредактировано 21:28
    Если нужно из одной формы в FR3 вызвать другую, то это вполне возможно.

    Скажем есть у нас в FR3 две формы:
    DialogForm1 и DialogForm2.
    В дизайнере FR3 в OI делаем DialogForm2.Visible := False;
    На DialogForm1 кидаем кнопку и на OnClick кнопки вешаем скрип
    DialogForm2.ShowModal.
  • visor123visor123 Днепропетровск
    отредактировано October 2005
    Вопрос: Вызвать из формы FR3 произвольную форму приложения используя в качестве источника события компонент ComboBox.Почему комбобокс - просто он имеет поле для текста и кнопку, на которую можно нажать и это все нормально выглядит для пользователя. Почему форму из приложения, потому что например форма справочника имеет древовидную структуру и в FR3 такое отобразить очень сложно (для экстремалов могу рассказать как ;) ), поэтому лучше вызвать привычную форму справочника, чем выдумывать велосипед.

    Вобщем задача решается необычайно легко и красиво.
    Я просто зарегистрировал функцию а потом ее обработал.
    пример
    frxRep.AddFunction('function MyGet_GoodsDir:integer','Справочники программы','Функция вызывает справочник товаров и возвращает выбранный ключ.');

    Обработка (вызов формы базовый)
    if MethodName='MYGET_GOODSDIR' then begin
    XObject:=TComponent.Create(Self);
    M_CreateBaseForm(TfrmGoods,frmGoods,XObject);
    Result:=XObject.tag;
    XObject.Free;
    end;

    НО НЕУДОБСТВО в том, что в ComboBox во FR3 нет нормальных событий для отработки данной задачи. Например OnClick вызывается на клике в выпадающем списке.

    <span style='font-size:14pt;line-height:100%'>Уважаемые разработчики выложите в published-раздел компонента событие OnButtonClick, которое вызывается при нажатии на кнопку ComboBox-е</span>
    Могу его и сам вытащить в коде FR3, но при замене версии нужно будет опять это делать. А если добавить свой компонент - тоже решение. Но я считаю, что нажатие на батон комбобокса понадобится и другим разработчикам, пользующимся FR.
    (Лицензия есть)
  • Stalker4Stalker4 123
    отредактировано October 2005
    Исходя из твоего описания, тебе ComboBox вообще не нужен. Ты ведь не используешь его выпадающий список. Тебе было бы проще поместить на форму Edit и кнопку. И при нажатии на кнопку и будешь вызывать свой справочник.
    А для большего удобства юзера, на кнопку помести такую же картинку как и у ComboBox, а на Edit повесь обработку горячей клавиши.

    По поводу древовидной структуры справочника, это тоже не проблемма.
    Чем ты пользуешься в своей программе, для вывода дерева ?

    Я например использую DbGridEh. И когда мне понадобилось показывать в диалоге FR3 древовидуню структуру, я просто сделал себе frxDbGridEh и все прекрасно работает.
  • visor123visor123 Днепропетровск
    отредактировано 21:28
    Stalker4 написал:
    Исходя из твоего описания, тебе ComboBox вообще не нужен. Ты ведь не используешь его выпадающий список. Тебе было бы проще поместить на форму Edit и кнопку. И при нажатии на кнопку и будешь вызывать свой справочник.
    А для большего удобства юзера, на кнопку помести такую же картинку как и у ComboBox, а на Edit повесь обработку горячей клавиши.

    По поводу древовидной структуры справочника, это тоже не проблемма.
    Чем ты пользуешься в своей программе, для вывода дерева ?

    Я например использую DbGridEh. И когда мне понадобилось показывать в диалоге FR3 древовидуню структуру, я просто сделал себе frxDbGridEh и все прекрасно работает.
    Если положить Edit и кнопку рядом, как это будет смотреться? я уже видел, весьма жалко, такое ощущение, что отчеты пишут непонятно кто.

    Насчет обертки вокруг DBGridEh - не новость, только велосипед изобретать нет времени. Проще выбрать уже сделанный справочник, с фильтрацией и прочим.

    Насколько я понял, прийдется сделать обертку вокруг DBComboBoxEh, и там соответственно обрабатывать нажатие кнопки.
    Вобщем подход стандартный - помоги себе сам ;) в принципе так и приходится делать.

    Господа разработчики FR3, если вопрос не будет решен - напишите пож-ста в форуме. Вопрос в frxComboBox выложить в published событие OnButtonClik, которое вызывается при нажатии на кнопку в ComboBox.

    Кстати, господин Stalker4, предлагаю меняться компонентами. Например обертка под FR3 для DBGridEh мне не нужна, но нужна оберка вокруг DbComboboxEh. Взамен могу дать компоненты перехвата событий и их обработки, удобно для удаленной работы, или например обертку под FR3 под ZeosDBO, или например компонент отрисовки прогрессбара в статусбаре... Вобщем на что меняться - у меня их есть. Перечисленные компоненты я разработал сам, посему авторских проблем с собой не имею ;)
  • Stalker4Stalker4 123
    отредактировано 21:28
    Edit с кнопкой будут смотреться вполне нормально, по крайней мере затраты на это минимальные. Как говориться дешево и сердито ;)
    Если не нравиться, то сделай себе компонент типа Rx-овского TComboEdit.

    Насчет DBGridEh - это тоже вполне выход для разных ситуаций, тем более что он мгогое умеет.

    По поводу "Вобщем подход стандартный - помоги себе сам" - а ты как хотел, что бы за тебя все сделал кто то ?
    А самому сделать компонент для FR3, не очень то и сложно. Скажем у меня в диалогах используются обертки над моими ComboBox, Edit, DateEdit, Memo, универсальным справочником (ComboDialog), etc. - так что как понимаешь с расширяемостью проблем нет, благо в FR3 и FS это все сделать не сложно.

    По поводу DbComboboxEh - я его вообще не использую, так что обертки над ним у меня нет.
    Из оберток для EhLib и FR3 у иеня только TfrxDbGridEh и TfrxMemTableEh.


  • visor123visor123 Днепропетровск
    отредактировано 21:28
    Stalker4 написал:
    Edit с кнопкой будут смотреться вполне нормально, по крайней мере затраты на это минимальные. Как говориться дешево и сердито ;)
    Если не нравиться, то сделай себе компонент типа Rx-овского TComboEdit.

    Насчет DBGridEh - это тоже вполне выход для разных ситуаций, тем более что он мгогое умеет.

    По поводу "Вобщем подход стандартный - помоги себе сам" - а ты как хотел, что бы за тебя все сделал кто то ?
    А самому сделать компонент для FR3, не очень то и сложно. Скажем у меня в диалогах используются обертки над моими ComboBox, Edit, DateEdit, Memo, универсальным справочником (ComboDialog), etc. - так что как понимаешь с расширяемостью проблем нет, благо в FR3 и FS это все сделать не сложно.

    По поводу DbComboboxEh - я его вообще не использую, так что обертки над ним у меня нет.
    Из оберток для EhLib и FR3 у иеня только TfrxDbGridEh и TfrxMemTableEh.
    Спасибо за ответ, напишу нужные обертки, проблема не в написании, а в том, что нехватает всего 1-го события в компоненте ;)
    А полностью портировать гриды и прочее я считаю совсем не нужно, т.к. формы справочников уже имеют достаточный функционал для работы со справочниками и в зависимости от типа вызова ведут себя именно так как нужно.
    Все просто, главное не парить себе мозг ;)

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

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