Получить параметры операции через Javascript

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Получить параметры операции через Javascript

Сообщение savov »

Приходится прибегать к помощи народа, ибо заплутались в трех соснах.
В принципе все просто, надо в маршрутной карте в трудовых потребностях для каждого человека рассчитывать норму времени на операцию исходя из некоторых параметров операции (код 1019 и 1020, введены при редакторвании параметров).
Как написать код Javascript?
Пишу
N1 = 0;

EdVr = 0;


if (Operation.Parametr.GetFirst()==0){
do{
if (Operation.Parametr.Code() == '1019')
{N1 =Operation.Parametr.Value();
};
if (Operation.Parametr.Code()=='1020')
{EdVr =Operation.Parametr.Value();
};
}while (Operation.Parametr.GetNext() == 0);
}

Message('N='+N1+' '+EdVr,0);
Но Гал-ка возвращает значения параметров, как будто те, что стоят по умолчанию в настройке параметров :o
Если добираться из материальных норм, то код

if (Route.FindBynRec(GetCurRoute()) ==0)
{
if (Route.GetFirst() == 0)
{
if (Route.Operation.GetFirst() == 0)
{
if (Route.Operation.ResNorm.GetFirst() ==0)
{
do{ if (Route.Operation.ResNorm.Category()==101)
{
if (Route.Operation.Parametr.FindByCode('1019') == 0)
{N1 =Route.Operation.Parametr.Value();
};
if (Route.Operation.Parametr.FindByCode('1020') == 0)
{EdVr =Route.Operation.Parametr.Value();
};
};
}while (Route.Operation.GetNext() == 0);
}
}
};
};
прокатывает при движении по операциям, но в трудовых уже нет (и смена категории на 102 или убирание этого ифа тоже не помогает).
Что трудовые и материальные отрабатывают по-разному? Или я что-то неверно написал?
Еще раз напомню, нужно в трудовых достать параметры ТО и по ним рассчитать величину нормы времени на операцию.
savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Сообщение savov »

Отвечаю сам себе.
Срабатывает следующий алгоритм:
1 = 0;

EdVr = 0;

if (Operation.FindByRoute(GetCurNormDoc()) == 0)

do{

zPar = Operation.Parametr;

if (zPar.FindByCode(1019) == 0)
{
N1 = zPar.Value()
}

if (zPar.FindByCode(1020) == 0)
{
EdVr = zPar.Value()
}

if (Operation.ResNorm.FindByCategory(102) == 0)

{

do{
if (Operation.ResNorm.Parametr.FindByCode(30) == 0)
{
wPar = EdVr*N1;
if ((EdVr>0) && (N1>0)){
Operation.ResNorm.Parametr.SetValue(wPar)};
}

}while (Operation.ResNorm.GetNext() == 0);

}
}while(Operation.GetNext() == 0);


НО! САМОЕ ГЛАВНОЕ! ТАКИЕ АЛГОРИТМЫ НАДО ОБЯЗАТЕЛЬНО ВВОДИТЬ ТОЛЬКО В ЗАГОЛОВКЕ МК!!!!!!!! (совет Минска)Вопрос: а зачем тогда возможность пристыковки алгоритмов есть и в ресурсах?????? :eek:
Ответить