【C#】代码解析--打印数据集

news2024/12/29 9:50:58

系列文章

【C#】编号生成器(定义单号规则、固定字符、流水号、业务单号)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129129787

【C#】日期范围生成器(开始日期、结束日期)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129040663

【C#】组件化开发,调用dll组件方法
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129492112

【C#】数据实体类使用
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128816638

【C#】单据审批流方案
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128972545

【C#】条码管理操作手册
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126589496

【C#】IIS平台下,WebAPI发布及异常处理
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126539836

【C#】代码模板生成工具
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126890673

【C#】MySQL数据库导入工具(批量Excel插入)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126427323

【C#】简单二维码制作和打印工具
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126884228

【C#】最全单据打印(打印模板、条形码&二维码、字体样式、项目源码)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129415723

【C#】Windows服务(Service)安装及启停方案
本文链接:https://blog.csdn.net/youcheng_ge/article/details/124053794

【C#】穿透Session隔离,服务调用外部程序(无窗体界面解决)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/124053033

【C#】任务计划实现,使用Quartz类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/123667723

【C#】源码解析正则表达式
本文链接:https://blog.csdn.net/youcheng_ge/article/details/118337074

【C#】软件版本和文件MD5记录(XML操作)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/112513871

【C#】测试网络是否连通
本文链接:https://blog.csdn.net/youcheng_ge/article/details/110137288

【C#】根据名称获取编码(Dictionary获取key方法)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129816701

【C#】数据建模,你是使用DataTable还是List?
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129792726

【C#】GridControl控件和数据集双向绑定
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129423755

【C#】GridControl动态更换DataSource,数据查询异常处理
本文链接:https://blog.csdn.net/youcheng_ge/article/details/130305424

【C#】GridControl日期字段显示时分秒
本文链接:https://blog.csdn.net/youcheng_ge/article/details/130718303

【C#】GridControl增加选择列(不用二次点击)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/130763713

【C#】数据库检查工具(可跨库访问)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/97172329


文章目录

  • 系列文章
  • 更新日志
  • 前言
  • 一、问题描述
  • 二、解决方案
  • 三、软件开发(源码)
    • 3.1 下载CVS代码
    • 3.2 定位代码行数
    • 3.3 根据定位行,获取整个打印方法
    • 3.4 获取打印类型、数据集、数据表
    • 3.5 获取 数据集字段
    • 3.6 截取打印参数
    • 3.7 项目下查找文件
    • 3.8 删除文件夹目录
    • 3.9 从开始字符串、结束字符串,截取中间字符串
    • 3.10 读取XML文件
  • 四、项目展示
  • 五、资源链接
    • 5.1 变更内容
    • 5.2 逻辑方案:


更新日志

版本更新日期更新说明
V1.02015-03-20首次发布代码解析–打印数据集
V2.02015-04-02打印数据集管理变更内容,见第5章,变更说明

前言

我能抽象出整个世界,但是我不能抽象你。 想让你成为私有常量,这样外部函数就无法访问你。 又想让你成为全局常量,这样在我的整个生命周期都可以调用你。 可惜世上没有这样的常量,我也无法定义你,因为你在我心中是那么的具体。

哈喽大家好,本专栏为【项目实战】专栏,有别于【底层库】专栏,我们可以发现增加 了『问题描述』、『项目展示』章节,十分符合项目开发流程,让读者更加清楚项目解决的问题、以及产品能够达到的效果。本专栏收纳项目开发过程的解决方案,是我项目开发相对成熟、可靠方法的提炼,我将这些问题的解决思路梳理,撰写本文分享给大家,大家遇到类似问题,可按本文方案处理。

本专栏会持续更新,不断完善,专栏文章关联性较弱(文章之间依赖性较弱,没有阅读顺序)。大家有任何问题,可以私信我。如果您对本专栏感兴趣,欢迎关注吧,我将带你用最简洁的代码,实现复杂的功能。

·提示:本专栏为项目实战篇,未接触项目开发的同学可能理解困难,不推荐阅读。
3A0N000001


一、问题描述

抓取MainController.cs代码中“打印”相关的数据,获取打印参数值,用于一致性对比。

二、解决方案

