Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 27.03.2013, 15:49   #1
xxbesoxx
Участник клуба
 
Аватар для xxbesoxx
 
Регистрация: 10.08.2010
Сообщений: 1,368
По умолчанию 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 (125.5 Кб, 121 просмотров)
Тип файла: jpg 2.jpg (101.4 Кб, 142 просмотров)
xxbesoxx вне форума Ответить с цитированием
Старый 27.03.2013, 15:55   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

судя по всему, у Вас в гриде отображаются ВСЕ поля, которые есть в датасете...

тогда самый простой способ - хранить где-то (как и где - ваше дело, можно в INI, можно в БД) список полей.
вот этот:
Цитата:
Код:
employee_id, 
first_name, 
last_name, 
email, 
phone_number, 
hire_date,
job_id, 
salary, 
commission_pct,manager_id, 
department_id
написать функцию (например, GetSelectedFields()), возвращающую строку, с перечнем отобранных полей (через запятую),
и при формировании запроса выбирать только выделенные поля:
Код:
   Module.PoiskQuery.Close;
   Module.PoiskQuery.SQL.Clear;
    Module.PoiskQuery.SQL.Add('SELECT ' + GetSelectedFields() + ' FROM hr.employees');
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.03.2013, 15:58   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,061
По умолчанию

или
DBGrid.Columns[N].Visible:=True или False
N от 0 до DBGrid1.Columns.Count-1
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 27.03.2013, 16:37   #4
xxbesoxx
Участник клуба
 
Аватар для xxbesoxx
 
Регистрация: 10.08.2010
Сообщений: 1,368
По умолчанию

Спасибо за внимание, надо ini файл создать , настройки где то должен хранить , программа клиент-серверный и каждое пользователь хочет настроит по своему. начинаю так

1 . uses -- inifiles, добавляю
2.
Цитата:
var
Poisk: TPoisk;
ini: tinifile; // ---- 2. переменное ini: tinifile;
Указываю путь
3.
Цитата:
procedure TPoisk.FormCreate(Sender: TObject);
begin
ini := tinifile.Create('C:\beso\Seting.ini ');
end;
При SELECT как написать что название все колонки сохранить туда ? и как написать потом GetSelectedFields() что программу когда он откроет второе раз, что все настройки почитал из ini файл ?
Цитата:
Poisk.DBGridEh1.Text := ini.ReadString // как здесь прописать помогите пожалуйста
Приближаю к задачу ближе, на второе форму на кнопку пишу

Цитата:
procedure TPoisk.SpeedButton1Click(Sender: TObject);
begin
ini.WriteString('Poisk','Edit', Module.PoiskQuery.SQL.Text);
end;
Сохраняется цели текст вот так . Мне надо только строки который выводить результату . Помогите кто не будь пожалуйста, время мало

[Poisk]
Edit=SELECT employee_id, first_name, last_name, email, phone_number, hire_date,job_id, salary, commission_pct,manager_id, department_id FROM hr.employees
WHERE first_name LIKE 'Bruce'

Голова кипит, взрывается, пожалуйста помогите это реализовать

Последний раз редактировалось Stilet; 27.03.2013 в 23:04.
xxbesoxx вне форума Ответить с цитированием
Старый 27.03.2013, 23:08   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Во-первых:
Код:
 ini.WriteString('Poisk','Edit', Module.PoiskQuery.SQL.DelimitedText);
Это чтоб запрос в одну строку писался. ИНИ файлы не любят открытого многострочного текста.
Во-вторых:
Цитата:
Poisk.DBGridEh1.Text
Что это? У Эхгрида есть свойство, напрямую связывающее текст запроса с датасетом?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.03.2013, 23:38   #6
xxbesoxx
Участник клуба
 
Аватар для xxbesoxx
 
Регистрация: 10.08.2010
Сообщений: 1,368
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Во-первых:
Код:
 ini.WriteString('Poisk','Edit', Module.PoiskQuery.SQL.DelimitedText);
Это чтоб запрос в одну строку писался. ИНИ файлы не любят открытого многострочного текста.
Во-вторых:
Что это? У Эхгрида есть свойство, напрямую связывающее текст запроса с датасетом?
Спасибо за внимание , Но .DBGridEh1.Text =нету

напрямую да
Изображения
Тип файла: jpg 5.jpg (60.9 Кб, 79 просмотров)

Последний раз редактировалось Stilet; 27.03.2013 в 23:53.
xxbesoxx вне форума Ответить с цитированием
Старый 27.03.2013, 23:55   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Цитата:
Но .DBGridEh1.Text =нету
Ну нет и не надо )
Считывай в Module.PoiskQuery.SQL
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.03.2013, 00:25   #8
xxbesoxx
Участник клуба
 
Аватар для xxbesoxx
 
Регистрация: 10.08.2010
Сообщений: 1,368
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Во-первых:
Код:
 ini.WriteString('Poisk','Edit', Module.PoiskQuery.SQL.DelimitedText);
Это чтоб запрос в одну строку писался. ИНИ файлы не любят открытого многострочного текста.
Во-вторых:
Что это? У Эхгрида есть свойство, напрямую связывающее текст запроса с датасетом?
Смотрите как то доработал до это. Но сейчас как это настройки сохранить в ini файл , что [блондинка оператор] отметил что она хочет и это сохранилось в ini
Цитата:
ini.WriteString('Poisk','Edit', здесь что писать ? );
видео посмотрите пожалуйста

Пожалуйста у меня нету выход это надо разбирать , Это задача спасает меня жизнь, и я знаю что вы меня поможите . Я люблю русский народ Я люблю вас

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну нет и не надо )
Считывай в Module.PoiskQuery.SQL
Смотрйте видео пожалуйста задача почти готов ! Осталось сохранить и почитать в ini файле
Цитата:
ini.WriteString('Poisk','Edit', CheckListBox1.Items.GetText );
сохраняет все название колонки , мне надо только который отметили

ini что сохраняет
-------------------------
[Poisk]
Edit=EMPLOYEE_ID
FIRST_NAME
LAST_NAME
EMAIL
PHONE_NUMBER
HIRE_DATE
JOB_ID
SALARY
COMMISSION_PCT
MANAGER_ID
DEPARTMENT_ID
Вложения
Тип файла: rar Smotrite.rar (2.99 Мб, 4 просмотров)

Последний раз редактировалось Stilet; 28.03.2013 в 09:05.
xxbesoxx вне форума Ответить с цитированием
Старый 28.03.2013, 06:31   #9
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Проект бы с базой выложил - быстрее бы сделали.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 28.03.2013, 08:54   #10
xxbesoxx
Участник клуба
 
Аватар для xxbesoxx
 
Регистрация: 10.08.2010
Сообщений: 1,368
По умолчанию

Цитата:
Сообщение от Sciv Посмотреть сообщение
Проект бы с базой выложил - быстрее бы сделали.
Вот смотрите пожалуйста, это аналогичные пример . Мне осталось все настройки сохранить в ini файл
Изображения
Тип файла: jpg TEST,PRIMER2.jpg (100.3 Кб, 146 просмотров)
Вложения
Тип файла: rar Primer.test2.rar (579.0 Кб, 7 просмотров)
xxbesoxx вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как получить резултат функции unmazable Общие вопросы C/C++ 1 21.10.2010 08:46
Скрывать/отображать графики на диаграмме O_H Microsoft Office Excel 2 06.09.2010 14:09
Автоматически скрывать и отображать столбцы в Екселе. Дмитррр Microsoft Office Excel 3 16.09.2009 12:22
скрывать или отображать столбцы с "флажка" Иванов_ДМ Microsoft Office Excel 3 02.03.2009 14:22
есть ячейки А, В, С. в ячейку С нужно вывести резултат С=А*В*0,1% А^ександр Microsoft Office Excel 1 18.02.2008 12:12