|
Отдел технической поддержки дата обновления 08.06.2023 |
|
"Приложение к генератору отчетов"Версия MS Internet ExplorerДля работы генератора отчетов достаточна версия 7.0.
Версия MS OfficeВ ходе работы с программой часто возникает необходимость открыть отчет в приложениях офиса. Форматы html и xml поддерживаются офисом начиная с верcий 2000/XP. Версии офиса ниже 2000/XP поддерживают html в ограниченном объеме - только основные команды разметки документа. Поэтому справочная информация приводится для MS Office версии не ниже 2003. К сведению В настройках интерфейса можно указать метод вызова приложений офиса в зависимости от установленной версии MicroSoft Office или Open Office для открытия сформированных отчетов, а также дополнительные опции:
Математические функцииГенератор отчетов позволяет проводить арифметические вычисления целых и вещественных параметров, а также полей программируемых циклов:~AsInteger:Количество=Количество+1~ ~AsFloat:ВеличинаНДС=0,18*Стоимость/1,18~ ~AsInteger:Количество=Количество+SQLnField~ В арифметических выражениях доступны следующие функции:
Математические функции могут быть использованы и в выражениях для команд условных ветвлений, например: ~IF:Счетчик-3*TRUNC(Счетчик/3)=0:THEN~ … <br style="page-break-before: always"> <!-- разрыв страницы - по три эскиза изделия на странице --> … ~ENDIF~ Примеры<!-- округление до второго знака -->~AsFloat:СтоимостьПроекта=round(100*СтоимостьПроекта)/100~ ~AsFloat:СтоимостьПроекта=round(100*SQL1pPrcD)/100~ <!-- получаем стоимость одной работы в проекте делением на объем --> ~AsFloat:СтоимостьРаботы=SQL1wPric/SQL1wDime~ Строковые функцииВ генераторе отчетов имеется набор функций работы со строковыми параметрами.функция удаления пробелов в начале и в конце строки ~AsString:ПараметрСтрока=TRIM(ПараметрСтрока)~, функция сложения двух строковых параметров ~AsString:ПараметрСтрока=STRCAT(Параметр1,Параметр2)~, функция удаления последнего символа значения параметра-строки ~AsString:ПараметрСтрока=STRDELEND(ПараметрСтрока)~, функция получения позиции подстроки в строке ~AsInteger:Позиция=POSSUBSTR(ПараметрПодСтрока,ПараметрСтрока)~ функция копирования под'строки заданной длины, начиная с начала строки : CopyStr('ПрофСегментСофт',4) = 'Проф' ~AsString:ПараметрСтрока=COPYSTR(ПараметрСтрока,Параметр/Длина)~ функция копирования под'строки заданной длины, считая от конца строки : CopyEnd('ПрофСегментСофт',4) = 'Софт' ~AsString:ПараметрСтрока=COPYEND(ПараметрСтрока,Параметр/Длина)~ функция копирования под'строки заданной длины, начиная с указанной позиции : CopyPos('ПрофСегментСофт',5,7) = 'Сегмент' ~AsString:ПараметрСтрока=COPYPOS(ПараметрСтрока,Параметр/Позиция,Параметр/Длина)~ функция получения целового значения по строке ~AsInteger:ПараметрЧисло=STRTOINT(ПараметрСтрока)~ функция получения вещественного значения по строке ~AsFloat:ПараметрЧисло=STRTOFLOAT(ПараметрСтрока)~ функция вывода целого значения параметра в строку ~AsString:ПараметрСтрока=INTTOSTR(ПараметрЧисло)~, функция вывода вещественного значения параметра в строку: ~AsString:ПараметрСтрока=FLOATTOSTR(ПараметрЧисло)~, функция получения длины строки ~AsInteger:ДлинаСтроки=LENGTH(ПараметрСтрока)~, функция удаления пробелов в начале и в конце строки ~AsString:ПараметрСтрока=TRIM(ПараметрСтрока)~, функция преобразования строки в латиницу при формировании DOS-файлов : Translite('рама') = 'rama' ~AsString:ПараметрСтрока=TRANSLITE(ПараметрСтрока)~, функция преобразования строки в верхний регистр символов ~AsString:ПараметрСтрока=ANSIUPPER(ПараметрСтрока)~ функция преобразования строки в нижний регистр символов ~AsString:ПараметрСтрока=ANSILOWER(ПараметрСтрока)~ функция получения дня месяца по дате [1..31] ~AsInteger:ДеньМесяца=DAYOFMONTH(ПараметрДата)~, функция получения дня недели по дате [ПН..ВС] ~AsString:ДеньНедели=DAYOFWEEK(ПараметрДата)~, (автоматически создается одноименный параметр, содержащий номер дня недели ~AsInteger:ДеньНедели~ [1..7]) функция преобразования даты в строку по формату, указанному в каманде ~Формат_Даты:dd.mm.yyyy hh:nn~ ~AsString:Строка=DATETOSTR(ПараметрДата)~, функция получения года по дате ~AsInt:Год=YEAROFDATE(ПараметрДата)~, функция получения месяца по дате [1..12] ~AsInt:Месяц=MONTHOFDATE(ПараметрДата)~, функция получения даты первого дня месяца ~AsDate:Дата=FIRSTDATEMONTH(ПараметрДата)~, функция получения даты последненго дня месяца ~AsDate:Дата=LASTDATEMONTH(ПараметрДата)~, функция вычисления даты по году (Год.AsInt), месяцу (Месяц.AsInt) и дню (День.AsInt) ~AsDate:Дата=CALCULATEDATE(Год,Месяц,День)~ функция вычисления времени по часу (Час.AsInt), минуте (Минута.AsInt) и секунде (Секунда.AsInt) ~AsDate:Время=CALCULATETIME(Час,Минута,Секунда)~ функия получения под'строкипо указанной позиции из списка значений, указанных через точку с запятой: '123;45;67;' ~AsString:Строка=SUBSTR_CSV(ПараметрСтрока,Позиция)~ // при позиции=2 возвратит '45' (функция введена для обработки данных из MS Excel, сохраненных в csv-формате) функции получения значений из строки формата '1300 x 2100' или '1300 * 2100' ~AsFloat:Ширина=WIDTHGLASS(ПараметрСтрока)~ // возвратит 1300 ~AsFloat:Высота=HEIGHTGLASS(ПараметрСтрока)~ // возвратит 2100 (функция предназначена для обработки файлов-заказов стеклопакетов) функция проверки определения артикула в группу печати ~AsInt:Есть=GROUPPRINT(ПараметрСтрокаАртикул,ПараметрСтрокаГруппаПечати)~ (возвращает "1", если артикул входит в указанную группу печати и "0" в противном случае) функция получения индекса проверяемой строки в массиве строковых параметров ~AsInt:Индекс=INDEXARRAYSTR(ПареметрИмяМассива,ПараметрСтрока)~ (возвращает "0", если проверяемого значения ПараметрСтрока нет в массиве) Примеры<!-- добавить к строковому параметру 'Работы' другой строковый параметр для формирования текстового файла выгрузки данных по проекту для 1С предприятия 7-й версии -->~AsString:Работы=STRCAT(Работы,ПараметрСтрока)~ <!-- добавить к строковому параметру 'Работы' (список работ в строку) --> ~AsString:Работы=STRCAT(Работы,';')~ <!-- точку с запятой --> ~AsString:Работы=STRCAT(Работы,#9)~ <!-- символ табуляции --> ~AsString:Работы=STRCAT(Работы,#13)~ <!-- перевод строки txt --> ~AsString:Работы=STRCAT(Работы,'<br>')~ <!-- перевод строки html --> ~AsString:Работы=STRCAT(Работы,Монтаж)~ <!-- добавить параметр --> Продвинутые пользователи могут программировать вычисления в сценариях с использованием полного набора функций JavaScript и VBScript. Выполняемые команды SQLК выполняемым командам SQL относятся следующие команды:
Эти команды изменяют данные в базе данных и должны применяться только с ведома администратором программы. Примеры<!-- установить на оплаченные проекты зеленый индикатор, цвет = 255*256-->~SQL1:Установить:UPDATE ListPrj SET pFlag=65280~ ~SQL1:Добавить:WHERE (mSumm>0)~ ~SQL1:Выполнить~ После выполнения этой SQL команды оплаченные проекты будут помечаться зеленым кружком в столбце 'Статус проекта' в таблице списка проектов. Массивы данныхВ генераторе отчетов имеется возможность работать с многомерными мсcивами данных (числа, строки, даты):<-- элемент одномерного массива целого типа --> ~AsInt:КолВо[ИНД]=123~ ~AsInt:КолВо[ИНД]=КолВо[ИНД]+123~ <!-- элемент трехмерного массива вещественного типа --> ~АsFloat:Погонаж[5][ИНД][3]=123,78~ ~АsFloat:Погонаж[5][ИНД][3]=Погонаж[5][ИНД][3]+123,78~ <!-- элемент двухмерного массива строкового типа --> ~АsString:ВыводTxt[2][ИНД]='Текст'~ ~АsString:ВыводTxt[2][ИНД]=STRCAT(ВыводTxt[5][ИНД],'Текст')~ ~АsString:ВыводTxt[2][ИНД]=STRCAT(ВыводTxt[5][ИНД],Параметр)~ В качестве индексов может быть как число-индекс, так и целочисленное значение параметра. Массивы данных являются динамическими, соответственно не требуется предварительно их объявлять и указывать максимальную размерность - т.е. можно стразу ввести и использовать в расчетах и сравнениях, например: ~AsInt:КолВо[7]=781~ ~IF(КолВо[7]>0)THEN GOTO Метка~ Допускается применение в отчетах одноименных массивов с разделением числового и строкового типов данных, например ~AsFloat:Данные[1]~ и ~AsString:Данные[1]~ - это разные элементы и содержат разные данные. В составе поставки предопределенных отчетов есть 'Раскрой профиля сжатый (Excel)'. Этот отчет создан с применением массивов строк и чисел для подсчета одинаково распиленных хлыстов. В отличие от отчета 'Раскрой профиля сжатый (Script)', реализованного с помощью скриптов, которые только динамически изменяют страницу браузера Internet Explorer, 'Раскрой профиля сжатый (Excel)' открывается в приложениях офиса: MS Word, MS Excel. Фильтры материальных ценностейПри обращении к таблице спецификации изделий с использованием циклов SQLn возникает необходимость использовать фильтры по типам материальных ценностей:
Расшифровка поля единицы измеренияВ таблице материальных ценностей Artikls единица измерения каждого артикула хранится в поле aTypI типа SmallInt:
Форматированный вывод времениДля вывода времени в генераторе отчетов определены два типа времени (формата вывода секунд):~AsTime:Параметр.AsInteger~ <!-- вывод в формате '00:00:00' --> ~AsClock:Параметр.AsInteger~ <!-- вывод в формате '00 ч 00 м 00 с' --> Целочисленный параметр должен быть определен ранее и содержать количество секунд. Предопределенные параметрыПеред созданием любого отчета генератор отчетов автоматически создает несколько системных параметров, которые можно использовать для вывода, проверок и подстановок в выходном отчете:~AsString:Отчет.Название~ ~AsString:Отчет.Путь~ ~AsInteger:Отчет.Счетчик~ ~AsInteger:Отчет.Отдел№~ ~AsString:Система.Пользователь.Название~ ~AsInteger:Система.Пользователь.Группа~ ~AsFloat:Система.Пользователь.Ставка_%~ ~AsInteger:Система.Разрядность~ // 32 или 64 ~AsInteger:Система.Режим_СУБД~ // 32 или 64 - оставлен только для совместимости с отчетами из ПК "ПрофСтрой 3" ~AsString:Система.Каталог.Резервные_копии~ ~AsString:Система.Каталог.Присоединенные_Файлы~ ~AsString:Система.Каталог.Временные_Файлы~ ~AsString:Система.Каталог.Архивы_Проектов~ ~AsString:Система.Каталог.Экспорт_1С~ ~AsInteger:Модуль.МультиФормат~ ~AsInteger:Модуль.Статистика~ // оставлен для совместимости при переносе отчетов из ПК "ПрофСтрой 3", эквивалент "Модуль.МультиФормат" ~AsInteger:Модуль.Выгрузка.XML~ // только для совместимости при переносе отчетов из ПК "ПрофСтрой 3", в ПК "ПрофСтрой 4" входит в модуль мультиформатной поддержки ~AsInteger:Модуль.Склад~ ~AsInteger:Модуль.Откосы~ Параметры, содержащие каталоги системных данных, автоматически унифицированы добавлением в конце символа '\' при его отсутствии для исключения необходимости проверки путей: в корневых папках диска (D:\) или в подпапках (D:\ProfSegment\ARC). ПримерыСохранение сформированного отчета в каталог присоединенных файлой программы с номером проекта в имени файла:~Отчет:Сохранить_в_файл:Система.Каталог.Присоединенные_Файлы.AsText:Коммерческое_предложение_№:Проект№.AsInt:.doc~ Проверка наличия модуля аналитики и статистики перед формированием диалогового окна: ~IF(Модуль.Статистика=0)THEN GOTO НеСоздаватьДиалог~ ... ~Форма.Создать~ ... ~LABEL:НеСоздаватьДиалог~ |