Обсуждение:Пример печати платёжных поручений, ордеров и требований.

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)
            alex_grankin@mail.ru
            Думаю, и другим будет интересно, положите ещё в примеры.
            >> Ответить
            • Развернуть Блин! Архив с описанием и шаблонами и т.д в 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;
              
              




              >> Ответить