<!--CodeS-->
procedure TForm1.FormCreate(Sender: TObject);
begin
query1.Active:= false;
With query1 Do
Begin
strSQL :=
' Select stname, stcode From store ';
SQL.Clear;
SQL.Add(strSQL);
OPEN;FIRST;
While not EOF Do
Begin
combobox1.Items.Add(FieldByName('stname').AsString);
Next;
End;
End;
end;
<!--CodeE-->
안녕하세요. 저는 이제 막 델파이에 발을 담근...병아리 입니다.
combobox에다 쿼리를 연결해서 store 테이블에 있는
stname (예:순이네슈퍼, 철수네미용실, 영희네옷가게....)이 item에 쭉~ 나타나게까지는 했는데
이중에 하나를 선택했을때 stcode, 즉 code 값이 넘어가 조회버튼을 클릭했을때
판매량이라던가 뭐 이런게 DBGrid에 뜨게끔 프로그램해야 합니다.
DB와 Dataset, datasource 연결해서 DBGrid에 쿼리결과가 뜨긴하는데요.
질문1) item을 선택했을때 combobox에 onselect 이벤트를 쓰는게 맞나요?
질문2)item을 선택해서 조회버튼을 눌렀을때 item 을 이용하여 (예:철수네슈퍼를 조건으로)
쿼리문을 하나 더 돌려 코드값을 넘겨받아 변수에 저장해서 써야 하나요?
너무 질문이 길져? ㅠㅠ
프로젝트 저장하는 것도 무서운 병아리가 질문드려요 ㅠㅠ
2. 어떻게 하시냐 나름인데 제 경우에는 아래처럼 STringList 를 생성해서 씁니다..
ComboBox나 memo나 listbox....등등 하나더 생성하시던가, 변수로 꼭 가지고 계셔야 겠다면 배열변수를 쓰시던가 하시기 나름이지만 변수보다는 컴퍼넌트를 하나 더 생성하시길 추천합니다..;;
private
{ Private declarations }
gvslSTOP_CODE : TStringList;
procedure Tform1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
gvslSTOP_CODE.Free;
end;
procedure Tform1.FormCreate(Sender: TObject);
begin
gvslSTOP_CODE := TStringList.Create;
with query1 do
begin
Close;
SQL.....
Open;
end;
ufSetDropDownListClass(fDM.qryTemp,'32',gvslSTOP_CODE,cmbSTOP_CODE);
end;
procedure ufSetDropDownListClass(pQuery : TOraQuery; pClassCode: string;
pString : TStringList; pTargetControl : TCustomCombo);
var
sTempData : String;
begin
if pTargetControl <> nil then pTargetControl.Items.Clear;
with pQuery do begin
Close;
sTempData := 'SELECT * FROM CODE_D ' +
' WHERE CODE_ID = ''' + pClassCode + ''' ORDER BY CODE';
SQL.Text := sTempData;
Open;
while not EOF do begin
pString.Add(Fields[1].AsString);
if pTargetControl <> nil then
pTargetControl.Items.Add(Fields[2].AsString);
Next;
end;
if pTargetControl <> nil then pTargetControl.ItemIndex := 0;
end;
end;
procedure Tform1.Button1Click(Sender: TObject);
begin
with query2 do
begin
Close;
SQL.....
SQL.add( where aaa = '''+gvslSTOP_CODE.Strings[cmbSTOP_CODE.ItemIndex]+''' );
Open;
end;
end;