function Ztifr(txt, n) {
// функция возвращает цифры из куска строки
// ch - число
// n - количество знаков слева
var ets = txt.substring(0, n);
//alert(ets);
return parseInt(ets.match(/\d+/));
}
Materials = [];
PanelByMaterial = [];
var PanelChanged = 0;
Model.forEachPanel(
function(Obj) {
var MtName = Ztifr(ExtractMatCode(Obj.MaterialName), 50);
if (MtName >=1)
{}else{MtName = "";}
var Index = Materials.indexOf(MtName);
if (Index < 0) {
Index = Materials.push(MtName) - 1;
var Panels = [];
PanelByMaterial.push(Panels);
}
PanelByMaterial[Index].push(Obj);
});
//-- window Window2
Window2 = { Form : NewForm() };
Props = Window2.Form.Properties;
Window2.Form.Width = 287;
Window2.Form.Height = 150;
Window2.Form.Caption = "Ценовая групппа?";
Window2.Form.OKButton = true;
Window2.Form.CancelButton = true;
//-- window Window2 properties
Window2.Combo1 = Props.NewCombo("ценовая группа","");
Window2.Combo1.SetLayout(5, 42, 206, 22);
Window2.Combo1.ComboItems = Materials;
Window2.Label1 = Props.NewLabel("выверите из списка ценовую группу");
Window2.Label1.SetLayout(5, 10, 210, 22);
Window2.Label1.SetMargins(5, 5, 5, 5);
//-- window Window2 events
//-- window Window2 ends
Window2.Form.ShowModal();
var _k = Ztifr(Window2.Combo1.Value, 3) ;
alert ("выбрана ценовая группа " + _k );
alert( 'выбираем краски' );
var paints = GetKrask(_k).kras;
var effects = GetKrask(_k).effe;
paints = [];
effects = [];
//-- window Window1
Window1 = { Form : NewForm() };
Props = Window1.Form.Properties;
Window1.Form.Width = 457;
Window1.Form.Height = 250;
Window1.Form.Caption = "Краски";
Window1.Form.OKButton = true;
Window1.Form.Resizable = true;
Window1.Form.CancelButton = true;
Window1.Form.MinHeight = 250;
Window1.Combo1 = Props.NewCombo("Отделка","");
Window1.Combo1.SetLayout(18, 14, 350, 22);
Window1.Combo1.Enabled = true;
Window1.Combo1.ComboItems = paints;
Window1.Combo0.AlignWithMargins = false;
Window1.Combo2 = Props.NewCombo("Эффект","");
Window1.Combo2.SetLayout(18, 48, 350, 22);
Window1.Combo2.ComboItems = effects;
Window1.usl = Props.NewBool("указать панели вручную","false");
Window1.usl.SetLayout(18, 70, 205, 22);
Window1.Form.CancelButton = true;
Window1.Form.OKButton = true;
//-- window Window1 properties
//-- window Window1 events
//-- window Window1 ends
Window1.Form.ShowModal();
function GetKrask(_k) {
// функция возвращает списки красски и отделки получив цифру ценовой группы
var kras = [];
var effe = [];
switch (_k){
case 1:
kraska = ["", "эмаль_АВОРИО", "эмаль_АКВА", "эмаль_АКВАМАРИН", "эмаль_АНТРАЦИТ", "эмаль_БАЗАЛЬТ", "эмаль_БЕЖЕВЫЙ", "эмаль_БЕЛЫЙ", "эмаль_БОРДО", "эмаль_ВАНИЛЬ", "эмаль_ВОЛНА", "эмаль_ГАВАНА", "эмаль_ГЛИНЯНЫЙ", "эмаль_ГОЛУБОЙ", "эмаль_ГРАНАТ", "эмаль_ГРИДЖИО", "эмаль_ДИП БЛЕК", "эмаль_ЕЖЕВИКА СО СЛИВКАМИ", "эмаль_ЖЕЛТЫЙ", "эмаль_ЗЕЛЕНЫЙ", "эмаль_КАКАО", "эмаль_КАППУЧИНО", "эмаль_КВАРЦ", "эмаль_КОРДА", "эмаль_КОФЕ", "эмаль_КРАСНЫЙ", "эмаль_КРЕМ", "эмаль_ЛАЙМ", "эмаль_ЛАЙТ ГРЕЙ", "эмаль_ЛАТТЕ", "эмаль_МАРЕНГО", "эмаль_МАСЛО", "эмаль_МОЛОКО", "эмаль_ОБЛАКО", "эмаль_ОЛИВКОВО-СЕРЫЙ", "эмаль_ОПАЛ", "эмаль_ОРАНЖЕВЫЙ", "эмаль_ПЕПЕЛЬНЫЙ", "эмаль_ПЕТРОЛ", "эмаль_РУБИНОВЫЙ", "эмаль_СВЕТЛО-СЕРЫЙ", "эмаль_СЕРО-БЕЖЕВЫЙ", "эмаль_СЕРЫЙ", "эмаль_СЕРЫЙ ЖЕМЧУГ", "эмаль_СИНИЙ", "эмаль_СИРЕНЬ", "эмаль_СЛИВКИ", "эмаль_СНЕЖНЫЙ", "эмаль_ТЕМНО-СЕРЫЙ", "эмаль_ТЕПЛЫЙ БЕЖ", "эмаль_ТОПЛЕНОЕ МОЛОКО", "эмаль_ТУРЕЦКАЯ ЛАЗУРЬ", "эмаль_ФИСТАШКОВЫЙ", "эмаль_ЧЕРНЫЙ", "эмаль_ШОКОЛАД", "эмаль_СЕРЕБРИСТЫЙ"];
effekt = ["", '&матовая','&глянец','&Велюр','&X-matt'];
break;
case 2:
kraska = ["", "эмаль_АВОРИО", "эмаль_АКВА", "эмаль_АКВАМАРИН", "эмаль_АНТРАЦИТ", "эмаль_БАЗАЛЬТ", "эмаль_БЕЖЕВЫЙ", "эмаль_БЕЛЫЙ", "эмаль_БОРДО", "эмаль_ВАНИЛЬ", "эмаль_ВОЛНА", "эмаль_ГАВАНА", "эмаль_ГЛИНЯНЫЙ", "эмаль_ГОЛУБОЙ", "эмаль_ГРАНАТ", "эмаль_ГРИДЖИО", "эмаль_ДИП БЛЕК", "эмаль_ЕЖЕВИКА СО СЛИВКАМИ", "эмаль_ЖЕЛТЫЙ", "эмаль_ЗЕЛЕНЫЙ", "эмаль_КАКАО", "эмаль_КАППУЧИНО", "эмаль_КВАРЦ", "эмаль_КОРДА", "эмаль_КОФЕ", "эмаль_КРАСНЫЙ", "эмаль_КРЕМ", "эмаль_ЛАЙМ", "эмаль_ЛАЙТ ГРЕЙ", "эмаль_ЛАТТЕ", "эмаль_МАРЕНГО", "эмаль_МАСЛО", "эмаль_МОЛОКО", "эмаль_ОБЛАКО", "эмаль_ОЛИВКОВО-СЕРЫЙ", "эмаль_ОПАЛ", "эмаль_ОРАНЖЕВЫЙ", "эмаль_ПЕПЕЛЬНЫЙ", "эмаль_ПЕТРОЛ", "эмаль_РУБИНОВЫЙ", "эмаль_СВЕТЛО-СЕРЫЙ", "эмаль_СЕРО-БЕЖЕВЫЙ", "эмаль_СЕРЫЙ", "эмаль_СЕРЫЙ ЖЕМЧУГ", "эмаль_СИНИЙ", "эмаль_СИРЕНЬ", "эмаль_СЛИВКИ", "эмаль_СНЕЖНЫЙ", "эмаль_ТЕМНО-СЕРЫЙ", "эмаль_ТЕПЛЫЙ БЕЖ", "эмаль_ТОПЛЕНОЕ МОЛОКО", "эмаль_ТУРЕЦКАЯ ЛАЗУРЬ", "эмаль_ФИСТАШКОВЫЙ", "эмаль_ЧЕРНЫЙ", "эмаль_ШОКОЛАД", "эмаль_СЕРЕБРИСТЫЙ", "эмаль_ЗОЛОТОЙ МЕТ.", "эмаль_ШАМПАНЬ МЕТ."];
effekt = ["", "&матовая", "&глянец", "&Велюр", "&X-matt", "&металлик"];
break;
case 3:
kraska = ["", "шпон_FL ВЕНГЕ", "шпон_FL ВЕНГЕ РАДИАЛЬНЫЙ", "шпон_FL ГРЕЦКИЙ ОРЕХ", "шпон_FL ДЕРЕВО ЭБЕНОВОЕ", "шпон_FL ДУБ КАКАО", "шпон_FL ЗЕБРАНО ", "шпон_FL ЗЕБРАНО ГРАФИТ", "шпон_FL ИНДИЙСКИЙ ЭБЕН", "шпон_FL ОРЕХ ФРАНЦУЗСКИЙ", "шпон_FL ПАЛИСАНДР", "шпон_FL ПАЛИСАНДР ОГНЕННЫЙ", "шпон_FL ПАЛИСАНДР РИО", "шпон_FL ТИК", "шпон_ДУБ НАТУРАЛЬНЫЙ", "шпон_АМЕРИКАНСКИЙ ОРЕХ", "шпон_ЕВРОПЕЙСКИЙ ОРЕХ", "шпон_ОЛИВКОВЫЙ ЯСЕНЬ", "шпон_СЕРЫЙ ГРАБ", "шпон_ТИГРОВЫЙ ЭБЕН", "шпон_АМЕРИКАНСКИЙ ОРЕХ 3D", "шпон_ДУБ ВИНТАЖ 3D", "шпон_ДУБ НАТУРАЛЬНЫЙ 3D", "шпон_ЭВКАЛИПТ 3D", "шпон_ЭВКАЛИПТ МОРЕНЫЙ 3D"];
effekt = ["", "&ЭКО", "&матовый Открытая пора", "& полиэфир матовый", "&глянец"];
break;
case 4:
kraska = ["", "шпон_ДУБ БЕЛОГО ЦВЕТА", "шпон_ДУБ В ЦВЕТЕ ВЕНГЕ", "шпон_ДУБ ГЛИНЯНОГО ЦВЕТА", "шпон_ДУБ МАСЛЯННОГО ЦВЕТА", "шпон_ДУБ ОЛИВКОВОГО ЦВЕТА", "шпон_ДУБ СЕРЫЙ ЖЕМЧУГ", "шпон_ДУБ ЧЕРНЫЙ", "шпон_ДУБ КОНЬЯК 3D", "шпон_ДУБ ЛЕН 3D", "шпон_ДУБ ПЕПЕЛ 3D", "шпон_ДУБ СЕРЫЙ 3D", "шпон_ДУБ ТАБАККО 3D", "шпон_ДУБ УМБРА 3D"];
effekt = ["", "&окрашенный матовый", ''];
break;
case 5:
kraska = ["", "эмаль_СИРЕНЕВЫЙ МЕТ.", "эмаль_МЕТАЛЛ АНТИК", "эмаль_МЕТАЛЛ", "эмаль_БЕЛЫЙ ПЕРЛАМУТР", "эмаль_БОЛОТНЫЙ МЕТ.", "эмаль_ГОЛУБОЙ МЕТ.", "эмаль_ЖЕМЧУГ", "эмаль_ЗЕЛЕНЫЙ МЕТ. ", "эмаль_РОЗОВО-БЕЖЕВЫЙ МЕТ.", "эмаль_РОЗОВЫЙ МЕТ.", "эмаль_САЛАТОВЫЙ МЕТ.", "эмаль_СВЕТЛО-СИРЕНЕВЫЙ МЕТ.", "эмаль_ГРАФФИТИ", "эмаль_ЭЛЬДОРАДО ГОЛД"];
effekt = ["", "&металлик", "&cпецэффект"];
break;
case 6:
kraska = ["", "шпон_FL ВЕНГЕ", "шпон_FL ВЕНГЕ РАДИАЛЬНЫЙ", "шпон_FL ГРЕЦКИЙ ОРЕХ", "шпон_FL ДЕРЕВО ЭБЕНОВОЕ", "шпон_FL ДУБ КАКАО", "шпон_FL ЗЕБРАНО ", "шпон_FL ЗЕБРАНО ГРАФИТ", "шпон_FL ИНДИЙСКИЙ ЭБЕН", "шпон_FL ОРЕХ ФРАНЦУЗСКИЙ", "шпон_FL ПАЛИСАНДР", "шпон_FL ПАЛИСАНДР ОГНЕННЫЙ", "шпон_FL ПАЛИСАНДР РИО", "шпон_FL ТИК", "шпон_ДУБ НАТУРАЛЬНЫЙ", "шпон_АМЕРИКАНСКИЙ ОРЕХ", "шпон_ЕВРОПЕЙСКИЙ ОРЕХ", "шпон_ОЛИВКОВЫЙ ЯСЕНЬ", "шпон_СЕРЫЙ ГРАБ", "шпон_ТИГРОВЫЙ ЭБЕН"];
effekt = ["", "&ЭКО", "&матовый Открытая пора ", "& полиэфир матовый", "& глянец"];
break;
case 7:
kraska = ["", "шпон_МАКАССАР - LIGHT", "шпон_ДУБ БОРДО С МЕДНОЙ ПАТИНОЙ", "шпон_ОЛИВА - LIGHT", "шпон_ЗИРИКОТЕ - LIGHT", "шпон_ДУБ ЧЕРНЫЙ С СЕРЕБРЯНОЙ ПАТИН", "шпон_ВЕНГЕ НАТУРАЛЬНЫЙ", "шпон_ПАЛИСАНДР ВОСТОЧНЫЙ", "шпон_РЕД ГАМ", "шпон_САНТОС ПАЛИСАНДР", "шпон_ТИК НАТУРАЛЬНЫЙ", "шпон_МАКАССАР"];
effekt = ["", "&Натуральный матовый", "&полиэфир матовый", "&полиэфир глянец"];
break;
case 8:
kraska = ["", "шпон_ЗИРИКОТЕ - LIGHT", "шпон_ДУБ АВОРИО С КОРИЧНЕВОЙ ПАТИНОЙ", "шпон_ДУБ БОРДО С МЕДНОЙ ПАТИНОЙ", "шпон_ДУБ ЧЕРНЫЙ С БОРДОВОЙ ПАТИНОЙ", "шпон_ДУБ ЧЕРНЫЙ С ЗОЛОТОЙ ПАТИНОЙ", "шпон_ДУБ ЧЕРНЫЙ С СЕРЕБРЯНОЙ ПАТИНОЙ"];
effekt = ["", "&полиэфир матовый", "&полиэфир глянец"];
break;
case 9:
kraska = ["", "шпон_ВЕНГЕ НАТУРАЛЬНЫЙ", "шпон_ПАЛИСАНДР ВОСТОЧНЫЙ", "шпон_РЕД ГАМ", "шпон_САНТОС ПАЛИСАНДР", "шпон_ТИК НАТУРАЛЬНЫЙ", "шпон_ОЛИВА", "шпон_МАКАССАР"];
effekt = ["", "&ЭКО", "&матовый Открытая пора ", "& полиэфир матовый", "& глянец"];
break;
case 10:
kraska = ["", "нет данных"];
effekt = ["", "нет эффектов"];
break;
case 11:
kraska = ["", "эмаль_БЕТОН АНТРАЦИТ", "эмаль_БЕТОН ДЖАСП", "эмаль_МЕДЬ АНТИК", "эмаль_ЛАТУНЬ АНТИК", "эмаль_СТАЛЬ", "шпон_МАКАССАР", "шпон_ОЛИВА"];
effekt = ["", "&METALL", "&бетон"];
break;
case 12:
kraska = ["", "шпон_ЗИРИКОТЕ"];
effekt = ["", "&полиэфир матовый", "&полиэфир глянец"];
break;
default:
alert( 'Вы не выбрали ценовую группу' );
break;
}
var otdelka = {kras: kraska, effe: effekt };
return otdelka;
};
alert ("список красок " + GetKrask(_k).kras + "список эввектов " + GetKrask(_k).effe );
var Pan;
var ruch = Window1.usl.Value; //значение ручного выбора
var _i = 0; // счетчик окрашенных панелей
if (ruch) //выбрать в ручну окраску панелей
{
BtnStop = NewButtonInput("Закончить");
var knop = true;
var plastMat;
// выполняем выделение в бесконечном цикле
// при нажатии на отмену команды скрипт все равно завершится, т.к.
// он вызывает функцию GetObject()
while (knop) {
BtnStop.OnChange = function() {
//alert('Нажата Кнопка "Закончить"');
return knop = false;
}
if (knop) {
Pan = GetPanel("Укажите панель");
}else {
alert('конец скрипта');
}
// условие Pan.Plastics. проверяет,
// что у выбранной не свойства пластик
if (ZcnGr(Pan, _n)) {
if (Pan.Plastics.Count == 0) {
Pan.AddPlastic(plastMat, true);
plastMat = Pan.Plastics.Plastics[0];
plastMat.Material = Window1.Combo1.Value + Window1.Combo2.Value;
plastMat.Thickness = 0.1;
++_i;
Pan.Color = 100;
Pan.Selected = true;
}
else {
alert('Панель уже покрашена');
}
} else {
alert('Панель другой ценовой группы');
}
}
}
else
{
Model.forEachPanel(function(Pan) {
if (ZcnGr(Pan, _n))
if (Pan.Plastics.Count == 0) {
Pan.AddPlastic(plastMat, true);
plastMat = Pan.Plastics.Plastics[0];
plastMat.Material = Window1.Combo1.Value + Window1.Combo2.Value;
plastMat.Thickness = 0.1;
Pan.Color = 200;
Pan.Selected = true;
++_i;
}
});
alert("окрашено " + _i +" панелей " + _n +" цн.гр. ");
}
[свернуть]