Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];

Вниз

Ввод данных в 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 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.037 c
8-1135515760
Glex
2005-12-25 16:02
2006.06.04
Как управлять Z-Index ом у TPanel?


15-1146930296
Sergey Masloff
2006-05-06 19:44
2006.06.04
Мотивация при смене места работы. Какой % прибавки оклада


2-1147694804
Ray
2006-05-15 16:06
2006.06.04
Сделать обводку текста


15-1147449810
vrem
2006-05-12 20:03
2006.06.04
Удивляете ли Вы сами себя? :)


15-1146837235
syte_ser78
2006-05-05 17:53
2006.06.04
Просьба. Если кому не лень...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский