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


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

 

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

 

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

 

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

 

Операции

 

Настройки

 

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

 

Каталоги

 

Конструктив

 

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

 

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

 

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

 

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

 

Вид мрамор

 

Перевод

 

Помощь

 

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

 

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

 

Модуль AutoCAD

 

Модуль МС

 

Склад

 

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

 

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

 

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

 

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

"Формы интерфейса"

Назначение

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

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


К СВЕДЕНИЮ
Перед началом создания условий выбора проектов неоюходжимо всегда помнить три глобальных события по проекту:
  • 'готовые по детализиции' - выбираются условием 'pWork=-1';
  • 'в производстве' - выбираются условием 'pWork=1';
  • 'завершенные' - выбираются условием 'pWork=2'.
Исходя из этого нельзя использовать условие '(pWork=1)and(pWork=2)', так в этом случае запрос ничего не выведет.

Cоздание диалогового окна

Генератор отчетов позволяет создавать собственные диалоговые окна без использования предопределенного окна "Статистика".

Для создания формы потребуется список компонентов с набором свойств, которые можно посмотреть и выбрать на странице "Формы статистики" в окне "Мастер кода".

Создание диалогового окна осуществляется набором следующим команд:
~Форма.Создать~
~Форма.Заголовок=Ввод данных~
~Форма.Ширина=300~
~Форма.Высота=200~
~Форма.Вывод=Параметр_целый~

<!-- здесь добавляются компоненты: переключатели, календари, таблица …) -->
. . .
~Форма.Показать~

Создается и показывается окно с кнопками "Применить" и "Отменить".

Указывается заголовок окна, ширина и высота рабочей области окна, а также название числового параметр отчета, который будет создан при закрытии окна. Этому параметру присваивается `0` при нажатии кнопки "Применить", и `-1` при нажатии кнопки "Отменить".
Для каждого макроса/отчета возможно создание нескольких диалоговых окон с использованием следующих компонентов среды Windows:
  • флаг
  • статическая надпись
  • календарь
  • списки: табличный, выпадающий, -переключатель
  • ввод числового значения
  • таблица отображения данных запроса SQL.
Для всех компонентов, кроме таблицы, допустимо использовать до 16-ти копий.

Примеры

<!-- вывод проектов с созданием диалогового окна с вводом периода и установки опции 'Только проекты, отправленные в производство' -->
~Форма.Создать~
~Форма.Заголовок=Введите данные для отчета~
~Форма.Ширина=280~
~Форма.Высота=100~
~Форма.Вывод=КнопкаПрименить~

~Форма.Надпись.Создать~
~Форма.Надпись.Текст=Начало периода~
~Форма.Надпись.Сверху=12~
~Форма.Надпись.Слева=10~
~Форма.Надпись.Ширина=90~

~Форма.Календарь.Создать~
~Форма.Календарь.Сверху=8~
~Форма.Календарь.Слева=100~
~Форма.Календарь.Ширина=90~
~Форма.Календарь.Вывод=Дата1~

~Форма.Надпись.Создать~
~Форма.Надпись.Текст=Конец периода~
~Форма.Надпись.Сверху=42~
~Форма.Надпись.Слева=10~
~Форма.Надпись.Ширина=90~

~Форма.Календарь.Создать~
~Форма.Календарь.Сверху=38~
~Форма.Календарь.Слева=100~
~Форма.Календарь.Ширина=90~
~Форма.Календарь.Вывод=Дата2~

~Форма.Флаг.Создать~
~Форма.Флаг.Текст=Только проекты, отправленные в производство~
~Форма.Флаг.Сверху=80~
~Форма.Флаг.Слева=10~
~Форма.Флаг.Ширина=300~
~Форма.Флаг.Включить=Да~
~Форма.Флаг.Вывод=Флаг_В_производство~


~Форма.Показать~


При запуске макроса (просмотре отчета) программа выведет следующее окно:


<!-- при нажатии кнопки "Применить" создается числовой параметр 'КнопкаПрименить' со значением = `0` -->
~IF:КнопкаПрименить<0:THEN~
~Отчет:Закрыть~ <!-- принудительное завершение создания отчета и закрытие окна прежварительного просмотра -->
~ENDIF~

