{
dgView.CurrentCell.ReadOnly = true;
YCNurseEditXtraForm_SY form = new YCNurseEditXtraForm_SY();
string currentCellvalue = dgView[columnindex, Rowindex].Value.ToString();
form.SetInitValues(currentCellvalue, m_strNoteColumnName, Rowindex);
if (form.ShowDialog() == DialogResult.OK)
{
}
}
图4.2 子窗体YCNurseEditXtraForm_SY
如图4.2所示,调用该窗体后,选择需要的选项,然后点击确定后把值传回主窗体:
private void simpleButton1_Click(object sender, EventArgs e)
{
strValues = lb_values.Text;
GridTableReportSh.pCurrentWin.SetdgViewContents
(lb_values.Text, m_RowIndex);
GridTableReportSh.pCurrentWin.Activate();
this.DialogResult = DialogResult.OK;
}
图4.3 复用模块流程图
4.3 护理评估单的实现
护理评估单跟护理记录单其实十分类似,都由表头,增删改查按钮,以及中间的报表内容组成。不同点在于,护理评估单的中间更加复杂,不单单有明细网格,还有TextBox和Label等控件,那么就产生了两个难点。一个是如何在界面上展现出更为复杂的明细网格,普通的明细网格只有横向的表头,但是这里还有纵向的表头,此时不管是Datagridview或是Gridcontrol,都已经无法满足要求。所以就用到了另一个第三方控件Farpoint,他展现出类似EXCEL的效果。只需在SpreadDesigner中画出所要的界面样式即可[8]。
图4.4 SpreadDesigner
第二个难点,则是保存数据[9]。这里以保存图4.2中的部分为例,发现其实这个控件中的每一个都有相应的坐标,那么在向VITAL_SIGNS_REC保存数据的时候,VITAL_SIGNS能否用该单元格的坐标为名字,并加以一定处理,使其不会重复,然后在VITAL_SIGNS_VALUES中存入单元格中的数据。
4.4 护理文书打印的实现
护理文书的打印主要分为两大块,一个是图形类的打印,是通过画布上绘制线条和图案来实现;另一个则是明细网格的打印,通过第三方软件Grid++Report来制作打印模版。
4.4.1 体温单的打印
体温单的打印全部写在Pintdraw类中。体温单打印中,绘制线条,是为了画出体温单的表格,如图2.1,通过先定义一些粗细不同、颜色不同的笔刷,计算好位置后,把线条全部画好[10]。
接着是绘制图案,以绘制呼吸为例,在体温单frm_temp里取到呼吸的值后,调用print_draw中的printRespiration()开始绘制[11](一般来说呼吸的值在20上下浮动),说的简单点,其实就是把一个个图案连接起来,绘制成曲线。首先定义一个flag=0,判断若为0,则绘制一个图案,然后把flag赋为1,然后绘制第二个图案,并连接两个图案: 基于.NET的三层构架的护理文书系统的设计与实现(13):http://www.youerw.com/jisuanji/lunwen_617.html