/// <summary> /// 绘制拖拽矩形,本函数根据主矩形区域计算8个拖拽矩形区域并用指定的颜色 /// 填充和绘制边框,本函数不绘制主矩形区域 /// </summary> /// <param name="myGraph">图像绘制对象</param> public void RefreshView(System.Drawing.Graphics myGraph) { if (myGraph != null) { if (bolBoundsBorder) { using (System.Drawing.Pen myPen = new System.Drawing.Pen(System.Drawing.Color.Black)) { myPen.DashStyle = this.LineDashStyle; myGraph.DrawRectangle(myPen, myBounds); } } using (System.Drawing.SolidBrush myBrush = new System.Drawing.SolidBrush(this.DragRectBackColor)) { myGraph.FillRectangles(myBrush, this.myDragRect); } using (System.Drawing.Pen myPen = new System.Drawing.Pen(this.DragRectBorderColor)) { myGraph.DrawRectangles(myPen, myDragRect); } } }// void DrawDragRect()
public void Draw(System.Drawing.Graphics inGraphics) { int maxY = mTopLeftY + mHeight; int gridSectionWidth = GetSectionWidth(); int gridSectionHeight = mHeight / mSectionsNum; List <System.Drawing.Rectangle> gridRects = new List <System.Drawing.Rectangle>(); for (int i = 0; i < mSectionsNum; ++i) { for (int j = 0; j < mSectionsNum; ++j) { gridRects.Add(new System.Drawing.Rectangle(mTopLeftX + j * gridSectionWidth, mTopLeftY + i * gridSectionHeight, gridSectionWidth, gridSectionHeight)); } } System.Drawing.Pen rectPen = new System.Drawing.Pen(System.Drawing.Color.Chocolate); inGraphics.DrawRectangles(rectPen, gridRects.ToArray()); rectPen.Dispose(); }
private bool DrawingPatientDailyDebt(System.Drawing.Graphics g, DataTable dtbResult, out int rownum) { int k = 0; rownum = RowNum; System.Drawing.PointF DrawPoint = new System.Drawing.PointF(0.0f, 0.0f); float leftMargin = 50.0f; System.Drawing.Font font = new System.Drawing.Font("宋体", 10.5f, System.Drawing.FontStyle.Bold); System.Drawing.SolidBrush brush = new System.Drawing.SolidBrush(System.Drawing.Color.Black); DrawPoint.X = 100.0f; DrawPoint.Y = 100.0f; for (int i = rownum; i < rownum + 4; i++) { if (i >= dtbResult.Rows.Count) { return(false); } // g.DrawString(strHospitalName, font, brush, DrawPoint); font = new System.Drawing.Font("宋体", 10.5f); DrawPoint.X = leftMargin; DrawPoint.Y = g.MeasureString("佛山市第二人民医院住院费用一日清单", font).Height + DrawPoint.Y + 10.0f; g.DrawString("住院号", font, brush, DrawPoint); DrawPoint.X = DrawPoint.X + g.MeasureString("住院号", font).Width + 20.0f; DrawPoint.Y = DrawPoint.Y; g.DrawString(dtbResult.Rows[i]["inpatientid_chr"].ToString(), font, brush, DrawPoint); DrawPoint.X = DrawPoint.X + g.MeasureString(dtbResult.Rows[i]["inpatientid_chr"].ToString(), font).Width + 20.0f; DrawPoint.Y = DrawPoint.Y; g.DrawString("姓名", font, brush, DrawPoint); DrawPoint.X = DrawPoint.X + g.MeasureString("姓名", font).Width + 20.0f; DrawPoint.Y = DrawPoint.Y; g.DrawString(dtbResult.Rows[i]["lastname_vchr"].ToString(), font, brush, DrawPoint); DrawPoint.X = leftMargin; DrawPoint.Y = DrawPoint.Y + g.MeasureString(dtbResult.Rows[i]["lastname_vchr"].ToString(), font).Height; g.DrawString("病区", font, brush, DrawPoint); DrawPoint.X = DrawPoint.X + g.MeasureString("病区", font).Width + 20.0f; DrawPoint.Y = DrawPoint.Y; g.DrawString(this.m_objViewer.m_txtAREAID_CHR.Text.ToString(), font, brush, DrawPoint); DrawPoint.X = DrawPoint.X + g.MeasureString(this.m_objViewer.m_txtAREAID_CHR.Text.ToString(), font).Width + 20.0f; DrawPoint.Y = DrawPoint.Y; g.DrawString("床号", font, brush, DrawPoint); DrawPoint.X = DrawPoint.X + g.MeasureString("床号", font).Width + 20.0f; DrawPoint.Y = DrawPoint.Y; g.DrawString(dtbResult.Rows[i]["bedno"].ToString(), font, brush, DrawPoint); DrawPoint.X = DrawPoint.X + g.MeasureString(dtbResult.Rows[i]["bedno"].ToString(), font).Width + 20.0f; DrawPoint.Y = DrawPoint.Y; g.DrawString("清单日期", font, brush, DrawPoint); DrawPoint.X = DrawPoint.X + g.MeasureString("清单日期", font).Width + 20.0f; DrawPoint.Y = DrawPoint.Y; g.DrawString(this.m_objViewer.m_dtpStatTime.Value.ToShortDateString(), font, brush, DrawPoint); //画线 float length = 500.0f; DrawPoint.Y = DrawPoint.Y + g.MeasureString(this.m_objViewer.m_dtpStatTime.Value.ToShortDateString(), font).Height + 5.0f; System.Drawing.Pen pen = new System.Drawing.Pen(brush, 1); g.DrawLine(pen, new System.Drawing.PointF(leftMargin, DrawPoint.Y), new System.Drawing.PointF(length, DrawPoint.Y)); //具体收费项目 float DailyCharge = 0; //用于当天合计 DataTable dtbDetail = null; long lngRes = objSvc.m_lngGetDailyChargeInfo(this.dtbReportConfig.Rows[0]["RPTID_CHR"].ToString(), dtbResult.Rows[i]["registerid_chr"].ToString().Trim(), this.m_objViewer.m_dtpStatTime.Value, out dtbDetail); if (lngRes > 0 && dtbDetail.Rows.Count > 0) { DrawPoint.X = leftMargin; DrawPoint.Y = DrawPoint.Y + 5.0f; System.Drawing.SizeF size = new System.Drawing.SizeF(70.0f, 20.0f); //框大小 System.Drawing.RectangleF[] rectangle = new System.Drawing.RectangleF[dtbDetail.Rows.Count * 2]; //框数目 System.Drawing.PointF textPointF = DrawPoint; for (int j = 0; j < rectangle.Length; j = j + 6) { DrawPoint.X = leftMargin; textPointF.X = DrawPoint.X + 1.0f; textPointF.Y = DrawPoint.Y + 1.5f; rectangle[j] = new System.Drawing.RectangleF(DrawPoint, size); g.DrawString(dtbDetail.Rows[j / 2]["typename_vchr"].ToString(), font, brush, textPointF); //添加具体框内容 DrawPoint.X = DrawPoint.X + size.Width; textPointF.X = DrawPoint.X + 1.0f; if ((j + 1) < rectangle.Length) { rectangle[j + 1] = new System.Drawing.RectangleF(DrawPoint, size); if (dtbDetail.Rows[j / 2]["money"] != System.DBNull.Value) { g.DrawString(dtbDetail.Rows[j / 2]["money"].ToString(), font, brush, textPointF); //添加具体框内容 DailyCharge = DailyCharge + Convert.ToSingle(dtbDetail.Rows[j / 2]["money"].ToString()); } DrawPoint.X = DrawPoint.X + size.Width; textPointF.X = DrawPoint.X + 1.0f; } if ((j + 2) < rectangle.Length) { rectangle[j + 2] = new System.Drawing.RectangleF(DrawPoint, size); g.DrawString(dtbDetail.Rows[(j + 2) / 2]["typename_vchr"].ToString(), font, brush, textPointF); //添加具体框内容 DrawPoint.X = DrawPoint.X + size.Width; textPointF.X = DrawPoint.X + 1.0f; } if ((j + 3) < rectangle.Length) { rectangle[j + 3] = new System.Drawing.RectangleF(DrawPoint, size); if (dtbDetail.Rows[(j + 2) / 2]["money"] != System.DBNull.Value) { g.DrawString(dtbDetail.Rows[(j + 2) / 2]["money"].ToString(), font, brush, textPointF); //添加具体框内容 DailyCharge = DailyCharge + Convert.ToSingle(dtbDetail.Rows[(j + 2) / 2]["money"].ToString()); } DrawPoint.X = DrawPoint.X + size.Width; textPointF.X = DrawPoint.X + 1.0f; } if ((j + 4) < rectangle.Length) { rectangle[j + 4] = new System.Drawing.RectangleF(DrawPoint, size); g.DrawString(dtbDetail.Rows[(j + 4) / 2]["typename_vchr"].ToString(), font, brush, textPointF); //添加具体框内容 DrawPoint.X = DrawPoint.X + size.Width; textPointF.X = DrawPoint.X + 1.0f; } if ((j + 5) < rectangle.Length) { rectangle[j + 5] = new System.Drawing.RectangleF(DrawPoint, size); if (dtbDetail.Rows[(j + 4) / 2]["money"] != System.DBNull.Value) { g.DrawString(dtbDetail.Rows[(j + 4) / 2]["money"].ToString(), font, brush, textPointF); //添加具体框内容 DailyCharge = DailyCharge + Convert.ToSingle(dtbDetail.Rows[(j + 4) / 2]["money"].ToString()); } DrawPoint.X = DrawPoint.X + size.Width; textPointF.X = DrawPoint.X + 1.0f; } DrawPoint.Y = DrawPoint.Y + size.Height; } g.DrawRectangles(pen, rectangle); } g.DrawLine(pen, new System.Drawing.PointF(leftMargin, DrawPoint.Y + 7.0f), new System.Drawing.PointF(length, DrawPoint.Y + 6.0f)); DrawPoint.X = leftMargin; DrawPoint.Y = DrawPoint.Y + 15.0f; g.DrawString("当天合计", font, brush, DrawPoint); DrawPoint.X = DrawPoint.X + g.MeasureString("当天合计", font).Width + 5.0f; DrawPoint.Y = DrawPoint.Y; g.DrawString(DailyCharge.ToString(), font, brush, DrawPoint); DrawPoint.X = DrawPoint.X + g.MeasureString(DailyCharge.ToString(), font).Width + 5.0f; DrawPoint.Y = DrawPoint.Y; g.DrawString("预交款", font, brush, DrawPoint); DrawPoint.X = DrawPoint.X + g.MeasureString("预交款", font).Width + 5.0f; DrawPoint.Y = DrawPoint.Y; g.DrawString(dtbResult.Rows[i]["money"].ToString(), font, brush, DrawPoint); DrawPoint.X = leftMargin; DrawPoint.Y = DrawPoint.Y + g.MeasureString("money", font).Height; g.DrawString("住院费用合计", font, brush, DrawPoint); DrawPoint.X = DrawPoint.X + g.MeasureString("住院费用合计", font).Width + 5.0f; DrawPoint.Y = DrawPoint.Y; g.DrawString(dtbResult.Rows[i]["totalcharge"].ToString(), font, brush, DrawPoint); DrawPoint.X = DrawPoint.X + g.MeasureString(dtbResult.Rows[i]["totalcharge"].ToString(), font).Width + 5.0f; DrawPoint.Y = DrawPoint.Y; g.DrawString("打印时间", font, brush, DrawPoint); DrawPoint.X = DrawPoint.X + g.MeasureString("打印时间", font).Width + 5.0f; DrawPoint.Y = DrawPoint.Y; g.DrawString(this.m_objViewer.m_dtpStatTime.Value.ToString(), font, brush, DrawPoint); DrawPoint.X = 100.0f; DrawPoint.Y = DrawPoint.Y + 30.0f; font = new System.Drawing.Font("宋体", 10.5f, System.Drawing.FontStyle.Bold); k = i + 1; } rownum = k; return(true); }