根据结果设置背景颜色,根据DataTable中的值(未在XRTable中显示)设置项目名称的字体。
在XRTable的BeforePrint的事件中。
1,根据DataRowView drv = this.DetailReport.GetCurrentRow() as DataRowView;获取当前行的数据,DataTable包含并未绑定到Table的数据。
2,根据列的值,设置样式,注意要设置在else中回归原本样式。
private void xrTable2_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{
//DataTable dt = this.DetailReport.DataSource == null ? null : this.DetailReport.DataSource as DataTable;
XRTable xrtable = sender as XRTable;
XRTableRowCollection xrtableRowCollection = xrtable.Rows;
int numRow = xrtableRowCollection.Count;
DataRowView drv = this.DetailReport.GetCurrentRow() as DataRowView;
for (int iC = 0; iC < numRow; iC++)
{
//DataRow dr = dt.Rows[iC];
string valueLI = drv[TableFieldBase.T_OHS_FACTORS2SYMPTOM.T_SYMPTOM_NAME] == null ? "" : drv[TableFieldBase.T_OHS_FACTORS2SYMPTOM.T_SYMPTOM_NAME].ToString();
string valueL = drv[TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.SYMPTOMNAME] == null ? "" : drv[TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.SYMPTOMNAME].ToString();
string valueRI = drv[TableFieldBase.T_OHS_FACTORS2SYMPTOM.T_SYMPTOM_NAME + "1"] == null ? "" : drv[TableFieldBase.T_OHS_FACTORS2SYMPTOM.T_SYMPTOM_NAME + "1"].ToString();
string valueR = drv[TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.SYMPTOMNAME + "1"] == null ? "" : drv[TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.SYMPTOMNAME + "1"].ToString();
XRTableRow xrtableRow = xrtableRowCollection[iC];
XRTableCellCollection xrtableCellCollection = xrtableRow.Cells;
int numColumn = xrtableCellCollection.Count;
for (int iR = 0; iR < numColumn; iR++)
{
XRTableCell xrtableCell = xrtableCellCollection[iR];
if (iR == 0)
{
if (valueLI.Equals(valueL))
{
xrtableCell.Font = new System.Drawing.Font("宋体", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0)));
}
else
{
xrtableCell.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
}
}
else if (iR == 1)
{
string value = xrtableCell.Text;
if (string.IsNullOrWhiteSpace(valueL)) { }
else
{
if (value.Equals("-"))
{
xrtableCell.BackColor = Color.Transparent;
}
else
{
//value.Equals("-");
xrtableCell.BackColor = Color.LightGray;
}
}
}
else if (iR == 2)
{
if (valueRI.Equals(valueR))
{
xrtableCell.Font = new System.Drawing.Font("宋体", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0)));
}
else
{
xrtableCell.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
}
}
else if (iR == 3)
{
string value = xrtableCell.Text;
if (string.IsNullOrWhiteSpace(valueR)) { }
else
{
if (value.Equals("-"))
{
xrtableCell.BackColor = Color.Transparent;
}
else
{
//value.Equals("-");
xrtableCell.BackColor = Color.LightGray;
}
}
}
}
}
}
以下是数据绑定。
this.DetailReport.DataSource = dt;
this.xrTableCell_name.DataBindings.Add("Text", dt, TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.SYMPTOMNAME);
this.xrTableCell_result.DataBindings.Add("Text", dt, TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.DEFAULTVALUE);
this.xrTableCell_name1.DataBindings.Add("Text", dt, TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.SYMPTOMNAME + "1");
this.xrTableCell_result1.DataBindings.Add("Text", dt, TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.DEFAULTVALUE + "1");
注意:DataTable绑定给了DetailReport。
public void InitData(string strSglID)
{
string modelFID = "";
DataTable dt_4SingleEx = BLLUtil.GetTableData(TableField.T_SINGLE_CHECKINFO_EXTEND.T_NAME, TableField.T_SINGLE_CHECKINFO_EXTEND.SGLCHECKID,
strSglID);
if (dt_4SingleEx == null || dt_4SingleEx.Rows.Count < 1) { return; }
else
{
modelFID = dt_4SingleEx.Rows[0][TableField.T_SINGLE_CHECKINFO_EXTEND.SYMPTOMSMODEL].ToString();
}
string TiJianRiQi = "";
//DataTable dt_4Single = BLLUtil.GetTableData(TableFieldBase.T_SINGLE_CHECKINFO.T_NAME, TableFieldBase.T_SINGLE_CHECKINFO.SGLCHECKID, strSglID);
//if (dt_4Single == null || dt_4Single.Rows.Count < 1) { }
//else
//{
DateTime dt_temp;
if (DateTime.TryParse(dt_4SingleEx.Rows[0][TableField.T_SINGLE_CHECKINFO_EXTEND.SIGNDATE].ToString(), out dt_temp))
{
TiJianRiQi = dt_temp.ToLongDateString();
}
//}
this.xrTableCell_tijianriqi_left.Text = this.xrTableCell_tijianriqi_right.Text = TiJianRiQi;
if (BLLBaseInfo.GetSrvconfigBoolean(TableField.strOHS_report_ReportWithSignPic))
{
this.XRPictureBox_yishengSign.Image = ReportSignPictureUtil.GetDoctorSignPictureByID(dt_4SingleEx.Rows[0][TableField.T_SINGLE_CHECKINFO_EXTEND.SIGNDOCTOR].ToString());
this.xrLabel_yishengqianming.Visible = false;
}
else
{
this.xrLabel_yishengqianming.Text = BLLBaseInfo.GetEmpByID(dt_4SingleEx.Rows[0][TableField.T_SINGLE_CHECKINFO_EXTEND.SIGNDOCTOR].ToString()).FNAME;// BLLOccupationalDisease.GetZhengZhuangYiShengQianMing(strSglID,true);
this.XRPictureBox_yishengSign.Visible = false;
}
List<string> ls = new List<string>();
if (string.IsNullOrWhiteSpace(strSglID)) { }
else
{
DataTable dt_personrisk = BLLUtil.GetTableData(TableFieldBase.T_OHS_PERSONRISKDETAIL.T_NAME, TableFieldBase.T_OHS_PERSONRISKDETAIL.SGLCHECKID, strSglID);
if (dt_personrisk == null || dt_personrisk.Rows.Count < 1)
{
}
else
{
foreach (DataRow dr_personrisk in dt_personrisk.Rows)
{
string id = dr_personrisk[TableFieldBase.T_OHS_PERSONRISKDETAIL.T_OHS_FACTOR2JOB_FID] == null ? "" : dr_personrisk[TableFieldBase.T_OHS_PERSONRISKDETAIL.T_OHS_FACTOR2JOB_FID].ToString();
if (string.IsNullOrWhiteSpace(id)) { }
else
{
ls.Add(id);
}
}
}
}
string[] f2js = ls.ToArray();
DataTable dt_4pmZuo = BLLOccupationalDisease.getPersonSymptomsGeneralZuo(modelFID, f2js);
DataTable dt_4pmYou = BLLOccupationalDisease.getPersonSymptomsGeneralYou(modelFID, f2js);
DataTable dt_4symptomResult = BLLUtil.GetTableData(TableField.T_OHS_PERSONSYMPTOMS.T_NAME,
TableField.T_OHS_PERSONSYMPTOMS.SINGLEID, strSglID);
if (dt_4symptomResult == null || dt_4symptomResult.Rows.Count == 0)
{
}
else
{
int i4symptomResult = dt_4symptomResult.Rows.Count;
for (int i = 0; i < i4symptomResult; i++)
{//循环已有的结果,分别从左、右dt中寻找,找到则修改结果。
//如果两个都没找到,则说明是特殊症状,直接加到右dt中。
DataRow[] dr_4zuoResults = dt_4pmZuo.Select(TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.SYMPTOMNAME + "='" + dt_4symptomResult.Rows[i][TableField.T_OHS_PERSONSYMPTOMS.SYMPTOMNAME].ToString() + "'");
if (dr_4zuoResults.Length == 1)
{
dr_4zuoResults[0][TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.DEFAULTVALUE] = dt_4symptomResult.Rows[i][TableField.T_OHS_PERSONSYMPTOMS.RESULT];
//不知道这样修改能否改变dt_4pmZuo
continue;
}
DataRow[] dr_4youResults = dt_4pmYou.Select(TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.SYMPTOMNAME + "='" + dt_4symptomResult.Rows[i][TableField.T_OHS_PERSONSYMPTOMS.SYMPTOMNAME].ToString() + "'");
if (dr_4youResults.Length == 1)
{
dr_4youResults[0][TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.DEFAULTVALUE] = dt_4symptomResult.Rows[i][TableField.T_OHS_PERSONSYMPTOMS.RESULT];
//不知道这样修改能否改变dt_4pmZuo
continue;
}
DataRow dr_4temp = dt_4pmYou.NewRow();
dr_4temp[TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.SYMPTOMNAME] = dt_4symptomResult.Rows[i][TableField.T_OHS_PERSONSYMPTOMS.SYMPTOMNAME];
dr_4temp[TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.DEFAULTVALUE] = dt_4symptomResult.Rows[i][TableField.T_OHS_PERSONSYMPTOMS.RESULT];
//dr_4temp[TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.FID] = dt_4symptomResult.Rows[i][TableField.T_OHS_PERSONSYMPTOMS.FIDSYMPTOM];
dt_4pmYou.Rows.Add(dr_4temp);
}
}
DataTable dt = new DataTable();
dt.Columns.Add(TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.SYMPTOMNAME);
dt.Columns.Add(TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.DEFAULTVALUE);
dt.Columns.Add(TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.SYMPTOMNAME + "1");
dt.Columns.Add(TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.DEFAULTVALUE + "1");
dt.Columns.Add(TableFieldBase.T_OHS_FACTORS2SYMPTOM.T_SYMPTOM_NAME);
dt.Columns.Add(TableFieldBase.T_OHS_FACTORS2SYMPTOM.T_SYMPTOM_NAME + "1");
int iTemp = dt_4pmZuo.Rows.Count >= dt_4pmYou.Rows.Count ? dt_4pmZuo.Rows.Count : dt_4pmYou.Rows.Count;
for (int i = 0; i < iTemp; i++)
{
DataRow drNew = dt.NewRow();
if (dt_4pmZuo.Rows.Count > i)
{
drNew[TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.SYMPTOMNAME] = dt_4pmZuo.Rows[i][TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.SYMPTOMNAME];
drNew[TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.DEFAULTVALUE] = dt_4pmZuo.Rows[i][TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.DEFAULTVALUE];
drNew[TableFieldBase.T_OHS_FACTORS2SYMPTOM.T_SYMPTOM_NAME] = dt_4pmZuo.Rows[i][TableFieldBase.T_OHS_FACTORS2SYMPTOM.T_SYMPTOM_NAME];
}
if (dt_4pmYou.Rows.Count > i)
{
drNew[TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.SYMPTOMNAME + "1"] = dt_4pmYou.Rows[i][TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.SYMPTOMNAME];
drNew[TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.DEFAULTVALUE + "1"] = dt_4pmYou.Rows[i][TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.DEFAULTVALUE];
drNew[TableFieldBase.T_OHS_FACTORS2SYMPTOM.T_SYMPTOM_NAME + "1"] = dt_4pmYou.Rows[i][TableFieldBase.T_OHS_FACTORS2SYMPTOM.T_SYMPTOM_NAME];
}
dt.Rows.Add(drNew);
}
//dt.DefaultView.Sort = string.Format("{0} asc", TableField.T_OHS_PERSONSYMPTOMS.COLUMNNUMBER);
//yqs2014-09-16,我把Symptom的系统改了,撤消了列号。这里暂时改为FID排序,可能需要相应调整。
//dt_4symptomResult.DefaultView.Sort = string.Format("{0} asc", TableField.T_OHS_PERSONSYMPTOMS.FID);
this.DetailReport.DataSource = dt;
this.xrTableCell_name.DataBindings.Add("Text", dt, TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.SYMPTOMNAME);
this.xrTableCell_result.DataBindings.Add("Text", dt, TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.DEFAULTVALUE);
this.xrTableCell_name1.DataBindings.Add("Text", dt, TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.SYMPTOMNAME + "1");
this.xrTableCell_result1.DataBindings.Add("Text", dt, TableField.T_OHS_SYMPTOM_MODELSYMPTOMS.DEFAULTVALUE + "1");
}