Поиск:

Ответ в темуСоздание новой темы Создание опроса
> создание компонента DBGrid в коде программы 
V
    Опции темы
misskio
Дата 31.10.2006, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 26.10.2006

Репутация: нет
Всего: нет



здравствуйте

создаю компонент Query
создаю табличку и заполняю ее данными:

Код

 Query.SQL.Add('if (select object_id(''tempdb..#tmp_cf_fund'',''u'')) is not null drop table #tmp_cf_fund');
  Query.SQL.Add('create table #tmp_cf_fund(');
  Query.SQL.Add('sid varchar(30),');
  Query.SQL.Add('state_sid varchar(30),');
  Query.SQL.Add('type_sid varchar(30),');
  Query.SQL.Add('item_name varchar(255),');
  Query.SQL.Add('item_remark varchar(255),');
  Query.SQL.Add('state_name varchar(50),');
  Query.SQL.Add('type_name varchar(50),');
  Query.SQL.Add('partner_code varchar(50),');
  Query.SQL.Add('partner_name varchar(255),');
  Query.SQL.Add('partner_short_name varchar(255),');
  Query.SQL.Add('bselect bit)');

  Query.SQL.Add('insert into #tmp_cf_fund(sid, state_sid, type_sid, item_name, item_remark, state_name, type_name, partner_code, partner_name, partner_short_name)');
  Query.SQL.Add('execute dbo.ap_11535000000029348');
  Query.SQL.Add('update #tmp_cf_fund set bselect = 0');

  Query.SQL.Add('select * from #tmp_cf_fund');


теперь мне надо динамически создать объект DBGridEh с использованием лишь двух полей:
элементами  DBGridEh  являются чекбоксы с caption по полю partner_short_name,
а признаком того, что некий чексбох выбран будет то, что значение bselect = 1
если же значение bselect = 0, то чексбокс неактивен

Подскажите, пожалуйста, как это сделать

Это сообщение отредактировал(а) misskio - 31.10.2006, 11:03
PM MAIL   Вверх
superVad
Дата 31.10.2006, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 3
Всего: 15



а почему именно динамически?
может создать зарание и сделать невидимым, а потом когда надо видимым?
PM MAIL   Вверх
Akella
Дата 31.10.2006, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(misskio @  31.10.2006,  10:58 Найти цитируемый пост)
создаю компонент Query

а где код создания Query?
PM MAIL   Вверх
misskio
Дата 31.10.2006, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 26.10.2006

Репутация: нет
Всего: нет



Цитата(superVad @  31.10.2006,  11:46 Найти цитируемый пост)
а почему именно динамически?
может создать зарание и сделать невидимым, а потом когда надо видимым? 


у меня сама форма создается динамически

Добавлено @ 11:53 
Цитата(Akella @  31.10.2006,  11:48 Найти цитируемый пост)
а где код создания Query? 


Код

Query := TADOQuery.Create(nil);
Query.ConnectionString :=Config.GetAladdinDBConnStr;
Query.SQL.Clear;


PM MAIL   Вверх
superVad
Дата 31.10.2006, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 3
Всего: 15



создаеш грид

потом чтото типа:

DBGridEh1.Columns[0] := TColumnEh.Create(не знаю что здесь - почитай в хелпе);

и потом по хелпу - присвоить DBGridEh1.Columns[0].Checkboxes true и в KeyList:
DBGridEh1.Columns[0].KeyList.Strings[0] := '1';
DBGridEh1.Columns[0].KeyList.Strings[1] := '0';


Цитата

property  Checkboxes: Boolean;

Description
Checkboxes automativcaly true for boolean field. To show checkboxes for non boolean fields fill first line of KeyList that corresponds to the checked state of the checkbox, second line -  non checked state, and set Checkboxes to True. Line of KeyList can represent more than one value in a semicolon-delimited list of items.

DBGridEh1.Columns[1].KeyList.Strings[0] := 'True;Yes;On';

DBGridEh1.Columns[1].KeyList.Strings[1] := 'False;No;Off';

For boolean field not need to fill keyList.

EhLib Software


я примерно написал  smile 
PM MAIL   Вверх
Akella
Дата 31.10.2006, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Код

//Что-то вроде  этого
....
  private
    { Private declarations }

   Grid:TDBGridEh;
...

procedure TForm1.Button1Click(Sender: TObject);
Var
ds:TDataSource;
begin
  ds := TDataSource.Create(Form1);
  ds.DataSet := Query1;

  Grid := TDBGridEh.Create(Form1);
  Grid.Parent := Form1;
  Grid.Align := alTop;
  Grid.Flat := true;
  Grid.Visible := true;
  Grid.DataSource := ds;


  with Grid.Columns.Add do begin
    FieldName := Query1.Fields[0].FieldName;
    Title.Caption := 'Заголовок1';
    Checkboxes := true;
    KeyList.Add('1;T;Y;');
    KeyList.Add('0;F;N;');
  end;

  with Grid.Columns.Add do begin
    FieldName := Query1.Fields[1].FieldName;
    Title.Caption := 'Заголовок2';
  end;

  Query1.Close;
  Query1.Open;
//  Grid.Columns.RebuildColumns;
end;



procedure TForm1.Button2Click(Sender: TObject);
begin
  FreeAndNil(Grid);
end;


Это сообщение отредактировал(а) Akella - 31.10.2006, 12:37
PM MAIL   Вверх
misskio
Дата 31.10.2006, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 26.10.2006

Репутация: нет
Всего: нет



спасибо superVad
все правильно написал

только:

Цитата(superVad @  31.10.2006,  12:17 Найти цитируемый пост)
For boolean field not need to fill keyList


это же означает, что для булевых значений не надо определять?

Добавлено @ 14:22 
спасибо

Цитата(Akella @  31.10.2006,  12:28 Найти цитируемый пост)
  Query1.Close;
  Query1.Open;


зачем закрывать, а потом открывать?
PM MAIL   Вверх
Akella
Дата 31.10.2006, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



я тебе дал готовый  и рабочий код создания грида в Run Time, просто это я переоткрие запрса сделал, чтобы наверняка
PM MAIL   Вверх
misskio
Дата 31.10.2006, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 26.10.2006

Репутация: нет
Всего: нет



Цитата(Akella @  31.10.2006,  14:44 Найти цитируемый пост)
я переоткрие запрса сделал, чтобы наверняка 


понятно...

спасибо

Добавлено @ 15:07 
всем спасибо
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0748 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.