Поговорим о JavaScript в 810
Модераторы: m0p3e, edward_K, Модераторы
-
- Местный житель
- Сообщения: 552
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Челябинск
- Контактная информация:
Поговорим о JavaScript в 810
Привет всем присутствующим! Посмотрел темы за последний год и не нашёл данный сабж. А в некоторых случаях это весьма полезная штучка.. Например: находимся в некотором плановом документе, например, в потребности в материалах, к которому подключен производственный заказ через "Входящие".
В java- алгоритме делаем цикл по cпецификации таблицы связей spobjass и для каждой позиции спецификации потребности в материалах отыскиваем соответствующие позиции ПЗ.
ObjAss.VhDoc(37,GetCurPl());
ObjAss.getFirst(); // Нашли заголовок таблицы связей
SpObjAss.UstOgrkZag(ObjAss.NrecObjAss);//Установили ограничение на спецификацию таблицы связей
SpObjAss.getFirst(); // Встали на первую запись в спецификации связей
Message(...); //Здесь выводим поля записи
Проблема: нахожу запись spobjass, а ссылки на спецификации ПотрМат и ПЗ не нахожу.
Кто-нить работал с этим объектом?
В java- алгоритме делаем цикл по cпецификации таблицы связей spobjass и для каждой позиции спецификации потребности в материалах отыскиваем соответствующие позиции ПЗ.
ObjAss.VhDoc(37,GetCurPl());
ObjAss.getFirst(); // Нашли заголовок таблицы связей
SpObjAss.UstOgrkZag(ObjAss.NrecObjAss);//Установили ограничение на спецификацию таблицы связей
SpObjAss.getFirst(); // Встали на первую запись в спецификации связей
Message(...); //Здесь выводим поля записи
Проблема: нахожу запись spobjass, а ссылки на спецификации ПотрМат и ПЗ не нахожу.
Кто-нить работал с этим объектом?
-
- Местный житель
- Сообщения: 291
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: С-Петербург
- Контактная информация:
Добрый день. Как я понимаю общая задача такова: для позиций одного документа нужно что-то нарисовать из позиций другого документа связанного по входящим (исходящим).
Приведу пример скрипта, если надо скину на мыло скриншоты по настройке объектов.
//алгоритм работает из заявки. и выставляет во все исходящие планы
//аналатику 2 (№ чертежа) равной аналитике заявки.
Indent.setPosition(getCurIndent());
Objacct.Look(toIndent,getCurIndent());
for (Objacct.getFirst();ResultOfNavigation;Objacct.getNext())
{
SpObjacc.ToHead(Objacct.Nrec);
for (SpObjacc.getFirst();ResultOfNavigation;SpObjacc.getNext())
{
Claim.setPosition(SpObjacc.From);
SpMnPl.setPosition(SpObjacc.To);
SpMnPl.Kod2=KodKau;
SpMnPl.Role2=RoleKau;
SpMnPl.KAU2=Claim.KAU5;
SpMnPl.rewrite();
SpMnPlan.setPosition(SpMnPl.cSpMnPlan);
SpMnPlan.Kod2=KodKau;
SpMnPlan.Role2=RoleKau;
SpMnPlan.KAU2=Claim.KAU5;
SpMnPlan.rewrite();
}
}
Приведу пример скрипта, если надо скину на мыло скриншоты по настройке объектов.
//алгоритм работает из заявки. и выставляет во все исходящие планы
//аналатику 2 (№ чертежа) равной аналитике заявки.
Indent.setPosition(getCurIndent());
Objacct.Look(toIndent,getCurIndent());
for (Objacct.getFirst();ResultOfNavigation;Objacct.getNext())
{
SpObjacc.ToHead(Objacct.Nrec);
for (SpObjacc.getFirst();ResultOfNavigation;SpObjacc.getNext())
{
Claim.setPosition(SpObjacc.From);
SpMnPl.setPosition(SpObjacc.To);
SpMnPl.Kod2=KodKau;
SpMnPl.Role2=RoleKau;
SpMnPl.KAU2=Claim.KAU5;
SpMnPl.rewrite();
SpMnPlan.setPosition(SpMnPl.cSpMnPlan);
SpMnPlan.Kod2=KodKau;
SpMnPlan.Role2=RoleKau;
SpMnPlan.KAU2=Claim.KAU5;
SpMnPlan.rewrite();
}
}
Безвыходных ситуаций не бывает: DO LOOP WHILE TRUE
-
- Местный житель
- Сообщения: 552
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Челябинск
- Контактная информация:
Да, Johny, задача именно такая. Буду признателен, если скинете настройки объектов на naz@ap-plastic.ru
Спасибо за ответ.
Спасибо за ответ.
-
- Местный житель
- Сообщения: 552
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Челябинск
- Контактная информация:
Добрый день, коллеги! Помогите, кто может, с удалением позиций из объекта spobjass при помощи Java. Имеется метод delete(), удаляющий текущую позицию, но если применять его в цикле по таблице, позиции которых надо удалить, то похоже, возникают проблемы и ничего не происходит. Кто-нить решал подобную задачу?
В випе используется буфер, в джаве буфера нет..
В випе используется буфер, в джаве буфера нет..
-
- Местный житель
- Сообщения: 552
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Челябинск
- Контактная информация:
Разобрался с этим- для таблицы спецификации связей надо использовать специализированный метод.
Ещё вопрос к специалистам: как сформировать протокол в jav'e? В хелпнике есть описание функций работы с протоколом (типа RunProtocol), но из какой библиотеки они достаются, я не нашёл. Кто- нибудь решал подобную задачу?
Ещё вопрос к специалистам: как сформировать протокол в jav'e? В хелпнике есть описание функций работы с протоколом (типа RunProtocol), но из какой библиотеки они достаются, я не нашёл. Кто- нибудь решал подобную задачу?
-
- Местный житель
- Сообщения: 552
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Челябинск
- Контактная информация:
Проясните, кто в теме, пож., такую ситуацию: находимся в плановом документе, java- алгоритмом отыскиваем привязанную накладную на внутреннее перемещение в производстве (тип 506). Требуется перевести её в тип 600- накладную на внутреннее перемещение на складе. Для этого модифицируем katsopr.vidsopr->600 и пытаемся тоже сделать с полем spsopr.vidsopr->600.
Проблема: модификация katsopr сохраняется, модификация spsopr не сохраняется
Objacc.toIshDoc(PrZak,CurMnPlan(),44); //Все исходящие накладные
for(Objacc.getFirst();ResultOfNavigation;Objacc.getNext())
{
Sopr.setPosition(Objacc.NrecKuda);
if(Sopr.vidsopr == 506) //Накладная на внутреннее перемещение в производстве
{
Sopr.vidsopr = 600;
...
Sopr.rewrite();
SpNrec = Sopr.Nrec;
}
}
SpSopr.toSopr(SpNrec); //Нашли все спецификации накладной
for(SpSopr.getFirst();ResultOfNavigation;SpSopr.getNext())
{
SpSopr.VidSp = 600;
....
SpSopr.rewrite();
}
Проблема: модификация katsopr сохраняется, модификация spsopr не сохраняется
Objacc.toIshDoc(PrZak,CurMnPlan(),44); //Все исходящие накладные
for(Objacc.getFirst();ResultOfNavigation;Objacc.getNext())
{
Sopr.setPosition(Objacc.NrecKuda);
if(Sopr.vidsopr == 506) //Накладная на внутреннее перемещение в производстве
{
Sopr.vidsopr = 600;
...
Sopr.rewrite();
SpNrec = Sopr.Nrec;
}
}
SpSopr.toSopr(SpNrec); //Нашли все спецификации накладной
for(SpSopr.getFirst();ResultOfNavigation;SpSopr.getNext())
{
SpSopr.VidSp = 600;
....
SpSopr.rewrite();
}