Всё об интерфейсе L_SOPRDOC::SOPRDOCB
Модераторы: m0p3e, edward_K, Модераторы
-
- Местный житель
- Сообщения: 204
- Зарегистрирован: 13 ноя 2012, 12:47
- Откуда: СПб
- Контактная информация:
Всё об интерфейсе L_SOPRDOC::SOPRDOCB
Уважаемые форумчане,
Можете поделиться параметрами вызова этого интерфейса.
Нужно выбрать одну приходную (vidSopr = 101).
Можете поделиться параметрами вызова этого интерфейса.
Нужно выбрать одну приходную (vidSopr = 101).
Программист-самоучка
Re: Всё об интерфейсе L_SOPRDOC::SOPRDOCB
L_SoprDoc.chm говорит нам, что
Почти наверняка TypeSopr=101 - это то, что вам нужно.
Код: Выделить всё
Interface L_SOPRDOC::SoprDocB
Параметры
TYPESOPR : Word
PNREC : Comp
-
- Местный житель
- Сообщения: 552
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Челябинск
- Контактная информация:
Re: Всё об интерфейсе L_SOPRDOC::SOPRDOCB
Доброго дня всем. Понравилось многообещающее название этой темы, решил её развить своим вопросом. Есть приходная накладная, данный интерфейс, надо кое-что проверить перед удалением накладной. Попытался поймать события cmDelete, cmDeleteRecord и в НandleEvent, и в TableEvent- нет реакции. Увидел в консоли управления, что у этого интерфейса есть функция BeforeDeleteKatSopr- может, через неё проверку делать. Но как её перегрузить? Пытался так:
Имею недовольствоОшибка: При докомпиляции нельзя добавлять методы C:\Viper\Alter_SoprDocB\SoprDocB.vip
Похоже, эта функция не здесь реализована..
Далее, нашёл в документацииObjInterface L_SOPRDOC::ObjBeforeDelSopr
Интерфейс с методами обработки до удаления сопроводительного документа
Методы
Function BeforeDeleteKatSopr (pNRec : Comp; isWarnings : Boolean; isVisual : Boolean) : Boolean
Но попытка сделать Alter interface ObjBeforeDelSopr тоже провалилась..
День невезения просто
Код: Выделить всё
Alter interface SoprDoc
Overload
Function BeforeDeleteKatSopr (pNRec: Comp; isWarnings: Boolean; isVisual: boolean): Boolean;
end;
Похоже, эта функция не здесь реализована..
Далее, нашёл в документацииObjInterface L_SOPRDOC::ObjBeforeDelSopr
Интерфейс с методами обработки до удаления сопроводительного документа
Методы
Function BeforeDeleteKatSopr (pNRec : Comp; isWarnings : Boolean; isVisual : Boolean) : Boolean
Но попытка сделать Alter interface ObjBeforeDelSopr тоже провалилась..
День невезения просто
-
- Местный житель
- Сообщения: 552
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Челябинск
- Контактная информация:
Re: Всё об интерфейсе L_SOPRDOC::SOPRDOCB
Так прокатило:
И на F8 есть реакция, не там смотрел.. День невезения отменяется Спасибо, Денис!
Код: Выделить всё
Alter interface DelSopr;
Overload
Function BeforeDelete (pNRec : Comp; isWarnings : Boolean; isVisual : Boolean) : Boolean;
end;
function BeforeDelete (pNRec : Comp; isWarnings : Boolean; isVisual : Boolean) : Boolean;
{
message('DelSopr.BeforeDelete: pNRec = ' +string(pNRec));
}
end.
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Всё об интерфейсе L_SOPRDOC::SOPRDOCB
1. ALTER obj смешно . Это описание публичных свойств объекта, а не сам объект. Может быть тоже самое в VipInterface->Public.
2. Но если функция есть в описании объекта, то нужно писать как то так(это приказы в кадрах)
procedure IRPD_Base.EnableDisable;
где IRPD_Base - нужное описание объекта ObjInterface.
в случае наследников все зависит - функция может быть переопределена в наследнике в своем описании.
2. Но если функция есть в описании объекта, то нужно писать как то так(это приказы в кадрах)
procedure IRPD_Base.EnableDisable;
где IRPD_Base - нужное описание объекта ObjInterface.
в случае наследников все зависит - функция может быть переопределена в наследнике в своем описании.
-
- Местный житель
- Сообщения: 552
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Челябинск
- Контактная информация:
Re: Всё об интерфейсе L_SOPRDOC::SOPRDOCB
Дак вот и непонятно, как функция из объектного интерфейса переопределена..Рано обрадовался При тестировании DelSopr.BeforeDelete выяснил, что эта функция подключается не с первого момента, а перед ней какая-то ещё функция отрабатывает, которая выдаёт сообщение
и своё дело отрабатывает. А не надо этого..
Посмотрите, у кого есть исходники, пож.
Код: Выделить всё
---------------------------
Подтверждение
---------------------------
Удалить текущий документ ?
---------------------------
Да Нет
---------------------------
Посмотрите, у кого есть исходники, пож.
-
- Местный житель
- Сообщения: 552
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Челябинск
- Контактная информация:
Re: Всё об интерфейсе L_SOPRDOC::SOPRDOCB
Возможно, эта функция удаляет привязанный к накладной документ для учёта НДС
и далее удаляет ордера
Код: Выделить всё
---------------------------
Подтверждение
---------------------------
С документом связан счет-фактура № 000220 от 01/06/2010.
Удалить счет-фактуру?
---------------------------
Да Нет
---------------------------
-
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: Всё об интерфейсе L_SOPRDOC::SOPRDOCB
Добрый день!edward_K писал(а):1. ALTER obj смешно . Это описание публичных свойств объекта, а не сам объект. Может быть тоже самое в VipInterface->Public.
2. Но если функция есть в описании объекта, то нужно писать как то так(это приказы в кадрах)
procedure IRPD_Base.EnableDisable;
где IRPD_Base - нужное описание объекта ObjInterface.
в случае наследников все зависит - функция может быть переопределена в наследнике в своем описании.
Понадобилось перекрыть public метод випИнтерфейса, потомка другого. У вас получилось?
Я сделал overload objInterface.method
Далее описал функию
Function objinterface.method
собирается, пишет что вип интерфейс живет в ресурсе но метод не меняется.
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Всё об интерфейсе L_SOPRDOC::SOPRDOCB
1. Для начала проверяется подключение ресурса.
Если вы поставили ему приоритет 500 - то это лотерея. Нужно побольше. но не попадать в диапазоны 1000-3000, 3003 - 3007. Я Советую 10000 и выше - чтобы наверняка перекрыть все. в том числе и DSK с конфигуратором, иначе не забывайте их чистить. В отчете о рабочей станции проверяем, что рес подключился и где то внизу.
2. Далее проверяем через сервис - утилиты - запуск внешнего интерфейса, что фейс в ресурсе есть и он отображается из нужного ресурса. Не видно - ищем параметр в секции Vip.
3. Если норм, то возможно вы не то перекрыли. В случае наследников/ наследников часто еще бывает, что они вызывают функции из собственной реализации по Inherited.
4. Надежное это посмотреть sil. Закрываем все, перезаходим, включаем лог, запускаем процесс, стопорим лог. Если все правильно сделали, то можете найти имя функции и из какого исходника она пошла ( в для ваших ресов может быть что то нужно добавить в cfg компилятора, стандартные большинство показывают).
Если вы поставили ему приоритет 500 - то это лотерея. Нужно побольше. но не попадать в диапазоны 1000-3000, 3003 - 3007. Я Советую 10000 и выше - чтобы наверняка перекрыть все. в том числе и DSK с конфигуратором, иначе не забывайте их чистить. В отчете о рабочей станции проверяем, что рес подключился и где то внизу.
2. Далее проверяем через сервис - утилиты - запуск внешнего интерфейса, что фейс в ресурсе есть и он отображается из нужного ресурса. Не видно - ищем параметр в секции Vip.
3. Если норм, то возможно вы не то перекрыли. В случае наследников/ наследников часто еще бывает, что они вызывают функции из собственной реализации по Inherited.
4. Надежное это посмотреть sil. Закрываем все, перезаходим, включаем лог, запускаем процесс, стопорим лог. Если все правильно сделали, то можете найти имя функции и из какого исходника она пошла ( в для ваших ресов может быть что то нужно добавить в cfg компилятора, стандартные большинство показывают).
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: Всё об интерфейсе L_SOPRDOC::SOPRDOCB
Код: Выделить всё
#include RPD.vih
#component "Z_StaffOrders"
Alter Interface RPD_6;
Overload
procedure IRPD_Base.SetRelation(Value: comp);
end;
procedure IRPD_Base.SetRelation(Value: comp);
{
Message('Call Overload Method in RPD_6');
Inherited::SetRelation(Value);
}
end.
-
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: Всё об интерфейсе L_SOPRDOC::SOPRDOCB
Разобрался. Делал так же, как написал Den, только проверял, подключая ресурс на "горячую" . Есть самодельный интерфейс у нас.
Так вот, при таком способе методы объектов не обновлялись. Подключи в саппорте, стартанул Галактику - всё заработало.
Всем спасибо
Так вот, при таком способе методы объектов не обновлялись. Подключи в саппорте, стартанул Галактику - всё заработало.
Всем спасибо
-
- Местный житель
- Сообщения: 554
- Зарегистрирован: 17 июл 2012, 11:56
- Откуда: Республика Беларусь, г.Могилев
Re: Всё об интерфейсе L_SOPRDOC::SOPRDOCB
Здравствуйте.
Пишу Alter L_SOPRDOC::SOPRDOCB . В спецификацию приходной накладной добавила несколько столбцов с ВА вещественного типа. По событию cmExprFieldChanged табл.SpSopr при изменении значения вычисляемых полей заполняю ВА с помощью doSetAttrID(...). Столкнулась с проблемой. После изменения значений в каждом из новых столбцов получаю сообщение: «Пересчитать цену в валюте по курсу на … для документа …?». Если не ошибаюсь, то здесь отрабатывает настройка DOC.BUY.VALRUBCALC: "Настройки Галактики \ Логистика \ Документы \ Управление снабжением \ Пересчитывать суммы в валюте в документах по текущему курсу" в значении «по запросу». Можно ли и как сделать, чтобы указанное сообщение не появлялось при изменении значений в новых столбцах?
Пишу Alter L_SOPRDOC::SOPRDOCB . В спецификацию приходной накладной добавила несколько столбцов с ВА вещественного типа. По событию cmExprFieldChanged табл.SpSopr при изменении значения вычисляемых полей заполняю ВА с помощью doSetAttrID(...). Столкнулась с проблемой. После изменения значений в каждом из новых столбцов получаю сообщение: «Пересчитать цену в валюте по курсу на … для документа …?». Если не ошибаюсь, то здесь отрабатывает настройка DOC.BUY.VALRUBCALC: "Настройки Галактики \ Логистика \ Документы \ Управление снабжением \ Пересчитывать суммы в валюте в документах по текущему курсу" в значении «по запросу». Можно ли и как сделать, чтобы указанное сообщение не появлялось при изменении значений в новых столбцах?
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Всё об интерфейсе L_SOPRDOC::SOPRDOCB
Заведите переменную и поставьте ее в true
В case полей добавьт else и сбросьте эту переменную
Если она останется в true сделай е abort exit
Возможно сработал cmcheckfield или cmcheckrecord
В case полей добавьт else и сбросьте эту переменную
Если она останется в true сделай е abort exit
Возможно сработал cmcheckfield или cmcheckrecord
-
- Местный житель
- Сообщения: 554
- Зарегистрирован: 17 июл 2012, 11:56
- Откуда: Республика Беларусь, г.Могилев
Re: Всё об интерфейсе L_SOPRDOC::SOPRDOCB
Здравствуйте.
Эдуард, спасибо большое за ответ! Пришлось поковыряться. То запрос на пересчет цены стал выдаваться только после правки кол-ва, а на новые поля не выдавался. То перестал выдаваться и на кол-во. Потом не всегда удавалось закрыть инт-с редактирования накладной… В результате вроде добилась того, что проблему не наблюдаю ни при корректировке спецификации, ни при закрытии окна редактирования.
Ниже исходник. Правда пришлось убрать и Abort, и Exit. Возможно я не туда ставила, куда предполагали Вы.
На кол-ве срабатывал и cmCheckField, и cmCheckRecord, а на новых полях только 1-ый. Запрос на пересчет выдавался в cmCheckRecord.
Надеюсь, что я правильно написала оба указанных обработчика.
Эдуард, спасибо большое за ответ! Пришлось поковыряться. То запрос на пересчет цены стал выдаваться только после правки кол-ва, а на новые поля не выдавался. То перестал выдаваться и на кол-во. Потом не всегда удавалось закрыть инт-с редактирования накладной… В результате вроде добилась того, что проблему не наблюдаю ни при корректировке спецификации, ни при закрытии окна редактирования.
Ниже исходник. Правда пришлось убрать и Abort, и Exit. Возможно я не туда ставила, куда предполагали Вы.
На кол-ве срабатывал и cmCheckField, и cmCheckRecord, а на новых полях только 1-ый. Запрос на пересчет выдавался в cmCheckRecord.
Надеюсь, что я правильно написала оба указанных обработчика.
Код: Выделить всё
#include ExtAttrClassInfo.vih
#Component "L_SOPRDOC"
//Приходные накладные.
Alter interface SOPRDOCB;
Var cAttrNomAn, cAttrVlag : Comp;
var1 : iExtAttrClassInfo;
dExpr : Double;
flagCh, flagE, flagNewField : Boolean;
Create view
as select
If( ( var1.ExtAttr_ValueExistsID( coSpSopr, SpSopr.Nrec, cAttrNomAn ) = False ), ''
, var1.doGetAttrID( coSpSopr, SpSopr.Nrec, cAttrNomAn ) )
( Fieldname=CheckNomAn )
, If( ( var1.ExtAttr_ValueExistsID( coSpSopr, SpSopr.Nrec, cAttrVlag ) = False ), ''
, var1.doGetAttrID( coSpSopr, SpSopr.Nrec, cAttrVlag ) )
( Fieldname=CheckVlag )
;
// Изменение последовательности столбцов в спецификации приходной накладной.
Procedure ChangeObjIndex1;
Var sObj_ : String;
{
cfsSetProp( 'c_BRBYNAME_GRNAL.NAME_Группа_налогов', 'Index', Integer(25) );
cfsSetProp( 'c_BRBYNAME_KDKOLOLD_Количество,_до_изменения', 'Index', Integer(26) );
cfsSetProp( 'c_BRBYNAME_KDKOLNEW_Количество,_после_изменения', 'Index', Integer(27) );
cfsSetProp( 'c_BRBYNAME_KDKOLDIFF_Количество,_разница', 'Index', Integer(28) );
cfsSetProp( 'c_BRBYNAME_KDPRICEOLD_Цена_до_изменения', 'Index', Integer(29) );
cfsSetProp( 'c_BRBYNAME_KDPRICENEW_Цена_после_изменения', 'Index', Integer(30) );
cfsSetProp( 'c_BRBYNAME_KDPRICEDIFF_Цена_разница', 'Index', Integer(31) );
cfsSetProp( 'c_BRBYNAME_KDSUMMAOLD_Стоимость_до_изменения', 'Index', Integer(32) );
cfsSetProp( 'c_BRBYNAME_KDSUMMANEW_Стоимость_после_изменения', 'Index', Integer(33) );
cfsSetProp( 'c_BRBYNAME_KDSUMMADIFF_Стоимость_разница', 'Index', Integer(34) );
cfsSetProp( 'c_BRBYNAME_KDNALOGOLD_Налоги_до_изменения', 'Index', Integer(35) );
cfsSetProp( 'c_BRBYNAME_KDNALOGNEW_Налоги_после_изменения', 'Index', Integer(36) );
cfsSetProp( 'c_BRBYNAME_KDNALOGDIFF_Налоги_разница', 'Index', Integer(37) );
cfsSetProp( 'c_BRBYNAME_FSUMPRICEWONDS_Стоимость_без_налогов', 'Index', Integer(38) );
cfsSetProp( 'c_BRBYNAME_FSUMPRICEWNDS_Стоимость_с_налогами', 'Index', Integer(39) );
cfsSetProp( 'c_BRBYNAME_FRPRICE_Цена_в_НДЕ', 'Index', Integer(40) );
cfsSetProp( 'c_BRBYNAME_FSUMPRICENDE_Стоимость_в_НДЕ', 'Index', Integer(41) );
cfsSetProp( 'c_BRBYNAME_FSUMPRICEWONDSNDE_Стоимость_без_налогов_в_НДЕ', 'Index', Integer(42) );
cfsSetProp( 'c_BRBYNAME_FSUMNDS_Налоги_в_НДЕ', 'Index', Integer(43) );
cfsSetProp( 'c_BRBYNAME_FSUMPRICEWNDSNDE_Стоимость_с_налогами_в_НДЕ', 'Index', Integer(44) );
cfsSetProp( 'c_BRBYNAME_FRVPRICE_Цена_в_валюте', 'Index', Integer(45) );
cfsSetProp( 'c_BRBYNAME_FSUMVPRICE_Стоимость_в_валюте', 'Index', Integer(46) );
cfsSetProp( 'c_BRBYNAME_FSUMVPRICEWONDS_Стоимость_без_налогов_в_валюте', 'Index', Integer(47) );
cfsSetProp( 'c_BRBYNAME_FSUMVNDS_Налоги_в_валюте', 'Index', Integer(48) );
cfsSetProp( 'c_BRBYNAME_FSUMVPRICEWNDS_Стоимость_с_налогами_в_валюте', 'Index', Integer(49) );
cfsSetProp( 'c_BRBYNAME_FSIMVOLV_Вал', 'Index', Integer(50) );
cfsSetProp( 'c_BRBYNAME_FSERIALNUM_Серийный_номер', 'Index', Integer(51) );
cfsSetProp( 'c_BRBYNAME_BOXNAME_Ячейка_хранения', 'Index', Integer(52) );
cfsSetProp( 'c_BRBYNAME_SPSOPR.NVAGON_Номер_вагона', 'Index', Integer(53) );
cfsSetProp( 'c_BRBYNAME_FNETTO_Вес_нетто', 'Index', Integer(54) );
cfsSetProp( 'c_BRBYNAME_FTARA_Вес_тары', 'Index', Integer(55) );
cfsSetProp( 'c_BRBYNAME_FBRUTTO_Вес_брутто', 'Index', Integer(56) );
cfsSetProp( 'c_BRBYNAME_KATPARTY.KOD_Партия_код', 'Index', Integer(57) );
cfsSetProp( 'c_BRBYNAME_KATPARTY.NAME_Партия_наименование', 'Index', Integer(58) );
cfsSetProp( 'c_BRBYNAME_SPSOPR.NKVIT_Номер_ж/д_квитанции', 'Index', Integer(59) );
cfsSetProp( 'c_BRBYNAME_TMPDOCOFGDSVAL1.VALUE_Документ1', 'Index', Integer(60) );
cfsSetProp( 'c_BRBYNAME_TMPDOCOFGDSVAL2.VALUE_Документ2', 'Index', Integer(61) );
cfsSetProp( 'c_BRBYNAME_TMPDOCOFGDSVAL3.VALUE_Документ3', 'Index', Integer(62) );
cfsSetProp( 'c_BRBYNAME_NUMDOOSNV_ДО', 'Index', Integer(63) );
cfsSetProp( 'c_BRBYNAME_FIMPORTSUBST_STATE_Страна_происхождения', 'Index', Integer(64) );
cfsSetProp( 'c_BRBYNAME_FIMPORTSUBST_REPSECTION_Раздел_отчетности_по_импортозамещению', 'Index', Integer(65) );
cfsSetProp( 'c_BRBYNAME_SALDTUNE.NAME_Объект_ЦУ', 'Index', Integer(66) );
cfsSetProp( 'c_BRBYNAME_VSKAU1_КАУ_1', 'Index', Integer(67) );
cfsSetProp( 'c_BRBYNAME_VSKAU2_КАУ_2', 'Index', Integer(68) );
cfsSetProp( 'c_BRBYNAME_VSKAU3_КАУ_3', 'Index', Integer(69) );
cfsSetProp( 'c_BRBYNAME_VSKAU4_КАУ_4', 'Index', Integer(70) );
cfsSetProp( 'c_BRBYNAME_VSKAU5_КАУ_5', 'Index', Integer(71) );
cfsSetProp( 'c_BRBYNAME_VSKAU6_КАУ_6', 'Index', Integer(72) );
cfsSetProp( 'c_BRBYNAME_VSKAU7_КАУ_7', 'Index', Integer(73) );
cfsSetProp( 'c_BRBYNAME_VSKAU8_КАУ_8', 'Index', Integer(74) );
cfsSetProp( 'c_BRBYNAME_VSKAU9_КАУ_9', 'Index', Integer(75) );
cfsSetProp( 'c_BRBYNAME_VSKAU10_КАУ_10', 'Index', Integer(76) );
cfsSetProp( 'c_BRBYNAME_SMETAMY_Смета', 'Index', Integer(77) );
cfsSetProp( 'c_BRBYNAME_SMETASPMY_Спецификация_сметы', 'Index', Integer(78) );
cfsSetProp( 'c_BRBYNAME_PLJOBNAME_План_работ', 'Index', Integer(79) );
cfsSetProp( 'c_BRBYNAME_FDGODN_Дата_окончания_срока_годности', 'Index', Integer(80) );
sObj_:= 'c_BRBYNAME_CHECKNOMAN_Номер_анализа';
cfsSetProp( sObj_, 'StatusCtx', scExtAttrDbl );
cfsSetProp( sObj_, 'DefaultWidth', Integer(10) );
cfsSetProp( sObj_, 'Index', Integer(23) );
cfsSetProp( sObj_, 'PickButton', False );
cfsSetProp( sObj_, 'DefaultPickButton', False );
cfsSetProp( sObj_, 'Points', Integer(0) );
cfsSetProp( sObj_, 'MaxLen', Integer(22) );
sObj_:= 'c_BRBYNAME_CHECKVLAG_Влажность';
cfsSetProp( sObj_, 'StatusCtx', scExtAttrDbl );
cfsSetProp( sObj_, 'DefaultWidth', Integer(12) );
cfsSetProp( sObj_, 'Index', Integer(24) );
cfsSetProp( sObj_, 'PickButton', False );
cfsSetProp( sObj_, 'DefaultPickButton', False );
cfsSetProp( sObj_, 'Points', Integer(2) );
cfsSetProp( sObj_, 'MaxLen', Integer(22) );
} // proc ChangeObjIndex1
//ExtendFormats BRSELECT;
//Browse BRSELECT;
//Table KATSOPR;
TableEvent
Table KATSOPR;
cmPositionChanged:
{
Inherited::HandleEvent( cmPositionChanged );
RescanPanel( #KATSOPR );
} // cmPositionChanged
end; // TableEvent
Window EDITSOPR EscClose;
ExtendFormats BRBYNAME;
Browse BRBYNAME;
Table SpSopr;
Fields
CheckNomAn 'Номер'#13'анализа' :[ 10 ], noProtect;
CheckVlag 'Влажность' :[ 12 ], noProtect;
end;
TableEvent
Table SpSopr;
cmPositionChanged:
{
Inherited::HandleEvent( cmPositionChanged );
} // cmPositionChanged
cmExprFieldChanged:
{
Inherited::HandleEvent( cmExprFieldChanged );
Case CurField of
#CheckNomAn:
{
dExpr:= Double( ExprFieldValue );
If dExpr >= 0
{
var1.doSetAttrID( coSpSopr, SpSopr.Nrec, cAttrNomAn, dExpr );
Set CheckNomAn;
RescanPanel( #SpSopr );
}
}
#CheckVlag:
{
dExpr:= Double( ExprFieldValue );
If dExpr >= 0
{
var1.doSetAttrID( coSpSopr, SpSopr.Nrec, cAttrVlag, dExpr );
Set CheckVlag;
RescanPanel( #SpSopr );
}
}
end; // case
} // cmExprFieldChanged
cmCheckField:
{
//Message( 'cmCheckField' );
Case CurField of
#CheckNomAn, #CheckVlag : { flagNewField:= True; }
else
{
flagNewField:= False;
}
end; // case
If not flagNewField
Inherited::HandleEvent( cmCheckField );
} // cmCheckField
cmCheckRecord:
{
//Запрос на пересчет цены в валюте выдается здесь.
//Message( 'cmCheckRecord' + ', flagNewField=' + If( flagNewField, 'True', 'False' ) );
Inherited::HandleEvent( cmCheckRecord );
} // cmCheckRecord
end; // TableEvent SpSopr
//-----------
HandleEvent // EDITSOPR
cmInit:
{
Case Inherited::HandleEvent( cmInit ) of
heAbort : Abort;
heStop : Exit;
end;
PutCommand(cmValue47);
} // cmInit
cmValue47:
{
If flagE = False
{
ChangeObjIndex1;
flagE:= True;
}
} // cmValue47
cmClose:
{
//Message( 'cmClose' );
Inherited::HandleEvent( cmClose );
} // cmClose
end; // HandleEvent for EDITSOPR
end; // Window EDITSOPR
//-----------
HandleEvent // for interface
cmInit :
{
Case Inherited::HandleEvent( cmInit ) of
heAbort : Abort;
heStop : Exit;
end;
flagE:= False;
cAttrNomAn:= var1.ExtAttr_ID( coSpSopr, 'Номер анализа' ); // Nrec ВА к SpSopr
cAttrVlag:= var1.ExtAttr_ID( coSpSopr, 'Влажность фактическая' ); // Nrec ВА к SpSopr
} // cmInit
end; // HandleEvent for interface
end. // interface