Обсуждение:Operlog. Проводки. Транзакции.
0 (0)
Обсуждение:Operlog. Проводки. Транзакции. ( Обсуждение примера 19.06.2002 13:01 )
0(0)В связи с некоторыми случаями "криков" оперов: "я документ проводила, а он пропал, а я ничего не делала" (на самом деле сама же удалила), пришлось сделать свою примочку для работы с operlog.dbt, т.к. стандартная в 5.0 очень тупо задает фильтр по дате (не по ключу, а методом перебора - поседеешь, пока дождешься). Примочка помимо всего прочего позволяет перекинуть документ в отложенные, а также вывести распечатку в ёксель. Для работы нужен промежуточный рабочий файл следующей структуры:
0, Number, Long - номер поля
1, Name, String, 25 - имя поля
2, ValueBefore, String 251 - значение поля до изменения
3, ValueAfter, String, 251 - значение поле после изменения
Ключ 0 по Number.
Еще в примерчике реализован простенький, но гибкий механизм, по наложению заранее неизвестной стуктуры на переменную часть записи.
Посмотреть пример
>> ОтветитьПоложили бы уже пример бы весь ( senevg 21.01.2003 16:47 )
0(0)со структурой и т.п. в одном архиве...
>> ОтветитьПоложил, что просили (-) ( григ 22.01.2003 08:09 )
0(0)Not specified
>> ОтветитьИли не все? ( sokols 29.01.2003 20:10 )
0(0)А в файлике excel.mac есть импорт resource.mac :( Это кто такой?
>> ОтветитьЭто макрос для обновления ресурсов терминала (+) ( григ 30.01.2003 07:47 )
0(0)Если терминал пользователя использует свой отдельный каталог (диск С), а пользователь сидит где-то далеко, то в случае необходимости обновлений (терминальных частей длм-ок, еще чего-то) довольно трудно ездить самому и все править, а данный макрос это делает в автоматическом режиме. В данном конкретном случае он вообще не нужен - строчку import можно просто убрать. А нужен он бывает в макросах, запускающихся при запуске подсистем.
>> ОтветитьВсе равно нескладушки... ( sokols 30.01.2003 08:32 )
0(0)Вот какую кучу на меня вываливают при запуске макроса:
1. Bad type used for bind field Kind
2. TlgDef: нет в словаре файла operlog.dbt!
3. TlgFile не создан!
4. Ошибка при выполнении
5. RS-Bank exception warning ... со всеми вытекающими.
RS-Bank 5.00.48, трехзвенка.
DTB D32 602 112 09.02.00 15:28
RSLX D32 114 688 28.02.00 13:37
LGXS D32 57 344 24.10.01 15:04
DOCTOR D32 110 592 19.07.01 15:48
В чем проблем?
>> Ответитьdtb.d32 у тебя старая, скачай с www.rsl.itb.ru свежую, ну и остальное тоже (-) ( григ 30.01.2003 10:01 )
0(0)Not specified
>> ОтветитьОшибка выполнения :Метод AddField:нет источника данных для навигации ( foot 30.01.2004 11:40 )
0(0)А у меня ошибочка - как побороть?
Ошибка указывает на строку 1. Диагностика в строке 4.
1. EDITG0=Grid0.AddField(olbdDateRec);
2. EDITG0.Name="EDITG0";
3. EDITG0.TitleLabel="Дата";
4. Ошибка выполнения :Метод AddField:нет источника данных для навигации
>> ОтветитьА какая версия RS-Bank? (-) ( григ 30.01.2004 14:20 )
0(0)Макрос, который ругается, предназначен для сборок ниже 5.00.066 (кажется так). А для сборок повыше в примерах есть другой макрос.
>> Ответить
Внимание ! ( gf 31.01.2003 18:55 )
0(0)В сборке 5.00.066.11 (опять без объявления войны !) изменена структура ПЕРЕМЕННОЙ ЧАСТИ записи operlog'a: теперь перед каждым куском с записью другого файла идет его длина - INT. Кроме того, описание operlog'a в bank.def не соответствует файлу - если создать файл по словарю, RS-Bank работать не будет. При этом тестирование словаря этого не показывает - флаги ключей оно, вероятно, не проверяет, а именно в них отличие. И на закуску приглашаю восхититься чудесным описанием полей operlog'a в словаре.
>> Ответитьблин достали уже ( senevg 31.01.2003 21:39 )
0(0)Вместо того чтобы читать из деф файл-а - рс каждый раз деф-файл в ехе-шник пихает, сами себе гемороя наживают. Или просто не умеют ?
>> ОтветитьПо поводу тестирования (+) ( григ 03.02.2003 10:05 )
0(0)Я когда-то давно написал на РСЛ полуавтоматизатор "апдейтов". Там функция тестирования разных версий словарей более тщательно делает проверку и дает свои рекомендации. Плюс делает копирование/конвертирование. Если надо - могу выложить в каталоге примеров. Сами поправите, если что не понравится.
А что касается изменения структуры operlog.dbt в 61 сборке, то вы уж сами покорежьте макрос. Я до сих пор работаю на 24 и что-то не тянет меня на новшества.
>> Ответитьв 73 сборке обновился оперлог ( KaMPiLeR 19.06.2003 18:11 )
0(0)не могу наложить структуру Document на переменную часть оперлога.
вот кусок кода:
file operlog(operlog);
record rec("arhdoc.dbt");
while(operlog.date==RepDate)
message(operlog.date+" :: "+operlog.time);
SetRecordAddr(rec,operlog);
if((rec.Sum==$5000))
println(operlog.date);
println(operlog.time);
copy(pst,rec);
end;
end;
Чето кривое накладывается...
Вроде как Вы тож перешли на 73-ую?
>> ОтветитьSetRecordAddr(rec,operlog,0,2); (-) ( gf 19.06.2003 18:54 )
1(1)Not specified
>> Ответитьа как вытащить информацию ( KaMPiLeR 03.11.2003 20:45 )
0(0)Значение до операции и Значение После оперции?
как сделать SetRecordAddr(rec, operlog, ??, ??);
>> Ответить
Ошибка OPERLOG.MAC строка 356[0]: доступ к свойству Columns ( novnik 01.04.2004 12:36 )
0(0)Попробуй (+) ( григ 01.04.2004 13:58 )
0(0)Заремить 317 строчку lgSetAnswer(2) и проверить тип sheet1 (MsgBox(sheet1))
>> ОтветитьObject ActiveX или TlgActiveX ( novnik 01.04.2004 20:04 )
0(0)lgSetAnswer(2) убрал давно, т.к. выдает ошибку: "нет полей у объекта lgSetAnswer".
MsgBox(sheet1) выдает "Object ActiveX" (2-х звенка) или "Object TlgActiveX" (3-х звенка).
Самое интересное, что в 3-х звенке экспорт в Excel работает, но при формировании таблицы транзакций и при ее листании постоянно вылазит "0" в окошке (как от MsgBox). Видимо, выдается результат какой-то операции, но в макросе этого нет.
>> ОтветитьТогда понятно (+) ( григ 02.04.2004 07:41 )
0(0)Первой строчкой в макросе идет: import dtb,BankInter,rslx,lgxs,doctor,"excel.mac";
В зависимости от двух или трехзвенного варианта работы далее создается объект:
if(IsStandAlone()) ob=ActiveX("Excel.Application",null,true);
else ob=TlgActiveX("Excel.Application",true); end;
Для трехзвенного варианта используется lgxs.d32 - на сервере приложений и lgx.d32 - на терминале. Для 2-х звенного - rslx.d32 (ну не знаю, почему в 2-х звенке у тебя не идет - может версия rslx.d32 старая?). lgSetAnswer можно не ремировать, а заключить в if:
if(not IsStandAlone) lgSetAnswer(2); end; Сообщение "нет полей..." скорее всего значит, что ты пользуешь старую lgxs.d32+lgx.d32.
Также используется dtb.d32. В 3-х звенке в каталоге терминала должны быть терминальные длм-ки от dtb.d32: t_textgp.d32 и t_textga.d32. MsgBox(0) у тебя выскакивает по причине отсутствия терминальных частей от dtb.d32.
>> ОтветитьВсе заработало! ( novnik 02.04.2004 12:06 )
0(0)Ура! Все заработало! Действительно были старые версии - брал еще с http://www.rsl.itb.ru/index1.htm.
Может, стоит на той страничке поставить ссылку на новые версии - http://support.softlab.ru/Portal/Samples/samplesforuser.asp?From=166
Благодарю за подсказки.
>> ОтветитьПри импорте ругается.... ( wwwSerg 27.10.2004 13:52 )
0(0)У меня при импотре ругается на dtb и на doctor.
Что эт такое, и где его можно посмотреть или исправить?
Чтот я сосвем мало понимаю.....
>> Ответить
При иморте ругается... ( wwwSerg 27.10.2004 13:54 )
0(0)Эти длм-ки возьми с http://support.softlab.ru/portal/Samples/samples.asp?Typ=7 (-) ( григ 28.10.2004 08:00 )
0(0)Not specified
>> ОтветитьСпасибо Большое! ( wwwSerg 28.10.2004 11:51 )
0(0)Все заработало! Супер!:)
>> ОтветитьПроверка на код операции OpCode ( novnik 15.04.2005 14:19 )
0(0)Почему код операции OpCode не проверяется по значениям 2,3,4,
а только 1004,1005,1006?
(см.
http://portal.softlab.ru/reggy/faq/suppapro/probcontent.asp?Sys=9&Und=41&The=5206&Page=&Prob=1580)
>
http://portal.softlab.ru/reggy/faq/suppapro/probcontent.asp?Sys=9&Und=41&The=5206&Page=&Prob=1580)
>> Ответить