Отдел технической поддержки
+7(929) 90-77-500
help@profsegment.ru


дата обновления 08.06.2023
 

 

Вводная часть

 

Установка программы (версии: ОРБИТА, СПУТНИК, МЕНЕДЖЕР)

 

Новшества ПрофСтрой 4

 

Операции

 

Настройки

 

Ценообразование

 

Каталоги

 

Конструктив

 

Оформление заказов

 

Групповые оптимизации раскроя

 

Генератор отчетов

 

Просмотр отчетов

 

Вид мрамор

 

Перевод

 

Помощь

 

Корпоративная версия с кабинетами дилеров

 

Первичная настройка

 

Модуль AutoCAD

 

Модуль МС

 

Склад

 

Модуль мультиформатной поддержки (1С)

 

Модуль - базовый CRM

 

Модуль склада готовой продукции

 

Архив новостной рассылки

"Команды генератора"

Команды генератора отчетов условно разделены на несколько типов.

Установочные

Установочные команды инициализируют предопределенные параметры форматов.

~Точность:А:B:",":"x"~ - установка обязательной (А), дополнительной (В) точностей вывода вещественных значений и параметров, а также символ-разделитель целой и дробной части, пробел-разделитель разрядов. Обязательная точность указывает количество всегда выводимых знаков после запятой. Дополнительная точность указывает максимальное число выводимых знаков после запятой при условии не равности этого разряда нулю.

<!-- определяем вещественный параметр 'количество' со значением 1327,45 -->
~AsFloat:количество=1327,450~

<!-- установка точности и вывод параметра -->
~Точность:2:3:",":"x"~ ~AsFloat:количество~ 1327,45
~Точность:3:3:",":"x"~ ~AsFloat:количество~ 1327,450
~Точность:3:3:".":"x"~ ~AsFloat:количество~ 1327.450
~Точность:3:3:".":"_"~ ~AsFloat:количество~ 1 327.450

~Формат_даты:формат~ - установка формата вывода полей и параметров типа дата.

<!-- определяем параметр типа date 'дата' и присваиваем значение 27.01.05 -->
~AsDate:Дата=27.01.09~

<!-- установка стандартного формата и вывод параметра -->
~Формат_даты:dd.mm.yyyy~ ~AsDate:Дата~ 27.01.2013

<!-- установка расширенного формата и вывод параметра -->
~Формат_даты:dd.mmm.yyyy~ ~AsDate:Дата~ 27 янв 2013

<!-- установка подробного формата и вывод параметра -->
~Формат_даты:dd.mmmm.yy~ ~AsDate:Дата~ 27 Январь 13

<!-- установка формата текущей даты и вывод параметра -->
~Текущая_Дата:AsDate:Дата~
~Формат_даты:dd mm.yyyy.время~ ~AsDate:Дата~ 27.01.2013

<!-- установка формата текущего момента и вывод параметра -->
~Текущая_Дата_Время:AsDate:ДатаВремя~
~Формат_даты:dd mm.yyyy время hh:nn~ ~AsDate:ДатаВремя~ 27.01.2013 время 17:45

Команды предопределенных циклов

В базовой версии генератор отчетов поддерживает команды циклов по одному проекту: по проекту, по изделиям, спецификации и работам. При наличии модуля склада добавлены команды циклов по состоянию складов и накладным. В модуле статистики добавляются команды программируемых циклов SQL. К предопределенным циклам относятся:

  • Проект
  • Изделия (в проекте)
  • Роллеты (в проекте)
  • Комплекты (в проекте)
  • Спецификация (проекта/изделия)
  • Составы (привязан к циклу спецификации)
  • Работы (в проекте)
  • Оптимизация.Профили (по проекту)
  • Оптимизация.Раскрой (по проекту)
  • Склад (модуль склада)
  • Накладные (модуль склада)
  • Спецификация_накладных (модуль склада)

Форматы команд циклов

