Страница 1 из 2

Пересчет сальдо

Добавлено: 04 апр 2007, 11:09
Alexander
В складском ордере меняю программно сумму, как пересчетать сальдовые, чтобы не было расхождения?

Добавлено: 04 апр 2007, 11:33
san
по моему без инклудов исходников не обойтись

Добавлено: 04 апр 2007, 16:14
Alexander
а больше никак??

Добавлено: 04 апр 2007, 16:40
Den
Ну почему ж прям никак...
Ну самому если только переписать функции работы с сальдовыми остатками... :grin:

Добавлено: 05 апр 2007, 08:11
Alexander
Ну самому если только переписать функции работы с сальдовыми остатками...
Это слишком :-)

ну а что заинклудить нужно? и как попробовать поюзить???

Добавлено: 05 апр 2007, 14:47
Панин
Есть объектные функции вставки в sporder
Если через них бадаться, то остатки сами меняться будут. 8-)

Добавлено: 05 апр 2007, 14:54
Панин
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

Добавлено: 06 апр 2007, 09:00
Alexander
а для какой версии?
е меня нет ModifOrd.vih

Добавлено: 19 апр 2007, 12:51
Alexander
Поделитель файликом ModifOrd.vih, плиззз!!
или подскажите как по-другому ручками запустить пересчет сальдовых! HELP!!

Добавлено: 02 май 2007, 18:52
Панин
Текст 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
;

Добавлено: 10 сен 2007, 14:50
Bulat-bash
Гал-ка 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).

Кто-нибудь знает как работает эта штука?(Вернее почему она не работает у меня :? )
Заранее спасибо!

Добавлено: 11 сен 2007, 00:04
edward_K
в том что в 712 фейса MODIFORDS не существует, ровно как и тригеров.

Добавлено: 11 сен 2007, 09:06
Bulat-bash
Люди добрые! Все-таки может кто знает, как бы пересчитать сальдовые после изменения ордера, чтобы не было расхождения на 7,12?

Добавлено: 11 сен 2007, 09:29
PViP
Bulat-bash посмотри здесь
http://www.tyumbit.ru/gal_forum/viewtopic.php?t=8510

Добавлено: 11 сен 2007, 11:10
Den
Автору топика нужно все же немного другое - пересчет сальдовых остатков. А в том линке функции получения наличия/средней цены.