<!-- отображение выбранного периода в заголовка отчета -->
<P style="font-size:16px; text-align:center; font-family:Arial; color:#0;">
Период с ~AsDate:Дата1~ по ~AsDate:Дата2~
</P>

<!-- составляем запрос по проектам для программируемого цикла SQL1 -->
~SQL1:Установить:SELECT pUnic FROM ListPrj WHERE~

<!-- добавляем условие по периоду из параметров, переданных из диалогового окна -->
~SQL1:Добавить:(pDate>=:Дата1.AsDate:)AND(pDate-1<:Дата2.AsDate:)~

<!-- если был установлен флаг 'Только проекты, отправленные в производство', то добавляем условие отправки проекта в производство -->
~IF:Флаг_В_производство>0:THEN~
~SQL1:Добавить:AND(pWork=1)~
~ENDIF~


<!-- автоматическое выделение нужных проектов -->
~SQL1:Выбор.Проекты~

<TABLE style="border-collapse: collapse" border=1 bordercolor=#0>
<TR><!-- заголовок таблицы -->
<TD align=center bgColor=#CCCCCC>Заказ №</TD>
<TD align=center bgColor=#CCCCCC>Регистрация</TD>
<TD align=center bgColor=#CCCCCC>Адрес</TD>
<TD align=center bgColor=#CCCCCC>Контрагент</TD>
<TD align=center bgColor=#CCCCCC>Телефон</TD>
</TR>

~Проект:Начало~
<TR>
<TD align=center>~Проект:Номер_заказа~</TD>
<TD align=center>~Проект:Дата_регистрации~</TD>
<TD align=left>~Проект:Адрес~</TD>
<TD align=left>~Проект:Контрагент~</TD>
<TD align=left>~Проект:Контрагент.Телефон~</TD>
</TR>
~Проект:Конец~

</TABLE>

При условии выбора пользователем начала и конца периода (месяц март), выходной отчет будет иметь примерный вид:

Период c 1.03.2009 по 31.03.2009

Заказ №РегистрацияАдресКонтрагентТелефон
111.03.09Солнечная ул. 1Иванов111-11-11
517.03.09Цветочная ул. 2Петров222-22-22
727.03.09Яблочная ул. 1Васечкин333-33-33


Пояснение
В условии выборки указание периода для даты конца периода "Дата2" указан "+1" день: (pDate>=Дата1)AND(pDate-1<Дата2). Это связано с тем, что поля дат представлены на уровне базы данных вещественными значениями (целая часть - это дни, а дробная часть - часы, минуты, секунды), и дата регистрации проекта содержит добавку времени. Так как параметр "Дата2" подставляется как целое значение в текущем диалекте базы данных, то нужно учесть добавку времени и проверку необходимо указать до начала следующего дня.


<!-- пример создания компонента-таблицы отображения данных запроса SQL для отображения длины поставки целых хлыстов профилей -->
~Форма.Создать~
~Форма.Заголовок=Ввод данных~
~Форма.Ширина=327~
~Форма.Высота=128~
~Форма.Вывод=КнопкаПрименить~

~Форма.Таблица.Создать~
~Форма.Таблица.Ширина=327~
~Форма.Таблица.Высота=128~
~Форма.Таблица.Сверху=0~
~Форма.Таблица.Слева=0~
~Форма.Таблица.Столбец.Добавить~
~Форма.Таблица.Столбец.Поле=aNumb~
~Форма.Таблица.Столбец.Ширина=60~
~Форма.Таблица.Столбец.Выровнять=Слева~
~Форма.Таблица.Столбец.Заголовок.Текст=Артикул~
~Форма.Таблица.Столбец.Заголовок.Выровнять=Центр~

~Форма.Таблица.Столбец.Добавить~
~Форма.Таблица.Столбец.Поле=aName~
~Форма.Таблица.Столбец.Ширина=150~
~Форма.Таблица.Столбец.Выровнять=Слева~
~Форма.Таблица.Столбец.Заголовок.Текст=Название~
~Форма.Таблица.Столбец.Заголовок.Выровнять=Центр~

