Java скрипт - связь спецификации накладной и плана снабжения

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

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

Serg7907
Постоянный обитатель
Сообщения: 127
Зарегистрирован: 06 июл 2007, 18:25
Контактная информация:

Re: Java скрипт - связь спецификации накладной и плана снабж

Сообщение Serg7907 »

Спасибо! С эти вроде бы тоже стало понятнее. Только не могу понять, вот я запущу готовый алгоритм, а как у меня в Галактике в план снабжения спецификация из накладной попадет?
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Java скрипт - связь спецификации накладной и плана снабж

Сообщение zna »

Попадёт в результате модификации spmnpl. Вы делаете цикл по спецификации накладной, для текущей позиции spsopr находите соответствующую запись в spmnpl и модифицируете её. Посмотрите мой код- в нём пример модификации.
Serg7907
Постоянный обитатель
Сообщения: 127
Зарегистрирован: 06 июл 2007, 18:25
Контактная информация:

Re: Java скрипт - связь спецификации накладной и плана снабж

Сообщение Serg7907 »

Т.е. правильно ли я понимаю, что у Вас встаем на первую запись таблицы спецификации плана, затем в зависимости от статуса плана идет запись в БД, и так переходим от строки к строке...
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Java скрипт - связь спецификации накладной и плана снабж

Сообщение zna »

Нет, неправильно. Никакой проверки статуса нет.
Комментарии:

SpMnPlan.toMnPlan(CurPlan()); //Установили ограничение: выбрать все строки плана, относящиеся к текущему
if(SpMnPlan.getFirst() == true) //Встали на первую строку плана. Если строки нет- на выход
{
do //Цикл по строкам
{
SpMnPlan.Status = 281474976710658; // Модификация строки в буфере
SpMnPlan.rewrite(); //Запись строки из буфера в таблицу
SpMnPl.toSpMnPlan(SpMnPlan.Nrec); //Установили ограничение: выбрать все ячейки, относящиеся к текущей строке
SpMnPl.getFirst(); //Встали на первую ячейку
SpMnPl.StatusS = 281474976710658; // Модификация ячейки в буфере
SpMnPl.rewrite(); //Запись ячейки из буфера в таблицу
}
while(SpMnPlan.getNext() == true)
Serg7907
Постоянный обитатель
Сообщения: 127
Зарегистрирован: 06 июл 2007, 18:25
Контактная информация:

Re: Java скрипт - связь спецификации накладной и плана снабж

Сообщение Serg7907 »

Спасибо большое за комментарий, вот сейчас наступает ясность...
Еще момент: SpMnPlan.Status = 281474976710658 - откуда такое значение?
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Java скрипт - связь спецификации накладной и плана снабж

Сообщение zna »

Это nrec записи в каталоге статусов.
Serg7907
Постоянный обитатель
Сообщения: 127
Зарегистрирован: 06 июл 2007, 18:25
Контактная информация:

Re: Java скрипт - связь спецификации накладной и плана снабж

Сообщение Serg7907 »

Спасибо! Ну что ж, будем теперь разбираться.
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Java скрипт - связь спецификации накладной и плана снабж

Сообщение zna »

Пож-та, спрашивайте ещё. :-) На то он и форум
Serg7907
Постоянный обитатель
Сообщения: 127
Зарегистрирован: 06 июл 2007, 18:25
Контактная информация:

Re: Java скрипт - связь спецификации накладной и плана снабж

Сообщение Serg7907 »

Вот такой еще вопрос. А если такой связи MnPlan.nrec==objacct.cobject нет, как тогда еще через план на накладную выйти?
И я так понимаю, что все равно таблицу objacct необходимо задействовать, без нее никак...
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Java скрипт - связь спецификации накладной и плана снабж

Сообщение zna »

