VIP, копирование строки таблицы

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

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

Johny
Местный житель
Сообщения: 291
Зарегистрирован: 29 мар 2005, 17:49
Откуда: С-Петербург
Контактная информация:

VIP, копирование строки таблицы

Сообщение Johny »

Есть ли функция, позволяющая скопировать строку таблицы? Или нужно писать свою? Больно не хочеться, для каждой таблицы, строку которой нужно скопировать создавать некую структуру с перечислением всех полей (просто таблцицы типа MNPLAN и пр слишком объемные)

А еще лучше, хотелось бы узнать как называется фейс (и параметры) стандартный, который отрабатывает в модуле Планирование производства по Ctrl+F2 и Ctrl+F3 (Копировать документ в буфер и вставить из буфера),
может его как-то прикрутить надо.

Задача - пакетом скопировать плановые документы, и кое-какую коррекцию произвести на исходных документах.
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

Делаете навигацию по таблице, останавливаетесь на нужной записи.

table.nrec :=0;
table.field := нужные значения
...........
table.field := нужные значения
insert current table;

Запись вставится в таблицу с теми полями, которые вы не трогали и с теми, которые вы изменили (с измененными значениями).

Единственное - не менять поля, по которой произведена подцепка, либо попробовать делать External _Loop
Johny
Местный житель
Сообщения: 291
Зарегистрирован: 29 мар 2005, 17:49
Откуда: С-Петербург
Контактная информация:

Сообщение Johny »

Попробую.
Одно уточнение
table.nrec :=0
Это к чему? Это обязательно или тут так просто вписано?
Безвыходных ситуаций не бывает: DO LOOP WHILE TRUE
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

Это что бы обнулить нрек, при вставке, он присвоется следующий по значению. Если не сделать - возникнет исключение по дублированию Нрека.
Johny
Местный житель
Сообщения: 291
Зарегистрирован: 29 мар 2005, 17:49
Откуда: С-Петербург
Контактная информация:

Сообщение Johny »

А вот и спасибо, а вот и получилось. Ухожу в работу. :?
Безвыходных ситуаций не бывает: DO LOOP WHILE TRUE
oiko
Местный житель
Сообщения: 419
Зарегистрирован: 29 мар 2005, 17:49

Сообщение oiko »

Используй алгоритм 22 - копирование и агрегация
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

oiko
а по подробнее можно, что за алгоритм 22 ?
Johny
Местный житель
Сообщения: 291
Зарегистрирован: 29 мар 2005, 17:49
Откуда: С-Петербург
Контактная информация:

Сообщение Johny »

Это алгоритм в производственных модулях, который позволяет копировать документы. Только он тут не подходит, я пробовал

Эх, если бы оно работало. Он не подходит. Причина - нуно, чтобы входящие связки сохранялись в первозданном виде. Пример:

Заявка->План1.

А если копирую план 22-м, то связь будет уже План1->План2, а нуно Заявка->План2

И там еще нюансы есть.
Безвыходных ситуаций не бывает: DO LOOP WHILE TRUE
oiko
Местный житель
Сообщения: 419
Зарегистрирован: 29 мар 2005, 17:49

Сообщение oiko »

Связка будет Заявка - План1 -План2
Зато и копировать можно в другой шаблон
oiko
Местный житель
Сообщения: 419
Зарегистрирован: 29 мар 2005, 17:49

Сообщение oiko »

Можно настроить корректировку плана2 по изменению плана1
Johny
Местный житель
Сообщения: 291
Зарегистрирован: 29 мар 2005, 17:49
Откуда: С-Петербург
Контактная информация:

Сообщение Johny »

Использовать 43 ?
Тут не подходит.
Тут задача какая:
Есть 6 документов (6 разделова плана)
Они формируются на основе заявок. (Получается, что для одной заявки 6 исходящих в каждый тип плана)
Так вот эти планы являются текущими. И из этих планов нужно удалять позиции по отработанным заявкам.
Удалять не проблема, проблема, что иногда требуется выгрузить план за старый период. Вот для этого я и хочу делать "снимок" за каждый период планирования. А текущие планы корректировать (удалять позиции по закрытым заявкам на дату архивации)
Безвыходных ситуаций не бывает: DO LOOP WHILE TRUE
oiko
Местный житель
Сообщения: 419
Зарегистрирован: 29 мар 2005, 17:49

Сообщение oiko »

Можно как раз после создания плана его копировать с другим шаблоном назвав например "Архив" и дальше работать можно из заявок формировать 2 плана рабочий и архивный. Можно не удалять позиции а ставить им статус закрытый (или без статуса) работу алгоритмов настроить на статусы позиций, настроить фильтр представления на нужный статус сразу т.е. изменил статус и позиция сразу исчезла из видимости и т.д.
Johny
Местный житель
Сообщения: 291
Зарегистрирован: 29 мар 2005, 17:49
Откуда: С-Петербург
Контактная информация:

Сообщение Johny »

С этой стороны я не заходил, настроил по другому.

Тут у меня на вскидку кое какие вопросы сразу появляются:
1) Архивных планов должно быть много (за каждый период планирования, то есть 12 штук в год) Тут надо настраивать еще как-то автоматическое создание нового плана в какой-то момент времени и обзывание его архивным. Ну в принципе можно поковыряться (хотя как это сделать я сходу и не скажу)

2)
Можно не удалять позиции а ставить им статус закрытый ... изменил статус и позиция сразу исчезла из видимости
А вот тут уже проблема. Активный план и так содержит порядка 500 позиций (строк) Так он уже в таком виде тормозит. Что с ним будет если из него еще и позиции не удалять, я вообще не предстваляю.
А статусы я активно использую. Их куча у меня.
Безвыходных ситуаций не бывает: DO LOOP WHILE TRUE
oiko
Местный житель
Сообщения: 419
Зарегистрирован: 29 мар 2005, 17:49

Сообщение oiko »

Johny писал(а):С этой стороны я не заходил, настроил по другому.

Тут у меня на вскидку кое какие вопросы сразу появляются:
1) Архивных планов должно быть много (за каждый период планирования, то есть 12 штук в год) Тут надо настраивать еще как-то автоматическое создание нового плана в какой-то момент времени и обзывание его архивным. Ну в принципе можно поковыряться (хотя как это сделать я сходу и не скажу)

Так делай одновременно по 2 раным шаблонам план и все, в одном работай а в другом никаких алгоритмов не прописывай.

2)
Можно не удалять позиции а ставить им статус закрытый ... изменил статус и позиция сразу исчезла из видимости
А вот тут уже проблема. Активный план и так содержит порядка 500 позиций (строк) Так он уже в таком виде тормозит. Что с ним будет если из него еще и позиции не удалять, я вообще не предстваляю.
А статусы я активно использую. Их куча у меня.
У меня ПЗ содержит более 2000 позиций я нем ничего не удаляю, так и мило живем с небольшими/большими тормозами. :smile:
Johny
Местный житель
Сообщения: 291
Зарегистрирован: 29 мар 2005, 17:49
Откуда: С-Петербург
Контактная информация:

Сообщение Johny »

Так у меня план всего первый месяц толком работает. Соотв, через пару месяцев совсем завал с таким подходом будет. Не, я быстрее фейс напишу. Тем более, что эти таблы типа MNPLAN, OBJACCT, SPMNPL и пр. от зубов уже отскакивают :)
Осталось только алгоритм проработать
Безвыходных ситуаций не бывает: DO LOOP WHILE TRUE
Ответить