~Цикл: УПОРЯДОЧИТЬ:Поле1…~ <!-- указать поля упорядочивания -->
~Цикл:НАЧАЛО~ <!-- начало цикла -->
~Цикл:ПодстПоле~ <!-- вывод подставляемого поля -->
~Цикл:ПодстПоле:Тип:параметр~ <!-- ввод параметра с присвоением значения подставляемого поля -->
~Цикл:Поле:Тип~ <!-- вывод поля по типу -->
~Цикл:Поле:Тип:параметр~ <!-- ввод параметра с присвоением значения поля -->
~Цикл:ВЫХОД~ <!-- выход из цикла -->
~Цикл:КОНЕЦ~ <!-- конец цикла -->

Генератор отчетов не различает строчные и заглавные буквы в описании команд. В отличие от 2-й версии программы в одной строке может быть несколько команд, но недопустим перенос на следующую строку внутри одной команды. В связи с возможными авто переносами строк браузером html в описании команд недопустимы пробелы.

Типы полей

Если осуществляется вывод подставляемого поля, то генератор автоматически определит поле на основе анализа структуры таблицы базы данных. При прямом выводе полей необходимо указать тип. В генераторе отчетов определено 4 типа :

AsInteger - целое значение (возможен сокращенный вариант AsInt)
AsFloat - вещественное значение
AsDate - значение типа дата
AsString - строковое значение
AsText - строка без кавычек

ВНИМАНИЕ !

Необходимо помнить, что вызов подставляемого поля возможен только внутри цикла, т.е. между командами начала конца. В противном случае в выходном отчете ничего не появится !

Дополнительные сведения

Цикл Спецификация имеет дополнительные возможности указания группы печати, фильтра по типам комплектующим, принадлежности к комплектации, выборки непрямоугольных заполнений и т.п. Кроме этого для этого цикла имеется режим запроса 'Погонаж' - вывод суммарного количества по проекту на каждый комплектующий. В режиме 'Погонаж' для вывода доступны поля : Артикул, Название, Ед.Изм., Текстура, Общий_погонаж.


Установка режимов и фильтров происходит непосредственно перед командой ~Спецификация.НАЧАЛО~. Перед следующем использованием цикла фильтр можно отменить : ~Спецификация:Фильтр:Очистить~. Применение и набор дополнительных фильтров смотрите в мастере кода.

~AsTextCurrency:Параметр~ - вывод значения параметра прописью валюты. По умолчанию выводит прописью для основной валюты. Если отчет вызывается из цикла проекта, то валюта с ее точностью и обозначением берется по проекту (валюта указывается для каждого проекта).

~AsTextCurrency:Параметр:ПараметрВалюты~ - расширенный синтаксис с указанием параметра-индекса валюты.

~SQLn:Поле:AsImage:width=100:height=100~ - включение в отчет чертежа; текстовое поле содержит ссылку на этот файл (имя файла), например прикрепленное изображение к артикулу, варианту соединения или состава.

~ИНДЕКСn:УСТАНОВИТЬ:индекс~ установка в начало отчета индекса вызываемого цикла. Удобно для тестирования отчета, если нужно просмотреть вид выходного отчета с данными для проекта, изделия, накладной или другого окна программы без закрытия окна редактирования исходного текста отчета.

Примеры

<!-- начало цикла по проектам (для одного проекта цикл проходит один раз ) -->
~Проект:НАЧАЛО~
<!-- выводим поля проекта -->
~Проект:Менеджер~ Шабровкин Д.О.
~Проект:Контрагент.Название_контрагента~ Колобковкин В.В.
~Проект:kName:AsString~ Колобковкин В.В.
~Проект:kName:AsString:Заказчик~
~AsString:Заказчик~ Колобковкин В.В.
~Проект:Себестоимость_проекта~ 1500,00
~Проект:КОНЕЦ~ <!-- конец цикла -->

<!-- Установить вызов отчета для проекта № 4 -->
~ИНДЕКС1:УСТАНОВИТЬ:4~

<!-- Установить вызов отчета для изделия № 2 в проекте № 5 -->
~ИНДЕКС1:УСТАНОВИТЬ:5~
~ИНДЕКС2:УСТАНОВИТЬ:2~

