Posted: 08 Jan 2003 09:24 Post subject: 2 IS:Платежки через Сервер печати для Windows
Уважаемые разработчики!
Просьба внести небольшое исправление либо в Сервер печати для Windows, либо в модуле "Расч. вал.счета" Бэст4.
Дело в том, что существует разница в размерах и способах формирования текстового поля "Основание платежа" в АРМе и в Сервере печати. Из-за этого постоянно приходится подбирать размещение текста, чтобы получить нормально отображаемое основание платежа в платежке. Учитывая отсутствие предварительного просмотра в Сервере печати и, ест-но, ежедневность выписки платежных поручений, вышеизложенное превращается в достаточно утомительное и нервирующее занятие.
Форма для ввода Основания платежа в АРМ состоит из 3-х строк общей длиной в 150 символов. Причем принудительно проставляются пробелы в конце каждой строки.
Сервер печати оперирует 4-мя строками общей длиной, похоже, 255 символов. По всей видимости так было в старых версиях БЕСТ.
Joined: 08 Jan 2002 Posts: 814 Location: Наталья Павлова
Posted: 08 Jan 2003 12:04 Post subject: Re: 2 IS:Платежки через Сервер печати для Windows
Rad777 wrote:
Уважаемые разработчики!
Из-за этого постоянно приходится подбирать размещение текста, чтобы получить нормально отображаемое основание платежа в платежке. Учитывая отсутствие предварительного просмотра в Сервере печати и, ест-но, ежедневность выписки платежных поручений, вышеизложенное превращается в достаточно утомительное и нервирующее занятие.
Напишите, пожалуйста, подробнее.
Last edited by Павлова Наталья on 08 Jan 2003 12:31; edited 1 time in total
В системе БЭСТ4 в качестве признака принудительного перевода строки используется символ «•» — Chr(249). При обработке таких строк Генераторе отчетов для Windows необходимо использовать Chr(183), так как в Windows-кодировке не для всех символов коды совпадают с кодами символов DOS. Для указания перевода строки, в месте нахождения данного символа используется стандартый код Chr(10).
Например:
Var
N : Integer;
S : String;
Begin
S := ‘Оплата по счету N 123456 •НДС 200 ’;
{нахождение номера позиции символа • в строке S}
N := Pos(chr(183), S);
{Выделение подстроки из строки S до символа •, вставка символа перевода строки и вывод остальной части}
Text := copy(S,1,N-1)+chr(10)+ copy(S, N+1,31);
End
В результате будет напечатано: ‘Оплата по счету N 123456 ‘
‘НДС 200 ’
в качестве признака принудительного перевода строки используется символ «•» — Chr(249). При обработке таких строк Генераторе отчетов для Windows необходимо использовать Chr(183). Для указания перевода строки, в месте нахождения данного символа используется стандартый код Chr(10).
Не то?
Да все То! Но, как страшно далеки эти CHR() от народа!
Posted: 08 Jan 2003 23:32 Post subject: Re: 2 IS:Платежки через Сервер печати для Windows
Павлова Наталья wrote:
Напишите, пожалуйста, подробнее.
Далеко копать было некогда и на точность не претендую:
В АРМе "Расчетные и валютные счета" форма ввода платежных поручений содержит поле "Основание платежа" из 3-х строк общей допустимой длиной 150 символов (само поле в таблице - 255).
1) При обычном выводе на печать по существующей форме, происходит деление текста в соответствии с длиной строк в форме ввода + дополнительный пробел. Вроде бы все так и должно быть: как написали - так и напечатали. Согласен.
(Таким образом, получаем строки по 45 символов и последняя на 50 учитывая принудительные пробелы).
2) Если же рассмотреть печать через Сервер печати под Windows, то увидим следующее: здесь IMHO за длину "Основание платежа" берутся все 255 символов. Соответственно, Сервер печати оперирует четырьмя частями этого поля. В итоге деление строк выходит, мало того, что не такое как заполнялось, но и с принудительными пробелами между "набранными в БЕСТ" строками.
Joined: 08 Jan 2002 Posts: 814 Location: Наталья Павлова
Posted: 09 Jan 2003 18:28 Post subject: Re: 2 IS:Платежки через Сервер печати для Windows
Rad777 wrote:
Павлова Наталья wrote:
Напишите, пожалуйста, подробнее.
Далеко копать было некогда и на точность не претендую:
В АРМе "Расчетные и валютные счета" форма ввода платежных поручений содержит поле "Основание платежа" из 3-х строк общей допустимой длиной 150 символов (само поле в таблице - 255).
1) При обычном выводе на печать по существующей форме, происходит деление текста в соответствии с длиной строк в форме ввода + дополнительный пробел. Вроде бы все так и должно быть: как написали - так и напечатали. Согласен.
(Таким образом, получаем строки по 45 символов и последняя на 50 учитывая принудительные пробелы).
2) Если же рассмотреть печать через Сервер печати под Windows, то увидим следующее: здесь IMHO за длину "Основание платежа" берутся все 255 символов. Соответственно, Сервер печати оперирует четырьмя частями этого поля. В итоге деление строк выходит, мало того, что не такое как заполнялось, но и с принудительными пробелами между "набранными в БЕСТ" строками.
Вроде бы все расписал как есть.
При обычном выводе на печать размещение текста зависит от расположения решеток в назначении платежа в шаблоне документа.
Для печати через Сервер печати под Windows шаблоны платежных документов настроены в соотвествии с Положением ЦБР.
Чтобы строки назначения платежа выводились на печать как в форме ввода можно при создании платежного поручения, заполняя поле <Назначение платежа> установить символ перевода строки. Символ перевода строки устанавливается с помощью клавиши Alt с одновременным набором на правой клавиатуре цифрового набора 249. При этом в текстовой строке появится символ, определяющий перевод на новую строку. При печати документа данный символ программно подавляется.
Если останутся вопросы напишите, пожалуйста, на пример
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum