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


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

 

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

 

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

 

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

 

Операции

 

Настройки

 

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

 

Каталоги

 

Конструктив

 

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

 

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

 

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

 

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

 

Вид мрамор

 

Перевод

 

Помощь

 

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

 

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

 

Модуль AutoCAD

 

Модуль МС

 

Склад

 

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

 

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

 

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

 

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

"Приложение к генератору отчетов"

Версия 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~

В арифметических выражениях доступны следующие функции:
  • sign - знак аргумента (-1,0,1)
  • odd - проверка нечетности (1/0)
  • trunс - целая часть аргумента
  • round - математическое округление до целого
  • ceil - округление вперед до целого
  • sin - синус (аргумент в радианах)
  • cos - косинус (аргумент в радианах)
  • tan - синус тангенс (аргумент в радианах)
  • sqr - квадрат аргумента
  • sqrt - квадратный корень

Математические функции могут быть использованы и в выражениях для команд условных ветвлений, например:
~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 относятся следующие команды:
  • UPDATE - изменение записей
  • INSERT - добавление новых записей
  • DELETE - удаление записей
  • ALTER - изменения структур таблиц, прав доступа и другие системные операции с базой данный

Эти команды изменяют данные в базе данных и должны применяться только с ведома администратором программы.

Примеры

<!-- установить на оплаченные проекты зеленый индикатор, цвет = 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 возникает необходимость использовать фильтры по типам материальных ценностей:

