ComboBox 의 값을 선택하고 "조회"를 클릭하면 ComboBox 의 코드값의 조건에 맞는 결과가 StringGrid 에 뿌려지게 하고싶은데요... 방법좀 자세히 설명해 주세요. (코딩... ^^;;)
-. 테이블 : C05_CODE , C06_NAME
-. 필드명 : C05_LOWXCO ( VARCHAR 2 ) . 01 , 02
C05_APPLNO ( VARCHAR 4 )
C05_DATEAA ( VARCHAR 8 )
C05_STATGU ( VARCHAR 2 )
C06_LOWXCO ( VARCHAR 2 ) . 01 , 02
C06_LOWXMM ( VARCHAR 8 ) . 01 = 개인 , 02 = 커플
-. 콤보1 : 전체 , 개인 , 커플
procedure TfrmMain.FormShow(Sender : TObject) ;
begin
ComboBox1.Clear ;
ComboBox1.Items.Add ( '전체' ) ;
ComboBox1.Items.Add ( '개인' ) ;
ComboBox1.Items.Add ( '커플' ) ;
ComboBox1.ItemIndex := 0 ;
end ;
procedure TfrmMain.btnSearchClick(Sender : TObject) ;
var
Row : Integer ;
MSQL : String ;
begin
with DM.COM_DM.ADOQuery1 do
begin
MSQL := ' ' ;
MSQL := MSQL + #13 + 'SELECT C05_APPLNO , C05_DATEDD , C05_STATGU ' ;
MSQL := MSQL + #13 + 'FROM C05_CODE Left Outer Join C06_NAME On C05_LOWXCO = C06_LOWXCO ' ;
MSQL := MSQL + #13 + 'WHERE FORMAT ( ' C05_LOWXCO = ''%S'' ', [ComboBox1.Items.Strings[ComboBox1.ItemIndex ] ] ) ;
Close ;
SQL.Clear ;
SQL.Text := MSQL ;
Open ;
while not Eof do
begin
StringGrid1.Cells [ 00 , Row + 1 ] := ' ' ;
StringGrid1.Cells [ 01 , Row + 1 ] := Fields[00].AsString ;
StringGrid1.Cells [ 02 , Row + 1 ] := Fields[01].AsString ;
StringGrid1.Cells [ 03 , Row + 1 ] := Fields[02].AsString ;
Row := Row + 1 ;
StringGrid1.RowCount := Row + 1 ;
Next ;
Application.ProcessMessages ;
end ;
end ;
end ;
이렇게 하면 다들 아시겠지만 조건값이 맞게 넘어가지 않아서인지 검색이 안됩니다.
그래서 ComboBox1.Items.Add ( '01' ) ;
// 개인으로 넣고 검색하고 싶은데 그렇게 안되서 코드값으로 하게되면 결과는 나오지만 ComboBox1 의 값이 "개인" 이 아닌 '01' 로 표기됩니다. 위 콤보를 "01" 이 아닌 "전체 , 개인 , 커플" 이렇게 넣고 검색할 수 있게 코딩좀 도와주세요.
저와 비슷한 경우를 찾기위해 combobox 로 검색해봐도 잘 모르겠어서요... 직접적인 질문을 하게되었습니다.
MSQL := MSQL + #13 + 'FROM C05_CODE Left Outer Join C06_NAME On C05_LOWXCO = C06_LOWXCO ' ;
if ComboBox1.ItemIndex > 0 then
MSQL := MSQL + #13 + 'WHERE C05_LOWXCO = ' + FormatFloat('00', ComboBox1.ItemIndex );