Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.03.2013, 19:39
xxbesoxx xxbesoxx вне форума
Новичок
 
Регистрация: 14.11.2010
Сообщения: 63
Репутация: 10
По умолчанию SELECT скрывать и отображать колонки

Здравствуйте ребята. Задача такой . ест Form1, Form2 на пример, на второе форму выводит результаты поиска

Пользователь хочет что на (второе форму где выводит результаты поиска ) был кнопка где он будет отметит какой столбик отображалось и какой скрывать

из первое форму делаю запрос выводит результат
Код:
procedure TMainForm.cxButton1Click(Sender: TObject);
begin
  Module.PoiskQuery.Close;
   Module.PoiskQuery.SQL.Clear;
   Module.PoiskQuery.SQL.Add('SELECT employee_id, first_name, last_name, email, phone_number, hire_date,'+
                             'job_id, salary, commission_pct,manager_id, department_id '+
                             'FROM hr.employees');
  Module.PoiskQuery.SQL.Add('WHERE first_name LIKE '''+cxTextEdit1.Text+'''');
  Module.PoiskQuery.Open;
  Poisk.ShowModal;
end;

Проблема за это ! как реализовать это ! что он мог (скрывать и отображать колонки) по своего желанию ?
Изображения
Тип файла: jpg 1.jpg (55.8 Кбайт, 7 просмотров)
Тип файла: jpg 2.jpg (49.0 Кбайт, 5 просмотров)
Ответить с цитированием
  #2  
Старый 27.03.2013, 19:52
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Добавить на форму CheckListBox1
В него загрузить список колонок.
Код:
PoiskQuery.GetFieldNames(CheckListBox1.Items);

Обработать циклом
Код:
for i := 0 to CheckListBox1.Count - 1 do
  begin
          //код для отображения \ скрытия
  end;
Ответить с цитированием
Этот пользователь сказал Спасибо Uniq! за это полезное сообщение:
xxbesoxx (27.03.2013)
  #3  
Старый 27.03.2013, 21:39
xxbesoxx xxbesoxx вне форума
Новичок
 
Регистрация: 14.11.2010
Сообщения: 63
Репутация: 10
По умолчанию

Цитата:
Сообщение от Uniq!
Добавить на форму CheckListBox1
В него загрузить список колонок.
Код:
PoiskQuery.GetFieldNames(CheckListBox1.Items);

Обработать циклом
Код:
for i := 0 to CheckListBox1.Count - 1 do
  begin
          //код для отображения \ скрытия
  end;

Я честно говорю голову взрывается, цели день на это зависаю. пожалуйста по человечески покажите на это проекту как
Вложения
Тип файла: rar Primer.test.rar (569.3 Кбайт, 2 просмотров)
Ответить с цитированием
  #4  
Старый 27.03.2013, 22:00
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Дружище, извини я не работаю с АДО. И баз нету.

Значит смотри
-DBGrid2, это таблица с твоей второй формы.
-MyQuery2, это "запрос" где ты делаешь поиск.
- первая процедура - это кнопка твоего поиска.
- вторая процедура это кнопка на второй форме для отображения колонок.

MyQuery2 = PoiskQuery (в твоём случае)


Код:
procedure TForm1.but_searchClick(Sender: TObject);
begin
  MyQuery2.SQL.Clear;
  MyQuery2.SQL.Add('Select * from `emp` where `comm` > 1');
  MyQuery2.Execute;
  MyQuery2.GetFieldNames(CheckListBox1.Items);
end;

procedure TForm1.but_checkClick(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to CheckListBox1.Count - 1 do
    DBGrid2.Columns[i].Visible := CheckListBox1.Checked[i];
end;

Поправил вторую процедуру. В цикле не так чутка.

Последний раз редактировалось Uniq!, 27.03.2013 в 22:07.
Ответить с цитированием
Этот пользователь сказал Спасибо Uniq! за это полезное сообщение:
xxbesoxx (27.03.2013)
  #5  
Старый 27.03.2013, 22:43
xxbesoxx xxbesoxx вне форума
Новичок
 
Регистрация: 14.11.2010
Сообщения: 63
Репутация: 10
По умолчанию

Цитата:
Сообщение от Uniq!
Дружище, извини я не работаю с АДО. И баз нету.

Значит смотри
-DBGrid2, это таблица с твоей второй формы.
-MyQuery2, это "запрос" где ты делаешь поиск.
- первая процедура - это кнопка твоего поиска.
- вторая процедура это кнопка на второй форме для отображения колонок.

MyQuery2 = PoiskQuery (в твоём случае)


Код:
procedure TForm1.but_searchClick(Sender: TObject);
begin
  MyQuery2.SQL.Clear;
  MyQuery2.SQL.Add('Select * from `emp` where `comm` > 1');
  MyQuery2.Execute;
  MyQuery2.GetFieldNames(CheckListBox1.Items);
end;

procedure TForm1.but_checkClick(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to CheckListBox1.Count - 1 do
    DBGrid2.Columns[i].Visible := CheckListBox1.Checked[i];
end;

Поправил вторую процедуру. В цикле не так чутка.

так выйдет CheckListBox1 , щас попробую скрыть и отображать . Вам спасибо за помочь . время мало и за это спишу

Код:
procedure TMainForm.cxButton1Click(Sender: TObject);
begin
  Module.PoiskQuery.Close;
   Module.PoiskQuery.SQL.Clear;
   Module.PoiskQuery.SQL.Add('SELECT employee_id, first_name, last_name, email, phone_number, hire_date,'+
                             'job_id, salary, commission_pct,manager_id, department_id '+
                             'FROM hr.employees');
  Module.PoiskQuery.SQL.Add('WHERE first_name LIKE '''+cxTextEdit1.Text+'''');
  Module.PoiskQuery.Open;
  Module.PoiskQuery.GetFieldNames(Poisk.CheckListBox1.Items);
  Poisk.ShowModal;
end;
Ответить с цитированием
  #6  
Старый 27.03.2013, 23:07
xxbesoxx xxbesoxx вне форума
Новичок
 
Регистрация: 14.11.2010
Сообщения: 63
Репутация: 10
По умолчанию

Цитата:
Сообщение от Uniq!
Дружище, извини я не работаю с АДО. И баз нету.

Значит смотри
-DBGrid2, это таблица с твоей второй формы.
-MyQuery2, это "запрос" где ты делаешь поиск.
- первая процедура - это кнопка твоего поиска.
- вторая процедура это кнопка на второй форме для отображения колонок.

MyQuery2 = PoiskQuery (в твоём случае)


Код:
procedure TForm1.but_searchClick(Sender: TObject);
begin
  MyQuery2.SQL.Clear;
  MyQuery2.SQL.Add('Select * from `emp` where `comm` > 1');
  MyQuery2.Execute;
  MyQuery2.GetFieldNames(CheckListBox1.Items);
end;

procedure TForm1.but_checkClick(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to CheckListBox1.Count - 1 do
    DBGrid2.Columns[i].Visible := CheckListBox1.Checked[i];
end;

Поправил вторую процедуру. В цикле не так чутка.

да показывает дружище , ну настроить не магу . Извиняюсь второе код ваши работает вы проверили *
Изображения
Тип файла: jpg 4.jpg (59.9 Кбайт, 5 просмотров)
Ответить с цитированием
  #7  
Старый 28.03.2013, 00:05
xxbesoxx xxbesoxx вне форума
Новичок
 
Регистрация: 14.11.2010
Сообщения: 63
Репутация: 10
По умолчанию

Друг получилось но сейчас голова болит как это сохранить в ini файл

Код:
procedure TSetingForm.BitBtn1Click(Sender: TObject);
var
  i: integer;
begin
 i:=0;
 for i:=0 to CheckListBox1.Count - 1 do
 poisk.DBGridEh1.Columns[i].Visible := CheckListBox1.Checked[i];

end;
Ответить с цитированием
  #8  
Старый 28.03.2013, 12:53
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Код:
procedure TSetingForm.BitBtn1Click(Sender: TObject);
var
  i: integer;
begin
 i:=0;
 for i:=0 to CheckListBox1.Count - 1 do
  begin
   poisk.DBGridEh1.Columns[i].Visible := CheckListBox1.Checked[i];
   ini.WriteString('Poisk',CheckListBox1.Items[i],CheckListBox1.Checked[i]); 
  end;
end;
ini.WriteString(Имя_Секции,Имя_Значения,Значение);
Ответить с цитированием
Этот пользователь сказал Спасибо Uniq! за это полезное сообщение:
xxbesoxx (28.03.2013)
  #9  
Старый 28.03.2013, 01:20
xxbesoxx xxbesoxx вне форума
Новичок
 
Регистрация: 14.11.2010
Сообщения: 63
Репутация: 10
По умолчанию

Как указать что все это настройки сохранился ini файле ?

Цитата:
ini.WriteString('Poisk','Edit', CheckListBox1.Items.GetText );
неправильно сохраняет все поля
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:30.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025