|
02.05.2011, 13:03 | #1 |
newborn in DAX
|
копирование строки в таблице
Господа, подкиньте идейку. Надо копировать строку из таблицы и добавить её в ту же таблицу и изменить значение одного или двух полей.
первая мысль создать второй инстант той же таблицы с выбраной строкой и каждое поле добавлять по отдельности. Звучит не особо. Тем более что количество полей периодически меняется и при каждом изменении надо будет помнить поменять и тут. Заранее спасибо Что-то подобное Select * from tmp_tbl where ... tbl.f = tmp_tbl.f tbl.f1 = tmp_tbl.f1 tbl.f2 = tmp_tbl.f2 .... Может существует что-то типа foreach field in table |
|
02.05.2011, 13:39 | #2 |
Мрачный тип
|
Buf2Buf() с последующим изменением только отличающихся полей поможет ?
__________________
Мы летаем, кружимся, нагоняем ужасы ... |
|
|
За это сообщение автора поблагодарили: timaluhs (1). |
02.05.2011, 14:10 | #3 |
newborn in DAX
|
похоже на то что надо, надо только менять значения полей до вставки
|
|
02.05.2011, 18:44 | #4 |
Участник
|
Цитата:
Цитата:
PS. А еще больше "веселых" косяков можно словить в том случае, если перед вставкой новой записи не вызывать validateWrite(). |
|
|
За это сообщение автора поблагодарили: timaluhs (1). |
03.05.2011, 09:45 | #5 |
newborn in DAX
|
Спасибо gl00mie за мысли к размышлению только мне ещё "учиться, учиться и учиться" до такого понимания.
Что такое initValue() и когда им пользуются. И зачем нужны перекрестные ссылки и с чем их едят? И написание initFromXX() требует более подробного объяснения - как это "сгенерить из списка полей с помощью поиска и замены с регулярными выражениями" для меня звучит как на иностранном - каждое слово понятно в отдельности, а смысл мысли непонятен. В моей задаче создаётся таблица из класса которая фактически является объединением друх таблиц чисто для удобства просмотра. Меня можно сказать кинули в море axapta, а в качестве спасательного круга - google. Спасибо форуму - с вашей помощью удалось решить уже несколько задачек, которые даже было не понятно как начинать. Последний раз редактировалось timaluhs; 03.05.2011 в 09:49. |
|
02.05.2011, 13:49 | #6 |
северный Будда
|
или tbl.data(tmp_tbl) с последующим изменением нужных полей
__________________
С уважением, Вячеслав |
|
02.05.2011, 14:29 | #7 |
северный Будда
|
так data сама по себе вставку в таблицу не делает. Она только полностью копирует табличную переменную. Надо сделать так:
X++: tbl.data(tmp_tbl); tbl.Field1 = newValue_1; tbl.Field2 = newValue_2; tbl.insert();
__________________
С уважением, Вячеслав |
|
03.05.2011, 10:57 | #8 |
Участник
|
Так если новая таблица создается "чисто для удобства просмотра", то, может, не умножать сущности без необходимости, а сделать на форме join или использовать view'шку?..
|
|
Теги |
как правильно, копирование строк |
|
|