if (flag == 0)
{
flag = 1;
lineStartX = getX(k);
lineStartY = getResY(resData);
if (hxtpye == 0)
{
g2.DrawString("○", ST8R, Brushes.Red, lineStartX, (float)(lineStartY - LineY));
}
}
else
{
lineEndX = getX(k);
lineEndY = getResY(resData);
g2.DrawLine(redPenS, lineStartX + gridWidthByPoint / 2, lineStartY, lineEndX + gridWidthByPoint / 2, lineEndY);
lineStartX = lineEndX;
lineStartY = lineEndY;
if (hxtpye == 0)
{
g2.DrawString("○", ST8R, Brushes.Red, lineStartX, (float)(lineStartY - (float)3.9));
}
}
4.4.2 表格样式的打印
表格样式的打印是通过第三方软件Grid++Report,以护理记录单为例,首先绘制打印的模版,这个有点像在设计器里绘制winform的界面,如图4.5所示:
图4.5 护理记录单打印模版
然后还需要在程序中调用该模版,并把table中的数据传递给模版,实现打印的效果。它的原理是把数据以一行为单位推入到模版中, Report.DetailGrid.Recordset.Append()为一行的开始, Report.DetailGrid.Recordset.Post()为一行的结束,其中判断如果列名相同,则把改行的这格数据推入。一个循环下来,就推入了所有数据,如图4.5所示为护理记录单的打印预览效果。 基于.NET的三层构架的护理文书系统的设计与实现(14):http://www.751com.cn/jisuanji/lunwen_617.html