上一篇实现了虚拟M层,这篇基于虚拟M实现打印导出。
首先对接打印层
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
namespace DHCLabtrakReportPrint
{
/// <summary>
/// 虚拟M调用类
/// </summary>
public class VMGetData
{
/// <summary>
/// 虚拟M执行服务
/// </summary>
public static IVMGetData Service
{
get;
set;
}
/// <summary>
/// 调用虚拟M类返回数据
/// </summary>
/// <param name="ClassName">类名</param>
/// <param name="FuncName">方法名</param>
/// <param name="Param">参数</param>
/// <param name="Session">会话</param>
/// <param name = "RowCount" > 行数 </ param >
/// <returns></returns>
public static string GetData(string Address, string ClassName, string FuncName, Parameters Param, string Session)
{
string result = string.Empty;
DealNullPara(Param);
//内部通道调用
if (Service != null)
{
result = Service.GetVMData(ClassName, FuncName, JsonConvert.SerializeObject(Param), Session);
//调用报错了
if (!result.Contains("<Response>"))
{
result = "<Response><SQLResult><SQL><FunRet></FunRet></SQL></SQLResult><RetVal>-1</RetVal><Error>" + result + "</Error><Node></Node><RowCount>0</RowCount></Response>";
}
}
else
{
NewWebClient wCient = new NewWebClient();
try
{
System.Collections.Specialized.NameValueCollection values = new System.Collections.Specialized.NameValueCollection();
values.Add("Method", "GetData");
values.Add("ClassName", ClassName);
values.Add("FuncName", FuncName);
values.Add("Param", JsonConvert.SerializeObject(Param));
values.Add("Session", Session);
wCient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
byte[] responseData = wCient.UploadValues(Address, "POST", values);
//返回接受的数据
result = System.Text.Encoding.UTF8.GetString(responseData);
//调用报错了
if (!result.Contains("<Response>"))
{
result = "<Response><SQLResult><SQL><FunRet></FunRet></SQL></SQLResult><RetVal>-1</RetVal><Error>" + result + "</Error><Node></Node><RowCount>0</RowCount></Response>";
}
}
catch (Exception ex)
{
result += ",异常信息:" + ex.Message + ",调用:" + ClassName + "," + FuncName + "," + Param + "," + Session;
}
finally
{
if (wCient != null)
{
wCient.Dispose();
}
}
}
return result;
}
/// <summary>
/// 处理空参数
/// </summary>
/// <param name="Param"></param>
private static void DealNullPara(Parameters Param)
{
if (Param.P0 == null)
{
Param.P0 = "";
}
if (Param.P1 == null)
{
Param.P1 = "";
}
if (Param.P2 == null)
{
Param.P2 = "";
}
if (Param.P3 == null)
{
Param.P3 = "";
}
if (Param.P4 == null)
{
Param.P4 = "";
}
if (Param.P5 == null)
{
Param.P5 = "";
}
if (Param.P6 == null)
{
Param.P6 = "";
}
if (Param.P7 == null)
{
Param.P7 = "";
}
if (Param.P8 == null)
{
Param.P8 = "";
}
if (Param.P9 == null)
{
Param.P9 = "";
}
if (Param.P10 == null)
{
Param.P10 = "";
}
if (Param.P11 == null)
{
Param.P11 = "";
}
if (Param.P12 == null)
{
Param.P12 = "";
}
if (Param.P13 == null)
{
Param.P13 = "";
}
if (Param.P14 == null)
{
Param.P14 = "";
}
}
/// <summary>
/// 继承客户端
/// </summary>
public class NewWebClient : System.Net.WebClient
{
/// <summary>
/// 超时时间
/// </summary>
private int timeout;
/// <summary>
/// 超时时间(毫秒)
/// </summary>
public int Timeout
{
get
{
return timeout;
}
set
{
timeout = value;
}
}
/// <summary>
/// 默认时间
/// </summary>
public NewWebClient()
{
this.timeout = 300000;
}
/// <summary>
/// 指定时间
/// </summary>
/// <param name="timeout"></param>
public NewWebClient(int timeout)
{
this.timeout = timeout;
}
/// <summary>
/// 重载
/// </summary>
/// <param name="address"></param>
/// <returns></returns>
protected override System.Net.WebRequest GetWebRequest(Uri address)
{
var result = base.GetWebRequest(address);
result.Timeout = this.timeout;
return result;
}
}
}
}
然后实现打印和导出的后台虚拟M逻辑
导出
import LIS.Core.Dto.OutParam;
import LIS.Model.Entity.BTTestCode;
import appcode.BaseHttpHandlerNoSession;
import appcode.Helper;
import java.util.List;
/**
* 输出符合Query约定的数据供导出Excel用,所有的虚拟M方法参数约定就是这个样子
*/
public class ExportExcelTest extends BaseHttpHandlerNoSession {
/**
* 查询所有项目数据导出到Excel
* @param P0
* @param P1
* @param P2
* @param P3
* @param P4
* @param P5
* @param P6
* @param P7
* @param P8
* @param P9
* @param P10
* @param P11
* @param P12
* @param P13
* @param Session
* @param Output
* @return
*/
public String QryTestCode(String P0, String P1, String P2, String P3, String P4, String P5, String P6, String P7, String P8, String P9, String P10, String P11, String P12, String P13, OutParam Session, OutParam Output) throws Exception{
BTTestCode dto=new BTTestCode();
//返回的参数,供Excel模板使用
Session.Message="项目数据导出1^"+LIS.Core.Util.TimeParser.GetNowDate()+"^zhanglianzhu";
//查询项目数据
List<BTTestCode> retList=EntityManager().FindAll(dto,null,"",-1,-1);
//数组转json就是等价Query的
return Helper.Object2Json(retList);
}
}
打印
import LIS.Core.Dto.OutParam;
import LIS.Core.Dto.PrintElement;
import LIS.Core.Util.PrintDrawProtocol;
import appcode.BaseHttpHandlerNoSession;
import appcode.Helper;
import java.util.ArrayList;
import java.util.List;
/**
* 输出符合打印元素绘制协议的打印元素数据,来供打印执行层打印
*/
public class PrintBarCodeTest extends BaseHttpHandlerNoSession {
/**
* 按传入的RowID输出符合打印元素绘制协议的数据来实现打印控制
* @param RowID 业务主键
* @param P1
* @param P2
* @param P3
* @param P4
* @param P5
* @param P6
* @param P7
* @param P8
* @param P9
* @param P10
* @param P11
* @param P12
* @param P13
* @param Session
* @param Output
* @return
*/
public String GetData(String RowID, String P1, String P2, String P3, String P4, String P5, String P6, String P7, String P8, String P9, String P10, String P11, String P12, String P13, OutParam Session, OutParam Output) {
List<PrintElement> retList=new ArrayList<>();
retList.add(PrintDrawProtocol.DrawLabel(10,10,"zhanglianzhu","宋体","12","","","","0"));
retList.add(PrintDrawProtocol.DrawBarCode(10,50,"0947809",true,5,30,"","宋体","12","","","","0"));
retList.add(PrintDrawProtocol.DrawLine(10,70,70,70,"","",""));
retList.add(PrintDrawProtocol.DrawQRCode(10,90,"jbase",90,90));
retList.add(PrintDrawProtocol.DrawLabel(10,210,"jbase打印支持","宋体","12","","","","0"));
retList.add(PrintDrawProtocol.DrawLabel(10,230,"20231118 22:49","宋体","12","","","","0"));
//先包一个打印元素绘制协议数据生成的工具类来解决元素约束问题,工具类实现了调用工具类得到标签,条码,文本等
return Helper.Object2Json(retList);
}
}
界面加打印和导出调用逻辑测试
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>BTTestCode供拷贝代码使用</title>
<link rel="shortcut icon" href="../../resource/common/images/favicon.ico" />
<script src="../../resource/common/js/lis-commonHISUI.js" type="text/javascript"></script>
<script src="../../lisprint/js/LisPrint.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
LISSYSPageCommonInfo.Init();
var BasePath = '';
var ResourcePath = '';
var WebServicAddress = LISSYSPageCommonInfo.Data.WebServicAddress;
//var UserDR = LISSYSPageCommonInfo.Data.Sesssion.UserDR;
//var WorkGroupDR = LISSYSPageCommonInfo.Data.Sesssion.WorkGroupDR;
//var sysTheme = LISSYSPageCommonInfo.Data.Sesssion.Theme;
var SessionStr = LISSYSPageCommonInfo.Data.SessionStr;
</script>
<script type="text/javascript">
//全局变量
var me = {
actionUrl: '../ashx/ashBTTestCode.ashx'
};
//jquery入口
$(function () {
//导出Excel
$("#btnExportBTTestCode").click(function () {
var para = {};
var tempPath = DealExportExcelTMPName("导出测试.xls");
LISBasePrint('Export@' + WebServicAddress + '@vm.test.ExportExcelTest@QryTestCode@' + JSON.stringify(para) + '@' + SessionStr + '@' + tempPath + '@0');
});
//打印
$("#btnPrintBTTestCode").click(function () {
//0:打印所有报告 1:循环打印每一份报告
var printFlag = "0";
var userCode = "";
//打印参数
var paramList = "";
//PrintOut:打印 PrintPreview打印预览
var printType = "PrintPreview";
var printPara = "1";
var Param = printFlag + "@" + WebServicAddress + "@" + printPara + "@" + userCode + "@" + printType + "@" + paramList + "@vm.test.PrintBarCodeTest@GetData";
LISBasePrint(Param);
});
//新增数据点击
$("#btnAddBTTestCode").click(function () {
$("#txtBTTestCodeRowID").val("");
$('#winEditBTTestCode').window({
title: TranslateDataMTHD('Add Data', '新增数据', ''),
modal: true
});
});
//修改数据点击
$("#btnUpdateBTTestCode").click(function () {
UpdateBTTestCode();
});
//修改数据
function UpdateBTTestCode(row)
{
var selectRow = $('#dgBTTestCode').datagrid("getSelected");
if(row!=null)
{
selectRow=row;
}
if (selectRow == null) {
$.messager.alert(TranslateDataMTHD('Info', '提示', ''), TranslateDataMTHD('Please select the data to modify', '请选择要修改的数据!', ''), 'info');
return;
}
$("#formBTTestCode").form('load', selectRow);
$('#winEditBTTestCode').window({
title: TranslateDataMTHD('Update Data', '修改数据', ''),
modal: true
});
}
//删除数据点击
$("#btnDeleteBTTestCode").click(function () {
var checkRow = $('#dgBTTestCode').datagrid("getChecked");
var selectRow = $('#dgBTTestCode').datagrid("getSelected");
if ((checkRow == null || checkRow.length == 0)&&selectRow==null) {
$.messager.alert(TranslateDataMTHD('Info', '提示', ''), TranslateDataMTHD('Please select the data to delete', '请勾选要删除的数据!', ''), 'info');
return;
}
if ((checkRow == null || checkRow.length == 0)) {
checkRow=[selectRow];
}
var RowIDS = "";
for (var i = 0; i < checkRow.length; i++) {
if (i == 0) {
RowIDS = checkRow[i].RowID;
}
else {
RowIDS += "^" + checkRow[i].RowID;
}
}
$.messager.confirm(TranslateDataMTHD('Info', '提示', ''), TranslateDataMTHD('Do you want to delete the selected data', '是否要删除选择的数据?', '') , function (r) {
if (r) {
//开启等待
$.messager.progress({ text: TranslateDataMTHD("Deleting data","正在删除数据", ""), interval: 500 });
setTimeout(function () {
$.messager.progress('close');
}, 8000);
//往后台提交数据
$.ajax({
type: "post",
dataType: "json",
cache: false, //
async: true, //为true时,异步,不等待后台返回值,为false时强制等待;-asir
url: me.actionUrl + '?Method=DeleteBTTestCode',
data: { RowIDS: RowIDS },
success: function (data, status) {
$.messager.progress('close');
if (!FilterBackData(data)) {
return;
}
if (!data.IsOk) {
$.messager.alert(TranslateDataMTHD("Error message", "错误提示", ""), TranslateDataMTHD("failed to dalete data, error message:", "删除失败,错误信息:", "") + data.Message);
}
else {
QryBTTestCode();
$.messager.show({
title: TranslateDataMTHD("Info", "提示", ""),
msg: TranslateDataMTHD("Successfully deleted!", "删除成功!", ""),
timeout: 500,
showType: 'slide'
});
}
}
});
}
});
});
//保存数据
$("#btnSaveBTTestCode").click(function () {
var saveData = jQuery.parseJSON($("#formBTTestCode").serializeObject());
//开启等待
$.messager.progress({ text: TranslateDataMTHD("Saving data","正在保存数据", ""), interval: 500 });
setTimeout(function () {
$.messager.progress('close');
}, 8000);
//往后台提交数据
$.ajax({
type: "post",
dataType: "json",
cache: false, //
async: true, //为true时,异步,不等待后台返回值,为false时强制等待;-asir
url: me.actionUrl + '?Method=SaveBTTestCode',
data: saveData,
success: function (data, status) {
$.messager.progress('close');
if (!FilterBackData(data)) {
return;
}
if (!data.IsOk) {
$.messager.alert(TranslateDataMTHD("Error message", "错误提示", ""), TranslateDataMTHD("failed to dalete data, error message:", "删除失败,错误信息:", "") + data.Message);
}
else {
QryBTTestCode();
$.messager.show({
title: TranslateDataMTHD("Info", "提示", ""),
msg: TranslateDataMTHD("Successfully saveed!", "保存成功!", ""),
timeout: 500,
showType: 'slide'
});
$('#winEditBTTestCode').window("close");
}
}
});
});
//关闭窗口
$("#btnCloseBTTestCode").click(function () {
$('#winEditBTTestCode').window("close");
});
//构造查询事件
$("#txtFilterBTTestCode").searchbox({
searcher: function (value, name) {
QryBTTestCode();
},
prompt: TranslateDataMTHD('Enter query', '回车查询', '')
});
//医院下拉表格渲染
$('#txtBTTestCodeHospitalDR').combogrid({
panelWidth: 350,
idField: 'RowID',
width: 205,
textField: 'CName',
url: me.actionUrl + '?Method=CommonQueryView&data='+JSON.stringify({ ModelName: "BTHospital", Pram: [], IsDisplayCount: false, Joiner: [], Operators: [] }),
columns: [[
{ field: 'RowID', title: '主键', width: 60 },
{ field: 'CName', title: '名称', width: 260 }
]]
});
$('#txtBTTestCodeHospitalDR').combogrid("showSelectWin");
//检测方法下拉表格渲染
$('#txtBTTestCodeTestMethodDR').combogrid({
panelWidth: 350,
idField: 'RowID',
width: 205,
textField: 'CName',
url: me.actionUrl + '?Method=CommonQueryView&data='+JSON.stringify({ ModelName: "BTTestMethod", Pram: [], IsDisplayCount: false, Joiner: [], Operators: [] }),
columns: [[
{ field: 'RowID', title: '主键', width: 60 },
{ field: 'CName', title: '名称', width: 260 }
]]
});
$('#txtBTTestCodeTestMethodDR').combogrid("showSelectWin");
//计算项布尔渲染
$('#txtBTTestCodeIsCalculate').combobox({
valueField:'RowID',
textField:'CName',
width: 205,
data: [{"RowID":"0","CName":TranslateDataMTHD('No', '否', '')},{"RowID":"1","CName":TranslateDataMTHD('Yes', '是', '')}]
});
//收费项目下拉表格渲染
$('#txtBTTestCodeCostItemDR').combogrid({
panelWidth: 350,
idField: 'RowID',
width: 205,
textField: 'CName',
url: me.actionUrl + '?Method=CommonQueryView&data='+JSON.stringify({ ModelName: "BTCostItem", Pram: [], IsDisplayCount: false, Joiner: [], Operators: [] }),
columns: [[
{ field: 'RowID', title: '主键', width: 60 },
{ field: 'CName', title: '名称', width: 260 }
]]
});
$('#txtBTTestCodeCostItemDR').combogrid("showSelectWin");
//独立医嘱套下拉表格渲染
$('#txtBTTestCodeTestSetDR').combogrid({
panelWidth: 350,
idField: 'RowID',
width: 205,
textField: 'CName',
url: me.actionUrl + '?Method=CommonQueryView&data='+JSON.stringify({ ModelName: "BTTestSet", Pram: [], IsDisplayCount: false, Joiner: [], Operators: [] }),
columns: [[
{ field: 'RowID', title: '主键', width: 60 },
{ field: 'CName', title: '名称', width: 260 }
]]
});
$('#txtBTTestCodeTestSetDR').combogrid("showSelectWin");
//状态布尔渲染
$('#txtBTTestCodeActive').combobox({
valueField:'RowID',
textField:'CName',
width: 205,
data: [{"RowID":"0","CName":TranslateDataMTHD('No', '否', '')},{"RowID":"1","CName":TranslateDataMTHD('Yes', '是', '')}]
});
//是否判断定性布尔渲染
$('#txtBTTestCodeIsCheckText').combobox({
valueField:'RowID',
textField:'CName',
width: 205,
data: [{"RowID":"0","CName":TranslateDataMTHD('No', '否', '')},{"RowID":"1","CName":TranslateDataMTHD('Yes', '是', '')}]
});
//是否允许负数布尔渲染
$('#txtBTTestCodeIsAllowNegative').combobox({
valueField:'RowID',
textField:'CName',
width: 205,
data: [{"RowID":"0","CName":TranslateDataMTHD('No', '否', '')},{"RowID":"1","CName":TranslateDataMTHD('Yes', '是', '')}]
});
//是否允许非数字布尔渲染
$('#txtBTTestCodeIsAllowNoNumeric').combobox({
valueField:'RowID',
textField:'CName',
width: 205,
data: [{"RowID":"0","CName":TranslateDataMTHD('No', '否', '')},{"RowID":"1","CName":TranslateDataMTHD('Yes', '是', '')}]
});
//结果判断布尔渲染
$('#txtBTTestCodeIsExcJudgeRule').combobox({
valueField:'RowID',
textField:'CName',
width: 205,
data: [{"RowID":"0","CName":TranslateDataMTHD('No', '否', '')},{"RowID":"1","CName":TranslateDataMTHD('Yes', '是', '')}]
});
//项目类别下拉表格渲染
$('#txtBTTestCodeItemClassDR').combogrid({
panelWidth: 350,
idField: 'RowID',
width: 205,
textField: 'CName',
url: me.actionUrl + '?Method=CommonQueryView&data='+JSON.stringify({ ModelName: "BTItemClass", Pram: [], IsDisplayCount: false, Joiner: [], Operators: [] }),
columns: [[
{ field: 'RowID', title: '主键', width: 60 },
{ field: 'CName', title: '名称', width: 260 }
]]
});
$('#txtBTTestCodeItemClassDR').combogrid("showSelectWin");
//所属科室下拉表格渲染
$('#txtBTTestCodeDepartmentDR').combogrid({
panelWidth: 350,
idField: 'RowID',
width: 205,
textField: 'CName',
url: me.actionUrl + '?Method=CommonQueryView&data='+JSON.stringify({ ModelName: "BTDepartment", Pram: [], IsDisplayCount: false, Joiner: [], Operators: [] }),
columns: [[
{ field: 'RowID', title: '主键', width: 60 },
{ field: 'CName', title: '名称', width: 260 }
]]
});
$('#txtBTTestCodeDepartmentDR').combogrid("showSelectWin");
//是否实时计算布尔渲染
$('#txtBTTestCodeIsRealCal').combobox({
valueField:'RowID',
textField:'CName',
width: 205,
data: [{"RowID":"0","CName":TranslateDataMTHD('No', '否', '')},{"RowID":"1","CName":TranslateDataMTHD('Yes', '是', '')}]
});
//重新编辑布尔渲染
$('#txtBTTestCodeReEditFlag').combobox({
valueField:'RowID',
textField:'CName',
width: 205,
data: [{"RowID":"0","CName":TranslateDataMTHD('No', '否', '')},{"RowID":"1","CName":TranslateDataMTHD('Yes', '是', '')}]
});
//计算项不计算布尔渲染
$('#txtBTTestCodeNoCalFlag').combobox({
valueField:'RowID',
textField:'CName',
width: 205,
data: [{"RowID":"0","CName":TranslateDataMTHD('No', '否', '')},{"RowID":"1","CName":TranslateDataMTHD('Yes', '是', '')}]
});
//质控项目下拉表格渲染
$('#txtBTTestCodeQCTestCodeDR').combogrid({
panelWidth: 350,
idField: 'RowID',
width: 205,
textField: 'CName',
url: me.actionUrl + '?Method=CommonQueryView&data='+JSON.stringify({ ModelName: "BTTestCode", Pram: [], IsDisplayCount: false, Joiner: [], Operators: [] }),
columns: [[
{ field: 'RowID', title: '主键', width: 60 },
{ field: 'CName', title: '名称', width: 260 }
]]
});
$('#txtBTTestCodeQCTestCodeDR').combogrid("showSelectWin");
//文本等于校验布尔渲染
$('#txtBTTestCodeCheckEqual').combobox({
valueField:'RowID',
textField:'CName',
width: 205,
data: [{"RowID":"0","CName":TranslateDataMTHD('No', '否', '')},{"RowID":"1","CName":TranslateDataMTHD('Yes', '是', '')}]
});
//参考范围只维护正常范围布尔渲染
$('#txtBTTestCodeIsNormalRange').combobox({
valueField:'RowID',
textField:'CName',
width: 205,
data: [{"RowID":"0","CName":TranslateDataMTHD('No', '否', '')},{"RowID":"1","CName":TranslateDataMTHD('Yes', '是', '')}]
});
//是否允许零值布尔渲染
$('#txtBTTestCodeIsAllowZero').combobox({
valueField:'RowID',
textField:'CName',
width: 205,
data: [{"RowID":"0","CName":TranslateDataMTHD('No', '否', '')},{"RowID":"1","CName":TranslateDataMTHD('Yes', '是', '')}]
});
//允许删除布尔渲染
$('#txtBTTestCodeAllowDelete').combobox({
valueField:'RowID',
textField:'CName',
width: 205,
data: [{"RowID":"0","CName":TranslateDataMTHD('No', '否', '')},{"RowID":"1","CName":TranslateDataMTHD('Yes', '是', '')}]
});
//允许拆分布尔渲染
$('#txtBTTestCodeAllowSplit').combobox({
valueField:'RowID',
textField:'CName',
width: 205,
data: [{"RowID":"0","CName":TranslateDataMTHD('No', '否', '')},{"RowID":"1","CName":TranslateDataMTHD('Yes', '是', '')}]
});
//允许追踪布尔渲染
$('#txtBTTestCodeAllowTrace').combobox({
valueField:'RowID',
textField:'CName',
width: 205,
data: [{"RowID":"0","CName":TranslateDataMTHD('No', '否', '')},{"RowID":"1","CName":TranslateDataMTHD('Yes', '是', '')}]
});
//不导出布尔渲染
$('#txtBTTestCodeIsNoExport').combobox({
valueField:'RowID',
textField:'CName',
width: 205,
data: [{"RowID":"0","CName":TranslateDataMTHD('No', '否', '')},{"RowID":"1","CName":TranslateDataMTHD('Yes', '是', '')}]
});
//BTTestCode表格
$('#dgBTTestCode').datagrid({
remoteSort:false,
singleSelect: true,
toolbar: "#dgBTTestCodeToolBar",
fit: true,
onSelect: function (index, row) {
//方便拷贝到子表查询用
var selectBTTestCode=$('#dgBTTestCode').datagrid("getSelected");
},
onDblClickRow: function (index, row) {
UpdateBTTestCode(row);
},
columns: [[
{ field: 'ChkFlag', title: TranslateDataMTHD('Check', '选择', ''), width: 20, sortable: true, align: 'center', checkbox: true },
{ field: 'RowID', title: TranslateDataMTHD('RowID', '主键', '') , width: 150, sortable: true },
{ field: 'Code', title: TranslateDataMTHD('Code', '代码', '') , width: 150, sortable: true },
{ field: 'CName', title: TranslateDataMTHD('CName', '名称', '') , width: 150, sortable: true },
{ field: 'HospitalDRName', title: TranslateDataMTHD('HospitalDRName', '医院', '') , width: 150, sortable: true },
{ field: 'LName', title: TranslateDataMTHD('LName', '全称', '') , width: 150, sortable: true },
{ field: 'EName', title: TranslateDataMTHD('EName', '英文名称', '') , width: 150, sortable: true },
{ field: 'Synonym', title: TranslateDataMTHD('Synonym', '缩写', '') , width: 150, sortable: true },
{ field: 'Units', title: TranslateDataMTHD('Units', '单位', '') , width: 150, sortable: true },
{ field: 'ResultFormat', title: TranslateDataMTHD('ResultFormat', '结果格式', '') , width: 150, sortable: true },
{ field: 'Precision', title: TranslateDataMTHD('Precision', '精确度', '') , width: 150, sortable: true },
{ field: 'TestMethodDRName', title: TranslateDataMTHD('TestMethodDRName', '检测方法', '') , width: 150, sortable: true },
{ field: 'IsCalculate', title: TranslateDataMTHD('IsCalculate', '计算项', '') , width: 150, sortable: true },
{ field: 'LonicCode', title: TranslateDataMTHD('LonicCode', 'LONIC码', '') , width: 150, sortable: true },
{ field: 'SCode', title: TranslateDataMTHD('SCode', '标准码', '') , width: 150, sortable: true },
{ field: 'SOPContent', title: TranslateDataMTHD('SOPContent', 'SOP内容', '') , width: 150, sortable: true },
{ field: 'SOPFile', title: TranslateDataMTHD('SOPFile', 'SOP文件', '') , width: 150, sortable: true },
{ field: 'HISCode', title: TranslateDataMTHD('HISCode', 'HIS对照码', '') , width: 150, sortable: true },
{ field: 'CostItemDRName', title: TranslateDataMTHD('CostItemDRName', '收费项目', '') , width: 150, sortable: true },
{ field: 'Price', title: TranslateDataMTHD('Price', '价格', '') , width: 150, sortable: true },
{ field: 'ClinicalSignifyS', title: TranslateDataMTHD('ClinicalSignifyS', '临床意义简述', '') , width: 150, sortable: true },
{ field: 'ClinicalSignifyL', title: TranslateDataMTHD('ClinicalSignifyL', '临床意义描述', '') , width: 150, sortable: true },
{ field: 'TestSetDRName', title: TranslateDataMTHD('TestSetDRName', '独立医嘱套', '') , width: 150, sortable: true },
{ field: 'PrintOrder', title: TranslateDataMTHD('PrintOrder', '打印顺序', '') , width: 150, sortable: true },
{ field: 'Sequence', title: TranslateDataMTHD('Sequence', '序号', '') , width: 150, sortable: true },
{ field: 'Active', title: TranslateDataMTHD('Active', '状态', '') , width: 150, sortable: true },
{ field: 'CalculateFormula', title: TranslateDataMTHD('CalculateFormula', '计算公式', '') , width: 150, sortable: true },
{ field: 'RefRanges', title: TranslateDataMTHD('RefRanges', '参考范围', '') , width: 150, sortable: true },
{ field: 'IsCheckText', title: TranslateDataMTHD('IsCheckText', '是否判断定性', '') , width: 150, sortable: true },
{ field: 'RefField', title: TranslateDataMTHD('RefField', '特殊报告用', '') , width: 150, sortable: true },
{ field: 'IsAllowNegative', title: TranslateDataMTHD('IsAllowNegative', '是否允许负数', '') , width: 150, sortable: true },
{ field: 'IsAllowNoNumeric', title: TranslateDataMTHD('IsAllowNoNumeric', '是否允许非数字', '') , width: 150, sortable: true },
{ field: 'IsExcJudgeRule', title: TranslateDataMTHD('IsExcJudgeRule', '结果判断', '') , width: 150, sortable: true },
{ field: 'ItemClassDRName', title: TranslateDataMTHD('ItemClassDRName', '项目类别', '') , width: 150, sortable: true },
{ field: 'DepartmentDRName', title: TranslateDataMTHD('DepartmentDRName', '所属科室', '') , width: 150, sortable: true },
{ field: 'IsRealCal', title: TranslateDataMTHD('IsRealCal', '是否实时计算', '') , width: 150, sortable: true },
{ field: 'UnacceptLow', title: TranslateDataMTHD('UnacceptLow', '排除低值', '') , width: 150, sortable: true },
{ field: 'UnacceptHigh', title: TranslateDataMTHD('UnacceptHigh', '排除高值', '') , width: 150, sortable: true },
{ field: 'ReEditFlag', title: TranslateDataMTHD('ReEditFlag', '重新编辑', '') , width: 150, sortable: true },
{ field: 'NoCalFlag', title: TranslateDataMTHD('NoCalFlag', '计算项不计算', '') , width: 150, sortable: true },
{ field: 'QCTestCodeDRName', title: TranslateDataMTHD('QCTestCodeDRName', '质控项目', '') , width: 150, sortable: true },
{ field: 'CheckEqual', title: TranslateDataMTHD('CheckEqual', '文本等于校验', '') , width: 150, sortable: true },
{ field: 'IsNormalRange', title: TranslateDataMTHD('IsNormalRange', '参考范围只维护正常范围', '') , width: 150, sortable: true },
{ field: 'ShareFlag', title: TranslateDataMTHD('ShareFlag', '结果互认标记', '') , width: 150, sortable: true },
{ field: 'IsAllowZero', title: TranslateDataMTHD('IsAllowZero', '是否允许零值', '') , width: 150, sortable: true },
{ field: 'QCPatVisEval', title: TranslateDataMTHD('QCPatVisEval', '评估标准', '') , width: 150, sortable: true },
{ field: 'AllowDelete', title: TranslateDataMTHD('AllowDelete', '允许删除', '') , width: 150, sortable: true },
{ field: 'AllowSplit', title: TranslateDataMTHD('AllowSplit', '允许拆分', '') , width: 150, sortable: true },
{ field: 'AllowTrace', title: TranslateDataMTHD('AllowTrace', '允许追踪', '') , width: 150, sortable: true },
{ field: 'DefaultResult', title: TranslateDataMTHD('DefaultResult', '默认结果', '') , width: 150, sortable: true },
{ field: 'IsNoExport', title: TranslateDataMTHD('IsNoExport', '不导出', '') , width: 150, sortable: true },
{ field: 'CVValue', title: TranslateDataMTHD('CVValue', '允许CV值', '') , width: 150, sortable: true },
{ field: 'CVSource', title: TranslateDataMTHD('CVSource', '允许CV值来源', '') , width: 150, sortable: true },
{ field: 'SigmaValue', title: TranslateDataMTHD('SigmaValue', '本室的σ值', '') , width: 150, sortable: true },
{ field: 'SplitTSName', title: TranslateDataMTHD('SplitTSName', '拆分医嘱名称', '') , width: 150, sortable: true }
]]
});
//查询BTTestCode
function QryBTTestCode() {
var Filter = $("#txtFilterBTTestCode").searchbox("getValue");
//开启等待,默认注释,在单击事件调用的逻辑启用等待会冲掉双击事件,按需要开启
//$.messager.progress({ text: TranslateDataMTHD("Querying data","正在查询数据", ""), interval: 500 });
//setTimeout(function () {
//$.messager.progress('close');
//}, 8000);
$.ajax({
type: "post",
dataType: "json",
cache: false, //
async: true, //为true时,异步,不等待后台返回值,为false时强制等待;-asir
url: me.actionUrl + '?Method=QryBTTestCode',
data: { Filter: Filter },
success: function (data, status) {
//结束等待
//$.messager.progress('close');
$('#dgBTTestCode').datagrid("loadData", data);
}
});
};
//执行查询数据
QryBTTestCode();
});
</script>
</head>
<body>
<div class="hisui-layout" fit="true" style="border: none;">
<div data-options="region:'center',title:''" style="border: none;">
<div id="dgBTTestCodeToolBar" style="padding: 3px 0px 3px 10px;">
<a id="btnAddBTTestCode" href="#" class="hisui-linkbutton" data-options="iconCls:'icon-add'" plain="true" listranslate="html~Add">新增</a>
<a id="btnUpdateBTTestCode" href="#" class="hisui-linkbutton" data-options="iconCls:'icon-write-order'" plain="true" listranslate="html~Mod">修改</a>
<a id="btnDeleteBTTestCode" href="#" class="hisui-linkbutton" data-options="iconCls:'icon-cancel'" plain="true" listranslate="html~Del">删除</a>
<a id="btnExportBTTestCode" href="#" class="hisui-linkbutton" data-options="iconCls:'icon-excel'" plain="true" listranslate="html~Export">导出</a>
<a id="btnPrintBTTestCode" href="#" class="hisui-linkbutton" data-options="iconCls:'icon-print'" plain="true" listranslate="html~Print">打印</a>
<input id="txtFilterBTTestCode" style="margin-left: 14px; width: 240px;"></input>
</div>
<table id="dgBTTestCode" title="" iconcls="icon-paper" listranslate="title~BTTestCode"></table>
</div>
<div id="winEditBTTestCode" style="padding: 10px 0px 0px 10px;width:1140px;height:786px;">
<form id="formBTTestCode" name="edit_form" method="post">
<input type="hidden" id="txtBTTestCodeRowID" name="RowID" value="0" />
<table>
<tr>
<td class="lisar" listranslate="html~Code">代码</td>
<td class="lisal"><input id="txtBTTestCodeCode" type="text" name="Code" style="width:200px;" class="hisui-validatebox" maxlength="20"/></td>
<td class="lisar" listranslate="html~CName">名称</td>
<td class="lisal"><input id="txtBTTestCodeCName" type="text" name="CName" style="width:200px;" class="hisui-validatebox" maxlength="50"/></td>
<td class="lisar" listranslate="html~HospitalDR">医院</td>
<td class="lisal"><input id="txtBTTestCodeHospitalDR" type="text" name="HospitalDR" style="width:200px;"/></td>
</tr>
<tr>
<td class="lisar" listranslate="html~LName">全称</td>
<td class="lisal"><input id="txtBTTestCodeLName" type="text" name="LName" style="width:200px;" class="hisui-validatebox" maxlength="100"/></td>
<td class="lisar" listranslate="html~EName">英文名称</td>
<td class="lisal"><input id="txtBTTestCodeEName" type="text" name="EName" style="width:200px;" class="hisui-validatebox" maxlength="30"/></td>
<td class="lisar" listranslate="html~Synonym">缩写</td>
<td class="lisal"><input id="txtBTTestCodeSynonym" type="text" name="Synonym" style="width:200px;" class="hisui-validatebox" maxlength="30"/></td>
</tr>
<tr>
<td class="lisar" listranslate="html~Units">单位</td>
<td class="lisal"><input id="txtBTTestCodeUnits" type="text" name="Units" style="width:200px;" class="hisui-validatebox" maxlength="50"/></td>
<td class="lisar" listranslate="html~ResultFormat">结果格式</td>
<td class="lisal"><input id="txtBTTestCodeResultFormat" type="text" name="ResultFormat" style="width:200px;" class="hisui-validatebox" maxlength="2"/></td>
<td class="lisar" listranslate="html~Precision">精确度</td>
<td class="lisal"><input id="txtBTTestCodePrecision" type="text" name="Precision" style="width:200px;" class="hisui-validatebox" maxlength="10"/></td>
</tr>
<tr>
<td class="lisar" listranslate="html~TestMethodDR">检测方法</td>
<td class="lisal"><input id="txtBTTestCodeTestMethodDR" type="text" name="TestMethodDR" style="width:200px;"/></td>
<td class="lisar" listranslate="html~IsCalculate">计算项</td>
<td class="lisal"><input id="txtBTTestCodeIsCalculate" type="text" name="IsCalculate" style="width:200px;" class="hisui-validatebox" maxlength="1"/></td>
<td class="lisar" listranslate="html~LonicCode">LONIC码</td>
<td class="lisal"><input id="txtBTTestCodeLonicCode" type="text" name="LonicCode" style="width:200px;" class="hisui-validatebox" maxlength="10"/></td>
</tr>
<tr>
<td class="lisar" listranslate="html~SCode">标准码</td>
<td class="lisal"><input id="txtBTTestCodeSCode" type="text" name="SCode" style="width:200px;" class="hisui-validatebox" maxlength="10"/></td>
<td class="lisar" listranslate="html~SOPContent">SOP内容</td>
<td class="lisal"><input id="txtBTTestCodeSOPContent" type="text" name="SOPContent" style="width:200px;" class="hisui-validatebox" maxlength="100"/></td>
<td class="lisar" listranslate="html~SOPFile">SOP文件</td>
<td class="lisal"><input id="txtBTTestCodeSOPFile" type="text" name="SOPFile" style="width:200px;" class="hisui-validatebox" maxlength="20"/></td>
</tr>
<tr>
<td class="lisar" listranslate="html~HISCode">HIS对照码</td>
<td class="lisal"><input id="txtBTTestCodeHISCode" type="text" name="HISCode" style="width:200px;" class="hisui-validatebox" maxlength="20"/></td>
<td class="lisar" listranslate="html~CostItemDR">收费项目</td>
<td class="lisal"><input id="txtBTTestCodeCostItemDR" type="text" name="CostItemDR" style="width:200px;"/></td>
<td class="lisar" listranslate="html~Price">价格</td>
<td class="lisal"><input id="txtBTTestCodePrice" type="text" name="Price" style="width:200px;" class="hisui-validatebox" maxlength="10"/></td>
</tr>
<tr>
<td class="lisar" listranslate="html~ClinicalSignifyS">临床意义简述</td>
<td class="lisal"><input id="txtBTTestCodeClinicalSignifyS" type="text" name="ClinicalSignifyS" style="width:200px;" class="hisui-validatebox" maxlength="30"/></td>
<td class="lisar" listranslate="html~ClinicalSignifyL">临床意义描述</td>
<td class="lisal"><input id="txtBTTestCodeClinicalSignifyL" type="text" name="ClinicalSignifyL" style="width:200px;" class="hisui-validatebox" maxlength="100"/></td>
<td class="lisar" listranslate="html~TestSetDR">独立医嘱套</td>
<td class="lisal"><input id="txtBTTestCodeTestSetDR" type="text" name="TestSetDR" style="width:200px;"/></td>
</tr>
<tr>
<td class="lisar" listranslate="html~PrintOrder">打印顺序</td>
<td class="lisal"><input id="txtBTTestCodePrintOrder" type="text" name="PrintOrder" style="width:200px;" class="hisui-validatebox" maxlength="10"/></td>
<td class="lisar" listranslate="html~Sequence">序号</td>
<td class="lisal"><input id="txtBTTestCodeSequence" type="text" name="Sequence" style="width:200px;" class="hisui-validatebox" maxlength="10"/></td>
<td class="lisar" listranslate="html~Active">状态</td>
<td class="lisal"><input id="txtBTTestCodeActive" type="text" name="Active" style="width:200px;" class="hisui-validatebox" maxlength="1"/></td>
</tr>
<tr>
<td class="lisar" listranslate="html~CalculateFormula">计算公式</td>
<td class="lisal"><input id="txtBTTestCodeCalculateFormula" type="text" name="CalculateFormula" style="width:200px;" class="hisui-validatebox" maxlength="500"/></td>
<td class="lisar" listranslate="html~RefRanges">参考范围</td>
<td class="lisal"><input id="txtBTTestCodeRefRanges" type="text" name="RefRanges" style="width:200px;" class="hisui-validatebox" maxlength="500"/></td>
<td class="lisar" listranslate="html~IsCheckText">是否判断定性</td>
<td class="lisal"><input id="txtBTTestCodeIsCheckText" type="text" name="IsCheckText" style="width:200px;" class="hisui-validatebox" maxlength="1"/></td>
</tr>
<tr>
<td class="lisar" listranslate="html~RefField">特殊报告用</td>
<td class="lisal"><input id="txtBTTestCodeRefField" type="text" name="RefField" style="width:200px;" class="hisui-validatebox" maxlength="100"/></td>
<td class="lisar" listranslate="html~IsAllowNegative">是否允许负数</td>
<td class="lisal"><input id="txtBTTestCodeIsAllowNegative" type="text" name="IsAllowNegative" style="width:200px;" class="hisui-validatebox" maxlength="1"/></td>
<td class="lisar" listranslate="html~IsAllowNoNumeric">是否允许非数字</td>
<td class="lisal"><input id="txtBTTestCodeIsAllowNoNumeric" type="text" name="IsAllowNoNumeric" style="width:200px;" class="hisui-validatebox" maxlength="1"/></td>
</tr>
<tr>
<td class="lisar" listranslate="html~IsExcJudgeRule">结果判断</td>
<td class="lisal"><input id="txtBTTestCodeIsExcJudgeRule" type="text" name="IsExcJudgeRule" style="width:200px;" class="hisui-validatebox" maxlength="1"/></td>
<td class="lisar" listranslate="html~ItemClassDR">项目类别</td>
<td class="lisal"><input id="txtBTTestCodeItemClassDR" type="text" name="ItemClassDR" style="width:200px;"/></td>
<td class="lisar" listranslate="html~DepartmentDR">所属科室</td>
<td class="lisal"><input id="txtBTTestCodeDepartmentDR" type="text" name="DepartmentDR" style="width:200px;"/></td>
</tr>
<tr>
<td class="lisar" listranslate="html~IsRealCal">是否实时计算</td>
<td class="lisal"><input id="txtBTTestCodeIsRealCal" type="text" name="IsRealCal" style="width:200px;" class="hisui-validatebox" maxlength="1"/></td>
<td class="lisar" listranslate="html~UnacceptLow">排除低值</td>
<td class="lisal"><input id="txtBTTestCodeUnacceptLow" type="text" name="UnacceptLow" style="width:200px;" class="hisui-validatebox" maxlength="50"/></td>
<td class="lisar" listranslate="html~UnacceptHigh">排除高值</td>
<td class="lisal"><input id="txtBTTestCodeUnacceptHigh" type="text" name="UnacceptHigh" style="width:200px;" class="hisui-validatebox" maxlength="50"/></td>
</tr>
<tr>
<td class="lisar" listranslate="html~ReEditFlag">重新编辑</td>
<td class="lisal"><input id="txtBTTestCodeReEditFlag" type="text" name="ReEditFlag" style="width:200px;" class="hisui-validatebox" maxlength="1"/></td>
<td class="lisar" listranslate="html~NoCalFlag">计算项不计算</td>
<td class="lisal"><input id="txtBTTestCodeNoCalFlag" type="text" name="NoCalFlag" style="width:200px;" class="hisui-validatebox" maxlength="1"/></td>
<td class="lisar" listranslate="html~QCTestCodeDR">质控项目</td>
<td class="lisal"><input id="txtBTTestCodeQCTestCodeDR" type="text" name="QCTestCodeDR" style="width:200px;"/></td>
</tr>
<tr>
<td class="lisar" listranslate="html~CheckEqual">文本等于校验</td>
<td class="lisal"><input id="txtBTTestCodeCheckEqual" type="text" name="CheckEqual" style="width:200px;" class="hisui-validatebox" maxlength="1"/></td>
<td class="lisar" listranslate="html~IsNormalRange">参考范围只维护正常范围</td>
<td class="lisal"><input id="txtBTTestCodeIsNormalRange" type="text" name="IsNormalRange" style="width:200px;" class="hisui-validatebox" maxlength="1"/></td>
<td class="lisar" listranslate="html~ShareFlag">结果互认标记</td>
<td class="lisal"><input id="txtBTTestCodeShareFlag" type="text" name="ShareFlag" style="width:200px;" class="hisui-validatebox" maxlength="1"/></td>
</tr>
<tr>
<td class="lisar" listranslate="html~IsAllowZero">是否允许零值</td>
<td class="lisal"><input id="txtBTTestCodeIsAllowZero" type="text" name="IsAllowZero" style="width:200px;" class="hisui-validatebox" maxlength="1"/></td>
<td class="lisar" listranslate="html~QCPatVisEval">评估标准</td>
<td class="lisal"><input id="txtBTTestCodeQCPatVisEval" type="text" name="QCPatVisEval" style="width:200px;" class="hisui-validatebox" maxlength="20"/></td>
<td class="lisar" listranslate="html~AllowDelete">允许删除</td>
<td class="lisal"><input id="txtBTTestCodeAllowDelete" type="text" name="AllowDelete" style="width:200px;" class="hisui-validatebox" maxlength="1"/></td>
</tr>
<tr>
<td class="lisar" listranslate="html~AllowSplit">允许拆分</td>
<td class="lisal"><input id="txtBTTestCodeAllowSplit" type="text" name="AllowSplit" style="width:200px;" class="hisui-validatebox" maxlength="1"/></td>
<td class="lisar" listranslate="html~AllowTrace">允许追踪</td>
<td class="lisal"><input id="txtBTTestCodeAllowTrace" type="text" name="AllowTrace" style="width:200px;" class="hisui-validatebox" maxlength="1"/></td>
<td class="lisar" listranslate="html~DefaultResult">默认结果</td>
<td class="lisal"><input id="txtBTTestCodeDefaultResult" type="text" name="DefaultResult" style="width:200px;" class="hisui-validatebox" maxlength="20"/></td>
</tr>
<tr>
<td class="lisar" listranslate="html~IsNoExport">不导出</td>
<td class="lisal"><input id="txtBTTestCodeIsNoExport" type="text" name="IsNoExport" style="width:200px;" class="hisui-validatebox" maxlength="1"/></td>
<td class="lisar" listranslate="html~CVValue">允许CV值</td>
<td class="lisal"><input id="txtBTTestCodeCVValue" type="text" name="CVValue" style="width:200px;" class="hisui-validatebox" maxlength="10"/></td>
<td class="lisar" listranslate="html~CVSource">允许CV值来源</td>
<td class="lisal"><input id="txtBTTestCodeCVSource" type="text" name="CVSource" style="width:200px;" class="hisui-validatebox" maxlength="100"/></td>
</tr>
<tr>
<td class="lisar" listranslate="html~SigmaValue">本室的σ值</td>
<td class="lisal"><input id="txtBTTestCodeSigmaValue" type="text" name="SigmaValue" style="width:200px;" class="hisui-validatebox" maxlength="1"/></td>
<td class="lisar" listranslate="html~SplitTSName">拆分医嘱名称</td>
<td class="lisal"><input id="txtBTTestCodeSplitTSName" type="text" name="SplitTSName" style="width:200px;" class="hisui-validatebox" maxlength="50"/></td>
</table>
<div region="south" border="fale" style="text-align: center; padding: 5px 0 0;">
<a id="btnSaveBTTestCode" href="#" class="hisui-linkbutton" plain="false" listranslate="html~Save">保存</a>
<span class="sp6"></span>
<a id="btnCloseBTTestCode" href="#" class="hisui-linkbutton" plain="false" listranslate="html~Cancel">取消</a>
</div>
</form>
</div>
</body>
</html>
界面
导出模板
导出效果
打印效果
高效开发和进行打印导出满足了