Можно VIP'ом делать измен-ия в станд. интерфейсах Галактики?
Модераторы: m0p3e, edward_K, Модераторы
Можно VIP'ом делать измен-ия в станд. интерфейсах Галактики?
собсно говоря интересует такой вопрос. можно в каком либо стандартном интерфейсе Галактики VIP'ом сделатьчто-то наподобие кнопки,нажатием на которую будет запускаться внешнее приложение, или открываться какой либо файл.
-
- Местный житель
- Сообщения: 474
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Сибирь-матушка
- Контактная информация:
В 3-ем Атлантисе (до ГАЛАКТИКИ 7.12) - никак, только полной перекомпиляцией интерфейса .
В 5-ом(Галактика 8.хх ) - вроде обещано, но ...
В 5-ом(Галактика 8.хх ) - вроде обещано, но ...
Питаю патологические отвращение и ненависть в особо тяжелой и крайне запущенной формах к семейству программ Microsoft Business Solution !
Восславим господа Кришну за то, что у нас есть ГАЛАКТИКА !
Восславим господа Кришну за то, что у нас есть ГАЛАКТИКА !
-
- Местный житель
- Сообщения: 645
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"
Для вызова интерфейса написанного на ВИПЕ используют в версиях до 8 следующие возможности:
1. Через отчеты по Ctrl-P. Напишите маленькую присоединненную форму с одной строкой в программном блоке runinterface(...) и при выборе этого отчета будет запускать интерфейс, где можете делать что угодно. Если Вы не пользовались отчетами вообще в стандартном интерфейсе, то оставьте в окне выбора форм только эту форму - тогда по Ctrl_p вообще не будет предлагаться выбор отчетов, в сразу будет вызываться Ваш интерфейс. Можно вызвать интерфейс с меню сразу после запуска и там выбрать уже один из нескольких Ваших интерейсов.
2. Замена неиспользуемых функций. Если в интерфейсе Вы не используете какую-то функциональность, которая подключается через вызов интерфейса, то Вы можете заменить тот вызываемый интерфейс на свой (перекрыть), изменить наименование меню вызывающее этот интерфейс и у Вас будет вызов своего функционала. Недостатками этого метода является то, что Вам надо знать наименование и параметры штатного интерфейса, который Вы вызываете.
1. Через отчеты по Ctrl-P. Напишите маленькую присоединненную форму с одной строкой в программном блоке runinterface(...) и при выборе этого отчета будет запускать интерфейс, где можете делать что угодно. Если Вы не пользовались отчетами вообще в стандартном интерфейсе, то оставьте в окне выбора форм только эту форму - тогда по Ctrl_p вообще не будет предлагаться выбор отчетов, в сразу будет вызываться Ваш интерфейс. Можно вызвать интерфейс с меню сразу после запуска и там выбрать уже один из нескольких Ваших интерейсов.
2. Замена неиспользуемых функций. Если в интерфейсе Вы не используете какую-то функциональность, которая подключается через вызов интерфейса, то Вы можете заменить тот вызываемый интерфейс на свой (перекрыть), изменить наименование меню вызывающее этот интерфейс и у Вас будет вызов своего функционала. Недостатками этого метода является то, что Вам надо знать наименование и параметры штатного интерфейса, который Вы вызываете.
Некоммерческое общение в форуме
-
- Местный житель
- Сообщения: 412
- Зарегистрирован: 28 апр 2005, 11:34
- Откуда: Галактика Млечный Путь
есть еще один вариант, рабочее меню пользователя, пишем свой интерфейс, добавляем его в меню, назначаем сочетание клавиш.
теперь находясь в любом стандартном интерфейсе можно нажать это сочетание этих клавиш и ... вот оно... счастье близко, но, иногда возникает желание узнать а где это сейчас находится пользователь в стандартном интерфейсе, номер или ссылку на документ который он сейчас редактирует, и тут на помощь приходит...приходит...мысль о том что вариант через печать лучше, и там уже есть ссылка на редактируемый документ или нет.
теперь находясь в любом стандартном интерфейсе можно нажать это сочетание этих клавиш и ... вот оно... счастье близко, но, иногда возникает желание узнать а где это сейчас находится пользователь в стандартном интерфейсе, номер или ссылку на документ который он сейчас редактирует, и тут на помощь приходит...приходит...мысль о том что вариант через печать лучше, и там уже есть ссылка на редактируемый документ или нет.
Последний раз редактировалось san 07 окт 2005, 11:05, всего редактировалось 1 раз.
Rishat
В некоторых фейсах как уже было сказано (ecasoft
) выше добавляешь отчет вызываемый по Ctrl+P. В некоторых обычно можно изменить справку по документу, обычно она одна , т.е. отчет один и вызывается он по Alt+P, в нем вывод данных убираешь и ставишь RunInterface(....) - вызов своего интерфейса.
На счет замены неиспользуемых функций - они могут быть как часть самого фейса (Window), так и внешний интерфейс (Interface). Первый случай клинический и ничего с ним не поделаешь. Во втором случае когда откроется вызываемый интерфейс встаем на любое го поле, нажимаем Ctrl+F4, в поле "выражение" набираем: Geticcurrentfieldname, нажимаем Enter, читаем первую часть (с права на лево до первой точки) полученого выражения в поле "результат". Прочитанное - есть название вызываемого интерфейса.
На счет определения параметров этого вызываемого фейса - не все так просто. Один из вариантов: открываем суппорт или вип, в модуле "компилятор интерфейсов" выбираем запуск -> окна модально, открывается окно выбора ресурсов, находим тот интерфейс, параметры которого нас интересуют, кликаем Enter, открывается следующее окно, в котором будут выведены поля для ввода параметров. Смотрим какой тип запрашвается и сколько их. Т.е. так иы определили сколько параметров и какого типа они, дальше уже кто как и для каждого случая отдельно. Можно методом научного тыка и перебора вычислять что в них передается.
Как вариант: пишем интерфейс с таким же наименование и таким же кол-вом параметров и такими же типами параметров и в нем вставляем только вывод значения параметров. Компилим его, подцепляем к гал-ке, запускаем, смотрим что он вывел и пытаемся понять с чем это все едят, естественно не забываем для чего был нужен стандартный замененный фейс и что он должен был делать, т.е. на основании всего этого в принципе можно попробовать точно догататься что за параметры.
В некоторых фейсах как уже было сказано (ecasoft
) выше добавляешь отчет вызываемый по Ctrl+P. В некоторых обычно можно изменить справку по документу, обычно она одна , т.е. отчет один и вызывается он по Alt+P, в нем вывод данных убираешь и ставишь RunInterface(....) - вызов своего интерфейса.
На счет замены неиспользуемых функций - они могут быть как часть самого фейса (Window), так и внешний интерфейс (Interface). Первый случай клинический и ничего с ним не поделаешь. Во втором случае когда откроется вызываемый интерфейс встаем на любое го поле, нажимаем Ctrl+F4, в поле "выражение" набираем: Geticcurrentfieldname, нажимаем Enter, читаем первую часть (с права на лево до первой точки) полученого выражения в поле "результат". Прочитанное - есть название вызываемого интерфейса.
На счет определения параметров этого вызываемого фейса - не все так просто. Один из вариантов: открываем суппорт или вип, в модуле "компилятор интерфейсов" выбираем запуск -> окна модально, открывается окно выбора ресурсов, находим тот интерфейс, параметры которого нас интересуют, кликаем Enter, открывается следующее окно, в котором будут выведены поля для ввода параметров. Смотрим какой тип запрашвается и сколько их. Т.е. так иы определили сколько параметров и какого типа они, дальше уже кто как и для каждого случая отдельно. Можно методом научного тыка и перебора вычислять что в них передается.
Как вариант: пишем интерфейс с таким же наименование и таким же кол-вом параметров и такими же типами параметров и в нем вставляем только вывод значения параметров. Компилим его, подцепляем к гал-ке, запускаем, смотрим что он вывел и пытаемся понять с чем это все едят, естественно не забываем для чего был нужен стандартный замененный фейс и что он должен был делать, т.е. на основании всего этого в принципе можно попробовать точно догататься что за параметры.
Суть вопроса я описывал уже другой теме по поводу importa изображений в Галактику, в каталог МЦ. порядка 19 000 изображений.
так вот что мы имеем. изображения лежат в папке pics каталога Галактики. При просмотре каталога МЦ, по каждой МЦ требуется возможность просмотра ее изображения. все картинки обозвали также как и номенклатурные номера самих МЦ. в принципе способ через Ctrl-P нормальный. но можно также подцепить функцию ExecProgram.. правда это тока предположение..в общем надо думать.. может что то еще дельное подскажете.
так вот что мы имеем. изображения лежат в папке pics каталога Галактики. При просмотре каталога МЦ, по каждой МЦ требуется возможность просмотра ее изображения. все картинки обозвали также как и номенклатурные номера самих МЦ. в принципе способ через Ctrl-P нормальный. но можно также подцепить функцию ExecProgram.. правда это тока предположение..в общем надо думать.. может что то еще дельное подскажете.
Rishat
Только еще вопрос, в каком интерфейсе каталога МЦ? В Interface KatMC - который вызывается при выборе пункта меню -каталог МЦ, или в
Ну и зачем тогда цеплять внешнюю прикладуху?
Можно написать опять же на випе фейс, который естественно проще будет прикрутить к Ctrl+P (если не ошибаюсь есть еще Alt-N - печать текущей МЦ).
В фейсе цепляешь табличку AllMemo к примеру, можно и свою для хранения мемо-полей создать. задаешь значение WTABLE, в cRec - пишешь katmc.nrec, в memo - импортируешь саму картинку (bmp) и отобращаешь ее в фейсе.
Как сделать:
в отчете убираешь все шаблоны вывода полей и поля, но оставляешь структуру отчета, в цикле по МЦ записываешь в табличку Pick в cRec - KatMC.nrec - из формы, в wList - уникальное значение, не используемое другими фейсам. В конце цикла ставишь вызов своего интерфейса через RunInterface.
В своем интерфейсе пишешь запрос, где корневая таблица - Pick, по cRec связываешь ее с KatMC.nrec и с allMemo.cRec. В запросе же ограничиваешь Pick по wList и allMemo по wList. В самом фейсе рисуешь к примеру browse для отображения МЦ и мемо для вывода изображений. В cmInit интерфейса в цикле проходишься по всем МЦ, ограниченным Pick-ом и получая из KatMC номенклатурные номера находишь файлы и импортируешь в allMemo. Т.е. в цикле что-то типа:
Еще, перед заполением Pick в форме и allMemo в интерфейсе не забудь их очистить по wList, т.е. типа delete from pick where ((...==pick.wList));
В результате по Ctrl+P откроется фейс в котором будут выбранные в каталоге МЦ матценности и их фотографии.
Только еще вопрос, в каком интерфейсе каталога МЦ? В Interface KatMC - который вызывается при выборе пункта меню -каталог МЦ, или в
Ну и зачем тогда цеплять внешнюю прикладуху?
Можно написать опять же на випе фейс, который естественно проще будет прикрутить к Ctrl+P (если не ошибаюсь есть еще Alt-N - печать текущей МЦ).
В фейсе цепляешь табличку AllMemo к примеру, можно и свою для хранения мемо-полей создать. задаешь значение WTABLE, в cRec - пишешь katmc.nrec, в memo - импортируешь саму картинку (bmp) и отобращаешь ее в фейсе.
Как сделать:
в отчете убираешь все шаблоны вывода полей и поля, но оставляешь структуру отчета, в цикле по МЦ записываешь в табличку Pick в cRec - KatMC.nrec - из формы, в wList - уникальное значение, не используемое другими фейсам. В конце цикла ставишь вызов своего интерфейса через RunInterface.
В своем интерфейсе пишешь запрос, где корневая таблица - Pick, по cRec связываешь ее с KatMC.nrec и с allMemo.cRec. В запросе же ограничиваешь Pick по wList и allMemo по wList. В самом фейсе рисуешь к примеру browse для отображения МЦ и мемо для вывода изображений. В cmInit интерфейса в цикле проходишься по всем МЦ, ограниченным Pick-ом и получая из KatMC номенклатурные номера находишь файлы и импортируешь в allMemo. Т.е. в цикле что-то типа:
Код: Выделить всё
...
strTmp := путь на папку+katMC.barcod+'.bmp';
If FileExist(strTmp)
{
Setmemoprefix(#AllMemo,'BMP');
if (insert in allMemo set cRec:=katMC.nrec, wList:=..., name:=katMC.name <> tsOk message('Ошибка создания записи в allMemo!',error);
If Importfiletomemo (allMemo.mem, strTmp, false)=False Message('Ошибка импорта!',Error);
if (modifier Update Current allMemo <> tsOk) message('Ошибка обновления данных в allMemo!',error);
}
...
В результате по Ctrl+P откроется фейс в котором будут выбранные в каталоге МЦ матценности и их фотографии.