jbase打印导出实现

上一篇实现了虚拟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>


界面
在这里插入图片描述

导出模板
在这里插入图片描述

导出效果
在这里插入图片描述

在这里插入图片描述

打印效果
在这里插入图片描述

高效开发和进行打印导出满足了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/162474.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

探索NLP中的核心架构:编码器与解码器的区别

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

高校教师资格证备考

高等教育制度 关于人的全面发展和个体发展的关系&#xff0c;说法正确的是&#xff08;ABC&#xff09;。 A.个体发展是在全面发展基础上的选择性发展 B.全面发展是个体发展的前提和基础 C.个体发展又是全面发展的动力 D.个体发展是全面发展的前提和基础

什么是缓存雪崩、击穿、穿透?

背景 数据一般是存储于数据库中&#xff0c;数据库中的数据都是存在磁盘上的&#xff0c;磁盘读写的速度相较于内存或者CPU中的寄存器来说是非常慢的了。 如果用户的请求都直接访问数据库的话&#xff0c;请求数量一上来&#xff0c;数据库很容易就崩溃了&#xff0c;所以为了…

html网页设计 01基础标签

<!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body> <!-- 标题标签 h1最大 --><h1>最大标签</h1><h2>二级标签</h2><h3>三级标签</h3><…

SpringBoot 统一功能处理

一、用户登录拦截器 1、拦截器实现步骤 步骤1&#xff1a;自定义拦截器 // 自定义拦截器 Component public class LoginInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object h…

信号的机制——信号的发送与处理

对于硬件触发的&#xff0c;无论是中断&#xff0c;还是信号&#xff0c;肯定是先到内核的&#xff0c;然后内核对于中断和信号处理方式不同。一个是完全在内核里面处理完毕&#xff0c;一个是将信号放在对应的进程 task_struct 里信号相关的数据结构里面&#xff0c;然后等待进…

紫色调城市和奔跑人物剪影背景工会工作总结汇报PPT模板

这是一套紫色调城市和奔跑人物剪影背景工会工作总结汇报PPT模板&#xff0c;共33页&#xff1b; PPT模板封面&#xff0c;使用了蓝天白云、城市剪影、奔跑人物剪影背景图片。中间填写工会工作总结汇报PPT标题。界面色彩丰富充满活力。 PowerPoint模板内容页&#xff0c;由31张…

gittee启动器

前言 很多小伙伴反馈不是使用gitee&#xff0c;不会寻找好的项目&#xff0c;在拿到一个项目不知道从哪里入手。 鼠鼠我呀就是宠粉&#xff0c;中嘞&#xff0c;老乡。整&#xff01;&#xff01;&#xff01; git的基本指令 在使用gitee的时候呢&#xff0c;我们只需要记住…

C++加持让python程序插上翅膀——利用pybind11进行c++和python联合编程示例

目录 0、前言1、安装 pybind11库c侧python侧 2、C引入bybind11vs增加相关依赖及设置cpp中添加头文件及导出模块cpp中添加numpy相关数据结构的接收和返回编译生成dll后改成导出模块同名文件的.pyd 3、python调用c4、C引入bybind11 0、前言 在当今的计算机视觉和机器学习领域&am…

【入门篇】1.4 redis 客户端 之 Lettuce 详解

文章目录 1. 简介1. 什么是Lettuce2. Lettuce与其他Redis客户端的比较3. Lettuce的特性和优势 2. 安装和配置3. 连接池配置1. 什么是连接池2. Lettuce的连接池使用与配置3. 连接池配置项 4. 基本操作1. 如何创建Lettuce连接2. Lettuce的基本操作如增删改查3. Lettuce的事务操作…

vue --version无法显示,只弹出vs窗口

参考连接&#xff1a; nodejs环境配置&#xff08;解压包&#xff09;安装教程_nodejs解压版安装及环境配置_tubond的博客-CSDN博客 原因&#xff1a;环境没搞好&#xff0c;没有设置全局文件夹&#xff0c;node默认放在C盘了&#xff0c;C盘有权限。因为npm -i vue/cli创建…

Vite - 配置 - 文件路径别名的配置

为什么要配置别名 别名的配置&#xff0c;主要作用是为了缩短代码中的导入路径。例如有如下的项目目录&#xff1a; project-name| -- src| -- a| --b| --c| --d| --e| -- abc.png| -- index.html| -- main.js如果想在 main.js 文件中使用 abc.png ,则使用的路径是 &#xff1…

【智能家居项目】FreeRTOS版本——多任务系统中使用DHT11 | 获取SNTP服务器时间 | 重新设计功能框架

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《智能家居项目》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 目录 &#x1f353;多任务系统中使用DHT11&#x1f345;关闭调度器&#x1f345;使用中断 &am…

人类智能的精髓超出了统计概率

处理不确定性好坏的程度是衡量各种智能系统高低的一个重要指标。在处理不确定性时&#xff0c;智能系统需要具备推理、学习和决策的能力&#xff0c;通常使用概率和统计等方法来建模和处理不确定性&#xff0c;以便更好地应对现实世界中的复杂问题。统计概率是基于大量观察和数…

【Spring总结】基于配置的方式来写Spring

本篇文章是对这两天所学的内容做一个总结&#xff0c;涵盖我这两天写的所有笔记&#xff1a; 【Spring】 Spring中的IoC&#xff08;控制反转&#xff09;【Spring】Spring中的DI&#xff08;依赖注入&#xff09;Dependence Import【Spring】bean的基础配置【Spring】bean的实…

一键云端,AList 整合多网盘,轻松管理文件多元共享!

hello&#xff0c;我是小索奇&#xff0c;本篇教大家如何使用AList实现网盘挂载 可能还是有小伙伴不懂&#xff0c;所以简单介绍一下哈 AList 是一款强大的文件管理工具&#xff0c;为用户提供了将多种云存储服务和文件共享协议集成在一个平台上的便利性。它的独特之处在于&am…

彩色年终工作总结汇报PPT模板下载

这是一套彩色年终工作总结汇报PPT模板&#xff0c;共27页&#xff1b; PPT模板封面&#xff0c;使用了红黄蓝色块、网格背景。中间填写年终工作总结汇报PPT标题。界面为简约商务风格。 PowerPoint模板内容页&#xff0c;由25张彩色动态幻灯片图表&#xff0c;搭配PPT文字排版…

Python 双门双向门禁控制板实时监控源码

本示例使用设备&#xff1a;实时网络双门双向门禁控制板可二次编程控制网络继电器远程开关-淘宝网 (taobao.com) #python通过缩进来表示代码块&#xff0c;不可以随意更改每行前面的空白&#xff0c;否则程序会运行错误&#xff01;&#xff01;&#xff01;如果缩进不一致&a…

Python---函数练习:编写一个打招呼程序

函数的定义-------相关链接&#xff1a;Python---函数的作用&#xff0c;定义&#xff0c;使用步骤&#xff08;调用步骤&#xff09;-CSDN博客基本语法&#xff1a; def 函数名称([参数1, 参数2, ...]):函数体...[return 返回值] 函数的调用 Python中&#xff0c;函数和变量一…

2023年【危险化学品经营单位安全管理人员】考试题及危险化学品经营单位安全管理人员模拟试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 危险化学品经营单位安全管理人员考试题是安全生产模拟考试一点通总题库中生成的一套危险化学品经营单位安全管理人员模拟试题&#xff0c;安全生产模拟考试一点通上危险化学品经营单位安全管理人员作业手机同步练习。…