Можно VIP'ом делать измен-ия в станд. интерфейсах Галактики?

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

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

Rishat
Постоянный обитатель
Сообщения: 191
Зарегистрирован: 12 сен 2005, 17:10
Откуда: Наб. Челны

Можно VIP'ом делать измен-ия в станд. интерфейсах Галактики?

Сообщение Rishat »

собсно говоря интересует такой вопрос. можно в каком либо стандартном интерфейсе Галактики VIP'ом сделатьчто-то наподобие кнопки,нажатием на которую будет запускаться внешнее приложение, или открываться какой либо файл.
Diman
Постоянный гость
Сообщения: 56
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Волгоград Филиал ОАО "Связьтранснефть" НВ ПТУС отдел ОИТ

Сообщение Diman »

А что ты подразумеваешь под внешним приложением, или открытием кокого-либо файла? Конкретно что за приложение, что за файл и для чего нужно открыть (запустить), короче разясни свою ситуацию.
Goblin
Местный житель
Сообщения: 474
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Сибирь-матушка
Контактная информация:

Сообщение Goblin »

В 3-ем Атлантисе (до ГАЛАКТИКИ 7.12) - никак, только полной перекомпиляцией интерфейса .
В 5-ом(Галактика 8.хх ) - вроде обещано, но ...
Питаю патологические отвращение и ненависть в особо тяжелой и крайне запущенной формах к семейству программ Microsoft Business Solution !
Восславим господа Кришну за то, что у нас есть ГАЛАКТИКА !
ecasoft
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"

Сообщение ecasoft »

Для вызова интерфейса написанного на ВИПЕ используют в версиях до 8 следующие возможности:

1. Через отчеты по Ctrl-P. Напишите маленькую присоединненную форму с одной строкой в программном блоке runinterface(...) и при выборе этого отчета будет запускать интерфейс, где можете делать что угодно. Если Вы не пользовались отчетами вообще в стандартном интерфейсе, то оставьте в окне выбора форм только эту форму - тогда по Ctrl_p вообще не будет предлагаться выбор отчетов, в сразу будет вызываться Ваш интерфейс. Можно вызвать интерфейс с меню сразу после запуска и там выбрать уже один из нескольких Ваших интерейсов.

2. Замена неиспользуемых функций. Если в интерфейсе Вы не используете какую-то функциональность, которая подключается через вызов интерфейса, то Вы можете заменить тот вызываемый интерфейс на свой (перекрыть), изменить наименование меню вызывающее этот интерфейс и у Вас будет вызов своего функционала. Недостатками этого метода является то, что Вам надо знать наименование и параметры штатного интерфейса, который Вы вызываете.
Некоммерческое общение в форуме
Rishat
Постоянный обитатель
Сообщения: 191
Зарегистрирован: 12 сен 2005, 17:10
Откуда: Наб. Челны

Сообщение Rishat »

можете объяснить каким образом происходит перекрытие вызова стандартных функций и как найти наименование и параметры нужной функции.

ps. предполагается открывать графические изображения .
ecasoft
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"

Сообщение ecasoft »

Их надо знать. Так их не найдешь в системе. Если не знаете, то воспользуйтесь вариантом 1.
Некоммерческое общение в форуме
Rishat
Постоянный обитатель
Сообщения: 191
Зарегистрирован: 12 сен 2005, 17:10
Откуда: Наб. Челны

Сообщение Rishat »

хорошо тогда такой вопрос, как их узнать?
san
Местный житель
Сообщения: 412
Зарегистрирован: 28 апр 2005, 11:34
Откуда: Галактика Млечный Путь

Сообщение san »

есть еще один вариант, рабочее меню пользователя, пишем свой интерфейс, добавляем его в меню, назначаем сочетание клавиш.
теперь находясь в любом стандартном интерфейсе можно нажать это сочетание этих клавиш и ... вот оно... счастье близко, но, иногда возникает желание узнать а где это сейчас находится пользователь в стандартном интерфейсе, номер или ссылку на документ который он сейчас редактирует, и тут на помощь приходит...приходит...мысль о том что вариант через печать лучше, и там уже есть ссылка на редактируемый документ или нет.
Последний раз редактировалось san 07 окт 2005, 11:05, всего редактировалось 1 раз.
Rishat
Постоянный обитатель
Сообщения: 191
Зарегистрирован: 12 сен 2005, 17:10
Откуда: Наб. Челны

Сообщение Rishat »

