jbase打印导出实现

news2025/6/3 20:46:48

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


界面
在这里插入图片描述

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

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

在这里插入图片描述

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【原创】java+swing+mysql鲜花购物商城设计与实现

前言&#xff1a; 本文主要介绍了鲜花购物商城的设计与实现。首先&#xff0c;通过市场需求&#xff0c;我们确定了鲜花商场的功能&#xff0c;通常的商城一般都是B/S架构&#xff0c;然而我们今天要用javaswing去开发一个C/S架构的鲜花商城&#xff0c;利用开发技术和工具&am…

Swagger(4):Swagger配置

在上一张的项目中创建SwaggerConfig&#xff0c;进行配置文档内容。 1 配置基本信息 Docket&#xff1a;摘要对象&#xff0c;通过对象配置描述文件的信息。 apiInfo:设置描述文件中info。参数类型ApiInfo select():返回ApiSelectorBuilder对象&#xff0c;通过对象调用buil…

Android Studio 写一个Java调用c++ 的demo

前提条件&#xff1a; 本地已经配置好了ndk环境,如果没有配置好&#xff0c;建议参考macos 配置ndk环境-CSDN博客 这篇链接。 新建一个Empty Project 比如我这里的Project的名字是HelloJNI&#xff0c;包名是com.example.hellojni 然后在src目录下&#xff0c;右键选择Add C …

PHP 中传值与传引用的区别,什么时候传值什么时候传引用?

传值&#xff1a;当使用传值的方式时&#xff0c;函数或方法会创建原始变量的一个副本&#xff0c;并将该副本传递给函数或方法。在函数或方法内部&#xff0c;对副本的任何修改都不会影响到原始变量。当函数或方法执行完毕后&#xff0c;副本被销毁&#xff0c;不再使用。 传引…

一款.NET开源的小巧、智能、免费的Windows内存清理工具 - WinMemoryCleaner

前言 我们在使用Windows系统的时候经常会遇到一些程序不会释放已分配的内存&#xff0c;从而导致电脑变得缓慢。今天给大家推荐一款.NET开源的小巧、智能、免费的Windows内存清理工具&#xff1a;WinMemoryCleaner。 使用Windows内存清理工具来优化内存&#xff0c;这样不必浪…

电子商务、搜索引擎

电子商务 域名 网络服务 网络樱肖 搜索引擎优化

Leetcode—141.环形链表【简单】

2023每日刷题&#xff08;三十三&#xff09; Leetcode—141.环形链表 快慢指针算法思想 关于快慢指针为什么能检测出环&#xff0c;可以这么思考。 假设存在一个环: 慢指针进入环后&#xff0c;快指针和慢指针之间相距为d&#xff0c;每一次移动&#xff0c;d都会缩小1&…

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

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

Matlab群体智能优化算法之海象优化算法(WO)

文章目录 一、灵感来源二、算法的初始化三、GTO的数学模型Phase1&#xff1a;危险信号和安全信号Phase2&#xff1a;迁移&#xff08;探索&#xff09;Phase3&#xff1a;繁殖&#xff08;开发&#xff09; 四、流程图五、伪代码六、算法复杂度七、WO搜索示意图八、实验分析和结…

Kafka(四)消费者消费消息

文章目录 如何确保不重复消费消息&#xff1f;消费者业务逻辑重试消费者提交自定义反序列化类消费者参数配置及其说明重要的参数session.time.ms和heartbeat.interval.ms和group.instance.id增加消费者的吞吐量消费者消费的超时时间和poll()方法的关系 消费者消费逻辑启动消费者…

哈希

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;那个传说中的man的主页 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;题目大解析&#xff08;3&#xff09; 目录 &#x1f449;&#x1f3fb;unordered系列关联式容器un…

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

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

【刷题专栏—突破思维】LeetCode 138. 随机链表的复制

前言 随机链表的复制涉及到复制一个链表&#xff0c;该链表不仅包含普通的next指针&#xff0c;还包含random指针&#xff0c;该指针指向链表中的任意节点或空节点。 文章目录 原地修改链表 题目链接&#xff1a; LeetCode 138. 随机链表的复制 原地修改链表 题目介绍&#xf…

Arduino驱动LM35线性温度传感器(温湿度传感器)

目录 1、传感器特性 2、控制器和传感器连线图 3、驱动程序 LM35半导体的温度传感器,可以用来对环境温度进行定性的检测。LM35半导体温度传感器是美国国家半导体公司生产的线性温度传感器。其测温范围是-40℃到150℃,灵敏度为10mV/℃,输出电压与温度成正比。

亚马逊云Amazon OpenSearch Serverless“利刃在手,‘向量’八方“

全Serverless架构新价值 随着Amazon OpenSearch Serverless正式上线“商用”&#xff0c;亚马逊云科技的全栈“Serverless”应用架构也“初见雏形”&#xff0c;这也意味着&#xff0c;未来企业可以在亚马逊云科技之上简单和轻松的搭建完整的无服务器应用架构。 数据也显示&am…

【LeetCode刷题日志】225.用队列实现栈

&#x1f388;个人主页&#xff1a;库库的里昂 &#x1f390;C/C领域新星创作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏✨收录专栏&#xff1a;LeetCode 刷题日志&#x1f91d;希望作者的文章能对你有所帮助&#xff0c;有不足的地方请在评论区留言指正&#xff0c;…

Git配置代理:fatal: unable to access*** github Failure when receiving data from

~吐槽一下 github自从被微软收购以后&#xff0c;大多数情况没点科技上网都进不去了&#xff0c;还是怀念以前随时访问的时光。 我一直都是开着系统代理的&#xff0c;但是今天拉一个项目发现拉不下来了&#xff0c;报错&#xff1a; fatal: unable to access https://githu…

人工智能基础_机器学习044_逻辑回归代码实现与手动计算概率---人工智能工作笔记0084

上面我们已经把逻辑回归的公式,以及,公式对应的图形都画画出来了,然后我们再来看看 如何用代码实现 可以看到上面是代码,咱们自己去写一下 import numpy as np from sklearn.linear_model import LogistieRegression from sklearn import datasets # 训练数据和测试数据拆分…

浅析AcrelEMS-CIA机场智慧能源管平台解决方案-安科瑞 蒋静

1 概述 机场智慧能源管平台解决方案对机场范围内变电站内的高低压配电设备 、 发电机、变压器 、UPS、EPS 、广场照明 、 室内照明 、通风及排水等机电设备进行实时分布式监控和集中管理 , 实现无人值守 , 确保高速公路安全畅通 , 提高 自动化管理水平 , 降低机电设备的运行维…

联想笔记本电脑触摸板失灵了怎么办

这里写自定义目录标题 thinkbook笔记本电脑触摸板失灵 thinkbook笔记本电脑触摸板失灵 由于重装系统&#xff0c;导致笔记本的触控板失灵&#xff0c; 网上说的办法有 1、按键盘上的ctrlf6键&#xff0c;打开触控板功能&#xff1a;无效 2、设置——>设备——>触控板&am…