Форум » Clipper » Печать платёжки » Ответить

Печать платёжки

Лукашевский: Хей, россияне! Кто-нить может поделиться модулем печати платёжного поручения? М.б. небезвозмездно... Только клиппером, не а-ля Windows типа на PageScriptе там. Мой E-mail: kniga@online.ru P.S. Понятно, что прям сразу в свою прогу не вставишь, но мне проще что-то переделать, чем писать с нуля...

Ответов - 18

Dima: ее делать пару часов от силы ;) дольше ждать будешь....

Pasha: У меня есть 1) Старый вариант для матричных принтеров, esc-командами выдерживаются все расстояния в мм 2) Печать посредством вставки в шаблон Word посредством ole. Вместо ole в принципе можно сделать динамическое формирование vbs-скрипта по методу, который здесь когда-то обсуждался Как надо ?

SergeJa: Лукашевский пишет: Хей, россияне! : Цитата, слегка офтопик, но вроде в тему "...блатное о6ращеньице «россияне», всегда казавшееся Татарскому чем-то вроде термина «арестанты», которым воры в законе открывают свои письменные послания на зону, так называемые «малявы»." Виктор Пелевин, Generation П.


SADSTAR2: http://dump.ru/files/f/f89463303/ вывод на печать - через модуль вывода в форму А форма - в отд.файле. "Правь - не хочу". Впрочем, ввод - тоже через аналогичный модуль ввода, который я сделал, когда мне надоело с гетами в PRG-модулях возиться.

TimTim: Pasha, а можно поподробнее про вариант 2?

Pasha: 1. С помощью к примеру Консультант-плюс берется типовая форма 0401060 в формате Word 2. В нужные песта подставляются закладки 3. Посредством fcreate/fwrite создается vbs-файл примерно такого содержания: set obj = WScript.CreateObject("Word.Application") obj.Documents.Open FileName:="BNK_1060.DOC", ConfirmConversions:=False, _ ReadOnly:=True, AddToRecentFiles:=False, PasswordDocument:="", _ PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _ WritePasswordTemplate:="", Format:=wdOpenFormatAuto, XMLTransform:="" obj.Selection.GoTo What:=wdGoToBookmark, Name:="Numer" Selection.TypeText Text:="12" в конце или obj.Visible = true или obj.ActiveDocument.PrintOut false и так далее. Строки вставляются естественно в cp1251 4. Скрипт вызывается на выполнение __Run('start /m wscript.exe <name>.vbs')

TimTim: Спасибо, Pasha! Попробую.

Лукашевский: Pasha пишет: 1) Старый вариант для матричных принтеров, esc-командами выдерживаются все расстояния в мм А я бы этот вариантик попробовал с удовольствием...

Лукашевский: SADSTAR2 пишет: http://dump.ru/files/f/f89463303/ вывод на печать - через модуль вывода в форму. Скачивается 173403 байт из заявленных 290 Kb и закачка обрубается. Попытки три или четыре делал...

Лукашевский: Dima пишет: ее делать пару часов от силы ;) См. Pasha: вопрос в выдержке всех расстояний в мм! И это уже отнюдь не пара часов!

SADSTAR2: Лукашевский пишет: Скачивается 173403 байт из заявленных 290 Kb и закачка обрубается. Попытки три или четыре делал... Попытка проверить не удалась. В связи с переходом на новый сервер закачка файлов временно недоступна.

Dima: Лукашевский пишет: Скачивается 173403 байт из заявленных 290 Kb и закачка обрубается. Попытки три или четыре делал... Перезалил http://rapidshare.com/files/42618646/PP_sfx.exe

Pasha: Лукашевский пишет: цитата: 1) Старый вариант для матричных принтеров, esc-командами выдерживаются все расстояния в мм А я бы этот вариантик попробовал с удовольствием... Все время забываю твой емайл :) забей себе в профиль Дай адрес, отправлю

Лукашевский: Pasha пишет: Все время забываю твой емайл :) забей себе в профиль А его никто не видит! Ведь даже прямо в вопросе указал! Может, он и в профиле есть, только спрятался... :-)

Pasha: Действительно, слепой Отправил Это не клиппер-код, а скрипт. Выполняемые операторы - с префиксом !, остальные строки вставляются в платежку с макроподстановками

Лукашевский: Что данные у тебя высвечиваются для редактирования перед печатью - это интересно (у Pasha форма по всей видимости жёсткая - сразу из DBF и на печать, к тому же я мало сталкивался со скриптами и горячего желания изучать их нет :-), хотя большое спасибо ему за участие - два варианта всегда лучше чем один). Однако возникло несколько вопросов: 1) что среди всех файлов делает README.COM, который толком не запускается (говорит "File not found"); 2) для чего в списке линковки в PP.LNK модуль PRINT.PRG, одноимённая процедура которого ниоткуда не вызывается; 3) зачем в PP_LIB.PRG процедура SHADOWBOX, которая тоже ниоткуда не вызывается; 4) также наоборот, в PP.LNK есть модули MAIN и BEGOST, которых среди всех файлов нет; 5) что среди прочих файлов делают файлы .UDF и для чего они? Внутри они PRG... но большинство из них также ниоткуда не вызываются, кроме как из PP.LNK некоторые. Кстати, LNK их найдёт с таким расширением?

