当前位置: 首页 > news >正文

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时强制等待;-asirurl: 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时强制等待;-asirurl: 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 }]]});//查询BTTestCodefunction 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时强制等待;-asirurl: 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>

界面
在这里插入图片描述

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

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

在这里插入图片描述

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

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

相关文章:

jbase打印导出实现

上一篇实现了虚拟M层&#xff0c;这篇基于虚拟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;namesp…...

特征缩放和转换以及自定义Transformers(Machine Learning 研习之九)

特征缩放和转换 您需要应用于数据的最重要的转换之一是功能扩展。除了少数例外&#xff0c;机器学习算法在输入数值属性具有非常不同的尺度时表现不佳。住房数据就是这种情况:房间总数约为6至39320间&#xff0c;而收入中位数仅为0至15间。如果没有任何缩放&#xff0c;大多数…...

前端算法面试之堆排序-每日一练

如果对前端八股文感兴趣&#xff0c;可以留意公重号&#xff1a;码农补给站&#xff0c;总有你要的干货。 今天分享一个非常热门的算法--堆排序。堆的运用非常的广泛&#xff0c;例如&#xff0c;Python中的heapq模块提供了堆排序算法&#xff0c;可以用于实现优先队列&#xf…...

C++之set/multise容器

C之set/multise容器 set基本概念 set构造和赋值 #include <iostream> #include<set> using namespace std;void PrintfSet(set<int>&s) {for(set<int>::iterator it s.begin();it ! s.end();it){cout<<*it<<" ";}cout&l…...

本地部署AutoGPT

我们都了解ChatGPT&#xff0c;是Openai退出的基于GPT模型的新一代 AI助手&#xff0c;可以帮助解决我们在多个领域的问题。但是你会发现&#xff0c;在某些问题上&#xff0c;ChatGPT 需要经过不断的调教与沟通&#xff0c;才能得到接近正确的答案。对于你不太了解的领域领域&…...

ProtocolBuffers(protobuf)详解

目录 前言特点语法定义关键字JSON与Protocol Buffers互相转换gRPC与Protocol Buffers的关系 前言 Protocol Buffers&#xff08;通常简称为protobuf&#xff09;是Google公司开发的一种数据描述语言&#xff0c;它能够将结构化数据序列化&#xff0c;可用于数据存储、通信协议…...

HTTP 到 HTTPS 再到 HSTS 的转变

近些年&#xff0c;随着域名劫持、信息泄漏等网络安全事件的频繁发生&#xff0c;网站安全也变得越来越重要&#xff0c;也促成了网络传输协议从 HTTP 到 HTTPS 再到 HSTS 的转变。 HTTP HTTP&#xff08;超文本传输协议&#xff09; 是一种用于分布式、协作式和超媒体信息系…...

清华学霸告诉你:如何自学人工智能?

清华大学作为中国顶尖的学府之一&#xff0c;培养了许多优秀的人才&#xff0c;其中不乏在人工智能领域有所成就的学霸。通过一位清华学霸的经验分享&#xff0c;揭示如何自学人工智能&#xff0c;帮助你在这场科技浪潮中勇往直前。 一、夯实基础知识 数学基础&#xff1a;学习…...

Ubuntu 安装VMware Tools选项显示灰色,如何安装VMware Tools

切换apt源为阿里云&#xff1a; https://qq742971636.blog.csdn.net/article/details/134291339 只要你的网络没问题&#xff0c;你直接执行这几个命令&#xff0c;重启ubuntu虚拟机即可、 sudo dpkg --configure -a sudo apt-get autoremove open-vm-tools sudo apt-get ins…...

SpringBoot 2.x 实战仿B站高性能后端项目

SpringBoot 2.x 实战仿B站高性能后端项目 下栽の地止&#xff1a;请看文章末尾 通常SpringBoot新建项目&#xff0c;默认是集成了Maven&#xff0c;然后所有内容都在一个主模块中。 如果项目架构稍微复杂一点&#xff0c;就需要用到Maven多模块。 本文简单概述一下&#xff0c…...

vscode文件夹折叠问题

今天发现一个vscode的文件夹显示的问题&#xff0c;首先是这样的&#xff0c;就是我的文件夹里又一个子文件夹&#xff0c;子文件夹里有一些文件&#xff0c;但是我发现无法折叠起这个子文件夹&#xff0c;总是显示全部的文件&#xff0c;这让我备份很难&#xff0c;具体参考 h…...

4-flask-cbv源码、Jinja2模板、请求响应、flask中的session、flask项目参考

1 flask中cbv源码 2 Jinja2模板 3 请求响应 4 flask中的session 5 flask项目参考 1 flask中cbv源码 ***flask的官网文档&#xff1a;***https://flask.palletsprojects.com/en/3.0.x/views/1 cbv源码执行流程1 请求来了&#xff0c;路由匹配成功---》执行ItemAPI.as_view(item…...

2.Pandas数据预处理

2.1 数据清洗 以titanic数据为例。 df pd.read_csv(titanic.csv) 2.1.1 缺失值 &#xff08;1&#xff09;缺失判断 df.isnull() &#xff08;2&#xff09;缺失统计 # 列缺失统计 df.isnull().sum(axis0) # 行缺失统计 df.isnull().sum(axis1) # 统计缺失率 df.isnu…...

C# IEnumerable<T>介绍

IEnumerable 是 C# 中的一个接口&#xff0c;它是 .NET Framework 中的集合类型的基础。任何实现了 IEnumerable 接口的对象都可以进行 foreach 迭代。 IEnumerable 只有一个方法&#xff0c;即 GetEnumerator&#xff0c;该方法返回一个 IEnumerator 对象。IEnumerator 对象用…...

九洲

《九洲》 作者&#xff0f;罗光记 九洲春色映朝阳&#xff0c; 洲渚风光似画廊。 柳絮飘飞花似雪&#xff0c; 九州繁华共锦裳。 水波荡漾鱼儿跃&#xff0c; 洲边鸟语唤晨光。 春风拂过千里岸&#xff0c; 九洲儿女笑语扬。...

基于Genio 700 (MT8390)芯片的AR智能眼镜方案

AR眼镜是一种具有前所未有发展机遇的设备&#xff0c;无论是显示效果、体积还是功能都有明显的提升。AR技术因其智能、实时、三维、多重交互和开放世界的特点备受关注。 AR眼镜集成了AR技术、语音识别、智能控制等多项高科技功能&#xff0c;可以帮助用户实现更加便捷、高效、个…...

锐捷OSPF认证

一、知识补充 1、基本概述 OSPF区域认证和端口认证是两种不同的认证机制&#xff0c;用于增强OSPF协议的安全性。 OSPF区域认证&#xff08;OSPF Area Authentication&#xff09;&#xff1a;这种认证机制是基于区域的。在OSPF网络中&#xff0c;每个区域都可以配置一个区域…...

M2 Mac Xcode编译报错 ‘***.framework/‘ for architecture arm64

In /Users/fly/Project/Pods/YYKit/Vendor/WebP.framework/WebP(anim_decode.o), building for iOS Simulator, but linking in object file built for iOS, file /Users/fly/Project/Pods/YYKit/Vendor/WebP.framework/WebP for architecture arm64 这是我当时编译模拟器时报…...

Python算法题2023 输出123456789到98765432中完全不包含2023的数有多少

题目&#xff1a; 无输入&#xff0c;只需输出结果&#x1f910; 这个数字比较大&#xff0c;小伙伴们运行的时候要给代码一点耐心嗷つ﹏⊂ &#xff0c;下面是思路&#xff0c;代码注释也很详细&#xff0c;大致看一下吧&#xff08;&#xff3e;∀&#xff3e;●&#xff09…...

SpringBoot整合Thymeleaf

Thymeleaf 支持 HTML 原型&#xff0c;可以让前端工程师在浏览器中直接打开查看样式&#xff0c;也可以让后端工程师结合真实数据查看显示效果 Thymeleaf 除了展示基本的 HTML &#xff0c;进行页面渲染之外&#xff0c;也可以作为一个 HTML 片段进行渲染&#xff0c;例如我们在…...

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

LabVIEW双光子成像系统技术

双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制&#xff0c;展现出显著的技术优势&#xff1a; 深层组织穿透能力&#xff1a;适用于活体组织深度成像 高分辨率观测性能&#xff1a;满足微观结构的精细研究需求 低光毒性特点&#xff1a;减少对样本的损伤…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中&#xff0c;如何在保障应用高可用的同时有效地管理资源&#xff0c;一直是运维人员和开发者关注的重点。随着微服务架构的普及&#xff0c;集群内各个服务的负载波动日趋明显&#xff0c;传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...

基于江科大stm32屏幕驱动,实现OLED多级菜单(动画效果),结构体链表实现(独创源码)

引言 在嵌入式系统中&#xff0c;用户界面的设计往往直接影响到用户体验。本文将以STM32微控制器和OLED显示屏为例&#xff0c;介绍如何实现一个多级菜单系统。该系统支持用户通过按键导航菜单&#xff0c;执行相应操作&#xff0c;并提供平滑的滚动动画效果。 本文设计了一个…...

C# winform教程(二)----checkbox

一、作用 提供一个用户选择或者不选的状态&#xff0c;这是一个可以多选的控件。 二、属性 其实功能大差不差&#xff0c;除了特殊的几个外&#xff0c;与button基本相同&#xff0c;所有说几个独有的 checkbox属性 名称内容含义appearance控件外观可以变成按钮形状checkali…...

更新 Docker 容器中的某一个文件

&#x1f504; 如何更新 Docker 容器中的某一个文件 以下是几种在 Docker 中更新单个文件的常用方法&#xff0c;适用于不同场景。 ✅ 方法一&#xff1a;使用 docker cp 拷贝文件到容器中&#xff08;最简单&#xff09; &#x1f9f0; 命令格式&#xff1a; docker cp <…...

数据库优化实战指南:提升性能的黄金法则

在现代软件系统中&#xff0c;数据库性能直接影响应用的响应速度和用户体验。面对数据量激增、访问压力增大&#xff0c;数据库性能瓶颈经常成为项目痛点。如何科学有效地优化数据库&#xff0c;提升查询效率和系统稳定性&#xff0c;是每位开发与运维人员必备的技能。 本文结…...

Kafka深度解析与原理剖析

文章目录 一、Kafka核心架构原理1. **分布式协调与选举**2. **ISR、OSR与HW机制**3. **高性能存储设计**4. **刷盘机制 (Flush)**5. **消息压缩算法**二、高可用与消息可靠性保障1. **数据高可用策略**2. **消息丢失场景与规避**3. **顺序消费保证**三、Kafka高频面试题精析1. …...

【如何做好应用架构?】

一、应用架构定义 应用架构描述了各种用于支持业务架构并对数据架构所定义的各种数据进行出来的应用功能。这些应该功能指的是用来管理在数据架构中定义的数据&#xff0c;并对业务架构中定义的各项业务功能进行支持的能力。 其核心目标是确保应用系统高效、灵活、安全的支撑…...