自动下载CVS代码;
工程目录下找到MainController.cs文件,加载进内存;
以“PrintCall.Print”关键字,快速定位到代码行(一整条语句行,分号结束);
反向读取代码行,找到打印方法名;
截取打印类型变量名、打印数据集变量名、打印数据表变量名;
全文扫描代码行,获取其所对应的 打印类型、打印数据集名、打印数据表名;
根据打印数据集名,在工程目录下找到对应的*.dsxml文件;
解析*.dsxml文件,获取其中的打印字段数据。

三、软件开发(源码)

3.1 下载CVS代码

使用CMD命令,调用CVS程序开始下载服务器代码。

		/// <summary>
		/// CVS下载
		/// </summary>
		/// <param name="a_CVSExePath"></param>
		/// <param name="a_CVSCmd"></param>
		/// <param name="a_WorkDir"></param>
		/// <param name="a_strMsgError"></param>
		/// <returns></returns>
		public bool CVSCodeDown(string a_CVSExePath,string a_CVSCmd,string a_WorkDir,out string a_strMsgError)
		{
			try
			{
				ProcessStartInfo info = new ProcessStartInfo();
				{
					info.FileName = a_CVSExePath;//CVS程序路径
					info.Arguments = a_CVSCmd;//指令1
					info.CreateNoWindow = true;
					info.WorkingDirectory = a_WorkDir;//工作路径
					info.ErrorDialog = true;
					info.WindowStyle = ProcessWindowStyle.Normal;
					info.UseShellExecute = false;
					info.RedirectStandardError = true;
				}
				
				using (Process p = Process.Start(info))
				{
					p.ErrorDataReceived += new DataReceivedEventHandler(this.p_ErrorDataReceived);
					a_strMsgError="下载超时";
					return p.WaitForExit(180000);
				}
			}
			catch(Exception ex)
			{
				a_strMsgError = ex.Message;
				this.p_ErrorDataReceived(null,null);
				return false;
			}
		}
		

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 定位代码行数

找到“PrintCall.Print”所在代码行
在这里插入图片描述

3.3 根据定位行,获取整个打印方法

在这里插入图片描述

3.4 获取打印类型、数据集、数据表

在这里插入图片描述

3.5 获取 数据集字段

在这里插入图片描述

3.6 截取打印参数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.7 项目下查找文件

本方法已经封装进我的底层库

在这里插入图片描述

3.8 删除文件夹目录

本方法已经封装进我的底层库

在这里插入图片描述

3.9 从开始字符串、结束字符串,截取中间字符串

本方法已经封装进我的底层库

在这里插入图片描述

3.10 读取XML文件

在这里插入图片描述
在这里插入图片描述

四、项目展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、资源链接

5.1 变更内容

1、任务单功能,右键 文件提取工具新-对于组件和功能导入到组件库的代码去掉。
2、后台数据刷入,根据【CVS代码目录管理】,把组件库(wsbase923)里的组件列表的CVS代码,刷进去。
3、根据组件库的 项目类型、组件号和CVS路径,把 组件对应的 打印信息增加到组件库里。

5.2 逻辑方案:

1、获取打印方法
组件库(wsbase923)–>CVS路径–>下载代码–>读取MainController文件–>
按行读取文件–>找到匹配关键字“PrintCall.Print”所在位置–>反向读取到“void”、“(object sender)”–>截取打印方法名–>将所有方法名保存到列表m_ListPrintMethod中。
​​在这里插入图片描述

2、打印类型功能参数
打印方法名–>“{}”内部读取–>找到匹配关键字“PrintCall.Print”,所在的起始位置,到“;”为止。
第二个参数为 打印类型变量print_type,
第三个参数为 打印数据集变量dataset,
第四个参数 打印数据集dataset_field。
找“print_type”出现的行,匹配到关键字“GetFunPar”,此时GetFunPar的值即为打印类型功能参数。
在这里插入图片描述

3、打印数据集功能参数
找“dataset”出现的行–>找匹配关键字“GetFunPar”–>GetFunPar里面的值+功能标识–>获取到功能参数值。
功能参数的表

select param_no from WBF_sys_fun_args where fun_guid='F201206_SaleOrder_Input'
 and fun_no='F201206' and param_no='cds_master'

4、数据集字段
找“dataset_field”出现的行,找匹配关键字“GetFunPar”,此时GetFunPar的值即为打印数据集功能参数。

5、打印表字段
打印类型、打印数据集功能参数–>取数获取 字段名称、字段备注、数据类型、字段长度。