Serg7907 писал(а):Вот такой еще вопрос. А если такой связи MnPlan.nrec==objacct.cobject нет, как тогда еще через план на накладную выйти?
И я так понимаю, что все равно таблицу objacct необходимо задействовать, без нее никак...
Я не знаю логику связи Ваших документов. Наиболее естественно через objacct связать, но можно и по другому. Например, по совпадению спецификаций, дат, подразделений, аналитик.. да мало ли чего ещё.
Serg7907
Постоянный обитатель
Сообщения: 127
Зарегистрирован: 06 июл 2007, 18:25
Контактная информация:

Re: Java скрипт - связь спецификации накладной и плана снабж

Сообщение Serg7907 »

Условно, есть накладная (факт) со спецификацией и план снабжения (план) со спецификацией. Нужно через запуск алгоритма в плане снабжения при статусе "К исполнению" сделать так, чтобы на вкладке "Входящие документы" в плане снабжения в окно "Позиция входящего документа" попала спецификация накладной. МЦ в накладной и плане одинаковые, будем сверять факт и план, т.е. связка по идее пойдет через МЦ.
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Java скрипт - связь спецификации накладной и плана снабж

Сообщение zna »

Насколько я понял, сначала накладная никак не связана с планом. Можно сделать так:
Запускаете цикл по spsopr по всем накладным с данным видом (например, 101);
Далее в цикле:
Для текущей позиции spsopr находите МЦ;
Устанавливаете ограничения на спецификацию плана spmnplan по заголовку и МЦ;
Если запись найдена- находите ячейку спецификации spmnpl и модифицируете поле "факт";
Создаёте запись в objacct (если её ещё нет для данной накладной);
Можно и связи по спецификациям создать- это будут две записи в spobjacc, но это сложно и необязательно;
Переходите к следующей записи в цикле.

Вообщем, несложный алгоритмик.
Serg7907
Постоянный обитатель
Сообщения: 127
Зарегистрирован: 06 июл 2007, 18:25
Контактная информация:

Re: Java скрипт - связь спецификации накладной и плана снабж

Сообщение Serg7907 »

Спасибо за ответ, Вы правильно все поняли.
Как запустить цикл по spsopr и найти для текущей позиции МЦ, это я понял. А дальше "темный лес"((:
1.Установка ограничений на спецификацию плана spmnplan по заголовку и МЦ - это задается в методах объекта?
2. Если запись найдена- находите ячейку спецификации spmnpl и модифицируете поле "факт" -в данном случае поле факт - это изменяем определенные значения полей таблицы spsopr?
3. Создаёте запись в objacct - вот тут можно поподробнее.
Зараннее извиняюсь за вопросы, просто только еще учусь с Java работать. Какие-то простые вещи получаются, а чуть посложнее, затык....
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Java скрипт - связь спецификации накладной и плана снабж

Сообщение zna »

Да хватит Вам извиняться, понятно, что учитесь.. как и я. Здесь принято плюс ставить, если комментарии полезны.
1. spmnplan- объект, указанный как экземпляр. На вкладке свойств находите свойство что-то вроде "Установить ограничения по заголовку и изделию", называете его, ну пусть toSpMnPlanZagIzd.
В цикле по spsopr пишете SpMnPlan.toMnPlan(CurPlan(),spsopr.cmcusl,MC); //MC- это константа, её можно на вкладке "Константы" определить, для spmnplan- поищите
if (SpMnPlan.getFirst() == true)
{
SpMnPl.toSpMnPlan(SpMnPlan.Nrec); //Установили ограничение: выбрать все ячейки, относящиеся к текущей строке
SpMnPl.getFirst(); //Встали на первую ячейку
SpMnPl.PoleХ = 111; // Модификация ячейки к строке в буфере, PoleX- это "факт"
SpMnPl.rewrite(); //Запись ячейки из буфера в таблицу

.. см.п.2
}

2.Изменяете не spsopr- зачем его изменять, это же факт из накладной. Изменяете spmnplan.
3.Попозже..
Serg7907
Постоянный обитатель
Сообщения: 127
Зарегистрирован: 06 июл 2007, 18:25
Контактная информация:

Re: Java скрипт - связь спецификации накладной и плана снабж

Сообщение Serg7907 »

Спасибо, жду продолжения)))
Ответить