ТипПодтипФильтр
Профили Коробка
Створка
Импост
Штульп
Стойка
Ригель
Армирование
Штапик
Фурнитура
Наличник водоотбойный
Дополнительный профиль
Раскладка
Подоконник
Отлив
Откос
Поперечина
Монтажный профиль
Деревянный брус
Эркер
Профиль в составе М/С
Профиль в составе стеклопакета
Профиль в составе роллеты
Профиль ламели
Вал
Шина
Короб
Концевой профиль
Фиксирующий профиль
Усиливающий профиль
Ламель жалюзи
Профиль в составе жалюзи
Стыковочный
Дистанционер фасада
Термомост
(aTypM=1)and(aTypP=1)
(aTypM=1)and(aTypP=2)
(aTypM=1)and(aTypP=3)
(aTypM=1)and(aTypP=4)
(aTypM=1)and(aTypP=5)
(aTypM=1)and(aTypP=6)
(aTypM=1)and(aTypP=7)
(aTypM=1)and(aTypP=8)
(aTypM=1)and(aTypP=9)
(aTypM=1)and(aTypP=10)
(aTypM=1)and(aTypP=11)
(aTypM=1)and(aTypP=12)
(aTypM=1)and(aTypP=13)
(aTypM=1)and(aTypP=14)
(aTypM=1)and(aTypP=15)
(aTypM=1)and(aTypP=16)
(aTypM=1)and(aTypP=17)
(aTypM=1)and(aTypP=18)
(aTypM=1)and(aTypP=19)
(aTypM=1)and(aTypP=20)
(aTypM=1)and(aTypP=25)
(aTypM=1)and(aTypP=30)
(aTypM=1)and(aTypP=31)
(aTypM=1)and(aTypP=32)
(aTypM=1)and(aTypP=33)
(aTypM=1)and(aTypP=34)
(aTypM=1)and(aTypP=35)
(aTypM=1)and(aTypP=36)
(aTypM=1)and(aTypP=37)
(aTypM=1)and(aTypP=49)
(aTypM=1)and(aTypP=50)
(aTypM=1)and(aTypP=65)
(aTypM=1)and(aTypP=70)
(aTypM=1)and(aTypP=75)
Аксессуары Штучный элемент
Закладной крепеж
Монтажный крепеж
Расходный материал
Соединитель
Концевик
Фурнитура.замок
Фурнитура.штучная
Фурнитура.ручка
Фурнитура.петля
Фурнитура.дополнительная
Фурнитура.накладки
Аксессуар в составе откосов
Аксессуар в составе М/С
Аксессуар в составе роллеты
Привод в составе роллеты
Аксессуар в составе жалюзи
Эксклюзив
(aTypM=2)and(aTypP=1)
(aTypM=2)and(aTypP=2)
(aTypM=2)and(aTypP=3)
(aTypM=2)and(aTypP=4)
(aTypM=2)and(aTypP=5)
(aTypM=2)and(aTypP=6)
(aTypM=2)and(aTypP=9)
(aTypM=2)and(aTypP=10)
(aTypM=2)and(aTypP=11)
(aTypM=2)and(aTypP=12)
(aTypM=2)and(aTypP=13)
(aTypM=2)and(aTypP=14)
(aTypM=2)and(aTypP=15)
(aTypM=2)and(aTypP=20)
(aTypM=2)and(aTypP=30)
(aTypM=2)and(aTypP=31)
(aTypM=2)and(aTypP=50)
(aTypM=2)and(aTypP=90)
Уплотнения Уплотнение притвора
Уплотнение заполнения
Лента
Шнур
Уплотнение в составе откосов
Уплотнение в составе М/С
Уплотнение в составе роллеты
Уплотнение в составе жалюзи
Внутреннее уплотнение фасада
Внешнее уплотнение фасада
(aTypM=3)and(aTypP=1)
(aTypM=3)and(aTypP=2)
(aTypM=3)and(aTypP=3)
(aTypM=3)and(aTypP=4)
(aTypM=3)and(aTypP=15)
(aTypM=3)and(aTypP=20)
(aTypM=3)and(aTypP=30)
(aTypM=3)and(aTypP=50)
(aTypM=3)and(aTypP=71)
(aTypM=3)and(aTypP=72)
Инструмент Инструмент
Амортизация
Аренда
(aTypM=4)and(aTypP=1)
(aTypM=4)and(aTypP=2)
(aTypM=4)and(aTypP=3)
Заполнения Стекло
Стеклопакет
Сэндвич
Вагонка
Алюминевый лист
Специальное стекло
Конструктив
Тонирующая пленка
Бронирующая пленка
Панель откоса
Москитная сетка (М/С)
Полотно жалюзи
Специальный тип ( ! )
Фиксированный блок
(aTypM=5)and(aTypP=1)
(aTypM=5)and(aTypP=2)
(aTypM=5)and(aTypP=3)
(aTypM=5)and(aTypP=4)
(aTypM=5)and(aTypP=5)
(aTypM=5)and(aTypP=6)
(aTypM=5)and(aTypP=9)
(aTypM=5)and(aTypP=11)
(aTypM=5)and(aTypP=12)
(aTypM=5)and(aTypP=15)
(aTypM=5)and(aTypP=20)
(aTypM=5)and(aTypP=50)
(aTypM=5)and(aTypP=90)
(aTypM=5)and(aTypP=99)
Дополнительно В изделиях
Комплектация
Комплектация изделий
Комплектация в комплектах
Комплектация не в комплектах
(oNumb<>0)and(clkE>=0)
(oNumb=0)
(oNumb>0)and(clkE<0)
(clkC=10)and(nEL<0)
(clkC<>10)and(clkE<0)
Прямоугольные заполнения без арок
Не прямоугольные заполнения без арок
Прямоугольные заполнения с арками
Не прямоугольные заполнения с арками
(aTypM=5)and(aView=0)
(aTypM=5)and(aView=1)
(aTypM=5)and(aView=2)
(aTypM=5)and(aView=3)
Заполнения без раскладки
Заполнения с раскладкой
Заполнения с раскладкой в составе (только для совместимости отчетов из "ПрофСтрой 3")
Заполнения с раскладкой проектируемая
(aTypM=5)and(aTypR=0)
(aTypM=5)and(aTypR>0)
(aTypM=5)and(aTypR=1)
(aTypM=5)and(aTypR=2)
Основной элемент
Внутренний элемент
Основная плоскость
(clkC=-1)
(clkC<>-1)
(nSQ=0)
Все мат.ценности в составе откосов
Все мат.ценности в составе москитной сетки
Все мат.ценности в составе жалюзи
(aTypP=15)
(aTypP=20)
(aTypP=50)

Расшифровка поля единицы измерения

В таблице материальных ценностей Artikls единица измерения каждого артикула хранится в поле aTypI типа SmallInt:

Artikls.aTypI123456789101112
Ед.изм.пог.м.кв.м.шт.мл.компл. г. кг. л. набордозапарамесяц


Форматированный вывод времени

Для вывода времени в генераторе отчетов определены два типа времени (формата вывода секунд):
~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:НеСоздаватьДиалог~