| 
| 
 | Вопрос # 4 622/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты!Есть форма на ней расположены кнопка, stringgrid, combobox. Надо сделать так чтобы при выборе в combobox название акции и нажатии на кнопку в таблице показывала даные по участникам в акции. Помогите пожалуйста.
 Приложение:Переключить в обычный режим unit Unit3; interface usesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, DBXpress, FMTBcd, DB, SqlExpr, Grids, StdCtrls; typeTForm3 = class(TForm)StringGrid3: TStringGrid;SQLConnection1: TSQLConnection;Q3: TSQLQuery;Button1: TButton;ComboBox1: TComboBox;procedure FormActivate(Sender: TObject);procedure Button1Click(Sender: TObject);procedure ComboBox1Change(Sender: TObject);private{ Private declarations }public{ Public declarations }end; varForm3: TForm3; implementation {$R *.dfm} procedure TForm3.FormActivate(Sender: TObject);var d:integer;begintryQ3.Open;excepton e:exception do showmessage(e.Message)end;stringgrid3.Visible:=false;stringgrid3.RowCount:=2;d:=1; while not Q3.Eof dobegin    stringgrid3.Cells[0,d]:=Q3.fields[0].AsString;stringgrid3.Cells[1,d]:=Q3.fields[1].AsString;  Q3.Next;inc(d);stringgrid3.RowCount:=d+2;end;stringgrid3.Visible:=true;if Q3.Active then Q3.Close;  combobox1.Clear;Form3.Q3.SQL.Text:='select name from act_new';Form3.Q3.Open;if Form3.Q3.Active thenbeginForm3.Q3.First;while not q3.Eof doBEGINForm3.ComboBox1.Items.Add(Form3.Q3. FieldByName('name').AsString);Form3.Q3.Next;END;q3.Close;  end;end; procedure TForm3.Button1Click(Sender: TObject);beginq3.SQL.Text:='select card_number, act_0 from spiski where name='+inttostr(combobox1.ItemIndex )+'';q3.Close;end; procedure TForm3.ComboBox1Change(Sender: TObject);beginq3.SQL.Text:='select card_number, act_'+inttostr(combobox1.ItemIndex) +' from spiski where
act_'+inttostr(combobox1.ItemIndex) +'=1';q3.Open; end; end.  
|  |   Вопрос задал: slai (статус: Посетитель)Вопрос отправлен: 30 сентября 2010, 09:30
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 1; последнее сообщение — 30 сентября 2010, 10:12; участников в обсуждении: 1. 
|   | AlexMPEI (статус: 1-ый класс), 30 сентября 2010, 10:12 [#1]:в procedure TForm3.ComboBox1Change(Sender: TObject); после Опен надо добавить заполнение грида: 
 var
 count: integer;
 
 
 count := 0;
 while not q3.eof do
 begin
 stringgrid3.Cells[0, count] := ADOQuery2.Fields.Fields[0].AsString;
 stringgrid3.Cells[1, count] := ADOQuery2.Fields.Fields[1].AsString;
 stringgrid3.Cells[2, count] := ADOQuery2.Fields.Fields[2].AsString;
 stringgrid3.Cells[3, count] := ADOQuery2.Fields.Fields[3].AsString;
 stringgrid3.Cells[4, count] := ADOQuery2.Fields.Fields[4].AsString;
 stringgrid3.Cells[5, count] := ADOQuery2.Fields.Fields[5].AsString;
 
 ........
 
 count := count + 1;
 
 q3.next;
 end;
 |  30 сентября 2010, 19:51: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Программирование баз данных (БД) модератором Ерёмин А.А. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |