Страница 1 из 1

Изменение функционала контекстного меню L_Sklad

Добавлено: 01 авг 2013, 14:20
Conekt
Добрый день.
Поставлена задача. Изменить печатную форму, которая формируется по пути:
Складской учет-Документы-Акты об излишках-Печать-Печать Документа Excel

В документации сказано :

Подменю Печать 'Печать документа'
Элемент Печать документа cmPrintDoc kbCtrlP
Элемент Печать документа Excel 'Печать текущего документа' cmvalue33

как я понял при щелчке на этом пункте вызывается событие cmvalue33. пробую его дописать.

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

alter interface "L_Sklad::Inv_Prih"

    handleevent
      cmInit:
      {
      inherited::handleevent(cmInit);
      message('INIT !!!!') ;
      }
      cmvalue33:
      {
      inherited::handleevent(cmvalue33);
      message('INIT !!!! cmvalue33')
      }

  end;
end.     

Выпадает ошибка: Такой команды нет Value33 ...
От сюда вопрос где я что не так понял или сделал.

Это мое первое сообщения по тому, рад буду критике к оформлению или постановке вопроса. Спасибо всем за ранее.

Re: Изменение функционала контекстного меню L_Sklad

Добавлено: 01 авг 2013, 14:29
RAJAH
Conekt писал(а):Поставлена задача. Изменить печатную форму
В таком случае вам нужен редактор FCom (надо будет заходить в "Печать документа"). Докомпиляция интерфейсов - это для более сложных задач.
Conekt писал(а):Это мое первое сообщения по тому, рад буду критике к оформлению или постановке вопроса.
Раз начинаете, то вот это должно помочь.

Re: Изменение функционала контекстного меню L_Sklad

Добавлено: 01 авг 2013, 14:52
Conekt
Спасибо за ответ.

Все не так просто. При щелчке на контекстном меню СРАЗУ ЖЕ происходит формирование excel документа.
Сам шаблон EXCEL не содержит не строчки на VIP. А VBA производит лишь подведения итогов, и наведение красоты.
Потому я предположил, что формирование данных производиться на уровне интерфейса и после этого просто перебрасывается в шаблон,
допустим по средствами xlSetCellStringValue ...

За мануалы спасибо, только спрашиваю сам первый раз. И живу тут уже почти 2 месяца, пока мануалов и имеющихся вопросов хватало просто. ;)

Re: Изменение функционала контекстного меню L_Sklad

Добавлено: 01 авг 2013, 14:58
RAJAH
Нажмите правой кнопкой по интерфейсу "Акты об излишках" - Печать - Печать документа (не Excel!).
Conekt писал(а):формирование данных производиться на уровне интерфейса
.
Да. Изменять легче формы, а не интерфейсы.

Re: Изменение функционала контекстного меню L_Sklad

Добавлено: 01 авг 2013, 15:01
Conekt
Не много не понял, чем мне может помочь frm форма. Когда задача стоит изменить XLT шаблон.

Re: Изменение функционала контекстного меню L_Sklad

Добавлено: 01 авг 2013, 15:43
Den
Conekt писал(а):Добрый день.
Поставлена задача. Изменить печатную форму...
Вы бы рассказали что именно нужно в форме поменять - Вам бы конкретнее сказали куда лезть с зубилом и молотком...

Re: Изменение функционала контекстного меню L_Sklad

Добавлено: 01 авг 2013, 15:45
edward_K
1. Вам ж говорят начните с простого 8) . XLT это уровня через 2.
2. Что касается команд - у вас в проекте должен быть подключен galnet.inc - посмотрите на форуме. Не стандартные команды берутся из констант(тех что нет в viprogr.chm).
Inc формируется путем распаковки всех архивов из каталога frm и копированием того, что пришло с galfrm, в общую папку (src ..). Тех файлов что не хватит попробуйте заменить пустышками.
Для начала напишите у себя

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

const   
cmvalue33           =    12213; 
end;
но это неправильно .
Опять же следите чтобы все ресы галки были подключены при сборке. Какая то опция позволяет извлекать константы из ресов.
3. По поводу самих XLT. Есть 3 пути. 1 - дописать на VB прямое обращение к базе, 2 - имея исходники перехватить процедуру печати в фейсе и дополнить ее своими полями, 3 - ну тут вы почти угадали - только Вам придется еще сделать xlOpenExcel, переключится в нужную книгу, там переключится в нужный лист и только потом уже что то писать - это долго, но вполне допустимо.

Re: Изменение функционала контекстного меню L_Sklad

Добавлено: 01 авг 2013, 16:02
Conekt
edward_K Очень приятно, что одна из легенд этого форума откликнулась.
1. С простого начинал и релизовал докомпилирование интерфейса, но в другом проекте.
2. Если я вас понял. cmValue33 о коим говориться в мануале это всего навсего константа, а не метод или функция вызываемая при щелчке в контекстном меню.
3. Да мне подходит только 2-орой путь движения. но для этого нужно как то разобраться. Что происходит по щелчку в этом контекстно меню. Программа минимум
при щелчке на пункт "печать документа Excel" чтоб выбрасывался меседж, а дальше шло формирование.

Может кто знает как можно узнать что происходит по этому событию? В конкретно этом примере?

Вообще интересует сам алгоритм, как можно узнать, что происходит при тех или иных действиях пользователя.
С FRM понятно, окнами интерфейсов, тоже все просто это есть в документации. А вот с контекстным меню... как узнать откуда ноги растут...

Re: Изменение функционала контекстного меню L_Sklad

Добавлено: 01 авг 2013, 16:12
Den
Conekt писал(а): Может кто знает как можно узнать что происходит по этому событию? В конкретно этом примере?
cmValue33 - это константа. По этому событию происходит запуск процедуры печати в xls без вариантов...

Re: Изменение функционала контекстного меню L_Sklad

Добавлено: 01 авг 2013, 16:18
Conekt
Иными словами без исходников узнать какой интерфейс, и что в нем переписывать возможности никакой нет?
Den я вас правильно понял?

Re: Изменение функционала контекстного меню L_Sklad

Добавлено: 01 авг 2013, 16:34
Den
Интерфейс узнать не проблема, а вот что в нем переписывать не имея исходников - практически очень трудно и быстрее всего нереально (этими вещами галактика до сих пор фришно не делится...) в Вашем случае.
Варианты
1. Нужно узнать код процедуры печати из VIP каким то образом и его перекаеркать как Вам нужно (не забывать его пересобирать при обновлениях + хранить шаблон под который Вы сделаете изменения - парни из галактики ведь тоже не дремлют )) .... )
2. Как уже писал edward_k . Прямо в макросе vba подключится к БД и довывести нужную инфу...
3. Сделать свой вывод xls (не суть как...можно на основе какой либо link-form ы, или сделав alter, дописать свое событие и вывод в xls там)

Re: Изменение функционала контекстного меню L_Sklad

Добавлено: 02 авг 2013, 07:48
Conekt
Всем спасибо за ответы. Как говорится приоритеты даны, направления получены, за работу товарищи ;)