<!-- Пример выбора подставляемого кода по условию. Вывод целых хлыстов по результатам раскроя с отображением статуса остатков - неликвид или деловой -->
<TABLE style="border-collapse: collapse" border=1 bordercolor=#0>
<TR>
<TD align=center>Артикул</TD>
<TD align=center>Название</TD>
<TD align=center>Текстура</TD>
<TD align=center>Остаток, мм</TD>
<TD align=center>Статус</TD>
</TR>

~Оптимизация.Профили:НАЧАЛО~
~Оптимизация.Профили:Длина_остатка,_мм:AsFloat:остаток~
<TR>
<TD>~Оптимизация.Профили:Артикул~</TD>
<TD>~Оптимизация.Профили:Название~</TD>
<TD>~Оптимизация.Профили:Текстура~</TD>
<TD align=center>~Оптимизация.Профили:Длина_остатка,_мм~</TD>
<TD align=center>
~IF:остаток<1500:THEN~ неликвид ~ELSE~ деловой ~ENDIF~
</TD>
</TR>
~Оптимизация.Профили:КОНЕЦ~
</TABLE>

Выходной отчет будет иметь примерный вид:

АртикулНазваниеТекстураОстаток, ммСтатус
132 Импост Белый3400 деловой
707 Рама стандарт Белый700 неликвид



<!-- использование предопределенного цикла `Составы` для вывода названия составов (и других полей) к каждому элементу изделия
цикл `Составы` должен быть определен внутри цикла `Спецификация`, так как получает три индекса: проект, изделие, элемент
в расчетных данных должен быть установлен флаг: "Спецификация профилей и пакетов для сборки" ! -->


<TABLE style="border-collapse: collapse" border=1 bordercolor=#0>
<TR>
<TD bgColor=#CCCCCC align=center>№</TD>
<TD bgColor=#CCCCCC align=center>Артикул</TD>
<TD bgColor=#CCCCCC align=center>Название</TD>
<TD bgColor=#CCCCCC align=center>Составы</TD>
</TR>

~AsInt:Номер=0~

~Спецификация:Фильтр:Основной_элемент~
~Спецификация:Начало~

~AsInt:Номер=Номер+1~
<TR>
<TD valign=top align=center>~AsInt:Номер~</TD>
<TD valign=top nowrap>~Спецификация:Артикул~</TD>
<TD valign=top nowrap>~Спецификация:Название~</TD>
<TD valign=top nowrap>
~Составы:Начало~
~Составы:Наименование_состава~

~Составы:Конец~
</TD>
</TR>

~Спецификация:Конец~
</TABLE>

Выходной отчет будет иметь примерный вид:

АртикулНазваниеСоставы
1 554001 Коробка 64 мм. Армирование коробки
Водоотводные колпачки
Уплотнитель 864952
2 554001 Коробка 64 мм. Армирование коробки
Уплотнитель 864952
3 554001 Коробка 64 мм. Армирование коробки
Уплотнитель 864952
4 554001 Коробка 64 мм. Армирование коробки
Уплотнитель 864952
5 4x10x4x10x4 Стеклопакет 32 мм 4 x 10 x 4 x 10 x 4
Фальц. Вкладыши и подкладки


Фильтры

Для предопределенного цикла 'Спецификация' имеется возможность определить команду установки фильтра, которая должна находиться перед командой
~Спецификация:Начало~.

Допустимо применение логических операций 'И' и 'ИЛИ' в определении фильтров, формат команд установки фильтров:
~Спецификация:Фильтр:Текст_фильтра~
~Спецификация:Фильтр:Текст1_фильтра:И: Текст2_фильтра~
~Спецификация:Фильтр:Текст1_фильтра:ИЛИ: Текст2_фильтра~
~Спецификация:Фильтр:Группа_печати:Название_группы~

Команда установки фильтра может располагаться на нескольких строках, ее действие распространяется до конца отчета, поэтому чтобы отменить фильтр необходимо использовать команду:
~Спецификация:Фильтр:Очистить~, или установить новый фильтр.