~Форма.Таблица.Столбец.Добавить~
~Форма.Таблица.Столбец.Поле=aLeng~
~Форма.Таблица.Столбец.Ширина=80~
~Форма.Таблица.Столбец.Выровнять=Центр~
~Форма.Таблица.Столбец.Заголовок.Текст=Поставка, мм~
~Форма.Таблица.Столбец.Заголовок.Выровнять=Центр~

~Форма.Таблица.SQL.Установить=SELECT aNumb,aName,aLeng FROM Artikls~
~Форма.Таблица.SQL.Добавить=WHERE aTypM=1 ORDER BY aNumb~
~Форма.Таблица.SQL.Открыть~

<!-- компонент-таблица может создать параметр, именованный только как поле в запросе ! -->
~Форма.Таблица.Вывод=aNumb.AsString~

~Форма.Показать~

При просмотре отчета программа выведет следующее окно:


Передача выборки

В генераторе отчетов существует специальная команда, позволяющая сформировать выборку нескольких значений по указанному полю для подстановки этой выборки в другой SQL-цикл: ~Форма.Таблица.Выборка=Поле.AsInt~ или ~Форма.Таблица.Выборка=Поле.AsString~.

<!-- пример формирования выборки проектов с подстановкой в другой SQL-цикл-->
~Форма.Создать~
~Форма.Заголовок=Выбор проектов~
~Форма.Ширина=327~
~Форма.Высота=128~
~Форма.Вывод=КнопкаПрименить~

~Форма.Таблица.Создать~
~Форма.Таблица.Ширина=327~
~Форма.Таблица.Высота=128~
~Форма.Таблица.Сверху=0~
~Форма.Таблица.Слева=0~
~Форма.Таблица.Столбец.Добавить~
~Форма.Таблица.Столбец.Поле=zNumb~
~Форма.Таблица.Столбец.Ширина=60~
~Форма.Таблица.Столбец.Выровнять=Слева~
~Форма.Таблица.Столбец.Заголовок.Текст=Заказ~
~Форма.Таблица.Столбец.Заголовок.Выровнять=Центр~

~Форма.Таблица.Столбец.Добавить~
~Форма.Таблица.Столбец.Поле=pDate~
~Форма.Таблица.Столбец.Ширина=80~
~Форма.Таблица.Столбец.Выровнять=Центр~
~Форма.Таблица.Столбец.Заголовок.Текст=Регистрация~
~Форма.Таблица.Столбец.Заголовок.Выровнять=Центр~

~Форма.Таблица.Столбец.Добавить~
~Форма.Таблица.Столбец.Поле=kName~
~Форма.Таблица.Столбец.Ширина=150~
~Форма.Таблица.Столбец.Выровнять=Слева~
~Форма.Таблица.Столбец.Заголовок.Текст=Заказчик~
~Форма.Таблица.Столбец.Заголовок.Выровнять=Центр~

~Форма.Таблица.ВЫБОРКА=pUnic.AsInt~

~Форма.Таблица.SQL.Установить=SELECT zNumb,pDate,kName,pUnic FROM ListPrj~
~Форма.Таблица.SQL.Добавить=WHERE pWork=1 ORDER BY zNumb~
~Форма.Таблица.SQL.Открыть~

~Форма.Показать~

При просмотре отчета программа выведет следующее окно:

При выборе нескольких проектов и нажатии кнопки "Применить" программа формирует строку выборки, в данном случае она будет выглядеть примерно так:
((pUnic=5)OR(pUnic=7)OR(pUnic=12)).

<!-- передаем выборку проектов в SQL-цикл по спецификации проектов в качестве условия запроса -->
~SQL1:Установить:SELECT aNumb,clNum,aQtyA,oNumb FROM SpecPAU WHERE~
~SQL1:Добавить:ВЫБОР.ФОРМА.ТАБЛИЦА~
~SQL1:Начало~
...
~SQL1:Конец~