DataGrid的列印(二)

2021-04-07 08:43:01 字數 1688 閱讀 3051

#include "stdafx.h"

#include "./printhelper.h"

#include "math.h"

#include

static const unsigned int grid_width =

;static const unsigned int a3_*****_width = 420;

cprinthelper::cprinthelper(cdc * pdc, bool bheader, bool bfooter) : _pdc(pdc)

, _bheader(bheader)

, _bfooter(bfooter)

cprinthelper::~cprinthelper()

//頁首的列印

void cprinthelper::printheader(cstring title, cstring syear,

cstring simage, cstring eyear, cstring eimage)

//msflexgrid頭

void cprinthelper::printgridheader()

//列印頁尾的內容:第 x 頁

void cprinthelper::printfooter(int currentpage) //, int totalpage)

;int cprinthelper::printpage(cmsflexgrid1 &grid, int rowpos)

return rowpos;

}// 列印一條row資料需要多少行

int cprinthelper::getprintlinenumber(cmsflexgrid1 &grid, int rowpos)

return maxheight;

}// 畫一行格仔( 格仔大小取自grid_width )

void cprinthelper::printlinegrid(int top, int height)

// 畫兩根橫線

_pdc->moveto(_leftmargin, top);

_pdc->lineto(_leftmargin + mm2pixel(x * _ratio), top);

_pdc->moveto(_leftmargin, buttom);

_pdc->lineto(_leftmargin + mm2pixel(x * _ratio), buttom);

return;

}// 列印一行資料

bool cprinthelper::printlinetext(cmsflexgrid1 &grid, int row, int& lineposition)

y += getlinepixelheight();

}lineposition += rowheight;

return true;

}cstring cprinthelper::getsubstring( const cstring s, int istartpos, int ilen ) const

else

}if ( inextpos > istartpos )

else

while(  i < len && icutlen < ilen )

else

i+= 2;}}

}return( sret );

}

DataGrid的列印(三)

if dlg.domodal idcancel return create a cdc and attach it to the default printer cdc dcprinter dcprinter.attach dlg.createprinterdc initialize docinfo...

DataGrid的列印預覽和列印

using system using system.drawing using system.collections using system.componentmodel using system.windows.forms using system.data using system.data....

C 列印DataGrid中的資料

對於資訊系統,列印功能是必須的。而列印,是一件相當麻煩的事情。列印datagrid中的資料,尤其如此。要想到的很多,包括頁首 頁尾設定,列印字型,分頁,標題,預覽等等一系列問題。如果從頭寫,工作量實在太大。網路上有很多c 寫的列印datagrid類 我幾乎挨個嘗試了個遍,要麼就是不能正常使用,要麼就...