Обсуждение:Пример печати платёжных поручений, ордеров и требований.
0 (0)
Обсуждение:Пример печати платёжных поручений, ордеров и требований. ( Обсуждение примера 30.12.2004 04:12 )
0(0)Создан OLE-сервер печати (Builder C++ 6.0, отчёты сделаны в QuickReport), который у нас вызывается при запуске RS-Bank (второй раз он не запускается). В макросе создаётся ActiveX-объект, которому передаются параметры для печати (тип документа и сам документ - одной строкой, поля в которых разделены спец. разделителем) и в конце вызывается метод Print. Работает и в 2-х звенке и в 3-звенке. Правильность работы проверялась начиная со сборки 5.0.61.10 и заканчивая 5.0.86.6.
Дополнительно в сервере печати сделаны печать штампов на этих документах, но их несложно отключить при желании. Параметры свои сохраняет в реестре. Печатает на принтеры, которые установлены и подключены в системе Windows. Если есть вопросы и пожелания - alex_grankin@mail.ru
Посмотреть пример
>> ОтветитьЕсть такое же только на Delphi + FastReport ( AOSila 06.01.2005 10:13 )
0(0)С возможностью сохранения шаблона отчета в файле и редактирование его без перекомпиляния OLE-сервера ну и + вся функциональность FastReporta 3.
Тобишь печать на матричном, сохранение в JPG готового отчета, также есть вставка штемпеля операциониста.
Большой минус нужно регить сервер на каждой машине.
>> ОтветитьГде взять посмотреть? ( Alexandr1 11.01.2005 05:44 )
0(0)Если интересно могу выслать! ( AOSila 12.01.2005 12:32 )
0(0)Not specified
>> ОтветитьКонечно интересно (+) ( Alexandr1 12.01.2005 13:15 )
0(0)Блин! Архив с описанием и шаблонами и т.д в RAR весит 622 к не попадает по параметрам в примеры. ( AOSila 13.01.2005 21:04 )
0(0)Печать из РС-Банка (пока реализовано печать только одной записи) на основе
шаблонов отчетов Fast-Report 3.2
(хотя он и сырой по моему мнению, но там есть экспорт в графические
файлы и печать на матричном, что очень нужно и иногда просто необходимо).
Использует lgxse за что огромное спасибо РАЗРАБОТЧИКАМ.
Хотя и не использует DTB, но все равно ограмное спасибо разработчикам.
Кубрину тоже спасибо.
А еще есть такой человек Усольцев Андрей Ему самое огромное спасибо.
Описание архива
AllUtils.Mac Просто макрос который используеться.
FRPrintOK.Mac Это пример макроса использования
ln_plat.fr3 это макет платежного поручения
Prihod_New.fr3 это макет приходного кассового ордера
(в примере не используеться, но вдруг кому надо, а рисовать лень)
Print.Log Файла(создаеться автоматически)
куда попадают события обращения с регистрацией даты,времени, операциониста
и вызываемой формы (просто для статистики и контроля)
Reed_Blin.txt То что вы читаете сейчас
rs_print.exe Сам сервер автоматизации как видно внешний. Размер Ж(((( 1 809 920
Доступны ключи:
rs_print.exe reg (регистрация в системе открывшуюся форму надо закрыть руками)
rs_print.exe autoreg (регистрация в системе приложение просто регистрируеться)
rs_print.exe des (запуск приложения используеться для редактирования шаблонов)
valuta.def Файл необходимый для функции сумма прописью(Посмотрите сами там все понятно) для любой валюты
должен лежать там же где и rs_print.exe.
Метод Show(X) параметры
x - энто
0 = "сразу напечатать";
1 = "посмотреть";
2 = "Посмотреть + ЭКПОРТ В JPG";
Замечания::::::
Согласен, что несколко большеват файл самого сервера, но туда включен дизайнер
шаблонов можно его конечно и убрать тогда размер примерно 800-900 к. будет.
На сегодняшний день чтобы не обновлять прогу на каждой клиентской машине она лежит на
общедоступном диске откуда и региться в системе.
А это пример какторый вызываеться из plclnd.mac
Macro PrintLazerOK(p/*Ссылка на запись*/,Flag); Var Doc; doc = TlgActiveX("rs_print.rsbank"); /*Создали экземпляр*/ /* Doc.ShowDates;*/ GetMFOAndOther(p);/*Ну думаю понятно*/ doc.Start("t:\\Spravki\\ln_plat.fr3",{oper});/*Грузим макет и передаем опера для статистика*/ doc.AddVar("bik_1",BIKPayer);/*Присваеваем значение переменной*/ doc.AddVar("field_1_1",BPayer); doc.AddVar("Ras_count1",p.Account_Payer); doc.AddVar("Cor_count1",CorPayer); doc.AddVar("bik_2",BIKReceiver); doc.AddVar("field_2_1",BReceiver); doc.AddVar("Stadt",""); doc.AddVar("Ras_Count2",p.Account_Receiver); doc.AddVar("Cor_count2",CorReceiver); doc.AddVar("Summa_1",p.Sum); /* doc.AddVar("Srok",p.Pay_Date);*/ doc.AddVar("Vid","электронно"); doc.AddVar("n_por",p.Numb_Document); doc.AddVar("ComposedDate",p.Date_Document); doc.AddVar("Kind_oper","01"); doc.AddVar("field_1",p.Payer); doc.AddVar("Field_2",p.Receiver); doc.AddVar("Osn",p.Ground); doc.AddVar("Inn_ot",p.OKPO_Payer); doc.AddVar("Inn_pol",p.OKPO_Receiver); doc.AddVar("Ocher",p.Payment); doc.AddVar("Stat_Nal",p.ComposerStatus); doc.AddVar("KPP_PAY",p.KPP_Payer); doc.AddVar("KPP_REC",p.KPP_Receiver); /* doc.AddVar("Class_nal",p.BudjClassifCode);*/ doc.AddVar("Class_nal",p.UserField4); doc.AddVar("okato_nal",p.OKATO); doc.AddVar("Osn_nal",p.TaxGround); doc.AddVar("per_nal",p.TaxPeriod); doc.AddVar("num_nal",p.TaxNumber); doc.AddVar("dat_nal",p.TaxDate); doc.AddVar("type_nal",p.TaxPaymentType); doc.AddVar("CurDate",{CurDate}); doc.AddVar("OperName", FIOOper(p.Oper) ); doc.ExportFileName = GetFileNameForExport(p); /*это передача названия файла для экспорта в jpg если нужно мы используем для отправки по клиен банку подтверждении*/ /* MsgBox(GetFileNameForExport(p));*/ If (Flag == 2) doc.AddVar("ProvPlat",1); End; /*посмотрите в шаблоне если ProvPlat == 1 то он выводит штемпили операциониста*/ doc.Show(Flag); End;
>> ОтветитьЧтобы архив весил меньше (+) ( Alexandr1 14.01.2005 06:59 )
0(0)оттуда можно убрать сам exe, и положить туда целиком проект на Delphi - кому
надо сам скомпилирует.
Но это, конечно, дело личное.
>> ОтветитьЯ не понял ещё одно (+) ( Alexandr1 14.01.2005 07:03 )
0(0)В чём суть упоминания, что есть печать на матричном прнтере?
В моём примере тоже есть.
Какой принтер установлен в Windows, туда и напечатает. Хоть матричный, хоть струйный, хоть лазерный.
Или при выборе матричного принтера печать на него идёт в текстовом режиме?
Если так, тогда другое дело. В моём примере печать реализована только в графическом режиме.
>> ОтветитьОтвет! ( AOSila 14.01.2005 08:38 )
0(0)Да на матричном именно в текстовом!
А проект на Delphi чтобы выложить надо все компоненты выкладывать! В том числе FastReport который дописывался!
>> ОтветитьТогда вам надо свой сайт делать и там выкладывать всё (-) ( Alexandr1 14.01.2005 09:44 )
0(0)Not specified
>> Ответитьж)))))))))))))))))))))))))))))))))))) Да еще бы знаний в этой области хоть чуть чуть...... ( AOSila 14.01.2005 11:10 )
0(0)Ну и времени конечно. А то уже даже ни кто не удивляеться, что в 20:15 еще на рабочем месте, хотя рабочий день до 17 нуль нуль.
>> Ответить