|
|
#1 |
|
Участник
|
Основы работы с FormTableControl
Добрый день!
Пытаюсь разобраться с элементом управления FormTableControl, в рамках следующей задачки: имеется мастер... на предыдущих шагах быбраны таблица и некоторые ее поля.... требуется предоставить возможность пользователю изменить значения выбраных полей. Для реализации я решил использовать FormTableControl в следующем контексте: сделать табличку из двух колонок, в первой будет название поля(например) в во второй значение соответствующего типа(которое должно вводиться)... подскажите пожайлуста с чего мне начать... и как это все можно организовать? пыталься искать по FormTableControl в форуме.... но ничего понятного не нашел....
|
|
|
|
|
#2 |
|
Moderator
|
см Form --> Tutorial_Form_Table
|
|
|
|
|
#3 |
|
Участник
|
|
|
|
|
|
#4 |
|
Moderator
|
Может быть приводить все значения к строке?
|
|
|
|
|
#5 |
|
Участник
|
|
|
|
|
|
#6 |
|
Участник
|
Посмотрите форму SysQueryForm - это форма наложения фильтров на запросы в формах.
Там как раз на любой случай жизни и lookup, и отображение полей - все, как вам нужно. Заодно и с формой этой разберетесь - полезно все таки
|
|
|
|
|
#7 |
|
Участник
|
но я все таки хотел разобраться с FormTableControl... а какая реализация будет более трудоемкой?
|
|
|
|
|
#8 |
|
Участник
|
ИМХО, та, которую я предложил. Вы же сразу сможете использовать таблицу TmpSysQuery - грид по ней и т.д. и т.п.
|
|
|
|
|
#9 |
|
Участник
|
хорошо.. задам более конкретный вопрос: для чего нужен метод editControl на FormTableControl? И почему после того как я его перекрыл и возвратил нужный контрол в таблице он не появился?
|
|
|
|
|
#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. |
|
|
|
|
#11 |
|
Участник
|
Правильно ли я понимаю что элементы Ctrl_ECCName и Ctrl_AmountView уже находятся на FormTableControl... а как быть если я хочу добавить некоторые другие элементы управления с помощью метода addControl?
Ах да, хочу отметить что основная проблема у меня с элементом ComboBox... т.к. за ранне не известен тип данных и поэтому в свойстве EnumType этого элемента управлнения ничего изначально не стоит... а когда я узнаю кокой тип будет я определяю его.... но если в FormTableControl будет несколько элементов ComboBox, то все они получают этот тип . и еще проблема: прив выборе значения из ComboBox оно не остается в нем... при переходе к другому элементу только что выбранное значение затирается ничего не понимаю
|
|
|
|
|
#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() |
|
|
|
|
#13 |
|
Участник
|
Хорошо, с добовлением контролов я справился... осталась еще одна: при использовании ComboBox в FormTableControl после выбора пользователем значения это значение не сохраняется, а тутже(при потере фокуса) затирается.... что для него нужно еще сделать?! А еще при использовании IntEdit после ввода некоторого числа оно тоже затирается и заменяется на какие то безумные числа...
Последний раз редактировалось PavelSR; 21.09.2006 в 10:54. |
|
|