Примеры

~Спецификация:Фильтр:Очистить~
<!-- установка фильтра - выводить в отчет только аксессуары, уплотнения и инструмент -->
~Спецификация:Фильтр:Аксессуары:ИЛИ:Уплотнения:ИЛИ:Инструмент~

Аналогии

В генераторе отчетов любой предопределенный цикл можно определить с помощью программируемых циклов SQL, например код:
~Спецификация:Фильтр:Аксессуары:ИЛИ:Уплотнения~
~Спецификация:Начало~

аналогичен следующему коду с программируемыми циклами SQL:
~SQL1:Установить:SELECT * FROM SpecPAU WHERE~
~SQL1:Добавить:(pUnic=:Индекс1.AsInteger)and((aTypM=2)or(aTypM=3))~
~SQL1:Добавить:ORDER BY aNumb~
~SQL1:Начало~


Следует точно использовать логические операции: 'И' (логическое умножение 'and') и 'ИЛИ' (логическое сложение 'or'). Ошибка применения фильтра приводит к тому, что ничего в отчет не попадет.
Например, следующий фильтр:
~Спецификация:Фильтр:Профили:И:Аксесcуары~ - нечего не выведет.

Группы печати

В фильтре можно указать или исключить необходимую группу печати:
~Спецификация:Фильтр:Группа_печати:Название_группы:ДА~
~Спецификация:Фильтр:Группа_печати:Название_группы:НЕТ~.

Группу печати можно указывать совместно со стандартными фильтрами по типам, например вывод аксессуаров по группе 'Сборка_пакетов':
~Спецификация:Фильтр:Аксессуары:И:Группа_печати:Сборка_пакетов:ДА~

Ошибки при указании фильтров

В отчетах часто требуется составить сложный фильтр с указанием нескольких условий по типам мат.ценностей и групп печатей. Неопытный пользователь просто составляет фильтр в мастере кода, методы которого по умолчанию добавляет все условия с префиксом 'ИЛИ', например:
~Спецификация:Фильтр:Аксессуары:
ИЛИ:Уплотнеиия:
ИЛИ:Заполнения:
ИЛИ:Группа_печати:Сборка_пакетов:ДА:
ИЛИ:Группа_печати:Фурнитура:ДА~

Этот фильтр является ошибочным, поскольку пять условий фильтра (1,2,3 по типам МЦ и 4,5 по группам печати) указаны без логического разграничения скобками, что приведет к выводу произвольных данных SQL процессором.

Проблему решает применение в описании фильтра скобок., с помощью которых необходимо разграничить применения SQL условий 'И' и 'ИЛИ'.

С учетом этого, правильный фильтр по данному примеру должен иметь следующий вид:
~Спецификация:Фильтр:
(:Аксессуары:ИЛИ:Уплотнеиия:ИЛИ:Заполнения:):
И:
(:Группа_печати:Сборка_пакетов:ДА:
ИЛИ:
Группа_печати:Фурнитура:ДА:)~


ПОЯСНЕНИЕ
Этот фильтр указывает, что нужно вывести материальные ценности только типа: аксессуары, уплотнения, заполнения, и которые определены в группе печати 'Сборка_пакетов' или 'Фурнитура'.

Команды управления отчетом

К командам управления отчетам относятся команды загрузки кода из других отчетов и файлов, сохранение выходного отчета во внешний файл, принудительного прерывание формирования отчета.

Загрузка в исходный код отчета текста другого отчета:
~Отчет:Загрузить_из_отчета:название_отчета~ - команда должна быть единственной в строке.

Загрузка в исходный текст отчета текста внешнего текстового файла:
~Отчет:Загрузить_из_файла:название_файла~ - команда должна быть единственной в строке.

Команды загрузки применяются для организации пакетной печати, а также для подстановки фирменных бланков.

Сохранить выходной сформированный отчет во внешний текстовый файл:
~Отчет:Сохранить_в_файл:название_файла~ - команда должна быть единственной в строке, обычно ставится в конце отчета.

