ВНИМАНИЕ! 3 страница
Port LPT1 FF $0C UndOn $1B$2D$1 UndOff $1B$2D$0 CompOn $1B$4D CompOff $1B$50
{Пример приведен в файле LSTP.CF2}
Приведенные выше конфигурационные файлы применимы для матричных и струйных принтеров EPSON или принтеров других фирм, поддерживающих стандарт ESC / P фирмы EPSON. Для принтеров LaserJet, поддерживающих стандарт фирмы Hewlett Packard, конфигурационные файлы имеют следующий вид:
1. Для принтеров, уже имеющих русские шрифты:
Init $1B$45 Port LPT1 FF $0C UndOn $1B$26$64$44 UndOff $1B$26$64$40 CompOn $1B$26$6B$34$53 CompOff $1B$26$6B$30$53
{Пример приведен в файле LSTP.CF3}
2. Для принтеров, не имеющих русских шрифтов, предварительно необходимо загрузить желаемый шрифт, позволяющий размещать до 96 символов в строке, (в примере этот шрифт использован под номером 1):
Init $1B$45 Port LPT1 FF $0C UndOn $1B$26$64$44 UndOff $1B$26$64$40 CompOn $1B$28$31$58 CompOff $1B$28$31$58
{Пример приведен в файле LSTP.CF4}
При выводе результатов расчета в текстовый файл, конфигурационный файл будет выглядеть следующим образом:
Init $20 Port MyFile.txt FF $20 UndOn $20 UndOff $20 CompOn $20 CompOff $20
{Пример приведен в файле LSTP.CF5} 12. ГЕНЕРАТОР ВЫХОДНЫХ ДОКУМЕНТОВ В программе предусмотрена настройка документа под требуемый вид (текст в левом верхнем углу, утверждение документа в его начале или в конце) с помощью указания значений соответствующих параметров, однако этого бывает недостаточно и требуются более существенные переработки документов. С этой целью в программе для получения выходных документов используется генератор выходных документов, который формирует их на основании описаний, составленных на языке генератора. Исправляя описание документа, Вы можете получить документы требуемого Вам формата. 12.1 ОБЩИЕ ПОЛОЖЕНИЯ Для получения выходных документов программа использует следующие описания:
1. akt.for - акт осмотра. 2. smeta.for - смета. 3. utc.for - заключение об УТС. 4. zakl.for - заключение о стоимости.
Описание представляет собой последовательность строк, длина которых не может быть больше 250 символов, и каждая из которых является:
o строкой комментариев. Данная строка не анализируется и не выводится. Строка должна начинаться с двух символов "&&" и далее произвольный текст. o оператором языка генератора. В пункте 12.2 приводится список операторов и их назначение. Строка должна начинаться с двух символов "&_" за которыми следует название оператора и необходимые ему параметры. o строкой выходного документа, в которой может присутствовать произвольный текст и отмеченные места, в которых определяются имена требуемых параметров и формат их вывода. Генератор просматривает данные строки, подставляет в указанные места значения указанных параметров и выводит сформированную строку в качестве строки выходного документа.
Операторы языка подробно описаны в разделе 12.2 данного описания. Они позволяют:
1. Оформлять начало и конец каждой страницы. 2. Задавать количество знаков после запятой у дробных чисел. 3. Задавать число строк текста, который не может располагаться на разных страницах. 4. Проверяя указанные условия, пропускать и не выводить часть текста выходного документа. 5. Выводить список данных, например, содержимое сметы. 6. Оформлять заголовок списка, который будет появляться при переходе на следующую страницу. 7. Формировать собственные параметры.
При формировании выходных строк используются параметры, каждый из которых имеет индивидуальное имя и значение. Существуют стандартные параметры, содержащие информацию, которая была занесена или сформирована в процессе подготовки выходных документов, и рабочие (временные) параметры, которые формируются и используются генератором в процессе формирования выходного документа. Список стандартных параметров и их значения содержатся в разделе 12.4 данного описания. Имя является строкой символов длина которой не может превышать 15 символов. Первая буква имени определяет тип значения параметра, который может быть:
o Целое число. Первая буква имени "Ц". o Реальное число. Первая буква имени "Р". o Строка символов. Первая буква имени "С".
Вторым символом имени у стандартных параметров является "_". Желательно, для отличия стандартных параметров от рабочих, у последних вторым символом указанный символ не употреблять. Среди стандартных параметров встречаются параметры из списков (например название в строке сметы), у которых четвертый символ является "_". В именах рабочих параметров нельзя использовать четвертым данный символ, т.к. это может привести к ошибкам при формировании документа. Значение параметра может быть целым числом, реальным числом или строкой символов. В условном операторе и в операторе формирования рабочего параметра могут использоваться арифметические и логические выражения. В логических выражениях могут появляться логические результаты операции. Значением НЕТ является значение 0 целого числа. Значением ДА является любое значение целого числа, отличное от нуля. Место значения параметра в строке выходного документа указывается с помощью символов "[" и "]". Данные символы используются по умолчанию и могут быть переобозначены. В отведенном месте указывается имя параметра и дополнительная информация по формату отображения (см. раздел 12.3 данного описания). В процессе вывода выходного документа при обнаружении ошибки в описании, генератор выдает сообщение об ошибке и прекращает вывод. Хорошим примером использования генератора выходных документов является описание выходных документов, поставляемое вместе с программой: akt.for, smeta.for, utc.for, zakl.for. 12.2 ОПЕРАТОРЫ, ВЫРАЖЕНИЯ И ФУНКЦИИ При формировании выходного документа в его описании можно использовать операторы, описанные ниже. Описание синтаксиса содержит псевдо символы:
o "{" и "}", указывающие на то, что параметр оператора является необязательным и может не указываться. Используется его значение по умолчанию; o "/" указывает на альтернативный выбор, т.е. может использовать то, что стоит до символа или то, что стоит после него; o "*", "N", "M", "L" описывают некоторые величины, значения которых определяются в описаниях операторов.
После описания операторов будут определены ограничения на использование операторов в тексте описания. Оператор "СКОБКИ" используется для переобозначения символов, обозначающих начало и конец поля, в которое помещается значение параметра в выводимой строке. По умолчанию используются символы "[" и "]". Оператор записывается следующим образом:
&_СКОБКИ {'*'} {, {'*'}}
где вместо символа * может стоять любой символ. Оператор без параметров возращает значения по умолчанию. Оператор "СТРАНИЦА" используется для описания текста, помещаемого в начале или в конце каждой страницы формируемого документа. Оператор имеет следующий вид:
&_СТРАНИЦА {НАЧАЛО N {M {0/1}} / КОНЕЦ N {M} }
где:
o вариант оператора "НАЧАЛО" описывает текст помещаемый в начале страницы; o вариант оператора "КОНЕЦ" описывает текст помещаемый в конце страницы; o N - целое число, определяющее количество строк описания, находящихся после текущей строки и участвующих в формировании требуемого текста. o М - целое число, определяющее количество строк требуемого текста. По умолчанию значение параметра М равняется значению параметра N. Значения параметров могут различаться, если в описании требуемого текста используются операторы генератора. o Последний параметр варианта "НАЧАЛО" определяет, печатать или нет начало страницы на первом листе. 0 - не печатать (значение по умолчанию), 1 - печатать. Его значение проверяется только в случае, если не было выведено ни одной строки выходного документа.
Оператор "ТАБЛИЦА" используется для описания заголовка и содержимого табличных данных. Описываемый заголовок появляется в начале страницы, если содержимое таблицы не умещается на одной странице и происходит переход на следующую. Содержимое табличных данных содержит описание строки таблицы. Табличные данные описываются в разделе 12.4 данного описания и относятся к четырем объектам:
1. данные для акта осмотра; 2. данные для сметы; 3. данные для заключения об УТС; 4. список ранее замененных узлов транспортного средства.
В описании строки табличных данных не могут присутствовать параметры различных объектов. Оператор имеет следующий вид:
&_ТАБЛИЦА {ШАПКА N / СТРОКА N {M} }
где:
o вариант оператора "ШАПКА" описывает текст помещаемый в начале страницы, если содержимое таблицы не уместилось на предыдущей странице; o вариант оператора "СТРОКА" описывает содержимое каждой строки таблицы (она может состоять и из нескольких строк); o N - целое число, определяющее количество строк описания, находящихся после текущей строки и участвующих в формировании требуемого текста. o М - целое число, определяющее количество строк требуемого текста. По умолчанию значение параметра М равняется единице. Значения параметров могут различаться, если в описании требуемого текста используются операторы генератора.
Операторы "ЕСЛИ", "ИНАЧЕ" и "КОНЕЦ" являются частями условного оператора, позволяющего в зависимости от выполнения каких - либо условий выводить выходной документ в том или ином виде. Возможны два варианта записи условного оператора. 1 вариант записи имеет вид:
&_ЕСЛИ ЛогВыраж. ... ... &_КОНЕЦ
где ЛогВыраж. определяет логическое выражение, результат вычисления которого определяет, обрабатывать или нет текст, обозначенный многоточием до оператора "КОНЕЦ". Если результат вычисления является истиной (целое число, не равное нулю), отмеченный текст обрабатывается оператором. Если нет (результат вычисления выражения есть 0), текст пропускается. 2 вариант записи имеет вид:
&_ЕСЛИ ЛогВыраж. ... ... &_ИНАЧЕ ... ... &_КОНЕЦ
где ЛогВыраж. определяет логическое выражение. Если результат вычисления является истиной (целое число, не равное нулю), обрабатывается текст, находящийся между операторами "ЕСЛИ" и "ИНАЧЕ". В противном случае обрабатывается текст между операторами "ИНАЧЕ" и "КОНЕЦ". Оператор "СЛИТНО" определяет количество последующих строк документа, который должен находиться на одной странице. Если текст не умещается на текущей странице, остаток страницы остается чистым и происходит переход на новую страницу. Оператор записывается следующим образом:
&_СЛИТНО N
где N определяет количество последующих за оператором строк, которые не могут быть разорваны переходом на следующую страницу. Оператор "ТОЧНОСТЬ" определяет количество знаков после запятой при отображении реальных чисел. По умолчанию количество знаков равно двум. Определяемое значение сохраняется до следующего оператора "ТОЧНОСТЬ". Значение точности не должно быть больше пяти. Оператор записывается следующим образом:
&_ТОЧНОСТЬ N
где N определяет количество знаков после запятой. Оператор формирования параметра позволяет сформировать временный (рабочий) параметр, значение которого может использоваться в выражениях операторов генератора или выводиться в выходной документ наравне со значениями стандартных параметров. Если параметр был определен ранее, его старое значение заменяется на новое. Оператор имеет вид:
&_ИМЯ = ВЫРАЖ.
где:
o ИМЯ - определяет имя формируемого параметра. Имя параметра должно удовлетворять всем требованиям, описанным в разделе 12.1 данного описания. o ВЫРАЖ. - определяет выражение, результатом вычисления которого является значение определяемого параметра.
Существуют ограничения в использовании операторов генератора в описании выходного документа. Операторы "СТРАНИЦА" и "ТАБЛИЦА" не могут быть использованы среди строк описания начала и конца страниц, а также заголовка таблицы и содержимого строки таблицы. В условном операторе "ЕСЛИ" и в операторе формирования временного параметра используются арифметические, логические и строковые выражения. В выражениях используются значения стандартных параметров, ранее определенных временных параметров, значения функций и операции, список которых приводится ниже. Допускается использование скобок для определения последовательности вычисления. Значения параметров определяются с помощью их имен. В процессе вычисления выражения по необходимости производятся преобразования типов. В приводимом списке операций указывается символ, определяющий операцию, количество аргументов, типы аргументов, тип результата, приоритет операции и ее название. Типы обозначаются: Р - реальное число; Ц - целое число; С - строка символов; Л - логический тип, у которого "истина" есть значение целого числа, не равное нулю, а "ложь" - значение целого числа ноль.
В выражениях используются и функции. Название функций начинается с двух символов "Ф_", все они имеют один аргумент, записываются в следующем виде:
Ф_ИМЯ(ВЫРАЖЕНИЕ)
где:
o ИМЯ определяет имя функции; o ВЫРАЖЕНИЕ является выражением, определяющим значение аргумента функции.
Ниже приводится их описание функций. Функция "Ф_ПУСТО" в качестве аргумента содержит строку символов. Результатом выполнения функции будет 1, если строка состоит только из одних пробелов, и 0 в противном случае. Функция "Ф_ДЛИНА" в качестве аргумента содержит строку символов. Результатом выполнения функции является длина строки, являющейся аргументом функции. Функция "Ф_ДАТА" в качестве аргумента содержит параметр, описывающий дату. Значением стандартных параметров, описывающих дату, является строка символов, содержащая конкретную дату в формате "ДД.ММ ГГГГ", где: ДД - номер дня месяца, ММ - номер месяца, ГГГГ - год. Результатом выполнения функции будет строка, описывающая задаваемую дату в следующем формате:
"ДД" МЕСЯЦ ГГГГ г. где: o ДД - номер месяца; o МЕСЯЦ - название месяца; o ГГГГ - год.
Функция "Ф_ЗАПРОС" в качестве аргумента содержит строку символов, которая появится в сообщении для пользователя с требованием дать ответ "ДА" или "НЕТ". Сообщение можно отобразить в виде двух строк, для этого в строку можно поместить символ "\", являющийся признаком переноса строки. Результатом выполнения функции является 0, если был выбран ответ "НЕТ", и 1, если был выбран ответ "ДА". Функция "Ф_ПРОПИСЬ" в качестве аргумента содержит целое число, описывающее некоторую суммы. Результатом выполнения функции является строка, описывающая данную суммы прописью. Следует помнить, что длина получаемой строки может быть достаточно большой, и для ее отображения в выходном документе следует использовать многострочные поля, описанные в следующем пункте. 12.3 ПАРАМЕТРЫ И ИХ ОТОБРАЖЕНИЕ Если строка не является строкой комментария или оператора, она обрабатывается генератором выходных документов и выводится на печать. Обработка заключается в следующем:
1. производится сканирование строки на предмет подстановки значений указанных параметров; 2. после нахождения области значения параметра (по умолчанию область значения параметра начинается с символа "[" и оканчивается символом "]", эти символы можно поменять на другие с помощью оператора "СКОБКИ"), по имени параметра производится поиск его значения; 3. если параметр найден, его значение размещается в отведенной области в соответствии с указанным форматом и выводится в выходную строку.
Описание подстановки параметра в строку имеет следующий вид:
...[{М}ИМЯ{:{_}{Ч}{Б}{К}{Л/П/Ц}{NN}} ]...
где:
o многоточием обозначен произвольный текст, находящийся до и после области значения параметра; o М обозначает цифру от 1 до 9, обозначающую номер многострочного поля. Многострочные поля будут описаны после разбора приведенной синтаксической конструкции; o ИМЯ - имя параметра, который до момента подстановки должен быть определен; o двоеточие отделяет имя параметра от задания формата вывода его значения; o необязательные режимы вывода:
× символ "_" обозначает подчеркивание значения выводимого параметра; × символ "Ч" указывает, что если значение параметра равно нулю, ноль будет стоять в выходном документе. Если данный символ не указан и значение параметра является нулем, в качестве результата будет выведено поле, заполненное пробелами; × символ "Б" указывает, что если значение параметра является целым числом, оно будет выведено в формате целого числа без дробной части. По умолчанию, если выводится реальное число, оно отображается с дробной частью, количество цифр которой определяется оператором "ТОЧНОСТЬ"; × символ "К" указывает, что заканчивается многострочное поле. Если длина оставшейся части параметра не умещается в поле, будет выдана ошибка. Если в дальнейшем встретится поле с тем же номером "М", вывод параметра будет производиться сначала. Данный режим позволяет выводить многострочные поля в таблицах. × один из альтернативных символов "Л", "П" или "Ц" определяет, в какой части отведенного поля будет размещаться значение параметра - слева, справа или в центре со ответственно; × NN обозначает целое число, определяющее количество символов, отводимых под параметр. Значение 0 обозначает, что количество отведенных символов будет равняться длине значения параметра. При отсутствии длины, под параметр будет отведено поле, длина которого определяется положением в строке символов ограничителей поля значения.
Следует помнить, что если значение параметра будет длиннее отведенного для него поля, возникнет окно с сообщением об ошибке и вывод выходного документа прекратится. Длина значения параметра может достигать максимум двухсот пятидесяти символов, например результат выполнения функции "Ф_ПРОПИСЬ", дающей в качестве результата значение некоторой суммы, написанной прописью. Для вывода всего значения параметра в выходной документ используются многострочные поля. После левой ограничительной скобки области вывода значения перед именем параметра можно указать цифру, обозначающую номер многострочного поля. В этом случае генератор работает по следующему алгоритму:
o Происходит проверка, упоминалось или нет раннее поле с подобным номером; o Если оно не упоминалось, в указанное поле выводится максимально возможная длина значения параметра, при этом анализируется наличие пробелов и по возможности выводимая часть строки оканчивается пробелом. Другими словами если в качестве значения параметра стоит текст, в поле разрыва слов при переходе к следующей строке происходить не будет; o После вывода части строки сохраняется имя параметра и смещение, по которому прекратился его вывод; o Если поле с указанным номером уже упоминалось, проверяется совпадение имен (если они не совпадают, выводится сообщение об ошибке), и в поле выводится оставшаяся часть параметра.
Многострочное поле может содержать произвольное число полей. Следует помнить, что после вывода части значения параметра не следует ему присваивать новое значение, так как это приведет к непредсказуемым результатам. Сообщений о том, что после вывода документа часть значения параметра не выведена, не производится. 12.4 СПИСОК СТАНДАРТНЫХ ПАРАМЕТРОВ Ниже приводится список стандартных параметров, которые можно использовать в описаниях выходных документов. Они разбиты на смысловые группы, но каждый из перечисленных параметров может использоваться в произвольном документе. Для каждого параметра указывается его имя и назначение. Параметры, помеченные символом (*) могут быть использованы в качестве параметров входного файла. Подробнее о входном файле см. в разделе 13 данного документа.
ПАРАМЕТРЫ СВЕДЕНИЙ О ВЛАДЕЛЬЦЕ И ТРАНСПОРТНОМ СРЕДСТВЕ.
С_ФАМВЛ - (*) Фамилия, имя, отчество или название организации - владельца транспортного средства. С_АДРЕС - (*) Адрес местожительства или юридический адрес владельца транспортного средства. С_ВИДТР - (*) Наименование транспортного средства. С_МОДЕЛЬ - (*) Модель транспортного средства. С_VINКОД - (*) VIN код транспортного средства. С_ДАТВЫП - (*) Дата выпуска транспортного средства. Р_СРОКСЛ - Срок службы транспортного средства. Р_ПРОБЕГ - (*) Пробег расчетный или по спидометру. Р_ПРОЦРЧ - Расчетный процент износа транспортного средства. С_НОМЗН - (*) Государственный номерной знак транспортного средства. С_ТЕХПАС - (*) Номер технического паспорта транспортного средства. С_НОМДВ - (*) Номер двигателя транспортного средства. С_НОМШАС - (*) Номер кузова транспортного средства. С_ЦВЕТ - (*) Цвет кузова транспортного средства. С_СООТВ - (*) Слово - "соответствует" документам, указываемое в тексте выходного документа. Р_РОЗНИЧ - (*) Розничная цена транспортного средства. Р_СТРАХС - (*) Страховая сумма, если документы составляются страховой компанией. Р_СТОФОР - Стоимость основных работ по устранению до аварийных воздействий. Р_СТОФДТ - стоимость деталей, требующих восстановления в связи с до аварийными воздействиями. Р_СТОФМТ - стоимость материалов, требующих восстановления в связи с до аварийными воздействиями. Р_СТОФУТ - УТС в результате восстановления до аварийных воздействий. Р_СТОИПИ - стоимость транспортного средства после учета износа. Р_СТОИЗД - изменение стоимости транспортного средства, связанное с заменой деталей в процессе эксплуатации. Р_СТОИРМ - изменение стоимости транспортного средства, связанное с проведением ремонтов в процессе эксплуатации. Р_СТОИМ - Действительная стоимость транспортного средства, с учетом износа, замен деталей и ремонтов, производимых во время эксплуатации. Р_СТОИМ= = Р_СТОИПИ+Р_СТОИЗД-Р_СТОИРМ.
ПАРАМЕТРЫ СВЯЗАННЫЕ С АРХИВАЦИЕЙ ДАННЫХ.
Ц_ИЗАРХ - Признак восстановления сметы из архива. Если смета не из архива, значение равно 0, иначе 1. С_ДАТАРХ - Дата составления архива. С_АРХИВ - (*) Название файла архива. С_ДИРАРХ - (*) Директория, в которой хранится архив. С_БАЗМОД - (*) Базовая модель, по которой загружаются справочные данные. Значение данного параметра может расходиться со значением параметра С_МОДЕЛЬ в случае, если справочные данные одной модели используются для формирования данных по другой модели. Р_СУМАРХ - Архивированная стоимость ремонта. ПАРАМЕТРЫ ОФОРМЛЕНИЯ ВЫХОДНЫХ ДОКУМЕНТОВ.
Ц_НОМСТР - Номер текущей страницы выводимого документа. С_ПРЕЙДТ - Код прейскуранта цен на детали. С_ПРЕЙТХ - Код прейскуранта по техническому обслуживанию. С_РД - Код РД по техническому обслуживанию. С_ШАПКА1 - (*) 1 строка текста в левом верхнем углу, который может содержать, например, регистрационный номер организации, составляющей документы. С_ШАПКА2 - (*) 2 строка текста в левом верхнем углу. С_ШАПКА3 - (*) 3 строка текста в левом верхнем углу. С_ДОЛУТВ - (*) Должность утверждающего в шапке "УТВЕРЖДАЮ", находящейся в начале документа. С_РАБУТВ - (*) Название организации, в которой работает утверждающее документ лицо. С_ФАМУТВ - (*) Фамилия Имя Отчество утверждающего документ. С_ДОЛИСП - (*) Должность инженера-эксперта, составляющего документ. С_РАБИСП - (*) Название организации, в которой работает составитель документа. С_ФАМИСП - (*) Фамилия Имя Отчество инженера-эксперта, составляющего документ. С_ДОЛУТН - (*) Должность утверждающего в шапке "УТВЕРЖДАЮ", находящейся в начале документа. С_РАБУТН - (*) Название организации, в которой работает утверждающее документ лицо. С_ФАМУТН - (*) Фамилия Имя Отчество утверждающего документ. С_ТЕКДАТ - Текущая дата работы программы. ПАРАМЕТРЫ, ОТНОСЯЩИЕСЯ К АКТУ ОСМОТРА.
С_НОМАКТ - (*) Номер акта осмотра. С_ДАТАКТ - (*) Дата составления акта. С_ПОВОД - (*) Повод для составления акта. Например, справка ГАИ.
В документе используется список неисправностей, обнаруженных при осмотре транспортного средства. Список может быть выведен с помощью оператора "ТАБЛИЦА СТРОКА". Ниже приводятся названия полей, относящихся к каждой записи списка. Ц_А_НОМ - Порядковый номер пункта в акте осмотра, описывающего повреждение транспортного средства. С_А_НАЗВ - Текст описания повреждения, соответствующий пункту Ц_А_НОМ. С_А_РАСП - Расположение (левый / правый) повреждения, соответствующего пункту Ц_А_НОМ.
|