Q&A

  • [급!!질문]쿼리콤보와 DB그리드 관련..
1.폼하나에 두개의 DB그리드가 있습니다. 이 그리드는 조회버튼을 누르면

쿼리의 조건절이 0,1일때를 불러와 동시에 DB그리드에 뿌려주어야합니다.



2.위의 문제는 다른방법이 있는지 모르겠지만 저는 쿼리콤포와 데이타소스를

두개 생성 하여 조회하였습니다. 여기까지는 문제가 없군요..근데..ㅠㅠ



3.이폼에 뿌려진결과 그대로(DB그리드둘다) QReport에 뿌려주어야합니다.

제가 쿼리콤포두개와 데이타소스두개를 사용한결과..QReport폼에서

왼쪽그리드의 필드(Query1)은 정상적으로 뿌려지는데요,오른쪽의 필드들은(Query2)

첫번째 데이타만 왼쪽데이타갯수에 마추어 쭈욱..나옵니다. -_-...



4.제 생각엔 QReport폼하나당 DataSet하나만 설정할수 있는거 때매...문제가 생기는거

같습니다. 쿼리콤포와데이타소스를 하나씩 놓아야될거 같은데..도저히 로직구성이

안되네요.. 도와주세요..ㅠㅠ



위의 글로는 부족할거 같아 이 부분의 소스를 올립니다.

(__)좋은하루되시길바랍니다. 오늘도 즐프...



[Source]

//---------이곳은 미리보기와 인쇄버튼의 이벤트입니다.-------//

procedure TfrmMoney_Req.btnPriviewClick(Sender: TObject);

var sSql, sSql1, sSql2, sSqlSum :String;

sCombo :String;

begin

//콤보박스에서 오늘이나 조회할날짜를 가져옵니다.

sCombo :=Trim(ComboYear.text)+'-'+Trim(ComboMonth.text)+'-'+Trim(ComboDay.text);

//기본쿼리문

sSql := ' select a.TB04_MaeMae_Seq, a.TB04_Custom_Name, a.TB04_Tot_Amt,'+

' a.TB04_MaeMae_Kind, a.TB04_MaeMae_Date, b.TB05_Sudo_Name'+

' from TB04_MaeMae a, TB05_MaeMae_Sudo b where'+

' a.TB04_MaeMae_Seq = b.TB05_MaeMae_Seq and a.TB04_MaeMae_Date = '''+sCombo+''''+

' and b.TB05_MaeMae_Date = '''+sCombo+''''+

' and b.TB05_Sudo_Name != 0 and b.TB05_Qty != 0 and b.TB05_Amt != 0';



try

begin

//기본쿼리뒤에붙을 두개의 조건입니다.

sSql1 := sSql + ' and a.TB04_MaeMae_Kind = 1';

sSql2 := sSql + ' and a.TB04_MaeMae_Kind = 0';

//QReport폼 생성

frmMoney_Req_Print := TfrmMoney_Req_Print.Create(Application);

frmMoney_Req_Print.Visible := False;

frmMoney_Req_Print.sSql1 := sSql1;

frmMoney_Req_Print.sSql2 := sSql2;

end;

//---------------인쇄버튼 클릭시와 미리보기버튼 클릭시의 이벤트---------------//

if Sender = btnPrint then

begin

frmMoney_Req_Print.QRMoney.Print;

end

else

begin

frmMoney_Req_Print.QRMoney.Preview;



frmMoney_Req_Print.Free;

end;

except

frmMoney_Req_Print.Free;

end;

end;

//////////////////////////////////////////////////////////////////////////////////

이곳부터는 QReport폼이 인쇄가 되기전에 ㅈ설정하는곳입니다.

이런식으로 제가 두개의 쿼리를 쓰고 설정을 했습니다. 결과는 Query1만 은 정상적으로 돌지만 Query2는 -_-이상하네요...

다시 말하지만 QReport폼에 DataSet을 Query1이나Query2중에 하나만 설정가능한거때매 그런거 같은데..솔직히 모르겠습니다..

//-----------------------QReport SQL설정관련 이벤트---------------------------//

procedure TfrmMoney_Req_Print.QRMoneyBeforePrint(Sender: TCustomQuickRep;

var PrintReport: Boolean);

begin

begin

Query1.Close;

Query1.SQL.Clear;

Query1.SQL.Add(sSql1);

Query1.Open;

end;



begin

Query2.Close;

Query2.SQL.Clear;

Query2.SQL.Add(sSql2);

Query2.Open;

end;

QRMoney.Prepare;

end;



저의 긴 질문을 읽어주셔서 감사합니다...

언제나 좋은 하루 되시길 바랍니다.

아..답변 주세요..-_-;

0  COMMENTS