Страница 1 из 2
Пересчет сальдо
Добавлено: 04 апр 2007, 11:09
Alexander
В складском ордере меняю программно сумму, как пересчетать сальдовые, чтобы не было расхождения?
Добавлено: 04 апр 2007, 11:33
san
по моему без инклудов исходников не обойтись
Добавлено: 04 апр 2007, 16:14
Alexander
а больше никак??
Добавлено: 04 апр 2007, 16:40
Den
Ну почему ж прям никак...
Ну самому если только переписать функции работы с сальдовыми остатками...
Добавлено: 05 апр 2007, 08:11
Alexander
Ну самому если только переписать функции работы с сальдовыми остатками...
Это слишком
ну а что заинклудить нужно? и как попробовать поюзить???
Добавлено: 05 апр 2007, 14:47
Панин
Есть объектные функции вставки в sporder
Если через них бадаться, то остатки сами меняться будут.
Добавлено: 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
Добавлено: 11 сен 2007, 11:10
Den
Автору топика нужно все же немного другое - пересчет сальдовых остатков. А в том линке функции получения наличия/средней цены.