|
20.09.2006, 12:22 | #1 |
Участник
|
Основы работы с FormTableControl
Добрый день!
Пытаюсь разобраться с элементом управления FormTableControl, в рамках следующей задачки: имеется мастер... на предыдущих шагах быбраны таблица и некоторые ее поля.... требуется предоставить возможность пользователю изменить значения выбраных полей. Для реализации я решил использовать FormTableControl в следующем контексте: сделать табличку из двух колонок, в первой будет название поля(например) в во второй значение соответствующего типа(которое должно вводиться)... подскажите пожайлуста с чего мне начать... и как это все можно организовать? пыталься искать по FormTableControl в форуме.... но ничего понятного не нашел.... |
|
20.09.2006, 12:24 | #2 |
Moderator
|
см Form --> Tutorial_Form_Table
|
|
20.09.2006, 12:29 | #3 |
Участник
|
|
|
20.09.2006, 12:34 | #4 |
Moderator
|
Может быть приводить все значения к строке?
|
|
20.09.2006, 12:43 | #5 |
Участник
|
|
|
20.09.2006, 12:49 | #6 |
Участник
|
Посмотрите форму SysQueryForm - это форма наложения фильтров на запросы в формах.
Там как раз на любой случай жизни и lookup, и отображение полей - все, как вам нужно. Заодно и с формой этой разберетесь - полезно все таки |
|
20.09.2006, 13:22 | #7 |
Участник
|
но я все таки хотел разобраться с FormTableControl... а какая реализация будет более трудоемкой?
|
|
20.09.2006, 13:24 | #8 |
Участник
|
ИМХО, та, которую я предложил. Вы же сразу сможете использовать таблицу TmpSysQuery - грид по ней и т.д. и т.п.
|
|
20.09.2006, 14:07 | #9 |
Участник
|
хорошо.. задам более конкретный вопрос: для чего нужен метод editControl на FormTableControl? И почему после того как я его перекрыл и возвратил нужный контрол в таблице он не появился?
|
|
20.09.2006, 16:39 | #10 |
Участник
|
editControl rabotaet na podobie EditMethod... to est pri pererisovke i izmenenii tekushego kursora vizivajetsja etot metod, stob otobrazit i dlja vvoda informacii
vot moj primer, kak vvseti "plan" po mesjacam i vse rabotaet Код: public FormControl editControl(int _Column, int _Row) { FormControl ret; //ret = super(_Column, _Row); ret = Ctrl_Dummy; if ( _column <= #MONTHS_OFFSET ) { switch ( _column ) { case 1 : ret = Ctrl_ECCName; break; case 2 : ret = Ctrl_AmountView; break; } } else { ret = Ctrl_AmountEdit; } return ret; } Последний раз редактировалось Delfins; 20.09.2006 в 16:45. |
|
21.09.2006, 07:08 | #11 |
Участник
|
Правильно ли я понимаю что элементы Ctrl_ECCName и Ctrl_AmountView уже находятся на FormTableControl... а как быть если я хочу добавить некоторые другие элементы управления с помощью метода addControl?
Ах да, хочу отметить что основная проблема у меня с элементом ComboBox... т.к. за ранне не известен тип данных и поэтому в свойстве EnumType этого элемента управлнения ничего изначально не стоит... а когда я узнаю кокой тип будет я определяю его.... но если в FormTableControl будет несколько элементов ComboBox, то все они получают этот тип . и еще проблема: прив выборе значения из ComboBox оно не остается в нем... при переходе к другому элементу только что выбранное значение затирается ничего не понимаю |
|
21.09.2006, 10:01 | #12 |
Участник
|
a kak eto mozno doboljat Control i neznat' chto tam budet - IMHO, osibka v logike, v rezultate i budet osibka v kode/runtime.
V tvojem slucaee pomozet Control Mapping - delaes 2 massiva/map-a FormControl controls[]; boolean initializedControls[]; dalse uze isches shto u tebja est i chego netu. PS: da, kontroli nado sozdovat do prorisovki. poetomu oni dobavleni v FormTableControl zaranee - dalse uze tolko prorisvka po kodu editControl() |
|
21.09.2006, 10:31 | #13 |
Участник
|
Хорошо, с добовлением контролов я справился... осталась еще одна: при использовании ComboBox в FormTableControl после выбора пользователем значения это значение не сохраняется, а тутже(при потере фокуса) затирается.... что для него нужно еще сделать?! А еще при использовании IntEdit после ввода некоторого числа оно тоже затирается и заменяется на какие то безумные числа...
Последний раз редактировалось PavelSR; 21.09.2006 в 10:54. |
|