Пересчет сальдо
Модераторы: m0p3e, edward_K, Модераторы
Пересчет сальдо
В складском ордере меняю программно сумму, как пересчетать сальдовые, чтобы не было расхождения?
Public функции триггеров для модификации записей SpOrder
были реализованы 12.05.2006 (по моей скромной просьбе)
Как использовать:
В исходном тексте разрабатываемого интерфейса:
- в самом начале (перед описанием интерфейса) добавить строку:
#include ModifOrd.vih
(данный файл ищите в исходниках или слёзно просите у меня)
- объявить переменные с типами ModifOrds и TypeSpOrder (в любом подходящем месте, но лучше в начале интерфейса), например:
var MO: ModifOrds;
var spOr: TypeSpOrder;
Вместо insert current SpOrder, update current SpOrder, delete current SpOrder использовать следующие конструкции:
вместо insert:
spOr:= TypeSpOrder(SpOrder.buffer); // передача записи SpOrder для операции
MO.AnySpOrder_insert(spOr); // операция добавления записи SpOrder
SpOrder.buffer:= type$SpOrder(spOr); // возвращение полей записи SpOrder после операции
вместо update:
spOr:= TypeSpOrder(SpOrder.buffer); // передача записи SpOrder для операции
MO.AnySpOrder_update(spOr); // операция модификации записи SpOrder
SpOrder.buffer:= type$SpOrder(spOr); // возвращение полей записи SpOrder после операции
вместо delete:
spOr:= TypeSpOrder(SpOrder.buffer); // передача записи SpOrder для операции
MO.AnySpOrder_delete(spOr); // операция удаления записи SpOrder
были реализованы 12.05.2006 (по моей скромной просьбе)
Как использовать:
В исходном тексте разрабатываемого интерфейса:
- в самом начале (перед описанием интерфейса) добавить строку:
#include ModifOrd.vih
(данный файл ищите в исходниках или слёзно просите у меня)
- объявить переменные с типами ModifOrds и TypeSpOrder (в любом подходящем месте, но лучше в начале интерфейса), например:
var MO: ModifOrds;
var spOr: TypeSpOrder;
Вместо insert current SpOrder, update current SpOrder, delete current SpOrder использовать следующие конструкции:
вместо insert:
spOr:= TypeSpOrder(SpOrder.buffer); // передача записи SpOrder для операции
MO.AnySpOrder_insert(spOr); // операция добавления записи SpOrder
SpOrder.buffer:= type$SpOrder(spOr); // возвращение полей записи SpOrder после операции
вместо update:
spOr:= TypeSpOrder(SpOrder.buffer); // передача записи SpOrder для операции
MO.AnySpOrder_update(spOr); // операция модификации записи SpOrder
SpOrder.buffer:= type$SpOrder(spOr); // возвращение полей записи SpOrder после операции
вместо delete:
spOr:= TypeSpOrder(SpOrder.buffer); // передача записи SpOrder для операции
MO.AnySpOrder_delete(spOr); // операция удаления записи SpOrder
Текст ModifOrd.vih
#ifdef ComponentVersion
#component "L_Sklad"
#end
type TypeSpOrder = record as table SpOrder;
ObjInterface ModifOrdsObj;
function AnySpOrder_insert(var spOrd_: TypeSpOrder): word; // tsOk - если всё ок
function AnySpOrder_update(var spOrd_: TypeSpOrder): word; // tsOk - если всё ок
function AnySpOrder_Delete(spOrd_ : TypeSpOrder): word; // tsOk - если всё ок
end;
VipInterface ModifOrds implements ModifOrdsObj
#ifdef ATL51
licensed (FREE)
//Parameters (SPTypeSopr: word; pNRec: comp)
#end
;
#ifdef ComponentVersion
#component "L_Sklad"
#end
type TypeSpOrder = record as table SpOrder;
ObjInterface ModifOrdsObj;
function AnySpOrder_insert(var spOrd_: TypeSpOrder): word; // tsOk - если всё ок
function AnySpOrder_update(var spOrd_: TypeSpOrder): word; // tsOk - если всё ок
function AnySpOrder_Delete(spOrd_ : TypeSpOrder): word; // tsOk - если всё ок
end;
VipInterface ModifOrds implements ModifOrdsObj
#ifdef ATL51
licensed (FREE)
//Parameters (SPTypeSopr: word; pNRec: comp)
#end
;
-
- Постоянный гость
- Сообщения: 52
- Зарегистрирован: 28 июн 2006, 08:45
- Откуда: Уфа
Гал-ка 7,12
Пытаюсь воспользоваться ModifOrd
#include ModifOrd.vih
interface updateord;
create view
var sp_nrec:comp;
MO : ModifOrds;
spOr : TypeSpOrder;
k :double;
as select * from sporder
where (( sp_nrec==sporder.nrec )) ;
parameters sp_nrec,k;
handleevent
cminit:
{
_loop sporder
{
sporder.srprice:=k
!update current sporder
spOr:= TypeSpOrder(SpOrder.buffer);
MO.AnySpOrder_update(spOr); //
SpOrder.buffer:= type$SpOrder(spOr);
}
...............................
Компилится без проблем, а при запуке данного фейса из Гал-ки - ругается:
Возникло необработанное исключение ExObjIfcNoload (ExVip) объект не найден в ресурсном файле(MODIFORDS).
Кто-нибудь знает как работает эта штука?(Вернее почему она не работает у меня )
Заранее спасибо!
Пытаюсь воспользоваться ModifOrd
#include ModifOrd.vih
interface updateord;
create view
var sp_nrec:comp;
MO : ModifOrds;
spOr : TypeSpOrder;
k :double;
as select * from sporder
where (( sp_nrec==sporder.nrec )) ;
parameters sp_nrec,k;
handleevent
cminit:
{
_loop sporder
{
sporder.srprice:=k
!update current sporder
spOr:= TypeSpOrder(SpOrder.buffer);
MO.AnySpOrder_update(spOr); //
SpOrder.buffer:= type$SpOrder(spOr);
}
...............................
Компилится без проблем, а при запуке данного фейса из Гал-ки - ругается:
Возникло необработанное исключение ExObjIfcNoload (ExVip) объект не найден в ресурсном файле(MODIFORDS).
Кто-нибудь знает как работает эта штука?(Вернее почему она не работает у меня )
Заранее спасибо!
-
- Постоянный гость
- Сообщения: 52
- Зарегистрирован: 28 июн 2006, 08:45
- Откуда: Уфа
-
- Местный житель
- Сообщения: 254
- Зарегистрирован: 08 июн 2007, 08:26
- Откуда: Красноярск
- Контактная информация:
Bulat-bash посмотри здесь
http://www.tyumbit.ru/gal_forum/viewtopic.php?t=8510
http://www.tyumbit.ru/gal_forum/viewtopic.php?t=8510