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


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

 

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

 

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

 

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

 

Операции

 

Настройки

 

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

 

Каталоги

 

Конструктив

 

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

 

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

 

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

 

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

 

Вид мрамор

 

Перевод

 

Помощь

 

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

 

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

 

Модуль AutoCAD

 

Модуль МС

 

Склад

 

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

 

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

 

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

 

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

Применение VBScript при создании динамических отчетов

<!-- подсчет одинаково распиленных хлыстов по проекту -->
<HTML>
<HEAD>
<TITLE>Раскрой профиля сжатый</TITLE>
</HEAD>
<BODY><CENTER> ~Точность:2:0:"."~ // точка - разделитель для VBScript !

<SCRIPT LANGUAGE="VBScript">

~Проект:НАЧАЛО~
document.write "<P style=""font-size:16px; text-align: center; color:#0; font-weight: bold;"">Раскрой по проекту № ~Проект:Номер_проекта~</P>"
~Проект:КОНЕЦ~

document.write "<TABLE style=""border-collapse: collapse; font-size:11px; text-align:left; font-family:Arial; color:#0; font-weight: none;"" bgColor=#FFFFFF cellpadding=3 spacepadding=3 border=1 borderColor=#0>"

document.write "<TR valign=top>"
document.write "<TD bgColor=#CCCCCC align=center>Арт.</TD>"
document.write "<TD bgColor=#CCCCCC align=center>Название</TD>"
document.write "<TD bgColor=#CCCCCC align=center>Основ.</TD>"
document.write "<TD bgColor=#CCCCCC align=center>Внутр.</TD>"
document.write "<TD bgColor=#CCCCCC align=center>Внеш.</TD>"
document.write "<TD bgColor=#CCCCCC align=center>Цел.,<br>мм</TD>"
document.write "<TD bgColor=#CCCCCC align=center>Резы / углы</TD>"
document.write "<TD bgColor=#CCCCCC align=center>Ост.,<br>мм</TD>"
document.write "<TD bgColor=#CCCCCC align=center>Кол-во<br>хлыстов</TD>"
document.write "</TR>"

// подсчет количества обрабатываемых записей - размерность массивов данных
~SQL1:Установить:SELECT count(*) as RecCount FROM OptimHL~
~SQL1:Добавить:WHERE pUnic=:Индекс1.AsInteger~
~SQL1:Начало~
~SQL1:RecCount:AsInteger:MaxRec~
~SQL1:Конец~

// массив для проверки идентичности распилов хлыстов
DIM V(~AsInteger:MaxRec~)

// массив количества одинаково распиленных хлыстов
DIM Q(~AsInteger:MaxRec~)

ind=0 // индекс массивов V & Q

~SQL1:Установить:SELECT aNumb,nReik,clNum,clNu1,clNu2,aLenA,~
~SQL1:Добавить:aLenB,nReik~
~SQL1:Добавить:FROM OptimHL WHERE pUnic=:Индекс1.AsInteger~
~SQL1:Добавить:ORDER BY aNumb,clNum,nReik~
~SQL1:Начало~

ind=ind+1

V(ind) = "<TR valign=top><TD>~SQL1:aNumb:AsString~</TD>"
V(ind) = V(ind) + "<TD>~SQL1:aNumb:As.Название~</TD>"
V(ind) = V(ind) + "<TD>~SQL1:clNum:As.Текстура~</TD>"
V(ind) = V(ind) + "<TD>~SQL1:clNu1:As.Текстура~</TD>"
V(ind) = V(ind) + "<TD>~SQL1:clNu2:As.Текстура~</TD>"
V(ind) = V(ind) + "<TD align=right>~SQL1:aLenB:AsFloat~</TD>"

L = "" // для формирования строки таблицы

~SQL2:Установить:SELECT aLeng,nReik,clNum,clNu1,clNu2,~
~SQL2:Добавить:OptimPR.aQtyP,aUg01,aUg02 FROM OptimPR,SpecPAU~
~SQL2:Добавить:WHERE (OPTIMPR.pUnic=:Индекс1.AsInteger:)AND ~
~SQL2:Добавить:(OptimPR.aUnic=SpecPAU.aUnic)AND~
~SQL2:Добавить:(OptimPR.pUnic=SpecPAU.pUnic)AND~
~SQL2:Добавить:(OptimPR.nReik=:SQL1nReik.AsInteger:)AND~
~SQL2:Добавить:(aNumb=:SQL1aNumb.AsString:)AND~
~SQL2:Добавить:(clNum=:SQL1clNum.AsInteger:)AND~
~SQL2:Добавить:(clNu1=:SQL1clNu1.AsInteger:)AND~
~SQL2:Добавить:(clNu2=:SQL1clNu2.AsInteger:)~
~SQL2:Добавить:ORDER BY aLeng~
~SQL2:Начало~

L = L + "~SQL2:aLeng:AsFloat~<b>х~SQL2:aQtyP:AsInteger~</b>"
L = L + ""
L = L + "~SQL2:aUg01:AsFloat~°x~SQL2:aUg02:AsFloat~°<BR>"

~SQL2:Конец~

V(ind) = V(ind) + "<TD align=right>" + L + "</TD>"
V(ind) = V(ind) + "<TD align=right>~SQL1:aLenA:AsFloat~</TD>"

Q(ind) = 1

~SQL1:Конец~

// подсчет одинаково распиленных хлыстов
FOR i=1 TO ind
IF Q(i)>0 THEN
FOR k=i+1 TO ind
IF V(k)=V(i) AND Q(k)>0 THEN
Q(i)=Q(i)+1
Q(k)=0
END IF
NEXT
END IF
NEXT

// вывод распилов в выходной отчет
FOR i=1 TO ind
IF Q(i)>0 THEN
document.write V(i)
document.write "<TD align=center><b>"
document.write Q(i)
document.write "</b></TD></TR>"
END IF
NEXT

document.write "</TABLE>"

</SCRIPT>

</BODY>
</HTML>

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

Раскрой по проекту № 1

Арт.НазваниеОснов. Внутр.Внеш.Цел., ммРезы / углыОст., ммКол-во
хлыстов
707Рама 63БелыйБелыйБелый6500700 x 9 45°x45°15011
707Рама 63БелыйБелыйБелый6500700 x 1 45°x45°57901


Примечание
При формировании этого отчета был использован VBScript. Выходной отчет сформирован динамически, поэтому невозможна конечная редакция и открытие в MS Word / MS Excel.