Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2011, 01:39   #1
chex01
Пользователь
 
Аватар для chex01
 
Регистрация: 06.03.2011
Сообщений: 31
Смех DBGrid и ComboBox

Доброго времени суток!
Есть DBGrid и ComboBox, и ... ээээ ... короче вот такое:

Как сделать так что бы в ComboBox заносились данные из поля год(не повторяясь при этом), а при нажатии в свою очередь на год в ComboBox'Е, в DBGrid оставались(отображались) записи только с этим годом?

Последний раз редактировалось chex01; 25.05.2011 в 02:51.
chex01 вне форума Ответить с цитированием
Старый 25.05.2011, 02:10   #2
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию

Цитата:
Как в ComboBox заносились данные
combobox1.Items.Add('данные');

Цитата:
(не повторяясь при этом)
ну видимо пишем свою процедуру для удаления повторов...

Цитата:
а при нажатии
OnClick?..

Цитата:
в ComboBox'Е
ну тогда OnSelect...

Цитата:
оставались записи только с этим годом
поскольку мне кажется что нет в DBGrid функции "Оставить запись",
то видимо очищаем DBGrid и заносим в него записи, удовлетворяющие условию.

можно сделать два DBGrid, один хранит ВСЕ данные и остается невидимым,
а другой показывает только те данные, которые нужно, например, с этим годом...
xrob вне форума Ответить с цитированием
Старый 25.05.2011, 02:42   #3
chex01
Пользователь
 
Аватар для chex01
 
Регистрация: 06.03.2011
Сообщений: 31
По умолчанию

Чё то Ты намудрил, при этом не дав ответ на мой вопрос(

Примерно то что мне нужно я нашёл: ЗДЕСЬ, но там фиксированные данные, т.е. если добавлять ещё данные в поля, они всё равно в КомбоБоксе не появятся.

Последний раз редактировалось chex01; 25.05.2011 в 09:59.
chex01 вне форума Ответить с цитированием
Старый 25.05.2011, 07:45   #4
pusik
Пользователь
 
Регистрация: 03.05.2011
Сообщений: 29
По умолчанию

Код:
var
i,j:integer;
 	 	begin
    i:=1;
    j:=DataModule2.Specialnosti.DataSet.RecordCount;
 		DataModule2.Specialnost.First;
	form3.DBGrid1.Columns[3].PickList.text:=DataModule2.Specialnost.FieldByName('Код специальности').Value;
  			for i:=2 to j do
    			begin
    			 DataModule2.Specialnost.next;
           form3.DBGrid1.Columns[3].PickList.text:=form3.DBGrid1.Columns[3].PickList.text+DataModule2.Specialnost.FieldByName('Код специальности').Value;
       end;
       end;
попробуй использовать эту процедурку
Код:
var
i,j:integer;
begin
i:=1;
j:=указываешь источник данных для выпадающего списка .RecordCount;
указываешь источник данных для выпадающего списка .First;
Combox1.PickList.text:=указываешь источник данных для выпадающего списка .FieldByName('наименование колонки в которой находятся данные).Value;
for i:=2 to j do
begin
указываешь источник данных для выпадающего списка.next;
Combox1.PickList.text:=form3.DBGrid1.Colum ns[3].PickList.text+указываешь источник данных для выпадающего списка.FieldByName('наименование колонки в которой находятся данные').Value;
end;
end;

Последний раз редактировалось Stilet; 25.05.2011 в 09:16.
pusik вне форума Ответить с цитированием
Старый 15.06.2011, 18:49   #5
Gulik
Холост/Не замужем
Форумчанин
 
Аватар для Gulik
 
Регистрация: 13.11.2007
Сообщений: 283
По умолчанию

Пиши в асю помогу... только тут потом код выложи... для новичков...
Gulik вне форума Ответить с цитированием
Старый 15.06.2011, 19:03   #6
chex01
Пользователь
 
Аватар для chex01
 
Регистрация: 06.03.2011
Сообщений: 31
Хорошо Код из ICQ

На ComboBox1Change:
Код:
   if ComboBox1.Text <> '' then begin
      ADOQuery1.SQL.Text := 'SELECT * FROM `Доход` WHERE (`id магазина` = ' + ADOTable1id.AsString + ') AND (год = ' + ComboBox1.Text + ') ORDER BY Месяц' ;
      ADOQuery1.Open ;
   end
   else begin
      ADOQuery1.SQL.Text := 'SELECT * FROM `Доход` WHERE `id магазина` = ' + ADOTable1id.AsString + ' ORDER BY Месяц' ;
      ADOQuery1.Open ;
   end ;
На DBGrid3CellClick:
Код:
   if ComboBox1.Text <> '' then begin
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add('SELECT * FROM `Доход` WHERE (`id магазина` = ' + ADOTable1id.AsString + ') AND (год = ' + ComboBox1.Text + ')');
      ADOQuery1.SQL.Add('ORDER BY Месяц');
      ADOQuery1.Close;
      ADOQuery1.Open;
   end
   else begin
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add('SELECT * FROM `Доход` WHERE `id магазина` = ' + ADOTable1id.AsString );
      ADOQuery1.SQL.Add('ORDER BY Месяц');
      ADOQuery1.Close;
      ADOQuery1.Open;
   end ;

   ADOQuery2.SQL.Clear;
   ADOQuery2.SQL.Add('SELECT * FROM `Затраты` WHERE `id магазина` = ' + ADOTable1id.AsString );
   ADOQuery2.SQL.Add('ORDER BY `Месяц учета`');
   ADOQuery2.Close;
   ADOQuery2.Open;
Ещё раз спасибо Тебе Gulik!!!
chex01 вне форума Ответить с цитированием
Старый 16.06.2011, 04:06   #7
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

Люди, а фильтры? Есть такой чудесный метод Filter.
А Distinct для построения списка годов.
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
combobox and dbGrid Lady Meri БД в Delphi 3 15.05.2011 00:56
Combobox -> DBGrid -> Combobox... EXTREEM БД в Delphi 2 20.12.2010 18:19
ComboBox и DBGrid Plohoy91 БД в Delphi 1 14.12.2010 08:35
ComboBox в DBGrid AlexandrSid Общие вопросы Delphi 4 16.04.2008 15:41