안녕하세요! 황정래 입니다...
하나의 Query로 두개의 Qreport폼에 값을 넣어 줄 수 있나요?
procedure Tneuk_print_f.Button1Click(Sender: TObject);
var
gongjung,watt,thick,hogi:Integer;
p_name,watt_value:String;
begin
gongjung :=Combobox1.ItemIndex;
watt :=Combobox2.ItemIndex;
thick := Combobox3.ItemIndex;
hogi := Combobox4.ItemIndex;
if(gongjung = 0)then begin
MessageDlg('공정을 선택해 주십시요!', mtError, [mbOK], 0);
Combobox1.SetFocus;
end;
if(gongjung >0)then
begin
case Combobox1.ItemIndex of
1:begin
with label_QfE.Query1 do
begin
Close;
SQL.Clear;
SQl.Add('SELECT * From TJAWMG01');
SQL.Add('Where input_time=:input_time');
ParamByName('input_time').AsString:=DateEdit1.Text;
if(gongjung >0)then
begin
case Combobox1.ItemIndex of
1:begin
p_name:='E';
end;
2:begin
p_name:='F';
end;
end;
SQL.Add(Format('and Lot_No like ''%s%%''',[p_name]));
end;
if(watt >0)then
begin
case Combobox2.ItemIndex of
1:begin
watt_value:='H';
end;
2:begin
watt_value:='M';
end;
3:begin
watt_value:='L';
end;
end;
SQL.Add(Format('and Lot_No like ''_%s%%''',[watt_value]));
end;
if(thick >0)then begin
SQL.Add(Format('and Lot_No like ''__%s%%''',[Combobox3.Text]));
end;
if(hogi >0)then begin
SQL.Add(Format('and Lot_No like ''_______%s%%''',[Combobox4.Text]));
end;
end;
end;
2:begin
with label_Qf.Query1 do
begin // <------ 요기두 begin
Close;
SQL.Clear;
SQl.Add('SELECT * From TJAWMG01');
SQL.Add('Where input_time=:input_time');
ParamByName('input_time').AsString:=DateEdit1.Text;
if(gongjung >0)then
begin
case Combobox1.ItemIndex of
1:begin
p_name:='E';
end;
2:begin
p_name:='F';
end;
end;
SQL.Add(Format('and Lot_No like ''%s%%''',[p_name]));
end;
if(watt >0)then
begin
case Combobox2.ItemIndex of
1:begin
watt_value:='H';
end;
2:begin
watt_value:='M';
end;
3:begin
watt_value:='L';
end;
end;
SQL.Add(Format('and Lot_No like ''_%s%%''',[watt_value]));
end;
if(thick >0)then begin
SQL.Add(Format('and Lot_No like ''__%s%%''',[Combobox3.Text]));
end;
if(hogi >0)then begin
SQL.Add(Format('and Lot_No like ''_______%s%%''',[Combobox4.Text]));
end;
end;
end;
Open;
If (P_name = 'E') Then Begin
Lable_QfE.QuickRep1.preview;
DateEdit1.SetFocus;
end
Else if (P_name = 'F') Then begin
Label_Qf.QuickRep1.preview;
DateEdit1.SetFocus;
end;
end;
end;
이렇게 현재는 Qruery를 두개를 썼는데요?
코딩도 넘 길어지구.. 또. 왜그런지 Lable_QfE.Query1이 정의가 되지 않았다고 에러가 발생합니다.
혹시 Query를 하나로 해서
두개의 폼중에 하나를 선택해서 인쇄를 할 수 있나요?
고수님들의 조언 부탁드립니다.
저는 TQuery, TTable등을 관리 하기위서..
Datamodule을 사용합니다.
Datamodule에 쿼리를 몇개 두고..
여러 폼에서 공유해서 사용 합니다.
물론 퀵리포트에서 쿼리 사용도
Datamodule에있는 쿼리를 이용 합니다.
간단히 설명하면..
Datamodule에 Query를 두고
출력폼(출력을 위해 조건을 받는폼)
use Datamodule해서
with Datamodule.Query do
begin
close;
Sql.Clear;
Sql.Add('여기에 쿼리 넣고.');
Open;
end;
case Combobox1.ItemIndex of
1:begin
quickreport1 := Tquickreport1.Create(Application);
quickreport1.preview;
quickreport1.free;
end;
2:begin
quickreport2 := Tquickreport1.Create(Application);
quickreport2.preview;
quickreport2.free;
end;
end;
대충 이렇게 하구..요..
리포트는
use Datamodule;
각 리포트의 리포트와, QDBLabel등의
Dataset 을 Datamodule.Query 로 연결하면
어떨까요!...
이런..
머리속에만 맴도네요..
글로 설명하기가 넘 힘드어요 ㅠㅠ..!
즐프 하세요!