Главная страница
    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.04 c
15-1146990913
Gast
2006-05-07 12:35
2006.06.04
День радио


15-1147352935
Alien1769
2006-05-11 17:08
2006.06.04
Вопросы по розрядной сортировке


2-1148046320
redlord
2006-05-19 17:45
2006.06.04
сообщения для функции sendmessage


15-1147046790
Точка Ру
2006-05-08 04:06
2006.06.04
Есть ли функция удаления всех комментариев?


3-1144959988
Krants
2006-04-14 00:26
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский