|
ms access mdb파일을 쿼리로 연결한다음 dbgrid에 뿌렸습니다.
그런다음 quick report로 프린트를 하려는데요
간략하게 프린트하기까지 과정을 보면..
ADOQuery1->ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
+ ExpandFileName("C:\\CS_DB\\THW_CS.mdb"); // 우선 mdb파일을 연결하고
ADOQuery1->SQL->Text = "select * from SEC_S_LSI_Logic_Power_CSR";
ADOQuery1->SQL->Add("order By 순번"); // 순번 이라는 필드에 맞게 정렬을 하고
ADOQuery1->Open();
DataSource1->DataSet = ADOQuery1;
DBGrid1->DataSource = DataSource1; // dbgrid에 뿌립니다.
Form4->QuickRep1->DataSet = ADOQuery1;
Form4->QRDBText1->DataSet = ADOQuery1;
Form4->QRDBText2->DataSet = ADOQuery1;
Form4->QRDBText3->DataSet = ADOQuery1;
Form4->QRDBText4->DataSet = ADOQuery1;
Form4->QRDBText5->DataSet = ADOQuery1;
Form4->QRDBText6->DataSet = ADOQuery1;
Form4->QRDBText7->DataSet = ADOQuery1;
Form4->QRDBText8->DataSet = ADOQuery1;
Form4->QRDBText9->DataSet = ADOQuery1;
Form4->QRDBText10->DataSet = ADOQuery1;
Form4->QRDBText11->DataSet = ADOQuery1;
Form4->QRDBText12->DataSet = ADOQuery1;
Form4->QRDBText13->DataSet = ADOQuery1;
Form4->QRDBText14->DataSet = ADOQuery1;
Form4->QRDBText15->DataSet = ADOQuery1;
Form4->QRDBText16->DataSet = ADOQuery1;
Form4->QRDBText17->DataSet = ADOQuery1;
Form4->QRDBText18->DataSet = ADOQuery1;
// 폼에 quickrep을 올려놓고 그 위에 qrband를 올린후에
// qrband의 밴드속성을 detail로 지정하고 qrband의 크기를
// 페이지 전체에 꽉 차도록 늘렸습니다.
// quick report에 문서양식을 만들고, 양식의 빈칸에
// qrdbtext 컴포넌트를 올려놓고 쿼리와 연결하여
// 데이터를 집어넣습니다. 즉, qrband 위에 qrdbtext를 올려놓은거죠.
QuickRep1->Print; // 그리고 프린트 합니다.
이렇게 했더니 프린트를 하면 dbgrid의 맨 위 레코드 정보만 출력이 되더군요.
그리고 출력이 끝나면 dbgrid의 레코드포인터는 가장 마지막 위치로 옮겨지구요.
제가 알기로는 qrband는 데이터의 숫자만큼 처리를 하는걸로 알고있는데요.
왜 프린트는 맨 첫번째것만 될까요?
프린트가 끝난후 레코드포인터가 맨 마지막으로 이동하는걸 보면 qrband에서 데이터를 처음부터 끝까지 처리하긴 하는거 같은데...
제 생각에는 처음 프린트를 하고 qrband에서 다음 레코드 정보를 처리할때 정보를 처리만 하고 프린트를 안하는거 같기도 한데요.
qrband에서 정보를 처리할때 프린트가 되게 하면 될까요?
미치겠네요 진짜 ㅋㅋㅋ dbgrid에서 선택한 다수의 레코드 프린트하는 방법좀 알려주세요......
|