Страница 2 из 3
Добавлено: 06 июн 2008, 15:00
PViP
Очень была бы рада примеру ручного создания SoprHoz и BaseFin
:[
в чем тут трудность? insert soprhoz set .... и т.д. подставляете требуемые значения поля и главное по журналу смотрите что там еще создается.
Код:
Function PlPor_Insert (bufPlPor : TPlPor) : Comp;
Добавление PlPor, с проверкой корректности и формированием SoprHoz
Здесь вам надо загрузить сначала vip interface. vih для него здесь Gal810\FRM\F_PlPor.rar\CompSrc\F\F_PlPor\Vip\PlPorSimple.vih.
Код: Выделить всё
var myPlPorSimple : PlPorSimple;
var bufPlPor : TPlPor;
......
//заполение bufPlPor
......
LoadVipInterface(myPlPorSimple);
myPlPorSimple.PlPor_Insert (bufPlPor : TPlPor);
FreeVipInterface(myPlPorSimple);
Добавлено: 06 июн 2008, 15:52
eyolkina
Здесь вам надо загрузить сначала vip interface. vih для него здесь Gal810\FRM\F_PlPor.rar\CompSrc\F\F_PlPor\Vip\PlPorSimple.vih.
Код:
var myPlPorSimple : PlPorSimple;
var bufPlPor : TPlPor;
......
//заполение bufPlPor
......
LoadVipInterface(myPlPorSimple);
myPlPorSimple.PlPor_Insert (bufPlPor : TPlPor);
FreeVipInterface(myPlPorSimple);
Большое спасибо. Касательно ручного создания - немного начала разбираться, но очень хочется использовать интерфейс, раз уж я его подключаю.
Жаль только, что
Код: Выделить всё
LoadVipInterface(myPlPorSimple);
myPlPorSimple.PlPor_Insert (bufPlPor : TPlPor);
FreeVipInterface(myPlPorSimple);
не помогло
Добавлено: 06 июн 2008, 15:54
eyolkina
На всякий случай привожу код:
Код: Выделить всё
//считываем значения из файла
LoadRecordFromDBF();
LoadVipInterface(piPlPor);
piPlPor.PlPor_Fill(bufPlPor, TIDKGAL, TIDK, DATVIP,0);
bufPlPor.NODOK:=NODOK;
bufPlPor.NAMEPL1:=NAMEPL1;
bufPlPor.NAMEPL2:=NAMEPL2;
bufPlPor.NAMEPL3:=NAMEPL3;
bufPlPor.NAMEPL4:=NAMEPL4;
bufPlPor.PODOTCHET:=PODOTCH;
bufPlPor.TAX:=TAX;
bufPlPor.SUMPLAT:=SUMPLAT;
bufPlPor.cplat:=GetOrg(PLAT_INN,PLAT_RS);//281474976739064;
bufPlPor.cpol:=GetOrg(POL_INN,POL_RS);//12081;
Message( 'bufPlPor.cbankplat:=GetBank(PLAT_INN,PLAT_RS)');
bufPlPor.cbankplat:=GetBank(PLAT_INN,PLAT_RS);//281474976739064;
Message( 'bufPlPor.cbankpol:=GetBank(POL_INN,POL_RS)');
bufPlPor.cbankpol:=GetBank(POL_INN,POL_RS);//12081;
Message( bufPlPor.cplat);
Message( bufPlPor.cpol);
if(piPlPor.PlPor_Check(bufPlPor,0)=false)
then message('Чтото неправильно заполнили');
Message('вставляем');
//LoadVipInterface(myPlPorSimple);
// myPlPorSimple.PlPor_Insert (bufPlPor : TPlPor);
// FreeVipInterface(myPlPorSimple);
nrec_my:=piPlPor.PlPor_Insert(bufPlPor);
FreeVipInterface(piPlPor);
вариант
Код: Выделить всё
//считываем значения из файла
LoadRecordFromDBF();
piPlPor.PlPor_Fill(bufPlPor, TIDKGAL, TIDK, DATVIP,0);
...
LoadVipInterface(piPlPor);
nrec_my:=piPlPor.PlPor_Insert(bufPlPor);
FreeVipInterface(piPlPor);
тоже не прошел
((
Добавлено: 06 июн 2008, 16:14
PViP
eyolkina, тоесть вываливается исключение когда выполняются операции с объектным файсом или платежка не создается?
Также надо объявить #define ComponentVersion перед инклюдами vih файлов. Иначе работать ниче не будет, в следствии компонентной принадлежности!
Добавлено: 06 июн 2008, 16:34
eyolkina
eyolkina, тоесть вываливается исключение когда выполняются операции с объектным файсом или платежка не создается?
Также надо объявить #define ComponentVersion перед инклюдами vih файлов. Иначе работать ниче не будет, в следствии компонентной принадлежности!
никакого исключения не вываливается, платежка отлично создается,
но SoprHoz и BaseFin не создаются...
Добавлено: 06 июн 2008, 17:24
Max_Fin
что-то не понял
сперва у вас
а только потом
поменяйте местами
Добавлено: 07 июн 2008, 08:59
eyolkina
поменяйте местами
в таком порядке тоже не работает... журнализация упрямо показывает создание только платежек.
может быть я забываю выхвать какой-нибудь секретный метод?
Добавлено: 07 июн 2008, 11:37
Алексей
если ошибок при отработке методов объектного интерейса нет - значит всё ок, видимо метод не предусматривает создание хоз.операции.
попробуйте найти объектный фейс по хоз.операциям, там тоже скорее всего есть метод. А вообще, когда вы потом в платеже зайдете во вкладку хоз.операции - она создасться автоматически.
так что не так страшно - что они не создаются.
Добавлено: 07 июн 2008, 11:44
eyolkina
если ошибок при отработке методов объектного интерейса нет - значит всё ок, видимо метод не предусматривает создание хоз.операции.
попробуйте найти объектный фейс по хоз.операциям, там тоже скорее всего есть метод. А вообще, когда вы потом в платеже зайдете во вкладку хоз.операции - она создасться автоматически.
так что не так страшно - что они не создаются
это правда - создаются. Вот думаю, может пусть остаются с вопросиком, зато сразу видно свежевыгруженные непроконтролированные платежки....
Добавлено: 07 июн 2008, 11:57
Алексей
в принципе да, сразу знак финансисту - "быстро обработай!"
Добавлено: 07 июн 2008, 14:12
eyolkina
в принципе да, сразу знак финансисту - "быстро обработай!"
и в инструкции как фичу описать
))))))))))))))))
Добавлено: 07 июн 2008, 17:26
Max_Fin
создание SoprHoz'а
Код: Выделить всё
ClearBuffer(tnSoprHoz);
SoprHoz.TiDkGal := PlPor.TiDkGal;
SoprHoz.TipDoc := Plpor.TiDk;
SoprHoz.cSoprDoc := Plpor.nRec;
SoprHoz.DesCr := PlPor.DesCr;
SoprHoz.DesGr := Plpor.DesGr;
SoprHoz.FilialNo := PlPor.FilialNo;
SoprHoz.cFilKor := Plpor.cFilKor;
SoprHoz.NoDoc := Plpor.NoDok;
SoprHoz.cHozOper := PlPor.cHozOper;
SoprHoz.Summa := PlPor.SumPlat;
SoprHoz.SumValut := PlPor.SumPlatV;
SoprHoz.KodValut := PlPor.cVal;
SoprHoz.DatOb := PlPor.DatOb;
SoprHoz.NameSHO := Trim(Trim(PlPor.NamePl1) + ' ' +
Trim(PlPor.NamePl2));
SoprHoz.VhSumHoz := '+' ;
SetBitKontras(PlPor.ModeDoc, SoprHoz.ModeDoc);
insert current SoprHoz;
Добавлено: 09 июн 2008, 11:36
eyolkina
Max_Fin
Спасибо! Учту на будущее..
Еще вопрос: Можно ли как-нибудь определить число записей, возвращаемых при:
Код: Выделить всё
if (modifier getfirst Katorg where ((ORG_INN/==Katorg.UNN ))
)=tsOk then
begin
...
end;
Добавлено: 09 июн 2008, 12:03
edward_K
была какая то переменная которая возвращала кол-во записей при груповых операциях (loop,update и так далее). tailly кажись - но она в доке не описана. loop еще почитайте. Да - modifier лучше не использовать - он вроде приводит к пересканированию экрана и тормозит выполнение.
Добавлено: 09 июн 2008, 12:10
eyolkina
т.е. делать:
Код: Выделить всё
if ( getfirst Katorg where ((ORG_INN/==Katorg.UNN ))
)=tsOk then
begin
...
end;
???
еще ругается на:
Код: Выделить всё
if((getfirst Katbank where
((CORG/==Katbank.corg and ORG_RS/==Katbank.schet1 ))
)=tsOk )
Пишет: Нужен ключ на CORG+SCHET1 для KATBANK...
Я что-то не так подцепляю??? странный этот механизм с подцепками...