27.02.2009, 13:39 | #1 |
Участник
|
Я на форме расположил две subform( subform 1, и subform 2 ), и кнопку (comand button)
К subform 1 подключена форма табличного типа, SourceTable( таблица item с полями code и name). К subform 2 подключена форма табличного типа,SourceTable(таблица xxx с полями code и name). Надо сделать так: Например открыв форму находим строку с нужным товарам в subform 1 (в таблице товаров), становимся на эту строку(чтобы строка пометилась). Далее нажимаем на кнопку помеченная строка с нужным нам товаром должна скопироваться в subform 2 (таблицу xxx) Подскажите пожалуйста, как можно это сделать. |
|
27.02.2009, 14:23 | #2 |
Участник
|
В сабформе 1 делаем функцию, возвращающую Item с кодом:
GetItem Exit(Rec) В основной форме в OnPush кнопки пишем код: myItem := CurrForm.Subform1Name.FORM.GetItem; Subform1Name - это название первой сабформы, которое нужно присвоить. И дальше делаем вставку в таблицу xxx данных из myItem. Затем апдейтим сабформу 2. |
|
27.02.2009, 16:18 | #3 |
Участник
|
Создал функцию для subform1. добавил Exit(Rec) при компилировании выдает ошибку
' := не может быть выполнена для массивов. Выбирите один элемент массива, используя индексы: Мой массив [..] ' А что означает переменная my Item? Таблица item? |
|
27.02.2009, 17:13 | #4 |
Участник
|
Да, myItem это Record подтипа Item.
Про функцию я немного неправильно написал. У функции должен быть входной var параметр inItem типа record подтипа Item. В функции должно быть: inItem := Rec; Использоваться функция должна: CurrForm.Subform1Name.FORM.GetItem(myItem); А дальше обработка myItem. |
|
28.02.2009, 00:28 | #5 |
Участник
|
Вроде все получилось, только данные из myitem не всавляются в xxx.
пишу: CurrForm.Subform1Name.FORM.GetItem(myItem); xxx.item:=myitem.item: xxx.name:=myitem.name; xxx.insert; не пойму в чем ошибка. |
|
28.02.2009, 14:57 | #6 |
Участник
|
А какой первичный ключ в xxx?
Какая связь между основной формой и субформой 2. И еще вопрос, хоть это мало вероятно, но все же. Субформа 2 показывает данные из реальной таблицы, не темповой? |
|
28.02.2009, 19:34 | #7 |
Участник
|
В таблице xxx. первичный ключ item(в первом сообщении я назвал это поле code).
Обе субформы с главной формой, связи не имеют. Временных таблиц не используется. |
|
28.02.2009, 21:54 | #8 |
Участник
|
|
|
02.03.2009, 13:58 | #9 |
Участник
|
Большое Вам спаибо, все получилось. Я ошибся, когда создавал входной var параметр inItem, не поставил галку.
А подскажите пожалуйста еще, как сделать чтобы после нажатия на кнопку у меня все сразу обновлялось. Я пробовал разные варианты используя UPDATE и RESET применяя их и к субформам и главной форме, но ни чего не вышло. |
|
02.03.2009, 14:18 | #10 |
Участник
|
Если update главной формы не помогает, то сделайте следующее:
1. В субформе 2 создайте фукцию DoFormUpdate(inDoSave: boolean) с кодом: CurrForm.Update(inDoSave); 2. В главной форме после вставки записи добавьте код: CurrForm.Subform2Name.FORM.DoFormUpdate(False); Должно помочь. |
|
02.03.2009, 14:32 | #11 |
Участник
|
Это помогло, спасибо.
|
|