Вниз
Скачать: CL | DM;

Ввод данных в dbGrid посредством onSetText   Найти похожие ветки 

 
Евгений Р.   (2006-05-16 16:33) [0]

Обрабатываю данные, введенные в DbGrid посредством функции onSetText для соответствующего целочисленного (tSmallIntField) поля таблицы. При вводе необходимо использовать буквы. Однако dbGrid не реагирует на нажатие буквенных клавиш.


 
Плохиш ©   (2006-05-16 17:18) [1]


> Обрабатываю данные, введенные в DbGrid посредством функции
> onSetText для соответствующего целочисленного (tSmallIntField)
> поля таблицы. При вводе необходимо использовать буквы.

Сам-то понял что сказал? Зачем кто-то будет реагировать на буквы, если всем известно, что буквы там не допустимы?


 
Виталий Панасенко   (2006-05-17 12:25) [2]


> Плохиш ©   (16.05.06 17:18) [1]
>
> > Обрабатываю данные, введенные в DbGrid посредством функции
>
> > onSetText для соответствующего целочисленного (tSmallIntField)
>
> > поля таблицы. При вводе необходимо использовать буквы.
>
>
> Сам-то понял что сказал? Зачем кто-то будет реагировать
> на буквы, если всем известно, что буквы там не допустимы?
>

Наверное, человек вводит данные в 16-й ситеме, самой понятной для коенчного пользователя. Или на их планете на руках - 16 пальцев..:-)


 
jack128 ©   (2006-05-17 19:42) [3]

Плохиш ©   (16.05.06 17:18) [1]
Сам-то понял что сказал? Зачем кто-то будет реагировать на буквы, если всем известно, что буквы там не допустимы?

а что в этом такого?  

Евгений Р.   (16.05.06 16:33)
гм.  Я что то не вижу нормальных способов решения.  А если не нормально, то можно попробовать Query + UpdateObject + в Query в запросе писать select cast(IntField as char(50)) from table"  ну или там приведение типов  в LocalSQL делается..


 
Евгений Р.   (2006-05-19 01:27) [4]

Ну пальцев на нашей планете не 16, а 12, как и у всех нормальных людей, хотя смотря что считать пальцем...

Для чего это нужно:
Существовал документ, в которои среди прочего в dbGrid вводился код группы товара. Сейчас назрела необходимость для отдельных групп уточнять товар (по усмотрению оператора).  Поэтому там, где необходимо уточнения оператор через дробь после группы товара печатает его код. Не хочу загромождать форму дополнительной колонкой, тем более не известно, приживется ли. Коды группы и товара хранятся в разных полях.

Идею с UpdateObject не понял, наверное чегото не знаю. Поясните.

Выход нашел другой: в таблице есть служебное текстовое поле, для хранения идентификатора. Его я отразил в dbGrid и переопределил ф-ции onGetText и onSetText. Поэтому Grid "думает", что работаем с текстовым поле и не вводит ограничений, а я показываю и корректирую информацию из двух целочисленных полей.

Но мне кажется, что должен быть способ поизящнее. Ведь настройка фильтрации при вводе происходит на уровне dbGrid, в зависимости от типа поля.

К статьи, может можно заставить грид заполнять вычисляемое поля, вызывая ф-цию onSetText?


 
ЮЮ ©   (2006-05-19 10:58) [5]

Можно, только придется наследоваться, чтобы перекрыть "тупые методы" грида, относящие fkCalculated field к "неполноценным", как например

procedure TCustomDBGrid.SetColumnAttributes;
var
 I: Integer;
begin
 for I := 0 to FColumns.Count-1 do
 with FColumns[I] do
 begin
   TabStops[I + FIndicatorOffset] := Showing and not ReadOnly and DataLink.Active and
     Assigned(Field) and not (Field.FieldKind = fkCalculated) and not ReadOnlyField(Field);
   ColWidths[I + FIndicatorOffset] := Width;
 end;
 if (dgIndicator in Options) then
   ColWidths[0] := IndicatorWidth;
end;


в результате чего по Tab-у мы проскакиваем мимо вычислимого поля. Наверняка есть подовная засада и при создании редактора поля.


 
Евгений Р.   (2006-05-19 13:54) [6]

Если я правильно понял, то Вы согласны, что фильтр редактора ввода должен быть нам подконтролен.

А каким образом им управлять???????



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.026 c
15-1146930890
Nick Denry
2006-05-06 19:54
2006.06.04
как настроить apache локально?


1-1145892988
Meganop
2006-04-24 19:36
2006.06.04
Вызов chm файла из Delphi


15-1147205415
asd
2006-05-10 00:10
2006.06.04
Куда вставить код проги?


6-1138960505
DelphiN!
2006-02-03 12:55
2006.06.04
Сомастоятельная обработка ошибок в idPOP3 Indy10


3-1144923173
KyRo
2006-04-13 14:12
2006.06.04
Диалог ConnectionString




   Наверх