|
안녕하세요
mssql을 사용해서 DB를 연결하는 프로그램에서 인쇄창을 띄우면 인쇄만 되는 것이 아니라
거기서 팩스도 보낼 수 있더군요 그런데 인쇄를 하면 프로그램 내에 아무 이상이 없지만
팩스를 보내고 나면 DB연결이 되지 않으면서 '연결이 실패했습니다' 라는 에러 메세지가 발생합니다.
참고를 위해 스크린샷 첨부합니다.
프로그램에서 하는 일은 프린트 창을 띄우는 것까지 이며 소스는 다음과 같습니다
팩스를 보내면 DB와의 연결이 끊어지는 것 같은데 어떻게 수정해야 할지 잘 모르겠습니다
알려주시면 정말 감사하겠습니다~
if(!CheckPrinter()) { MessageBox(Handle, "인쇄 할 수 있는 프린트가 없습니다." , MSGBOX_TITLE, MSG_MB_ERROR); return; }
if(!ListSet->Active ||
!ListSet->RecordCount) { MessageBox(Handle, "인쇄 할 내역이 없습니다." , MSGBOX_TITLE, MSG_MB_INFO); return; }
AnsiString PrintData[4];
TEstimateSumPrintFrm *EstimatePrint;
PrintData[0] = StartCalender->Date.FormatString("YYYY-MM-DD");
PrintData[1] = StopCalender ->Date.FormatString("YYYY-MM-DD");
PrintData[3] = m_nTotalMoney;
if( ComSearchCode->ItemIndex == m_nBCodeIndex ||
ComSearchCode->ItemIndex == m_nPCodeIndex ||
ComSearchCode->ItemIndex == m_nZCodeIndex) PrintData[2] = EdtCarNo->Text.Trim();
else PrintData[2] = ComSearchCode->Text.SubString(7, ComSearchCode->Text.Length());
if(GrpDispayKind->ItemIndex == 0) EstimatePrint = new TEstimateSumPrintFrm(this, PrintData, ESTIMTE_DATE_TYPE);
else EstimatePrint = new TEstimateSumPrintFrm(this, PrintData, ESTIMTE_DATETIME_TYPE);
if(EstimatePrint->SetQuery(ListSet->CommandText)) {
TPrintDialog *PrintDlg = new TPrintDialog(this);
m_nPrinting = TRUE;
EstimatePrint->EstimateReport->Prepare();
PrintDlg->Options << poPageNums;
PrintDlg->FromPage = 1;
PrintDlg->MinPage = 1;
PrintDlg->ToPage = EstimatePrint->EstimateReport->QRPrinter->PageCount;
PrintDlg->MaxPage = EstimatePrint->EstimateReport->QRPrinter->PageCount;
if(PrintDlg->Execute()) {
TPrinter *PrintCfg = Printer();
EstimatePrint->EstimateReport->PrinterSettings->PrinterIndex = PrintCfg->PrinterIndex;
EstimatePrint->EstimateReport->PrinterSettings->Copies = PrintDlg->Copies;
EstimatePrint->EstimateReport->PrinterSettings->Duplex = PrintDlg->Collate;
EstimatePrint->EstimateReport->PrinterSettings->FirstPage = PrintDlg->FromPage;
EstimatePrint->EstimateReport->PrinterSettings->LastPage = PrintDlg->ToPage;
EstimatePrint->EstimateReport->Print();
}
delete PrintDlg;
}
delete EstimatePrint;
m_nPrinting = FALSE;
|