Спасибо за ссылки.
И еще вопрос: как в базах сделать, чтобы на рамы площадью менее 0.5 м.кв. наценка увеличивалась на n%%
Мені задали таке запитання:
"Арки приходят к нам готовые со своей ценой. Имеется прайс на арки и дуги. Но программа рисуя арку, просчитывает ее по нашей базовой цене."
Вирішити його можна подібним способом до вирішення питання зсилки згаданої вище (на форумі в цій же темі).
Отже, що ми маємо:
1. Прайс виробника з таблицею вартості арки в залежності від D i L. Де D - це ширина конструкції, L - висота прямої вертикальної частини конструкції), радіус арки за прайсом виробника = D/2.
2. Вартість профілю конструкції (в даному прикладі буду використовувати профіль рами, аналогічно робиться для профілю створки), видана програмою. (Конструюємо вікно по розмірах з прайсу і дивимося вартість використаного профілю).
Прайс має такий вигляд:
------------------------------------------------------
тип | Ширина (D, мм)
профілю | 500 | 600 | ...
------------------------------------------------------
L, висота | 0 | 5 | 10 |
прямої | 250 | 10 | 20 |
частини | 500 | 20 | 30 |
| 750 | 30 | 40 |
| 1000 | 40 | 50 |
------------------------------------------------------
З попередніх пунктів визначаємо різницю між вартістю з прайсу і вартістю, яку дає програма.
Наприклад різниця між прайсом і програмою при розмірах D <= 500 і L > 0 і L <= 250 буде 10 EUR.
В скрипті створки (Програма "Бази" - Типи - Всі типи - "Тип конструкції для якої ми це робимо") ми пишемо скрипт, який буде добавляти до вартості продукції перну суму (по аналогії пишеться для створки в "скрипті створки"). Даний скрипт працює для сітки з 2-ох стовпців і 5-ох рядків.
IF Wlasnosc(IlLukowOsciez) > 0 THEN
D = Wlasnosc(SzerOsciez)
L = (Wlasnosc(ObwodOsciez) - Wlasnosc(SzerOsciez) - Wlasnosc(DlugElLuk))/2
D = D * 1000
L = L * 1000
IF (D > 0) AND (D <= 500) THEN
IF L = 0 THEN NarzutKwotowy 5,"EUR"
IF (L > 0) AND (L <= 250) THEN NarzutKwotowy 10,"EUR"
IF (L > 250) AND (L <= 500) THEN NarzutKwotowy 20,"EUR"
IF (L > 500) AND (L <= 750) THEN NarzutKwotowy 30,"EUR"
IF (L > 750) AND (L <= 1000) THEN NarzutKwotowy 40,"EUR"
END IF
IF (D > 500) AND (D <= 600) THEN
IF L = 0 THEN NarzutKwotowy 10,"EUR"
IF (L > 0) AND (L <= 250) THEN NarzutKwotowy 20,"EUR"
IF (L > 250) AND (L <= 500) THEN NarzutKwotowy 30,"EUR"
IF (L > 500) AND (L <= 750) THEN NarzutKwotowy 40,"EUR"
IF (L > 750) AND (L <= 1000) THEN NarzutKwotowy 50,"EUR"
END IF
END IF