Сохранить выходной сформированный отчет во внешний текстовый файл c выводом предварительного диалогового окна с подтверждением имени и пути файла или отмены сохранения:
~Отчет:Сохранить_в_файл_?:название_файла~ - команда должна быть единственной в строке, обычно ставится в конце отчета.

Сохранить файл выходного отчета вместе с присоединенными рисунками (в т.ч. эскизами изделий) в отдельном каталоге c выводом предварительного диалогового окна с подтверждением пути или отмены сохранения:

~Отчет:Сохранить_в_каталог_?:Каталог~ - служит для сохранения отчетов с присоединенными файлами изображений и диаграмм в отдельном каталоге. Решает проблему 'пропажи рисунков' при открытия отчета в приложениях офиса. Если каталога не существует, то он автоматически будет создан.

Команда фонового (предварительного) показа сформированного отчета:
~Отчет:Показать~ - применяется для пошагового предварительного просмотра при длительном формировании отчета.


Команда принудительного прерывания создания отчета и закрытия окна предварительного просмотра:
~Отчет:Закрыть~ отчет будет сформирован только до этой команды.

Команда запуска внешнего приложения или приложения, ассоциированного с расширением указанного файла:
~Отчет: Запустить_файл:название_файла~ - возможно указать дополнительные параметры-строки к вызываемому исполняемому файлу, например сформированный текстовый файл для станка с ЧПУ резки профиля.

Примеры

<!-- загрузить в исходный текст содержание отчета 'Итоговая накладная' -->
~Отчет:Загрузить_из_отчета:Итоговая накладная~

<!-- загрузить в исходный текст фирменный бланк, сохраненный в файле -->
~Отчет:Загрузить_из_файла:\\Server?c?\profsegment\ФирмБланк.html~

<!-- сохранить сформированный отчет в текстовом файле -->
~Отчет:Сохранить_в_файл:\\Server?c?\profsegment\Результат.html~

<!-- создать и сохранить отчет с присоединенными файлами рисунков и диаграмм в каталог, именованный номером заказа -->
~Отчет:Сохранить_в_каталог_?:C?\ProfSegment\:Заказ№.AsString~

<!-- запустить AutoCad и открыть в нем файл 'Фасад.dwg' -->
~Отчет:Запустить_файл:C?\AutoCad\Фасад.dwg~

<!-- запустить MicroSoft Excel и открыть в нем файл 'Расчеты.xls' -->
~Отчет:Запустить_файл:C?\Primer\Расчеты.xls~

<!-- запустить MicroSoft Word и открыть в нем файл 'Инструкция.doc' -->
~Отчет:Запустить_файл:C?\Primer\Инструкция.doc~

<!-- запустить файл, сохраненный предыдущей командой -->
~Отчет:Запустить_файл:Сохраненный~

<!-- запустить файл управления оборудованием с передачей команды резки '-r' и сформированного файла данных -->
~Отчет:Запустить_файл:C?\Equp\Optimize.exe -r C:\ Equp\Data.txt~

<!-- Команда принудительного прерывания создания отчета -->
~Отчет:Выход~ отчет будет сформирован только до этой команды.

<!-- Команда принудительного прерывания создания отчета с закрытием окна предварительного просмотра -->
~Отчет:Закрыть~ отчет будет сформирован только до этой команды.

Команды архирования файлов

В отчете можно использовать встроенный в программу ZIP-архиватор, для этого имеются следующий набор команд:

<!-- задание имения файла, который будет упакован -->
~Отчет:Файл_Имя:C?\AutoCad\Фасад.dwg~

<!-- задание имени создаваемого файла zip-архива -->
~Отчет:Файл_ZIP:C?\AutoCad\Фасад.zip~

<!-- команда архивирования указанного файла -->
~Отчет:Файл_Архивировать~

<!-- команда архивирования с предварительным запросом имени создаваемого файла zip-архива -->
~Отчет:Файл_Архивировать_?~

Дополнительно

При загрузке в отчет других отчетов и внешних файлов полезно будет применение команды принудительного разрыва страницы:
<br style="page-break-before: always"> .