Определение скрипта для вычисления тарифа за перевозку одного килограмма груза
Чтобы вычислить с помощью скрипта тариф за перевозку 1 килограмма груза, необходимо выполнить следующие действия:
Создайте концепт «скрипт», который будет вычислять тариф за перевозку 1 килограмма груза. Для этого выделите категорию Scripts в дереве концептов дескриптивной онтологии, затем в контекстном меню выберите New item -> Script. Созданный скрипт переименуйте в Calculate Rent fee и свяжите его с атрибутом Rent fee,т.е. перетащите скрипт на атрибут Rent fee. Укажите параметры скрипта: перетащите необходимые атрибуты на концепт скрипт (все параметры скрипта можно увидеть во вкладке Uses). Параметрами скрипта Calculate Rent fee, вычисляющего тариф за перевозку 1 килограмма груза, являются атрибуты _Airplane direction, _Airplane company, _Course_$, _Sender volume (рис. 2). Напишите тело скрипта (т.е., собственно скрипт). Для этого выделите скрипт Calculate Rent fee в дереве концептов дескриптивной онтологии, затем перейдите в закладку Script body, нажмите на кнопку . При этом откроется окно редактора скриптов, в котором необходимо набрать следующий текст (имена концептов заключаются в кавычки, незначащие пробелы в начале идентификаторов не допускаются). Имена концептов необходимо выбирать в списке концептов, которые являются параметрами скрипта. Скрипт заканчивается точкой с запятой. Begin if "_Airplane Direction" = 1 then Begin if "_Airplane Company" = 'SU' then Begin if ("_Sender volume"<=11.93) then Result:=6.32 * "_Course_$" / "_Sender volume" else if ("_Sender volume">11.93) and ("_Sender volume"<=45) then Result:=(0.53+0.15+0.05)* "_Course_$" else if ("_Sender volume">45) and ("_Sender volume"<=100) then Result:=(0.47+0.15+0.05) * "_Course_$" else if ("_Sender volume">100) and ("_Sender volume"<=300) then Result:=(0.42+0.15+0.05) * "_Course_$" else if ("_Sender volume">300) then Result:=(0.37+0.15+0.05) * "_Course_$" End else if "_Airplane Company" = 'UT' then Begin if ("_Sender volume"<=5) then Result:=5*15 / "_Sender volume" else Result:=15 End else if "_Airplane Company" = 'E5' then Begin if ("_Sender volume"<=25) then Result:=25*17 / "_Sender volume" else if ("_Sender volume">25) and ("_Sender volume"<=50) then Result:=17 else Result:=14 End End else if "_Airplane Direction" = 2 then Begin if "_Airplane Company" = 'E5' then Begin if ("_Sender volume"<=25) then Result:=25*21 / "_Sender volume" else if ("_Sender volume">25) and ("_Sender volume"<=50) then Result:=21 else Result:=17 End else if "_Airplane Company" = 'PL' then Begin if ("_Sender volume"<=8.2) then Result:=396 / "_Sender volume" else if ("_Sender volume">8.2) and ("_Sender volume"<=45) then Result:=16.1 else if ("_Sender volume">45) and ("_Sender volume"<=100) then Result:=13.2 else if ("_Sender volume">100) and ("_Sender volume"<=250) then Result:=12.1 else if ("_Sender volume">250) and ("_Sender volume"<=500) then Result:=11 else if ("_Sender volume">500) then Result:=9.7 End End else if "_Airplane Direction" = 3 then Begin if "_Airplane Company" = 'E5' then Begin if ("_Sender volume"<=25) then Result:=25*25 / "_Sender volume" else if ("_Sender volume">25) and ("_Sender volume"<=50) then Result:=25 else Result:=22 End else if "_Airplane Company" = 'X8' then Begin if ("_Sender volume"<=10) then Result:=10*20 / "_Sender volume" else if ("_Sender volume">10) and ("_Sender volume"<=45) then Result:=20 else if ("_Sender volume">45) and ("_Sender volume"<=300) then Result:=19 else if ("_Sender volume">300) then Result:=17 End else if "_Airplane Company" = 'U6' then Begin if ("_Sender volume"<=26.7) then Result:=880 / "_Sender volume" else if ("_Sender volume">26.7) and ("_Sender volume"<=45) then Result:=33 else if ("_Sender volume">45) and ("_Sender volume"<=100)then Result:=25.3 else if ("_Sender volume">100) then Result:=24.2 End End End; Сохраните скрипт нажатием на кнопку . Закройте окно редактора скриптов. Проверьте правильность синтаксиса скрипта нажатием на кнопку Check syntax. Если будет зафиксирована ошибка, необходимо вызвать редактор скриптов и внести необходимые исправления.
|