SADSTAR2: 5. UDF. Наверное были утеряны исходники. И эти файлы - результат декомпиляции готового экзешника. Поэтому и имена переменных - абстрактные. Обычно у меня - смысловые. Если изменить расширение на prg, то можно применять для повторной сборки. PP.lnk - наверное тоже результат декомпиляции. Здесь достаточно было запустить на компиляцию головной файл pp.prg В нем все указания по входящим модулям есть. 1. README.COM и есть показывалка текста. Вызывается с параметром - именем файла для показывания. из модуля print.prg a='readme '+f_name run &a 2. PRINT.PRG вызывается по F9. Вызов описан в файле формы ввода form1.scf. K_F9:-8:f9proc() Причем в вин.эксплорере файл упорно показан без расширения. А в ФАРе - нормально. А f9proc() находится в PP_LIB.prg 3. SHADOWBOX Возможно - рудимент. По смыслу - был заменен на оконные функции из библиотеки ClipperTools3. Программа делалась на основе более масштабных разработок путем удаления ненужных модулей. 4. MAIN и BEGOST . См.выше. По смыслу BegOst - начальные остатки. Из какой-то др.программы. Дополнение. (Из смутных воспоминаний. Т.к. судя по датам файлов, дело было не ранее 2002 года) В программе задействованы несколько моих стандартных в то время модулей. 1. Модуль инициализации/конфигурирования CFG(). Читает конфиг. файл типа PP.CFG и выполняет то что там написано - присвоение глобальных параметров. В т.ч. настройка принтерозависимых переменных Это - раннее решение. В дальнейшем был задуман переход на диалоговое конфигурирование принтера. Начальный вариант которого виден в режиме Печать/Print_ini. 2. Модуль экранного ввода в экранную форму. Пример описания формы - FORM1.SCF. Вызов - INSHEET("form1.scf"). В оригинале - InSheet("form1.scf") Смысл этого модуля - облегчить разработку и поддержку форм ввода с десятками полей ввода. Поэтому здесь - достаточно вырожденный пример. У меня был вариант этого модуля с формой ввода с вертикальным размером в несколько раз больше физического окна - т.е. с прокруткой. Поэтому одна из фишек - настройка перемещения по полям. Т.е. не линейная последовательность гетов, а перемещение влево/вправо/вниз/вверх из текущего поля. Т.к. собственно ввод делается через GET, то можно задать параметры WHEN VALID PIC. И т.п. В примере есть все секции. Некоторые - заглушены. 3. Модуль формирования печатной формы. Вызов - FORMFILL("ppform.txf") Тут все гораздо проще. На основании файла описания формы и текущих переменных (в т.ч. и значений полей DBF) формируется текстовый файл со вставленными принтерными esc-командами. Далее он обычно отправляется на принтер. 4. Модуль управления экранными окнами. Все функции в WinContr.prg Создан после того, как мне надоело мучиться с выбором положения, размера, раскраски множества всплывающих диалоговых окон. Теперь это можно делать в процессы работы с программой. Перед вызовом окна нажать спец.клавишу - включается режим диалоговой настройки вызванного окна. Параметры окон хранятся в windows.dbf. И минимум забот в процессе написания кода программы. Ну вот. Где-то так. В случае интереса к этому старью - думаю что смогу найти чистые исходники каждого модуля. P.S. Вспомнил!!! У меня летом 2001г квартиру обворовали. В т.ч. и комп унесли. Поэтому пытался восстановить исходники декомпиляцией готовых программ пользователей.

Лукашевский: SADSTAR2 пишет: 2. PRINT.PRG вызывается по F9. Вызов описан в файле формы ввода form1.scf. K_F9:-8:f9proc() Причем в вин.эксплорере файл упорно показан без расширения. А в ФАРе - нормально. А f9proc() находится в PP_LIB.prg Спасибо за разъяснения. Интерес к этому старью частичный - решить, что вставлять в свою прогу, а что нет. Так, система окон у меня своя, их цвета/размеры не настраиваются и на фиг нужно - пусть работают, а не красоту наводят... Имя базы клиентов и имена полей естест. тоже другие, хранить платёжки ("назначение платежа" и т.п.) я на первом этапе не буду, а реквизиты клиентов у меня вводятся/редактируются в другом месте... Так что как минимум половину модулей и функций я пока просто исключу, и надо было определиться, какие именно. Вроде определился.



полная версия страницы