12.09.2006, 10:37 | #1 |
Участник
|
Люди, помогите. Я в программировании на C/AL новичок. С толкнулся вот с чем.
На форме есть таблица и текстовые поля, связанные с полями таблицы. Нужно содержание текстового поля передать в глобальную переменную. Не знаю как это сделать. |
|
12.09.2006, 11:11 | #2 |
Участник
|
Можно узнать зачем, а не как вы это пытаетесь сделать? Условие задачи ..
|
|
12.09.2006, 11:23 | #3 |
Участник
|
У формы есть переменная Rec которая ссылается на запись таблицы на которой стоит курсор - и соответсвенно присвоить переменной значение поля будет Переменная = Rec.Поле
|
|
12.09.2006, 11:27 | #4 |
Участник
|
Переменная (не важно какая глобальная или локальная) должна содержать значение текстового поля (Text Box), a не значение поля в таблице. Затем значение этой переменной передать во внешний модуль.
|
|
12.09.2006, 11:30 | #5 |
Участник
|
Цитата:
Стремно все у вас там как-то... |
|
12.09.2006, 12:36 | #6 |
Участник
|
Как именно это сделать: передать значение и где написать?
Например. Есть глобальная переменная N. И поле Number в таблице Blanck Table. На форме есть Text Box, который отображает значения этого поля. Его св-во SourceExpr установлено - Number. Заранее спасибо. |
|
12.09.2006, 12:48 | #7 |
NavAx
|
Ну на том же OnAfterGetRecord пишите: N := Rec.Number (я правильно понимаю, что таблица отображается в TableBox?)
Затем передавайте во внешний модуль... (ВнешнийМодуль.SetValue(N))
__________________
"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери |
|
12.09.2006, 12:53 | #8 |
Участник
|
Цитата:
ПС. Смотрите код других форм. Ваши задачи наверное будут не сильно отличаться от тех, что уже реализованы в нави. Делайте по аналогии, стараясь понять почему так. И .. потом у вас есть наставник -) А вы его ученик, насколько я понял -) |
|
12.09.2006, 13:42 | #9 |
Участник
|
Ваши решения работают. Спасибо за консультацию. Опишу более подробно ситуацию.
Таблица отображается в Table Box. Она работает только на чтение. Text Box содержит значения поля Number. Изменения данных, производящиеся в Text Box, не должны происходить в таблице. Измененные данные должны попасть в переменную N. |
|
12.09.2006, 14:20 | #10 |
Участник
|
Цитата:
Сообщение от Programmer
Ваши решения работают. Спасибо за консультацию. Опишу более подробно ситуацию.
Таблица отображается в Table Box. Она работает только на чтение. Text Box содержит значения поля Number. Изменения данных, производящиеся в Text Box, не должны происходить в таблице. Измененные данные должны попасть в переменную N. |
|
12.09.2006, 15:37 | #11 |
Участник
|
Ваше предложение работает.
Но все же желательно, чтобы текстбокс был один, который был бы привязан к полю таблицы и можно было бы изменять эти данные не внося изменений в таблицу, а отправляя это изменение в переменную. |
|
12.09.2006, 15:51 | #12 |
NavAx
|
Ну расположите текстбокс (сорс - переменная) не на тейблбоксе, в где-нибудь мимо него.
В остальном - все то же самое. На OnAfterGetRecord получаете в переменную значение поля, на OnValidate отправляете изменение значения переменной в свой "внешний модуль".
__________________
"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери |
|
12.09.2006, 15:56 | #13 |
Участник
|
|
|
12.09.2006, 16:20 | #14 |
Участник
|
Как имеено получить значение текстбокса, который связан с таблицей, в переменную?
|
|
12.09.2006, 19:34 | #15 |
NavAx
|
Значение текстбокса - это его соурсэкспрешн (может переменная, может поле таблицы...).
Переменная N Соурсэкспрешн S N := S;
__________________
"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери |
|
13.09.2006, 12:34 | #16 |
Участник
|
Огромное спасибо за помощь и предложенные варианты. Разобрался как делать.
Появился еще один вопрос: как получить ID строки? Со столбцом все понятно. Код будет следующий: P:=xRec.FIELDNO(xRec."Number office"); где P - переменная, а Number office - второй столбец в таблице Table_2. В результате P содержит 2. Как примерно тоже самое сделать со сторокой? |
|
13.09.2006, 12:39 | #17 |
NavAx
|
Вы о чем?
Зачем Вам FIELDNO, что Вы собираетесь с ним делать? Что Вы подразумеваете под ID строки? Есть понятие "первичный ключ", который однозначно определяет запись в таблице. Вы об этом?
__________________
"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери |
|
13.09.2006, 12:45 | #18 |
Участник
|
|
|
13.09.2006, 12:49 | #19 |
Участник
|
Дуд правильно понял!!!
Переменная P должна содержать значение "первичного ключа" строки, а не столбца. Извениите! Вновь опечатался. Переменная P должна содержать "первичный ключ" записи. |
|
13.09.2006, 12:52 | #20 |
Участник
|
Цитата:
ВремКопияРек := Rec; ВремКопияРек.INSERT; И будет у вас массив ID строк таблицы ... |
|