Alter interface

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Alter interface

Сообщение m0p3e »

savov писал(а):Я думаю, ошибаюсь с наименованием контейнера, как его определить? Поясните плиз
Ctrl+F4 - GetIfcCurrentFieldName
или конфигуратором.
savov писал(а):Попробовал приведенный код
На "cfp..." орет, что нет такой функции
cfp описаны в cfg_all.inc. Нужно подключить.
savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Re: Alter interface

Сообщение savov »

Ctrl+F4 - GetIfcCurrentFieldName
или конфигуратором.
Да, именно так и получал указанные в моем коде имена.
а visible нужен?
В самой исходном фейсе верхняя часть - скрин. Переопределение вставит кнопку именно туда ( если координаты попадают)?
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Alter interface

Сообщение m0p3e »

Для начала нужно понять все ли функции отрабатывают.

Код: Выделить всё

    cmOnVipLoad:
    {
       inherited::handleEvent(cmOnVipLoad);
       Message('cfsSetCurrentContainer - ' + cfsSetCurrentContainer('PRNVARIATMCUSL.SCRPRNVARIATMCUSL.WNASTR'));
       //и так далее
       cfsCreateObject('button', 'SCRBUTTONS', 'ButDistributionValue', FALSE, butMyCom);
       cfsSetProp('ButDistributionValue','Visible',TRUE);

       cfsSetProp('ButDistributionValue','Size_X',91);
       cfsSetProp('ButDistributionValue','Size_Y',25);
       cfsSetProp('ButDistributionValue','Origin_X', 100);
       cfsSetProp('ButDistributionValue','Origin_Y', 23);
    }
savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Re: Alter interface

Сообщение savov »

Скомпилил и запустил. Фейс вышел, но ни одной мессаги не появилось.
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Alter interface

Сообщение m0p3e »

savov писал(а):Скомпилил и запустил. Фейс вышел, но ни одной мессаги не появилось.
Значит коД вааще не отрабатывает.

Посмотрел исходники интерфейса. Нет там cmOnVipLoad. Требуемое событие cmInit;

Код: Выделить всё

cmInit : 
 {
  inherited::HandleEvent(cmInit);
  ....................................
 }
Кроме того не вижу скрина "ScrButtons" там.
savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Re: Alter interface

Сообщение savov »

Сообщения пошли после смены на cmVipLoad на cmInit, на установку контейнера и создание объекта выдала -5, на установку свойств -3, но кнопки нет
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Alter interface

Сообщение m0p3e »

Код: Выделить всё

  cfErrContainerObjectNotExist : Integer = -5;
Навскидку:

Код: Выделить всё

       cfsSetCurrentContainer('PRNVARIATMCUSL');
       cfsCreateObject('button', 'SCRPRNVARIATMCUSL', 'ButDistributionValue', FALSE, butMyCom);
       cfsSetProp(butMyCom,'Visible',TRUE);

       cfsSetProp(butMyCom,'Size_X',91);
       cfsSetProp(butMyCom,'Size_Y',25);
       cfsSetProp(butMyCom,'Origin_X', 100);
       cfsSetProp(butMyCom,'Origin_Y', 23);
savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Re: Alter interface

Сообщение savov »

ПОЯВИЛАСЬ!!!! :cool:
ОГРОМНОЕ СПАСИБО!!!!
Кстати, а где поподробнее прочитать про это? В одном случае cmOnVipLoad, в другом просто cmInit чем определяется? (исходников у нас нет)
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Alter interface

Сообщение Den »

savov писал(а): В одном случае cmOnVipLoad, в другом просто cmInit чем определяется? (исходников у нас нет)
Если использование конкретной функциональности реализовано через объектную модель атлантиса,то загрузка реализуется ,как вариант, посредством cmOnVipLoad (Выдержка из хэлпа по cmOnVipLoad: "Событие возникает в момент создания экземпляра Vip-интерфейса...").
Т.е. если к Вашему PRNVARIATMCUSL обращаются как в объекту, (например, задействуя переменную типа ссылки...) то загрузка PRNVARIATMCUSL будет производится посредством cmOnVipLoad, если "по старинке" - то через Cminit.
Хотя без исходников конечно все равно тяжковато ( Часть информации можно посмотреть через консоль управления саппорта(при наличии соответ лицензии ,конечно) - там можно посмотреть у конкретного интерфейса какие события есть у обработчиков главного окна интер-са, дополнительных и т.п...хотя посмотреть содержимое этих событий там вроде нельзя ((
n0where
Местный житель
Сообщения: 499
Зарегистрирован: 30 дек 2010, 08:16

Re: Alter interface

Сообщение n0where »

cfsSetCurrentContainer - указываешь интерфейс
cfsCreateObject - указываешь панельку, скрин и тп

http://www.tyumbit.ru/gal_forum/viewtop ... 870#p57965
хороший программист — это человек, который переходя улицу с односторонним движением смотрит в обе стороны
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Alter interface

Сообщение m0p3e »

savov писал(а):Кстати, а где поподробнее прочитать про это? В одном случае cmOnVipLoad, в другом просто cmInit чем определяется? (исходников у нас нет)
Если отойти от теории, то...
Есть интерфейс PickCatalog2. Если мы его запустим как RunInterface(PickCatalog2,..), то отработает событие cmInit.
Если же обратимся к нему как к объектному:

Код: Выделить всё

  var iPickCat   : PickCatalog2;
  iPickCat.StaffPodr(....);
то отработает событие cmOnVipLoad.
savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Re: Alter interface

Сообщение savov »

Доброго времени суток !
Благодаря помощи, оказанной мне в данной теме благополучно переопределил два интерфейса ( их всего нужных мне три, которые позволяют выбирать вариант наименования МЦ: в накладных, в ДО, в СФ).
Но в третьем ( L_SF::PRNSHFVARIATMCUSL) кнопка вставилась, но нажатие на нее не срабатывает, кнопка никак не реагирует.
Сравниваю в конфигураторе, во всех трех фейсах свойства кнопки аналогичны.
При переопределении указанного фейса ошибок не возникло.
Кнопка попала в скрин, в котором находятся и стандартный заголовок и текстовые блоки.
В чем может быть возможная причина того, что кнопка на нажатие не реагирует???
savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Re: Alter interface

Сообщение savov »

Я кажется понял, почему не отрабатывает.
В этом фейсе просто нет обработчика для скрина, куда вставлена кнопка.
Т.е. надо бы добавить обработку нажатия на мою кнопку для существующего уже в окне скрина.
А вот как это сделать, я не знаю.
Перечитал разные посты, но ничего не подходит, а исходных текстов ( и нужного хелпа) нет.
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Alter interface

Сообщение Den »

Обработчики бывают оконные и табличные...т.е. Вам просто нужно посмотреть в какое окно встроен screen данный(например с помощью конфигуратора) и внутри этого HandleEvent-а описать реакцию на эту педаль в Вашем alter
savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Re: Alter interface

Сообщение savov »

Вам просто нужно посмотреть в какое окно встроен screen данный(например с помощью конфигуратора) и внутри этого HandleEvent-а описать реакцию на эту педаль в Вашем alter
Я не знаю как синтаксически указать в программе, что данный обработчик должен относится к указанному окну.
Как это записать?
Ответить