项目场景:
使用FastReport生成二维码
项目场景:打印申请单模版加入患者信息二维码(FastReport中有现有的数据源可用)
解决方案
这里使用的FastReport 版本为 v2013.2.5.0 + .NETFramework,Version=v4.0
默认UTF-8编码格式
第一步
- 添加二维码组件在合适的位置
拖动出来之后是条形码,需要更改属性
- 更改 BarCode 属性为 QR Code,条形码变为二维码
第二步
- 注册二维码的BeforePrint事件,在Code中编写代码
- 拼写需要的字符串或者文本
private void Barcode2_BeforePrint(object sender, EventArgs e)
{
string JsonResult =string.Empty;
if(Report.GetColumnValue("申请单信息.分类代码").ToString() == "XDT")
{
Barcode2.Visible = true;
JsonResult = GetJsonResult();
if(!string.IsNullOrEmpty(JsonResult)){
Barcode2.Text = JsonResult;
}
}else{
Barcode2.Visible = false;
}
}
private string GetJsonResult(){
StringBuilder strBuild = new StringBuilder();
strBuild.AppendLine("{");
strBuild.AppendLine("\"patientId\":\"" + Report.GetColumnValue("申请单信息.申请单号").ToString() + "\",");
strBuild.AppendLine("\"patientName\": \"" + Report.GetColumnValue("申请单信息.姓名").ToString() + "\",");
//日期处理
string DataTime = Report.GetColumnValue("申请信息.出生日期").ToString();
string DateResult = string.Empty;
if(!string.IsNullOrEmpty(DataTime))
{
DateResult = DateTime.ParseExact(DataTime, "yyyyMMddHHmmss", null).ToString("yyyy-MM-dd HH:mm:ss");
}
strBuild.AppendLine("\"patientBirthDate\":\"" + DateResult + "\",");
//性别处理
string sex = String.Empty;
if((String)Report.GetColumnValue("申请单信息.性别").ToString() == "女")
{
sex ="F";
} else if((String)Report.GetColumnValue("申请单信息.性别").ToString() == "男"){
sex ="M";
} else{
sex ="U";
}
strBuild.AppendLine("\"patientSex\":\"" + sex + "\",");
//患者类型处理
string patientType = string.Empty;
if((String)Report.GetColumnValue("申请单信息.病人类型").ToString() == "0")
{
patientType ="MZ";
}else{
patientType ="ZY";
}
strBuild.AppendLine("\"patientType\":\"" + patientType + "\",");
strBuild.AppendLine("\"patientStatus\":0,");
strBuild.AppendLine("\"history\":\"" + (String)Report.GetColumnValue("申请单信息.病史概要").ToString() + "\",");
strBuild.AppendLine("\"bq\":\"" + (String)Report.GetColumnValue("申请单信息.所属病区").ToString() + "\"");
strBuild.AppendLine("\"qbq\":\"\",");
strBuild.AppendLine("\"sqks\":\"" + (String)Report.GetColumnValue("申请单信息.所属科室").ToString() + "\",");
strBuild.AppendLine("\"sqys\":\"" + (String)Report.GetColumnValue("申请单信息.申请医生").ToString() + "\"");
strBuild.AppendLine("\"jcks\":\"" + (String)Report.GetColumnValue("申请单信息.受理科室").ToString() + "\",");
strBuild.AppendLine("\"jcys\":\"\"");
strBuild.AppendLine("\"mzh\":\"" + (String)Report.GetColumnValue("申请单信息.门诊号").ToString() + "\",");
strBuild.AppendLine("\"bch\":\"" + (String)Report.GetColumnValue("申请单信息.床位号").ToString() + "\"");
strBuild.AppendLine("}");
string JsonResult = strBuild.ToString();
if(!string.IsNullOrEmpty(JsonResult)){
return JsonResult;
}
else{
return string.Empty;
}
}
- 预览
扫描二维码后,可得到需要的内容,满足我的需求
- 扫码结果
扫码结果由三方处理