Select field_name,field_note,data_type,field_size
From wssys_print_type_field  Where print_type_no = 'account_voucher_qry'    
and dataset_name = 'cds_detail'  

6、数据集字段
找“dataset_field”出现的行–>“Entity”字样的,获取它的名称–>去当前目录DataSet文件夹中寻找“.dsxml”文件–>解析xml文件–>获取 字段、标题、数据类型、字段备注。
在这里插入图片描述

7、存入组件库中
以上获取到的数据存进,组件库中,方便其后的比较操作。

select * from T_client_assembly_print_method
select * from T_client_assembly_print_dataset
select * from T_client_assembly_print_dataset_field

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

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

相关文章

LangChain:LLM应用程序开发(中)——文档问答、评估、Agents(代理)

文章目录 四、文档问答4.1 快速入门4.2 逐步实现4.3 其它方法 五、评估5.1 创建QA app5.2 生成测试数据点5.2.1 Hard-coded examples5.2.2 LLM-Generated examples 5.3 link chain debug手动评估5.4 LLM assisted evaluation5.5 LangChain Evaluation platform 六、Agents&…

704.二分查找

一、题目 二、代码 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int search(int* nums, int numsSize, int target) {int left 0;int right numsSize - 1;while (left < right) {int middle (left right) / 2;if (target > nums[middle]) {left m…

pip3 报错 distribution was not found and is required by the application

环境&#xff1a; centos 8 &#xff0c; pyhton3.6 背景&#xff1a; 升级python3.6 至 python3.10后&#xff0c; pip3安装包报错&#xff1a; pkg_resources.VersionConflict: (pip 21.2.4 (/usr/local/python3/lib/python3.10/site-packages), Requirement.parse(pip23.…

Linux:scp命令

1.介绍 scp命令是cp命令的升级版&#xff0c;即&#xff1a;ssh cp&#xff0c;通过SSH协议完成文件的复制。其主要的功能就是&#xff1a;在不同的Linux服务器之间&#xff0c;通过SSH协议互相传输文件。只要知晓服务器的账户和密码&#xff08;或密钥&#xff09;&#xff0c…

美光之后,韩国存储芯片也将成为输家,将损失千亿美元

美光很可能将完全丧失中国的企业市场&#xff0c;随着影响的扩大&#xff0c;韩国存储芯片或也将因美光的影响而蒙受巨大的损失&#xff0c;预计损失最高可能达到千亿美元&#xff0c;韩国存储芯片的老大地位也将因此动摇。 美光日前对媒体披露的数据指出因中国的安全审查&…

GitHub下的项目有pom.xml但右侧没有Maven问题

1.可以使用idea自带功能将pom.xml作为Maven导入 双击shift&#xff0c;输入Maven点击Add Maven Projects注意&#xff1a;在settings中将Maven先配置好&#xff0c;我使用的是自己设置的Maven仓库而不是idea自动部署在C盘的仓库

SQL Server数据库 -- 表的创建与管理

文章目录 一、数据表的组成二、创建数据表 表的创建表的查看表的增加表的修改表的删除、三、表的架构操作四、总结 前言 上次博客写到了数据库的创建与管理&#xff0c;但是创建的库里面什么东西都没有&#xff0c;现在我们需要在库里面添加数据表内容 一、数据表的组成 在创…

美好未来“一束光”儿童安全教育项目在四川泸定正式启动

6月26日&#xff0c;由中华少年儿童慈善救助基金会和北京臻爱公益基金会共同发起的美好未来计划“一束光”儿童安全教育公益项目启动仪式&#xff0c;在四川省甘孜藏族自治州泸定县贡嘎山片区寄宿制学校举行。 出席本次启动仪式活动的嘉宾有&#xff1a;中华少年儿童慈善救助基…

基于“SRP模型+”多技术融合在生态环境脆弱性评价模型构建、时空格局演变分析与RSEI指数的生态质量评价及拓展应用

目录 ​第一章 生态环境脆弱性评价内涵及基于文献可视化方法研究热点分析 第二章 数据来源及预处理 第三章 生态环境脆弱性评价模型构建 第四章 生态环境脆弱性时空格局演变分析 第五章 生态环境脆弱性时空格局演变驱动机制分析 第六章 基于 RSEI 指数的生态质量评价 第…

js输入一个字符串,打印出该字符串中,所有字符的排列组合(超清晰)

一、题目 输入一个字符串&#xff0c;打印出该字符串中&#xff0c;所有字符的排列组合。 输入&#xff1a;abc 输出&#xff1a;[abc, acb, bca, bac, cab, cba] 二、思路 回溯算法。其核心思想是通过递归的方式进行深度优先搜索&#xff0c;当发现当前的选择不符合要求时…

机器学习技术:如何使用交叉验证和ROC曲线提高疾病预测的准确性和效率?

一、引言 随着机器学习的普及&#xff0c;评估模型的性能越来越重要。交叉验证和ROC曲线是两种常见的评估模型性能的方法。本文将介绍这两种方法的基本原理和应用场景&#xff0c;并结合实际案例和技术实践&#xff0c;讲解如何使用交叉验证和ROC曲线来提高机器学习模型的性能…

mongodb原理

一&#xff1a;MongoDB的优点和缺点 优点 面向文档存储(类JSON数据模式简单而强大)动态查询全索引支持,扩展到内部对象和内嵌数组查询记录分析快速,就地更新高效存储二进制大对象 (比如照片和视频)复制和故障切换支持Auto- Sharding自动分片支持云级扩展性MapReduce 支持复杂…

chatgpt赋能python:Python选择对话框:简化用户操作的实用工具

Python选择对话框&#xff1a;简化用户操作的实用工具 在Python编程领域中&#xff0c;常常需要与用户进行交互&#xff0c;以便更好地控制程序运行结果。而选择对话框则是一种简化用户操作的实用工具&#xff0c;可避免用户输入错误或步骤繁琐的问题。在本篇文章中&#xff0…

【UE】一个需求案例掌握Timeline和插值Lerp

文章目录 问题背景结论先行timeline和lerp原理使用timelinelerp实现相机平滑跟随BUG猜想验证和解决 问题背景 今天用timelinelerp插值做了一个相机平滑跟随的需求 如果只是要求跟随&#xff0c;直接在tick中把相机位置设置成角色位置就可以 但希望有一个相机滞后角色一点点的…

如何避免ChatGPT,ChatGLM这类大语言模型胡说八道

“ ChatGPT&#xff0c;ChatGLM这类大语言模型一本正经的胡说八道&#xff0c;可能也是它创造性回答的部分。那么谁来判断它在编造无中生有的内容&#xff1f;恐怕只有人才能判断。模型怎么会产生幻觉&#xff0c;我们又怎么避免它产生幻觉&#xff1f;” 01 — 昨天体验了国产…

快上车,搭乘HUAWEI HiCar驶向未来

HUAWEI HiCar&#xff08;以下简称HiCar&#xff09;是华为提供的人-车-家全场景智慧互联解决方案&#xff0c;连接手机与车辆&#xff0c;充分发挥各自的优势属性&#xff0c;将手机的应用/服务生态延伸进车辆&#xff0c;实现以手机为核心的全场景体验。消费者通过HiCar可以感…

HTML 超链接标签、图片标签

超链接标签 超链接描述 HTML使用标签<a>来设置超文本链接 超链接可以是一个字&#xff0c;一个词&#xff0c;或者一组词&#xff0c;也可以是一幅图像&#xff0c;您可以点击这些内容来跳转到新的文档或者当前文档中的某个部分。 <a href"url">链接文…

【运维】Linux升级Python2

【运维】Linux升级Python2 操作系统&#xff1a;centos7python版本&#xff1a;升级前版本2.7.5&#xff0c;升级后2.7.18python3版本&#xff1a;升级前3.6.8&#xff0c;升级后版本3.8.8 1、查看当前python版本 [root1 ~]# python -V Python 2.7.5 2、yum安装python [roots14…

Apikit 自学日记:发起文档测试-Websocket

Websocket 进入某个WS协议的API文档详情页&#xff0c;点击文档上方 测试 标签&#xff0c;即可进入 API 测试页&#xff0c;系统会根据API文档的定义的求头部、Query参数、请求体自动生成测试界面并且填充测试数据。 填写/修改请求参数 1.1设置请求头部&#xff08;Header&…

Rovio智能车改锂电经验分享

目录 小车简介 改造思路 改造目的 步骤一、改锂电 电压检测 充电检测 结束语 本文介绍如何给wowwee Rovio智能车改电源过程。 首先介绍硬件情况 小车简介 小车功能强大&#xff0c;带红外定位&#xff0c;带缺电自动归位&#xff0c;带轨迹录制回放&#xff0c;带扬声器…