Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DBGrid / 11 сообщений из 11, страница 1 из 1
13.01.2003, 00:52
    #32089326
DBGrid
Всем привет.
DBGrid.
Хотелось бы по клику на строке грида узнать ID набора данных и вывести информацию в поля Edit,и т.п.Посоветуйте,как это лучше сделать.Я полагаю нужно связать процедуру клика с хп на сервере с последующей выдачей в поля Edit.Но не знаю как узнать номер ID строки,ведь у грида нет Items.Что нужно сделать.
...
Рейтинг: 0 / 0
13.01.2003, 06:36
    #32089341
AVL
AVL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBGrid
что мешает получать ID в запросе для грида?
...
Рейтинг: 0 / 0
13.01.2003, 06:44
    #32089344
LexusR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBGrid
Стандартная схема отображения данных в DBGrid
подразумевает наличие цепочки
TDataSet(TTable,TQuery,adoTable,adoQuery...или еще какой-либо потомок
TDataSet)
->TDataSource(интерфейсный компонент между TDataSet и TDBGrid)
->и собственно TDBGrid
так что если требуемая информация(ID, Name...) находятся в наборе данных
TDataSet то при перемещении по DBGRid возникает событие
в компоненте TDataSource - OnDataChange где можно получить значение
любого поля набора данных текущей строки.
...
Рейтинг: 0 / 0
13.01.2003, 07:06
    #32089345
Alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBGrid
Код: plaintext
1.
Edit1.Text:=IntToStr(fmMain.DBGrid.Fields[ 0 ].asInteger);

что-то типа этого...
и вешай на OnCellClick
...
Рейтинг: 0 / 0
13.01.2003, 08:29
    #32089357
Groove
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBGrid
Добрый день, господа!
Есть небольшая проблема,
для пользователей есть задача (банальное заполнение некой таблицы)

Код: plaintext
1.
2.
3.
4.
ID
Field1
Field2
Field3
ItemType

в зависимости от ItemType (1,2,3)
обязательно надо заполнить поля (Field1);(Field1,Field2);(Field1,Field2,Field3), соответственно. Это для того, чтобы элемент считался заполненным.
Моя задача в гриде выделить разными цветами обработанные элементы и необработанные.
В StringGride обрабатывал OnDrawCell, там все ясно есть Col, есть Row
А тут что то не допру...
Вроде бы надо при каждой отрисовке строки, ячейки делать запросы типа
Код: plaintext
1.
SELECT * FROM Table
WHERE ID=там идентификатор...

потом смотреть
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
case ItemType of
  1 :
  begin
    if Field1<>null then ЗАПОЛНЕНО
    else НЕ ЗАПОЛНЕНО;
  end;
  2 :
  begin
    if (Field1<>null) and (Field2<>null) then ЗАПОЛНЕНО
    else НЕ ЗАПОЛНЕНО;
  end;
  3 :
  begin
    if (Field1<>null) and (Field2<>null)  and (Field3<>null) then ЗАПОЛНЕНО
    else НЕ ЗАПОЛНЕНО;
  end;
end;
...
Рейтинг: 0 / 0
13.01.2003, 09:02
    #32089362
Voha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBGrid
Вот пример у меня работает. Если я правильно поня что ты хочешь.
Более подробно можно почитать на //www.delphikingdom.com.

procedure TFrmUsers.DBGridUsersDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if TBEdit.Down then exit;
//проверяешь содержимое поля
case DM.IBQueryUsersUserID.AsInteger of
0: begin
TDBGrid(Sender).Canvas.Brush.Color:=clSkyBlue;
TDBGrid(Sender).Canvas.Font.Color:=clWindowText;
end;
2: begin
TDBGrid(Sender).Canvas.Brush.Color:=clMoneyGreen;
TDBGrid(Sender).Canvas.Font.Color:=clRed;
end;
end;
if gdSelected IN State then
begin
TDBGrid(Sender).Canvas.Brush.Color:= clHighLight;
TDBGrid(Sender).Canvas.Font.Color := clHighLightText;
end;
// А теперь пусть он рисует сам !
TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);

end;
...
Рейтинг: 0 / 0
13.01.2003, 09:07
    #32089363
Voha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBGrid
На первую строку "if TBEdit.Down then exit;" не обращай внимание,
это к теме не относится.
...
Рейтинг: 0 / 0
13.01.2003, 13:23
    #32089544
Groove
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBGrid
2Voha - большое спасибо
только еще проблеммочка появилась
я беру данные с SQL server и экспортирую в Access
поле типа Double с тремя знаками после запятой (при открытии в Access)
при отображении в DBGrid число 3,454 отображается как 3,453957648934234
...
Рейтинг: 0 / 0
13.01.2003, 13:35
    #32089556
Voha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBGrid
Это называется: дайте воды попить, ато так есть хочется, что переночевать негде. :-)
В свойсте TFloatField.DysplayFormat я обычно ставлю "#0.000", если конечно есть TField. Попробуй, может получится а может нет.
А может я и вовсе не прав.
...
Рейтинг: 0 / 0
13.01.2003, 14:19
    #32089596
Shark
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBGrid
Мне денежный формат нравится. Я в нем всегда количества храню.
...
Рейтинг: 0 / 0
13.01.2003, 21:42
    #32089940
DBGrid
Alex:
Большое спасибо.Все работает.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DBGrid / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]