мдя. многозначительные уморассуждения. каким же образом "умные" люди подумав "о чем-то" все-таки узнают эти неиспользуемые функции, каким именно образом? :???:
san
Местный житель
Сообщения: 412
Зарегистрирован: 28 апр 2005, 11:34
Откуда: Галактика Млечный Путь

Сообщение san »

Rishat писал(а):мдя. многозначительные уморассуждения. каким же образом "умные" люди подумав "о чем-то" все-таки узнают эти неиспользуемые функции, каким именно образом? :???:
Да нету возможности, нету , есть только различные обходные способы, которые зависят от уровня знаний.
Rishat
Постоянный обитатель
Сообщения: 191
Зарегистрирован: 12 сен 2005, 17:10
Откуда: Наб. Челны

Сообщение Rishat »

ну вы можете указать хотя бы один обходной путь, в качестве примера. а то такое чувство, что вы просто сидите и набиваете себе цену.
8-)
Vitaliy
Постоянный обитатель
Сообщения: 101
Зарегистрирован: 27 апр 2005, 09:52
Откуда: Сибирь

Сообщение Vitaliy »

Rishat
В некоторых фейсах как уже было сказано (ecasoft
) выше добавляешь отчет вызываемый по Ctrl+P. В некоторых обычно можно изменить справку по документу, обычно она одна , т.е. отчет один и вызывается он по Alt+P, в нем вывод данных убираешь и ставишь RunInterface(....) - вызов своего интерфейса.

На счет замены неиспользуемых функций - они могут быть как часть самого фейса (Window), так и внешний интерфейс (Interface). Первый случай клинический и ничего с ним не поделаешь. Во втором случае когда откроется вызываемый интерфейс встаем на любое го поле, нажимаем Ctrl+F4, в поле "выражение" набираем: Geticcurrentfieldname, нажимаем Enter, читаем первую часть (с права на лево до первой точки) полученого выражения в поле "результат". Прочитанное - есть название вызываемого интерфейса.

На счет определения параметров этого вызываемого фейса - не все так просто. Один из вариантов: открываем суппорт или вип, в модуле "компилятор интерфейсов" выбираем запуск -> окна модально, открывается окно выбора ресурсов, находим тот интерфейс, параметры которого нас интересуют, кликаем Enter, открывается следующее окно, в котором будут выведены поля для ввода параметров. Смотрим какой тип запрашвается и сколько их. Т.е. так иы определили сколько параметров и какого типа они, дальше уже кто как и для каждого случая отдельно. Можно методом научного тыка и перебора вычислять что в них передается.
Как вариант: пишем интерфейс с таким же наименование и таким же кол-вом параметров и такими же типами параметров и в нем вставляем только вывод значения параметров. Компилим его, подцепляем к гал-ке, запускаем, смотрим что он вывел и пытаемся понять с чем это все едят, естественно не забываем для чего был нужен стандартный замененный фейс и что он должен был делать, т.е. на основании всего этого в принципе можно попробовать точно догататься что за параметры.
Vitaliy
Постоянный обитатель
Сообщения: 101
Зарегистрирован: 27 апр 2005, 09:52
Откуда: Сибирь

Сообщение Vitaliy »

Rishat
А еще лучше, если ты объяснишь цель, так сказать расскажешь что же ты хочешь сделать. Только более конкретно.
Rishat
Постоянный обитатель
Сообщения: 191
Зарегистрирован: 12 сен 2005, 17:10
Откуда: Наб. Челны

Сообщение Rishat »

Суть вопроса я описывал уже другой теме по поводу importa изображений в Галактику, в каталог МЦ. порядка 19 000 изображений.
так вот что мы имеем. изображения лежат в папке pics каталога Галактики. При просмотре каталога МЦ, по каждой МЦ требуется возможность просмотра ее изображения. все картинки обозвали также как и номенклатурные номера самих МЦ. в принципе способ через Ctrl-P нормальный. но можно также подцепить функцию ExecProgram.. правда это тока предположение..в общем надо думать.. может что то еще дельное подскажете.
Vitaliy
Постоянный обитатель
Сообщения: 101
Зарегистрирован: 27 апр 2005, 09:52
Откуда: Сибирь

Сообщение Vitaliy »

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. Т.е. в цикле что-то типа:

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

...
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);
  }
...
Еще, перед заполением Pick в форме и allMemo в интерфейсе не забудь их очистить по wList, т.е. типа delete from pick where ((...==pick.wList));

В результате по Ctrl+P откроется фейс в котором будут выбранные в каталоге МЦ матценности и их фотографии.
Ответить