vc 6.0下實現的 報表列印類 對資料制定列印位置 位置調整 列印預覽 以及批量列印
適用於 罰單、發票等批量列印要求
以下為程式**:
// reportprint.h: inte***ce for the reportprint class.
////
#if !defined(afx_reportprint_h__7a35ba1e_b178_4c1b_8970_5226028695db__included_)
#define afx_reportprint_h__7a35ba1e_b178_4c1b_8970_5226028695db__included_
#if _msc_ver > 1000
#pragma once
#endif // _msc_ver > 1000
#define point_count 2
//列印資訊結構體
typedef struct tag_printinfo
printinfo;
class reportprint
;#endif // !defined(afx_reportprint_h__7a35ba1e_b178_4c1b_8970_5226028695db__included_)
/// cdlgreportprintpreview dialog
class cdlgreportprintpreview : public cdialog
;ccombobox m_ctrlnodes;
int m_ncurpage;
int m_nposx;
int m_nposy;
//}}afx_data
// overrides
// classwizard generated virtual function overrides
//}afx_virtual
// implementation
protected:
// generated message map functions
//}afx_msg
declare_message_map()
private:
void drawprintpreview(cdc* pdc,crect* previewrect);
crect m_previewrect; //列印預覽矩形 預設 297*210
csize m_*****size;
printinfo* m_pprintinfo;
int m_nmaxpage; //最大頁
double m_nrato; //預覽縮放比率
cpoint* m_pprintpoint; //列印座標陣列
int m_nprintcount;
reportprint* m_pparent;
cstring m_csheight;
cstring m_csfacename;
};// reportprint.cpp: implementation of the reportprint class.
////
#include "stdafx.h"
#include "myprint.h"
#include "reportprint.h"
#include
#ifdef _debug
#undef this_file
static char this_file=__file__;
#define new debug_new
#endif
//// construction/destruction
//reportprint::reportprint()
reportprint::~reportprint()
//設定列印字型 預設 宋體15號
void reportprint::settextfont(char* height,char* facename)
//設定列印紙張的大小
void reportprint::set*****size(csize *****size)
//設定列印紙張的大小 過載
void reportprint::set*****size(int x, int y)
//設定列印資料 同時設定批量列印的數量
void reportprint::setprintinfo(printinfo printinfo, int size)
//列印
void reportprint::print(bool bdirect)
}//列印預覽
void reportprint::printpreview()
/// cdlgreportprintpreview dialog
cdlgreportprintpreview::cdlgreportprintpreview(cwnd* pparent /*=null*/)
: cdialog(cdlgreportprintpreview::idd, pparent)
}afx_data_init
}cdlgreportprintpreview::cdlgreportprintpreview(cstring& csheight,cstring& csfacename, csize *****size, printinfo printinfo, int nmaxpage, cpoint* pprintpoint, int nprintcount,reportprint* parent )
: cdialog(cdlgreportprintpreview::idd, null)
void cdlgreportprintpreview::dodataexchange(cdataexchange* pdx)
}afx_data_map
}begin_message_map(cdlgreportprintpreview, cdialog)
//}afx_msg_map
end_message_map()
/// cdlgreportprintpreview message handlers
bool cdlgreportprintpreview::oninitdialog()
m_ctrlnodes.selectstring(i,str);
m_ctrlnodes.setcursel(0);
m_nposx = m_pprintpoint[0].x;
m_nposy = m_pprintpoint[0].y;
cstring csposx;
csposx.format("%d",m_nposx);
cstring csposy;
csposy.format("%d",m_nposy);
setdlgitemtext(idc_edit_x,csposx);
setdlgitemtext(idc_edit_y,csposy);
updatedata(true);
if (m_beditmode == false)
return true; // return true unless you set the focus to a control
// exception: ocx property pages should return false
}void cdlgreportprintpreview::onpaint()
void cdlgreportprintpreview::drawprintpreview(cdc *pdc, crect *previewrect)
font.deleteobject();
pen.deleteobject ();
}void cdlgreportprintpreview::onbnpre()
else
void cdlgreportprintpreview::onbnnext()
else
}void cdlgreportprintpreview::onok()
void cdlgreportprintpreview::onbnsetpos()
void cdlgreportprintpreview::onselchangecombonode()
m_nposx = m_pprintpoint[index].x;
m_nposy = m_pprintpoint[index].y;
cstring csposx;
csposx.format("%d",m_nposx);
cstring csposy;
csposy.format("%d",m_nposy);
setdlgitemtext(idc_edit_x,csposx);
setdlgitemtext(idc_edit_y,csposy);
updatedata(true);
} void cdlgreportprintpreview::onchangeeditx()
void cdlgreportprintpreview::onchangeedity()
列印預覽對話方塊
MFC 列印程式的編制
mfc 列印程式的編制 mfc 在實現列印程式設計工作時已經建立了乙個已有的框架,我們只要往這個框架裡面填東西即可。列印工作其實就是在 dc 上繪圖,不過這裡的 dc 是印表機的 dc 明確這一點之後,想當然的,我們列印的任務可以分為獲取印表機 dc 根據印表機驅動讓使用者互動設定列印引數 開始列印...
MFC實現列印功能
使用cprintdialog類的建構函式 cprintdialog bool bprintsetuponly,true for print setup,false for print dialog dword dwflags pd allpages pd usedevmodecopies pd no...
微軟自帶報表列印的實現
1 建立資料原始檔 uoorderds.xsd 只在資料來源中新增相應的列,不新增查詢語句,在程式中新增 為了方便條件查詢,所以在程式中新增 2 新增報表檔案 prtuporder.rdlc 然後給報表檔案指定資料集 就是上面的xsd檔案 3 也可給報表中的table新增引數 3 建立.aspx檔案...