Печать нескольких реестров по выбору

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

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

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

Печать нескольких реестров по выбору

Сообщение savov »

Доброго всем здоровья!
Возник некоторый вопрос. В модуле Заработная плата-Отчеты- Отчеты по оплате труда персонала - Реестры по перечислениям мы имеем несколько реестров. Надо напечатать содержимое нескольких реестров ( они там помечаются по ins - вот и хотелось бы оставить именно этот вариант). Т.е объединить данные произвольного числа реестров. Пробую настроить печать автоматической формы - не получается, печатает какой-то список, который не совпадает с данными выбранных мною реестров. Кто-то имел подобный опыт? или что присоветуете?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Печать нескольких реестров по выбору

Сообщение edward_K »

Докомпиляция рулит. Я мож и делал такое но забыл для кого 8) , вопрос то точно был. Автоматический отчет формирует все - ему все равно что вы там пометили.
savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Re: Печать нескольких реестров по выбору

Сообщение savov »

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

Re: Печать нескольких реестров по выбору

Сообщение Den »

наверное вот этот
MarkedReg := InitMarker(if((ModeView and vfCanSelect) = vfCanSelect, 'VedRees_Marker',''), 8, 200, 100);
savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Re: Печать нескольких реестров по выбору

Сообщение savov »

Den писал(а):наверное вот этот
MarkedReg := InitMarker(if((ModeView and vfCanSelect) = vfCanSelect, 'VedRees_Marker',''), 8, 200, 100);
Не получается.
У меня следующая ситуация.
В фейсе Z_PAYREP::VIEWREESCOMBO добавлена строка в менюшку

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

menuId_re := LoadMenu('Z_PAYREP::REGISTERSPOPUP');
AddMenuItem(menuId_re,'separator',1);
AddMenuItem(menuId_re,'Печать группы реестров',cmRunGrR);
, вызывающая печать помеченных реестров.
В своем фейсе пытаюсь отловить помеченные в ( незакрытом, получается) Z_PAYREP::VIEWREESCOMBO записи:

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

MarkedReg := InitMarker('VedRees_Marker', 8, 200, 100);
MrkCount := GetMarkerCount(MarkedReg) - 1 ;
возвращает ноль. Всякие танцы с бубном с DoneMarker не помогают. Где я туплю (прочитал другие темы про маркеры - не помогло)?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Печать нескольких реестров по выбору

Сообщение edward_K »

В фейсе за пометку отвечает маркер с handle в MarkedReg.
Перед тем как вызвать ваш сделайте
StoreMarker(MarkedReg,'ZP_REE') ну и у себя юзайте. А можно и просто отправить MarkedReg в качества параметра в свой фейс.
savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Re: Печать нескольких реестров по выбору

Сообщение savov »

edward_K писал(а):Перед тем как вызвать ваш сделайте
StoreMarker(MarkedReg,'ZP_REE') ну и у себя юзайте
т.е.

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

StoreMarker(MarkedReg,'ZP_REE');
MrkCount:=GetMarkerCount(MarkedReg)-1;
...
и никаких InitMarker не надо?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Печать нескольких реестров по выбору

Сообщение edward_K »

Если отправить в качестве параметра, то не надо.
Если в родителе сделать Store.. (не в своем фейсе!), то конечно надо.
Это 2 разных механизма, вы у себя должны создать новый handle и загрузить его с dsk, куда запишите через Store, тогда как при передаче параметром вы получаете готовую ссылку на уже инициализированный маркер. Для того чтобы не вылететь при получении в фейс неинциализированного маркера, на всяк случай проверьте параметр на 0.
savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Re: Печать нескольких реестров по выбору

Сообщение savov »

Бр...
Так. Предположим, я в родителе перед вызовом печати пишу
StoreMarker(MarkedReg,'ZP_REE') ;
Тогда:
1) для родителя это ничего не нарушит?
2) что в этом случае будет значить MarkedReg? Он же не определен?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Печать нескольких реестров по выбору

Сообщение edward_K »

В отличии от DoneMarker StoreMarker не очищает handle маркера. А попробовать тяжело?
инфы более чем достаточно для уяснения.
Считайте markerreg в родителе просто объектом (на самом деле он ссылка на объект, которую можно передавать как параметр куда угодно) - так понятней? InitMarker приводит к созданию объекта(в родителе он есть в cmInit - вам оттуда привели строку), DoneMarker(в родителе в cmDone) - к уничтожению и если задано куда, то к сохранению в DSK, StoreMarker просто сохраняет в dsk.
savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Re: Печать нескольких реестров по выбору

Сообщение savov »

Во-первых, большое спасибо, edward_K!
Конечно, пока идет ответ, я пробую :-) , но не всегда получается.
В данном вопросе ключевыми стали слова
edward_K писал(а):он есть в cmInit - вам оттуда привели строку
, чего я не знал. Все остальное вытекало из этого.
Еще раз всем спасибо!
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Печать нескольких реестров по выбору

Сообщение m0p3e »

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

Re: Печать нескольких реестров по выбору

Сообщение savov »

Работало все недолго.. До обновления :o После его установки маркер перестал работать...
Делаю предположение, что MarkedReg теперь ссылается не туда, куда мне надо.
Если это так, то как часто такое случается? Т.е. маркеры ненадежны?
Если я неправ,то что могло произойти?
Как тогда отлавливать помеченные записи, чтобы не зависеть от разработчиков?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Печать нескольких реестров по выбору

Сообщение edward_K »

как правило разработчики достаточно ленивы, чтобы заниматься изменением таких мелочей. Хотя могли переделать на объект pmarker(IMarker) - смотрите vipprogr.chm - поиск. Какой там у вас патч?
savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Re: Печать нескольких реестров по выбору

Сообщение savov »

edward_K писал(а):Какой там у вас патч?
От 2014.06.09
Ответить