Всё об интерфейсе L_MCU :: KatMc
Модераторы: m0p3e, edward_K, Модераторы
-
- Местный житель
- Сообщения: 204
- Зарегистрирован: 13 ноя 2012, 12:47
- Откуда: СПб
- Контактная информация:
Всё об интерфейсе L_MCU :: KatMc
Уважаемые форумчане, не могли бы поделиться параметрами вызова интерфейса.
В частности хочу через него осуществлять множественный выбор МЦ через таблицу Pick.
В частности хочу через него осуществлять множественный выбор МЦ через таблицу Pick.
Программист-самоучка
Re: Всё об интерфейсе L_MCU :: KatMc
Parameters
pMC, // KatMC.NRec МЦ по умолчанию
pMask // MaskMC.NRec Шаблона МЦ для фильтра
;
bounds ByMaskMC =
pMask == KatMC.cMaskMC
ordered by TableOrder
pMC, // KatMC.NRec МЦ по умолчанию
pMask // MaskMC.NRec Шаблона МЦ для фильтра
;
bounds ByMaskMC =
pMask == KatMC.cMaskMC
ordered by TableOrder
Re: Всё об интерфейсе L_MCU :: KatMc
L_MCU::GETSOMEMCZver писал(а):осуществлять множественный выбор МЦ через таблицу Pick.
-
- Местный житель
- Сообщения: 204
- Зарегистрирован: 13 ноя 2012, 12:47
- Откуда: СПб
- Контактная информация:
Re: Всё об интерфейсе L_MCU :: KatMc
А можно описание параметров этого интерфейса?RAJAH писал(а):L_MCU::GETSOMEMCZver писал(а):осуществлять множественный выбор МЦ через таблицу Pick.
Программист-самоучка
Re: Всё об интерфейсе L_MCU :: KatMc
parameters
pMC; // -12345, если не нужно запрашивать кол-во
// -12346, то же + пометить все по умолчанию
// -12347 без кол-ва, без удаления Pick
// -12348 с инвертированием Pick-а
// -12349 без кол-ва, выбирать только МЦ из маркера 'GetSomeParty_NRecSaldoMC'
// -12350 подсветка серым МЦ не являющиеся комплектом
// Возвращает :
// -111, если Pick инвертирован (только когда передавался параметр -12348)
// 222 - во всех остальных случаях
pMC; // -12345, если не нужно запрашивать кол-во
// -12346, то же + пометить все по умолчанию
// -12347 без кол-ва, без удаления Pick
// -12348 с инвертированием Pick-а
// -12349 без кол-ва, выбирать только МЦ из маркера 'GetSomeParty_NRecSaldoMC'
// -12350 подсветка серым МЦ не являющиеся комплектом
// Возвращает :
// -111, если Pick инвертирован (только когда передавался параметр -12348)
// 222 - во всех остальных случаях
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: Всё об интерфейсе L_MCU :: KatMc
.\exe\galdoc\l_mcu.chmZver писал(а):А можно описание параметров этого интерфейса?RAJAH писал(а):L_MCU::GETSOMEMCZver писал(а):осуществлять множественный выбор МЦ через таблицу Pick.
-
- Местный житель
- Сообщения: 204
- Зарегистрирован: 13 ноя 2012, 12:47
- Откуда: СПб
- Контактная информация:
Re: Всё об интерфейсе L_MCU :: KatMc
Уже смотрел документацию. Может что-то не так делаю, или неправильная документация, но в разделе "Объекты" вижу только то, что есть объект GETSOMEMC, но более подробной информации нет.
Может у меня неполная справка?
На всякий случай, L_MCU.chm у меня от 26.12.2012, размер 312кб.
Может у меня неполная справка?
На всякий случай, L_MCU.chm у меня от 26.12.2012, размер 312кб.
Программист-самоучка
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: Всё об интерфейсе L_MCU :: KatMc
есть есть там все в chm от 26/12/2012
"
Interface L_MCU::GetSomeMC
Назначение: Выбор материальных ценностей Параметры: pMC: -12345, если не нужно запрашивать кол-во -12346, то же + пометить все по умолчанию -12347 без кол-ва, без удаления Pick -12348 с инвертированием Pick-а -12349 без кол-ва, выбирать только МЦ из маркера 'GetSomeParty_NRecSaldoMC' -12350 подсветка серым МЦ не являющиеся комплектом Возвращает : -111, если Pick инвертирован (только когда передавался параметр -12348) 222 - во всех остальных случаях
Параметры
pMC : Comp
Окна
window GetSomeMC
Главное окно интерфейса
window wSelectNastr
Окно настройки выбора МЦ
Информация
Версия : Компонент L_MCU 8.10.87.0
"
"
Interface L_MCU::GetSomeMC
Назначение: Выбор материальных ценностей Параметры: pMC: -12345, если не нужно запрашивать кол-во -12346, то же + пометить все по умолчанию -12347 без кол-ва, без удаления Pick -12348 с инвертированием Pick-а -12349 без кол-ва, выбирать только МЦ из маркера 'GetSomeParty_NRecSaldoMC' -12350 подсветка серым МЦ не являющиеся комплектом Возвращает : -111, если Pick инвертирован (только когда передавался параметр -12348) 222 - во всех остальных случаях
Параметры
pMC : Comp
Окна
window GetSomeMC
Главное окно интерфейса
window wSelectNastr
Окно настройки выбора МЦ
Информация
Версия : Компонент L_MCU 8.10.87.0
"
-
- Местный житель
- Сообщения: 552
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Челябинск
- Контактная информация:
Кое-что об интерфейсе L_MCU :: KatMc
Решил встроить в browse этого интерфейса окно редактирования внешних аттрибутов с помощью сервиса Attribu_.vih
Функция NullVipRef(refAttr) возвращает false- получается, что есть уже загруженный экземпляр? Как его обойти?
Если попытаться убрать if NullVipRef(refAttr) , то на строке BindEmbeddedInterface(brExAttr, refAttr); получаю runtime и падение
Код: Выделить всё
...
#include Attribu_.vih
alter interface KatMc;
var ExtAttr: iExtAttr;
refAttr: Attribute;
Embedded brExAttr interface;
show at (,25,,);
end;
HandleEvent
cmInit: {
...
if NullVipRef(refAttr) //Здесь получаю false- уже есть экземпляр refAttr что-ли?
{
LoadVipInterface (refAttr);
BindEmbeddedInterface(brExAttr, refAttr);
RefAttr.reDraw(word(1411), katmc.nRec)
...
Если попытаться убрать if NullVipRef(refAttr) , то на строке BindEmbeddedInterface(brExAttr, refAttr); получаю runtime и падение
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: Всё об интерфейсе L_MCU :: KatMc
Быстрее всего это какой то баг Alter конкретного.
Т.е. собранный ваш Alter-наследник katmc в каком-то месте до Cminit почему то грузит экземпляр VipInterface Attribute.
Вы просто явно не весь код Alter привели. Рискну предположить, что в нем есть обработчик где-то cmPositionChanged, оный дергает RefAttr.reDraw(coKatmc, Katmc.nRec);
Т.е. собранный ваш Alter-наследник katmc в каком-то месте до Cminit почему то грузит экземпляр VipInterface Attribute.
Вы просто явно не весь код Alter привели. Рискну предположить, что в нем есть обработчик где-то cmPositionChanged, оный дергает RefAttr.reDraw(coKatmc, Katmc.nRec);
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: Всё об интерфейсе L_MCU :: KatMc
К примеру, прикладник может в коде загрузчика Cminit "кинуть" ProcessCommand и выполнение уйдет в другую команду сразу (где может быть упоминание метода какого нить RefAttr - и все. переменная проинициализируется.). Почти ,наверняка. что то и происходит подобное. Чтобы ответить точно, нужно сделать sil протокол и изучить его (чтобы понять что именно приводит к этому).
Пока, как выход, пытаться делать if NullVipRef(refAttr).... до директивы наследования кода родителя (inherited :: HandleEvent(cmInit))
Пока, как выход, пытаться делать if NullVipRef(refAttr).... до директивы наследования кода родителя (inherited :: HandleEvent(cmInit))
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Всё об интерфейсе L_MCU :: KatMc
В примере без {}
if NullvipRef (refAttr)
LoadVipInterface (refAttr);
BindEmbeddedInterface(brExAttr, refAttr);
объект лучше объявить как
var refAttr : Attribute New;
в этом случае и LoadVipInterface не нужен по идее.
if NullvipRef (refAttr)
LoadVipInterface (refAttr);
BindEmbeddedInterface(brExAttr, refAttr);
объект лучше объявить как
var refAttr : Attribute New;
в этом случае и LoadVipInterface не нужен по идее.
-
- Местный житель
- Сообщения: 552
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Челябинск
- Контактная информация:
Re: Всё об интерфейсе L_MCU :: KatMc
Да, действительно, есть такой обработчик.. Эта проблема решена.. Событие cmPositionChanged создало экземпляр до cmInitDen писал(а):Быстрее всего это какой то баг Alter конкретного.
.. Рискну предположить, что в нем есть обработчик где-то cmPositionChanged, оный дергает RefAttr.reDraw(coKatmc, Katmc.nRec);
-
- Местный житель
- Сообщения: 552
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Челябинск
- Контактная информация:
Re: Всё об интерфейсе L_MCU :: KatMc
Осталась проблема с BindEmbeddedInterface, проверил аргументы- вроде нормально. Код alter сократил до минимума, вот он в полном виде
Компиляция проходит без каких-либо сообщений, но при выполнении получаю сообжение
Загружен интерфейс C_EXTCLASS::ATTRIBUTE, brExAttr = -65533
за которым runtime и вылет.. Даже _try не помогает
Всё сделано по инструкции из Attribu_.vih
Код: Выделить всё
#statusline "statgal"
#include galnet.inc
end;
#include glovars.inc
#component "L_MCU"
#include Attribu_.vih
alter interface KatMc;
var l0: longint;
cur_obj, cont_inf, aObjType: string;
refAttr: Attribute;// noauto;
Embedded brExAttr interface;
show at (,25,,);
end;
HandleEvent //События главного окна
cmInit: {
if inherited::handleEvent(cmInit) <> heOk exit;
if (cfsSetCurrentContainer(cfsGetCurrentContainerSelf) <> cfOk) then
{Message(''#3'Ошибка установки контейнера', Error); Exit;}
if cfsGetObjInfo('sclongname', cur_obj, l0, cont_inf, aObjType) = cfOk
and cfsDestroyObject(l0) = cfOk {} //Освобождаем место для встроенного
else {
message('destroying of the sclongname is bad');
exit;
}
_try {
if NullVipRef(refAttr) {
LoadVipInterface(refAttr);
message('Загружен интерфейс ' + VipFullName(refAttr)+', brExAttr = '+string(brExAttr)); //Нормально
BindEmbeddedInterface(brExAttr, refAttr); //Падение
message('2');
RefAttr.reDraw(word(1411), katmc.nRec)
} else message('Интерфейс refAttr уже инициализирован..');
}
_except
on ExPanelNotEmbedded: message('ExPanelNotEmbedded..');
on ExObjIfcNoLoad: message('ExObjIfcNoLoad..');
on ExObjIfcBadVar: message('ExObjIfcBadVar');
}
//cmPositionChanged: if not NullVipRef(refAttr) refAttr.reDraw(word(1411), katmc.nRec);
//cmDone: FreeVipInterface (refAttr);
end;
end.
Загружен интерфейс C_EXTCLASS::ATTRIBUTE, brExAttr = -65533
за которым runtime и вылет.. Даже _try не помогает
Всё сделано по инструкции из Attribu_.vih