CN104391731B - 一种基于c#的与数据类型无关的编辑方法 - Google Patents
一种基于c#的与数据类型无关的编辑方法 Download PDFInfo
- Publication number
- CN104391731B CN104391731B CN201410512719.3A CN201410512719A CN104391731B CN 104391731 B CN104391731 B CN 104391731B CN 201410512719 A CN201410512719 A CN 201410512719A CN 104391731 B CN104391731 B CN 104391731B
- Authority
- CN
- China
- Prior art keywords
- data
- type
- data type
- class
- edit methods
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于C#的与数据类型无关的编辑方法,根据事先定义好的数据字典,开发某种类的定义,在程序运行时通过实例化产生该类的内存对象,将内存对象与属性框(PropertyGrid)关联起来,属性框(PropertyGrid)通过反射机制获取该内存对象的成员变量信息,在属性框中以不同的编辑方式显示各成员变量的数据,并对各成员变量提供不同风格的编辑功能。
Description
技术领域
本发明属于核电仪控组态技术领域,特别涉及一种与数据类型无关的编辑方法。
背景技术
在核电站DCS领域中,核电站的现场设备,被定义为点,核电站的现场设备的具体物理参数被定义为点信息,而每个物理参数又包括多个特征,这些特征被定义为点项,对于相同类型的物理参数具有相同的点项,例如,对于温度测量板卡的正常温度的参数信息,对应的点项包括:点名、点描述、单位、量程下限、量程上限、缺省值、信号类型等等,这些所有的点项构成了该点的点信息。在工程组态中,就是将核电站的各个点,依据该类型的点预先设定好的点项,将具体的物理量参数写入对应的点项中,然后将完善好的点信息进行保存、编译生成一个二进制文件,再将二进制文件中的点信息进行分类处理,最后,将分好类的点信息下装到DCS***的各个节点(包括实时服务器、历史服务器、各操作员站以及各现场控制站)。下表为核电站某类温度板卡的点信息(每行数据对应一个点信息):
表一:核电站某温度板卡的点信息
如上表中,对应每一个点项存储数据的格式都有要求,例如对量程上限、量程下限要求填入的数据的数据类型为,数值型;再如,对点名,要求填入的数据的数据类型为,字符串型。但是由于各个核电站的差异性,导致不同电站对现场设备的要求并不尽相同,导致这些相同设备对应点的数据类型在各个项目间也不同,例如,有的项目要求的量程上限、量程下限为字符串型,因此在核电站工程组态软件中,可以灵活设定数据类型,并提供一个功能丰富灵活的数据库组态方法,就显得很重要了。目前传统的工程组态软件(见图1)仅仅把数据显示在一个数据网格DataGrid视图中,对每个点项的数据类型 只能在DataGrid视图中通过鼠标选中某行进行编辑,并没有提供功能丰富灵活的属性框,实现对点的数据类型以及取值范围的编辑功能。
为了弥补这个缺陷,一般采取以下两种措施:
数组库组态先在Excel表格中进行,然后将Excel中经过组态的数据导入到工程组态软件里,再进行编译;
或者为每种点类型开发一个编辑对话框。
采用第1种措施,先用Excel进行编辑,组态效率比较低下,而且在通用的Excel软件中进行专业的仪控数据库组态,存在易用性的问题,并且容易出错;
采用第2种措施,需要为每种数据类型开发一个编辑对话框,而一个核电机组的大型DCS工程中点的数据类型一般在100种左右(比如阳江核电DCS工程的点类型达到101种),因此组态软件中就会存在100个左右的对话框,同时,又因为每个点类型的结构不同,那么每种编辑对话框的界面布局就不同,导致人机接口不友好,同时增加了组态软件的开发工作量;而且,对于不同的工程,数据类型不同,编辑对话框不能通用,因此需要针对不同的工程开发编辑对话框,每当一个数据类型稍有不同,都要重新修改编辑对话框,导致可扩展性不好。
因此,需要提供一个功能丰富灵活的动态生成代码的数据库组态软件,但是动态生成代码存在:
1、动态生成代码比较复杂,容易出错;
2、需要综合使用动态代码生成,动态编译程序集,利用反射技术实例化对象、利用反射技术读取类的静态字段的值、重载类型转换运算符并利用反射技术调用重载的类型转换运算符等技术。
对于上述技术的综合运用,实现难度比较高。
发明内容
为了克服目前传统的工程组态软件中组态效率较低、容易出错、人机接口不友好、可扩展性不好的缺点,本发明提供一种基于C#的与数据类型无关的编辑方法,提供对数据类型的修改,而编辑方法采用动态生成代码的技术,在实现功能丰富灵活的数据库组态方法的同时,能自动适应点类型的变化。
本发明解决的技术问题是,如何利用反射技术实现PropertyGrid编辑动态对象的技术问题,反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。在计算机领域,反射是指一类应用,它们能够自描述和自控制。也就是说,这类应用通过采 用某种机制来实现对自己行为的描述(self-representation)和监测(examination),并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。反射机制也被应用到了视窗***、操作***和文件***中。同一般的反射概念相比,计算机科学领域的反射不单单指反射本身,还包括对反射结果所采取的措施。
在C#程序中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。
本发明解决其技术问题所采用的技术方案是:一种基于C#的与数据类型无关的编辑方法:
1)根据数据字典创建数据集;并将所述数据集与数据网格视图绑定;
所述数据字典包括:至少一张数据表,所述数据表包括具有相同列信息的数据,所述的每列信息具有相同的数据类型;
所述数据类型在所述数据集中被定义为记录类型;每个所述记录类型为中的一个数据表;
2)在所述数据网格视图中,根据选中行和选中行对应的记录类型动态生成程序集;
3)根据所述程序集,通过反射机制实例化一个内存对象或内存对象列表;
4)将生成的内存对象或内存对象列表与属性框关联,属性框通过反射机制,读取并显示属性信息,同时,所述属性框提供对所述属性框内部属性的编辑功能;
5)所述属性框中的属性被修改后,同步更新所对应的内存对象或内存对象列表及所述数据网格视图。
其中,在所述步骤2)中,在生成程序集之前,先根据选中行和选中行对应的记录类型定义动态代码:
(a)定义命名空间,所述命名空间是用来组织和重用动态代码的编译单元,所述动态代码以命名空间为单位进行编辑;
(b)定义用于描述所述记录类型的类;
(c)在所述类中创建一个构造函数,在所述构造函数中为所述记录类型的每个属性赋值;优选的,在所述类实例化时,根据所述数据窗口网格视图中被选中的行,通过所述构造函数进行赋值;
优选的,在定义命名空间前先定义所述程序集引用规则,所述程序集引用规则为一个用于定义所述记录类型包含的所有C#支持的方法和数据类型的程序集引用列表;
优选的,所述所有的记录类型,使用相同的程序集引用列表。
这里,一个记录类型包括多个项;每个项包括多个属性,所述属性至少包括:项值、项值类型和编辑方式;
所述项值用于存储所述项的具体数据;所述项值类型用于定义所述项的数据类型;
所述编辑方式:针对所述项值类型,为所述项值的编辑提供适合的编辑方法,包括:组合框,所述项值在所述组合框中进行编辑;
优选的,所述组合框提供一个可供选择的下拉列表,所述下拉列表包括:下拉列表值和描述;选中的所述下拉列表值对应所述项值;在所述步骤(b)中还包括,为所述组合框生成一个类;优选的,所述组合框用于实现项值类型为枚举类型的编辑;
优选的,所述编辑方式还包括文本框,所述项值对应所述文本框的值。
优选的,为所述组合框采用动态代码技术生成一个类:
i.定义一个组合框属性编辑器,所述组合框属性编辑器利用反射机制完成所述组合框属性的读取和设置;
ii.根据所述组合框动态生成一个组合框属性描述类;所述下拉列表值定义为静态只读的类成员变量,并采用重载类型转换运算符实现枚举类型和数值类型/字符串类型之间的转换。
iii.将所述组合框属性描述类与所述组合框属性编辑器关联。
优选的,利用反射机制对所述组合框属性进行编辑时,通过反射机制读取所述组合框中的可选值,并将所述组合框的可选值存储在所述下拉列表中,然后将所述下拉列表在所述组合框的属性框中显示;当所述下拉列表中的值被选定后,再通过反射机制调用所述组合框属性描述类将选中的字符串转换成枚举类,从而实现对组合框的编辑。
优选的,根据所述记录类型定义的动态代码,进行动态编译并生成程序集,并将所述编译好的程序集保存至程序集列表中。
所述类名为所述记录类型的名称。
优选的,所述的数据类型包括:字符串型、数值型和枚举型;
优选的,所述数值型包括:Byte型、Int32型、Double型。
本发明还提供一种核电站DCS***数据库组态方法,包括核电站DCS***的点信息和数据字典,所述数据字典包括数据类型,其特征在于:
Step1,采用基于C#的与数据类型无关的编辑方法,动态编辑所述数据类型;
Step2,在所述基于C#的与数据类型无关的编辑方法中提供的数据网格视图中编辑所述点信息;
Step3,将编辑好的所述点信息进行编译,生成二进制文件;
Step4,将所述二进制文件中的点信息数据分类处理,并将分类过的点信息数据下载并安装到所述核电站DCS***中的各个节点,所述节点包括:实时服务器、历史服务器、各操作员站及各现场控制站;
在所述DCS***中,核电站的现场物里量参数被定义为点;所述物理量参数的各个特征被定义为点项;
所述数据字典包括点信息,所述点信息包括至少一个点项,所述点项包括数据类型。
本发明的有益效果是,提供一个功能丰富灵活的动态生成代码的数据库组态方法;克服了目前传统的工程组态软件中组态效率较低、容易出错、人机接口不友好、可扩展性不好的缺点;
本发明提供对数据类型的修改,而对数据类型的修改方法采用动态生成代码的技术,在实现功能丰富灵活的数据库组态方法的同时,能自动适应点类型的变化。
本发明充分整合挖掘利用C#的多种比较高级的技术,达到了如下技术和功能上的目标:
1、通过在程序运行时,动态构造程序代码、动态编译代码为程序集、利用反射机制实例化对象、利用反射机制读取类静态字段的值,重载类型转换运算符,并利用反射机制调用重载的类型转换运算符,等一系列的方法,搭建了一座利用C#的属性框(PropertyGrid),自适应地根据数据字典的定义信息,编辑数据库点的桥梁。
2、从无到有地为数据库组态模块增加了丰富的属性编辑功能,通过属性框(PropertyGrid)的友好界面,提高了组态的专业性、易用性和组态效率。
3、直接根据数据字典中的信息,动态构造程序和编译程序集,从而实现了数据库编辑的可扩展性。
4、此项技术可推广应用到与动态编辑技术相类似应用中。
附图说明
下面结合附图对本发明所述的一种基于C#的与数据类型无关的编辑方法进行具体说明。
图1是本发明传统的数据库组态功能界面;
图2是本发明技术基础的结构示意图;
图3是本发明要解决的技术问题示意图;
图4是本发明技术方流程图;
图5是本发明技术方案示意图;
图6数据类型;
图7数据类型定义。
具体实施方式
本发明提供的技术方案是使用C#的属性框技术PropertyGrid,使用PropertyGrid的基本情景(图2)是:事先开发某种类的定义,在程序运行时通过实例化产生该类的内存对象,将内存对象与属性框(PropertyGrid)关联起来,属性框(PropertyGrid)通过反射机制获取该内存对象的成员变量信息,在属性框中以不同的编辑方式显示个成员变量的数据,并对各成员变量提供不同风格的编辑功能。
一、本发明技术方案描述:
如图4所示,将已存在的用于定义点表的数据字典,所述的数据字典样式如图6和图7所示(根据现场物料量参数,定义的点,以及根据点类型定义的点项信息,即,数据字典中包含所有物理量参数对应的点以及各点对应的点项),在DataGridView视图控件中进行显示,并可在PropertyGrid属性框中进行编辑。图3中的两条曲线代表三者之间没有任何关联,本发明的工作就是采取一种基于C#的与数据类型无关的编辑方法,来弥补所缺乏的环节。
数据字典包括多个点表,每个点表存储具有相同类型的点信息。
本发明的技术方案如图5所示,方案的基本思路和步骤(参考图5中的带圈编号)说明如下:
1)根据数据字典创建数据集DataSet;这里的数据字典是指:定义不同数据类型的文件,是已知文件,格式为:csv、txt、word或者excel等常用的文件格式;
2)将数据集DataSet与数据网格视图(DataGridView)绑定;
数据网格视图DataGridView由C#工具提供,具体的绑定方法为现有技术,不再论述;
3)用户通过数据网格视图选中某一行或者多行,如果是选中多行,那么选中的行必须属于同一个数据类型;
4)根据选中行所属的数据集DataSet获取所属的记录类型;每种数据类型对应一个记录类型,每个记录类型体现为DataSet中的一个数据表,一个数据集DataSet可以包含多个记录类型;本发明的数据集DataSet只有一个;
5)判断是否已经为该记录动态生成了类型定义代码,若尚未生成代码,则根据数据集DataSet采用C#支持的方法,动态生成该记录类型的类定义代码;若已经生成代码,转6);
6)判断是否已经为该记录类型编辑生成了程序集,若尚未编译生成程序集,则根据5)中的代码,动态编译、生成程序集,并保存至程序集列表中;若已经编译生成程序集,转7);因此,这里的程序集是动态程序集,在程序执行过程中,动态生成,即在程序运行的过程中,会缓存在内存中,程序关闭后,这些程序集也随之释放,不会留在磁盘上。下次程序启动后,再动态生成;
7)根据记录类型获取已经编译生成的程序集;
8)根据选中行和选中行对应的记录类型的程序集,通过反射机制实例化一个内存对象或者内存对象列表;
9)将生成的内存对象或者内存对象列表与属性框PropertyGrid关联,属性框通过反射机制,读取并显示属性信息,用户则可以通过属性框PropertyGrid编辑属性;这里的属性框PropertyGrid由C#提供
10)在属性框PropertyGrid中修改了内存对象后,与所选中的行进行数据同步更新,并在数据网格视图DataGridView中显示。
二、步骤5)中从记录类型定义到记录类型代码详细方案,如表1(一个简单的AVO记录类型):
表1记录类型定义
1、记录类型定义说明:
一个记录类型由多个项组成(例如:点说明、站号、工程计算属性、信号类型等),每个项由多个属性来描述;从动态生成代码的角度考虑看,需要关注的属性有:项名、项值类型、项初始值、项编辑方式、组合框内容等信息,AVI8(8限模拟量输入信号)的记录类型的组成见图7所示,其中:
(1)项值类型
可以分为两大类:字符串型和数值型;数值型可细分为Byte型、Int32型、Double型;
(2)项编辑方式
可以分为两大类:文本框和组合框;
通过文本框直接对项值进行修改;
组合框,提供一个下拉列表供用户选择;组合框可细分为数值型和字符串型;如表1中的工程计算属性就是数值型组合框,表1中的信号类型是字符串型组合框。
2、记录类型代码生成规则
在这里,本发明以C#为例,介绍记录类型代码生成规则。
(1)程序集引用规则
首先,在代码中通过using定义“程序集”引用部分,对于所有记录类型,使用相同的程序集引用列表。
(2)命名空间namespace
接下来,定义命名空间namespace,命名空间是用来组织和重用代码的编译单元,是一种将程序库名称封装起来的方法,本发明的动态代码就以命名空间为单位编辑的。在本发明中,可以取任何不冲突的命名空间,例如:DynamicNamespace。
(3)类名称
以记录类型名作为类名定义一个类,用于描述该记录类型;同时,如果该记录类型中含有组合框型的项,则为每个组合框型的项生成一个类,用于描述该组合框属性,类名采用如下方式:项名_StringEnum,比如表1中的工程计算属性,对应的描述类名是:
工程计算属性_StringEnum.
(4)数据同步代码
所谓数据同步代码是指,在记录类型描述类型中创建一个构造函数,在构造函数中为记录类型的每一项(即每个属性)赋值。当该类实例化时,根据DataGridView视图中选中的某一行,通过构造函数进行赋值;
(5)构造函数代码:构造函数代码的主要作用是为各个字段(记录类型)及属性赋初值;
(6)文本框型的属性代码,包含字符串型和数值型;
(7)组合框型属性代码:组合框型的组合代码,要实现类似于枚举型属性的效果例如byte,在属性框中通过组合框(下拉列表)选择某个属性值,
解决办法包含三个部分:
i.根据组合框的类型和内容动态生成一个枚举型的类;
ii.为枚举型的类事先写好一个自定义的组合框属性编辑器StringEnumEditor,该编辑器利用反射机制完成组合框属性的读取和设置;
iii.将每个组合框型属性与自定义属性编辑类(StringEnumEditor)关联;
(8)条目(7)i.的具体说明
主要思想是:自定义一个组合框属性描述类,达到枚举类型的效果,从而可以达到在属性框(PropertyGrid)中能够像编辑普通枚举型数据一样来编辑自定义的组合框类型的项,也就是提供可供组态人员选择的下列列表。核心思想是,将组合框中的每个可选的值(数值或字符串)表示为静态只读的类成员变量,并重载类型转换运算符符完成枚举类→数值、枚举类→字符串以及字符串→枚举类的转换。
(9)条目(7)ii.的具体说明
主要思想是:继承UITypeEditor类,当组态人员选择编辑某个组合框属性时,组态软件通过反射机制读取每个枚举类型中的每个静态只读的类型成员变量(即组合框中的可选值),将这些变量放到一个下拉列表中,然后将下拉列表在属性框中显示,并供组态人员选择,当组态人员选定某个值后,再通过反射机制调用组合框描述类中的重载的类型转换运算符,将选中的字符串转换成枚举类,从而实现对组合框项的编辑。
以上所述仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专利的技术人员在不脱离本发明技术方案范围内,当可利用上述提示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明方案的范围内。
Claims (15)
1.一种基于C#的与数据类型无关的编辑方法,其特征在于,
1)根据数据字典创建数据集;并将所述数据集与数据网格视图绑定;
所述数据字典包括:至少一张数据表,所述数据表包括具有相同列信息的数据,所述的相同列信息具有相同的数据类型;
所述数据类型在所述数据集中被定义为记录类型;每个所述记录类型为所述数据集中的一个数据表;
2)在所述数据网格视图中,根据选中行和选中行对应的记录类型定义动态代码后动态生成程序集:
(a)定义命名空间,所述命名空间是用来组织和重用动态代码的编译单元,所述动态代码以命名空间为单位进行编辑;
(b)定义用于描述所述记录类型的类;
(c)在所述类中创建一个构造函数,在所述构造函数中为所述记录类型的每个属性赋值;
3)根据所述程序集,通过反射机制实例化一个内存对象或内存对象列表;
4)将生成的内存对象或内存对象列表与属性框关联,属性框通过反射机制,读取并显示属性信息,同时,所述属性框提供对所述属性框内部属性的编辑功能;
5)所述属性框中的属性被修改后,同步更新所对应的内存对象或内存对象列表及所述数据网格视图。
2.根据权利要求1所述的一种基于C#的与数据类型无关的编辑方法,其特征在于,在所述类实例化时,根据所述数据窗口网格视图中被选中的行,通过所述构造函数进行赋值。
3.根据权利要求1所述的一种基于C#的与数据类型无关的编辑方法,其特征在于,在定义命名空间前先定义所述程序集引用规则,所述程序集引用规则为一个用于定义所述记录类型包含的所有C#支持的方法和数据类型的程序集引用列表。
4.根据权利要求1所述的一种基于C#的与数据类型无关的编辑方法,其特征在于,所有的记录类型,使用相同的程序集引用列表。
5.根据权利要求1所述的一种基于C#的与数据类型无关的编辑方法,其特征在于,一个记录类型包括多个项;每个项包括多个属性,所述属性至少包括:项值、项值类型和编辑方式;
所述项值用于存储所述项的具体数据;所述项值类型用于定义所述项的数据类型;
所述编辑方式:针对所述项值类型,为所述项值的编辑提供适合的编辑方法,包括:组合框,所述项值在所述组合框中进行编辑。
6.根据权利要求5所述的一种基于C#的与数据类型无关的编辑方法,其特征在于,所述组合框提供一个可供选择的下拉列表,所述下拉列表包括:下拉列表值和描述;选中的所述下拉列表值对应所述项值;在所述步骤(b)中还包括,为所述组合框生成一个类。
7.根据权利要求5所述的一种基于C#的与数据类型无关的编辑方法,其特征在于,所述组合框用于实现项值类型为枚举类型的编辑。
8.根据权利要求5所述的一种基于C#的与数据类型无关的编辑方法,其特征在于,所述编辑方式还包括文本框,所述项值对应所述文本框的值。
9.根据权利要求6所述的一种基于C#的与数据类型无关的编辑方法,其特征在于,为所述组合框采用动态代码技术生成一个类:
i.定义一个组合框属性编辑器,所述组合框属性编辑器利用反射机制完成所述组合框属性的读取和设置;
ii.根据所述组合框动态生成一个组合框属性描述类;所述下拉列表值定义为静态只读的类成员变量,并采用重载类型转换运算符实现枚举类型和数值类型/字符串类型之间的转换;
iii.将所述组合框属性描述类与所述组合框属性编辑器关联。
10.根据权利要求9所述的一种基于C#的与数据类型无关的编辑方法,其特征在于,利用反射机制对所述组合框属性进行编辑时,通过反射机制读取所述组合框中的可选值,并将所述组合框的可选值存储在所述下拉列表中,然后将所述下拉列表在所述组合框的属性框中显示;当所述下拉列表中的值被选定后,再通过反射机制调用所述组合框属性描述类将选中的字符串转换成枚举类,从而实现对组合框的编辑。
11.根据权利要求1-4任一所述的一种基于C#的与数据类型无关的编辑方法,其特征在于,根据所述记录类型定义的动态代码,进行动态编译并生成程序集,并将所述编译好的程序集保存至程序集列表中。
12.根据权利要求1-8、10任一所述的一种基于C#的与数据类型无关的编辑方法,其特征在于,所述类名为所述记录类型的名称。
13.根据权利要求1-8、10任一所述的一种基于C#的与数据类型无关的编辑方法,其特征在于,所述的数据类型包括:字符串型、数值型和枚举型。
14.根据权利要求13所述的一种基于C#的与数据类型无关的编辑方法,其特征在于,所述数值型包括:Byte型、Int32型、Double型。
15.一种核电站DCS***数据库组态方法,包括核电站DCS***的点信息和数据字典,所述数据字典包括数据类型,其特征在于:
Step1,采用基于C#的与数据类型无关的编辑方法,动态生成编辑所述数据类型;
Step2,在所述基于C#的与数据类型无关的编辑方法中提供的数据网格视图中编辑所述点信息;
Step3,将编辑好的所述点信息进行编译,生成二进制文件;
Step4,将所述二进制文件中的点信息数据分类处理,并将分类过的点信息数据下载并安装到所述核电站DCS***中的各个节点,所述节点包括:实时服务器、历史服务器、各操作员站及各现场控制站;
在所述DCS***中,核电站的现场物理量参数被定义为点;所述物理量参数的各个特征被定义为点项;
所述数据字典包括点信息,所述点信息包括至少一个点项,所述点项包括数据类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410512719.3A CN104391731B (zh) | 2014-09-29 | 2014-09-29 | 一种基于c#的与数据类型无关的编辑方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410512719.3A CN104391731B (zh) | 2014-09-29 | 2014-09-29 | 一种基于c#的与数据类型无关的编辑方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104391731A CN104391731A (zh) | 2015-03-04 |
CN104391731B true CN104391731B (zh) | 2018-12-21 |
Family
ID=52609639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410512719.3A Active CN104391731B (zh) | 2014-09-29 | 2014-09-29 | 一种基于c#的与数据类型无关的编辑方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104391731B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107767434B (zh) * | 2017-09-13 | 2021-06-29 | 福建天晴数码有限公司 | 虚拟现实技术中纹理贴图配置信息的获取方法、存储介质 |
CN108647078A (zh) * | 2018-05-16 | 2018-10-12 | 深圳市德名利电子有限公司 | 一种基于内存映射到软件界面的方法、***及存储介质 |
CN110750597A (zh) * | 2018-07-23 | 2020-02-04 | 北京国双科技有限公司 | 数据处理方法及装置、存储介质和处理器 |
CN109242938B (zh) * | 2018-09-12 | 2023-04-11 | 福建天晴数码有限公司 | 一种基于Unity的动画编辑方法及终端 |
CN110417880B (zh) * | 2019-07-19 | 2022-02-11 | 优信拍(北京)信息科技有限公司 | 一种应用于web开发的数据处理方法、装置及*** |
CN112130890A (zh) * | 2020-09-17 | 2020-12-25 | 北京金和网络股份有限公司 | 业务***开发和维护方法、装置和存储介质及服务器 |
CN113051002B (zh) * | 2020-12-24 | 2024-07-12 | 完美世界(北京)软件科技发展有限公司 | 数据编辑方法、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894317A (zh) * | 2010-06-08 | 2010-11-24 | 用友软件股份有限公司 | 数据变化驱动业务逻辑的方法和*** |
CN101976235A (zh) * | 2010-09-21 | 2011-02-16 | 天津神舟通用数据技术有限公司 | 基于动态网页的可扩展的Word报告自动生成方法 |
-
2014
- 2014-09-29 CN CN201410512719.3A patent/CN104391731B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894317A (zh) * | 2010-06-08 | 2010-11-24 | 用友软件股份有限公司 | 数据变化驱动业务逻辑的方法和*** |
CN101976235A (zh) * | 2010-09-21 | 2011-02-16 | 天津神舟通用数据技术有限公司 | 基于动态网页的可扩展的Word报告自动生成方法 |
Non-Patent Citations (1)
Title |
---|
基于反射机制的PropertyGrid下拉框扩展方法;郝伟;《电脑知识与技术》;20090415;第5卷(第11期);第2877-2881页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104391731A (zh) | 2015-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104391731B (zh) | 一种基于c#的与数据类型无关的编辑方法 | |
CN104866426B (zh) | 软件测试综合控制方法及*** | |
CN102236602B (zh) | 一种可视化软件测试设计平台 | |
CN106325969B (zh) | 需求变更的逆向追踪*** | |
CN107894953A (zh) | 一种银行应用测试数据的生成方法及装置 | |
CN102541521B (zh) | 基于结构化查询语言的操作指令自动生成装置及方法 | |
CN103645986A (zh) | 一种编译器的可视化语法树的生成方法和重构方法 | |
CN102915242A (zh) | 一种利用图形化操作实现代码编程的方法 | |
CN110399128A (zh) | 代码文件生成方法及装置 | |
CN101996131A (zh) | 基于xml封装关键字的gui自动测试方法及自动测试平台 | |
CN108279885B (zh) | 一种对多个模型代码进行软件集成的方法及装置 | |
CN103744647A (zh) | 一种基于工作流GPD的Java工作流开发***及其方法 | |
CN103605606B (zh) | 一种可自动转换的嵌入式软件测试用例批量执行方法 | |
CN102591787B (zh) | Java卡的数据处理方法及装置 | |
CN106327100A (zh) | 一种变更清单生成方法及装置 | |
CN112182236A (zh) | 一种知识图谱的构建方法、***及电子设备 | |
CN109542438A (zh) | 一种基于可视化的图表开发方法 | |
CN102609506A (zh) | 一种通过映射生成hl7消息的方法 | |
CN102929853A (zh) | 基于Excel表单关联的DCS项目数据生成***和方法 | |
CN104063231A (zh) | 一种基于hit-tena的试验资源快速接入方法 | |
CN114791808A (zh) | 一种数据流图生成方法及装置 | |
CN110460461A (zh) | Yang模式语言到命令行的映射方法及*** | |
US20160132480A1 (en) | Integrated, Configurable, Analytical, Temporal, Visual Electronic Plan System | |
CN102799137B (zh) | 用于风电控制***plc控制器软件跨平台移植的方法 | |
CN108073401A (zh) | 一种业务逻辑的执行方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |