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

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 27.03.2013, 15:49   #1
xxbesoxx
Профессионал
 
Аватар для xxbesoxx
 
Регистрация: 10.08.2010
Адрес: Грузия Рустави
Сообщений: 1,340
Репутация: 719
Отправить сообщение для xxbesoxx с помощью Yahoo
По умолчанию 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 Кб, 28 просмотров)
Тип файла: jpg 2.jpg (101.4 Кб, 52 просмотров)
xxbesoxx вне форума   Ответить с цитированием
Старый 27.03.2013, 15:55   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,680
Репутация: 5617
По умолчанию

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

тогда самый простой способ - хранить где-то (как и где - ваше дело, можно в 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
Адрес: Северодонецк.ua
Сообщений: 18,857
Репутация: 6688
По умолчанию

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

Спасибо за внимание, надо 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,815
Репутация: 6850
По умолчанию

Во-первых:
Код:
 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,340
Репутация: 719
Отправить сообщение для xxbesoxx с помощью Yahoo
По умолчанию

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

напрямую да
Изображения
 

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

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

Цитата:
Сообщение от 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,210
Репутация: 1231
По умолчанию

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

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

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как получить резултат функции 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


05:20.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru