CN110032373B - 面向对象的表格功能通用实现方法 - Google Patents
面向对象的表格功能通用实现方法 Download PDFInfo
- Publication number
- CN110032373B CN110032373B CN201910292834.7A CN201910292834A CN110032373B CN 110032373 B CN110032373 B CN 110032373B CN 201910292834 A CN201910292834 A CN 201910292834A CN 110032373 B CN110032373 B CN 110032373B
- Authority
- CN
- China
- Prior art keywords
- editing
- column
- row
- edit
- type
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种面向对象的表格功能通用实现方法,包括:表格功能需求分析;统计并归类列编辑/行编辑属性类型、单元格数据类型;抽象功能实现接口;MVC框架模式实现表格展示和编辑功能。本发明秉承了面向对象、MVC框架模式和模块化的设计理念,数据处理效率高、可靠性强、层次结构清晰,具有高内聚、低耦合、可维护性和移植性强等优点。基于本发明所描述的方法开发了一套表格功能开发的通用软件实现组件,该组件不仅具有调试灵活性好和工作效率高等优点,而且能够大量减少开发人员的开发、调试和维护工作量,可应用于实际研发和后期维护项目工程,对于提高开发人员的工作效率具有重要的现实意义。
Description
技术领域
本发明属于电力系统自动化开发技术领域,具体涉及一种面向对象的表格功能通用实现方法。
背景技术
在电力系统自动化软件的需求开发中,随着业务内容的丰富化程度越来越高,用户对于数据的展现形式要求也越来越高,尤其是参数配置模块,用户要求不仅界面合理展示,而且能够便于快速高效的进行参数配置。
在现有的参数配置工具中,参数配置通常以表格的方式呈现,然后在表格上进行配置参数。目前,在各参数配置工具中,实现表格功能的开发方法存在诸多问题。例如,(1)样式风格不统一:根据不同的参数配置功能需求,不同的开发人员开发各自需求的表格功能,自定义开发较多,因此易导致表格样式的展现风格不一致;(2)开发和维护工作量大:一方面,不同的参数配置工具往往要求各工具应具有熟练相关业务的开发人员,不仅导致表格功能重复开发,而且增加开发工作量。另一方面,每个参数配置工具功能的实现代码存放位置散乱穿插于各个工具中,不便于后期的扩展和管理,从而致使后期维护工作量增加。(3)资源浪费,人力成本增加:不同的参数配置工具配备不同的开发和维护人员,造成资源浪费和人力成本增加。
发明内容
针对上述问题,本发明提供一种面向对象的表格功能通用实现方法,以实现电力系统数据处理工作量小、调试灵活性好和工作效率高的优点。本发明所采用的技术方案如下:
一种面向对象的表格功能通用实现方法,包括以下步骤:
步骤一、表格功能需求分析,确定当前表格的编辑方式是列编辑方式、或者行编辑方式;判断列编辑/行编辑的编辑属性是否相同,如果相同,则转至步骤二;如果不相同,则转至步骤四;
根据电力系统业务需求,将采用表格展现内容的业务进行归类,本发明优选按功能归类。
对每个业务功能进行需求分析:(1)表格样式展现风格,确定当前表格的编辑方式是列编辑方式还是行编辑方式。其中,所谓的列编辑方式是以列为基准,每列作为基准属性,对每行的数据进行编辑。所谓的行编辑方式是以行为基准,每行作为基准属性,对每列的数据进行编辑。(2)确定列编辑/行编辑的编辑属性是否相同,如果相同,则转至步骤二;如果不相同,则转入步骤四中的方式二实现参数配置功能。
步骤二、统计并归类列编辑/行编辑属性类型、单元格数据类型;
通常地,表格列编辑/行编辑属性类型包括:禁止编辑列/编辑行、单行编辑列/编辑行、下拉框编辑列/编辑行、复选框编辑列/编辑行、日期框编辑列/编辑行、调色板编辑列/编辑行、IP地址编辑列/编辑行等。单元格数据类型包括:布尔(bool)类型、浮点(float)类型、双精度(double)类型、整型(int32)类型、无符号整型(unsigned int32)类型、字节(byte)类型、短整型(int16)类型、无符号短整型(unsigned int16)类型、日期(date)类型、二进制(binary)类型、字符串(string)类型等。基于步骤一的需求分析,统计并归类表格中每列的列编辑/每行的行编辑属性类型和单元格数据类型。
步骤三、抽象功能实现接口,抽象列编辑/行编辑属性基类、单元格数据基类、参数域基类;
根据步骤二的统计及归类结果,秉承面向对象设计理念,基于软件开发语言,抽象功能实现接口。
抽象列编辑/行编辑属性基类,根据列编辑/行编辑属性类型派生各类型的列编辑/行编辑属性;然后通过编辑列/编辑行属性容器类实现一到多个列属性/行属性对象的聚合。
抽象单元格数据基类,根据单元格数据类型派生各类型的数据类型,然后通过行数据/列数据类型聚合单元格数据类型对象。
抽象参数域基类,该类包含列表的表头、列属性/行属性和数据类型信息;然后根据不同的业务功能需求,派生各功能的实现类。
步骤四、根据列编辑/行编辑编辑属性是否相同,通过不同的方式,采用MVC框架模式实现表格展示和编辑功能;
采用MVC框架模式实现表格的展示和编辑功能,考虑到表格中列编辑/行编辑的编辑属性是否相同,分为两种方式实现表格展示和编辑功能。其中,列编辑/行编辑编辑属性相同,选择方式一;反之,选择方式二。
方式一:首先步骤三中抽象功能实现的接口包括:数据模型和用户在界面上的操作控制的控制器功能接口,然后依赖数据模型和控制器功能接口实现用户界面视图,进而实现表格的展示和编辑功能,确保数据和用户界面的有效分离。
方式二:由于表格中列编辑/行编辑的编辑属性不相同,也就是当前列/行的每个单元格均具有各自不同的编辑属性,因此,首先根据业务需求建立数据模型,然后通过对每个数据条目采用代理方式实现控制器接口,最后依赖数据模型和每个数据条目控制器接口实现用户界面视图,进而实现表格的展示和编辑功能,以实现数据和用户界面的有效分离。
本发明的有益效果:
(1)本发明提出的一种面向对象的表格功能通用实现方法,秉承了面向对象、MVC框架模式和模块化的设计理念,数据处理效率高,可靠性强,层次结构清晰,具有高内聚、低耦合、可维护性和移植性强等优点。
(2)基于本发明提出的一种面向对象的表格功能通用实现方法,开发了一套表格功能开发的通用软件实现公共组件,该组件不仅具有调试灵活性好和工作效率高等优点,而且能够大量减少开发人员的开发、调试和维护工作量,可应用于实际研发和后期维护项目工程,对于提高开发人员的工作效率具有重要的现实意义。
附图说明
图1为本发明实施例的流程示意图;
图2为本发明实施例基础设计类静态结构示意图;
图3为本发明实施例功能实现类静态结构示意图;
图4为本发明实施例MVC框架模式示意图。
具体实施方式
为能清楚说明本发明的技术方案,下面通过一个具体实施例,并结合其附图,对本发明进行详细阐述。
如图1所示,为本发明实施例的流程示意图。本发明优选的实施例是变电站二次设备通信参数配置,根据功能划分包括基本信息、接收遥测、接收遥信、定值和报告等参数配置。其中,报告参数配置功能中包括序号、报告索引、数据集、最大报告数、报告类型、是否打开、解报告方式、数据变化、品质变化等,配置后的参数信息存储至数据库中。
步骤一:表格功能需求分析,确定当前表格的编辑方式是列编辑方式、或者行编辑方式;判断列编辑/行编辑的编辑属性是否相同,如果相同,则转至步骤二;如果不相同,则转至步骤四。
进一步地,判断列编辑/行编辑的编辑属性是否相同的判断方法是:人为地根据功能需求进行识别当前所在列/行的每个单元格的编辑属性、且单元格的值相同,则判断为列编辑/行编辑的编辑属性相同,反之不相同。例如,本文中的实施例:“序号”--所在列每个单元格的属性为禁止编辑、且单元格数据类型为整型类型;报告类型所在列的每个单元格的编辑属性为下拉框、且下拉框的值均为遥测、遥信、电度、遥控、遥调和保护测量值;所以序号和报告类型两列的列编辑属性是相同的。
作为优选的实施例,本发明针对报告参数配置功能进行说明。
需求分析:(1)根据报告参数配置需求,配置参数较多,采用直观的可编辑表格展示形式实现参数配置,并且不同功能的参数分别在不同的选项卡页面中展示。(2)报告参数配置的参数项特点,序号作为记录报告参数的记录数量,具有仅展示功能即可;报告索引和数据集是索引路径,应具有编辑功能;最大报告数即允许开的最大报告数量,应具有编辑功能;报告类型分为遥测、遥信、电度、遥控、遥调和保护测量值,应具有编辑功能;是否打开时支持选择是否打开报告功能;解报告的方式包括按常规方式、双点YX常规方式和按索引路径,应具有编辑功能;数据变化和品质变化均支持选择是否支持变化,应具有编辑功能。
结论:变电站二次设备通信参数配置展现形式是采用多选项卡的表格展示页面展示各功能,不同功能的参数显示在不同的表格页面中,且每个功能参数配置页面采用列编辑方式。基于(1)和(2)分析可知,报告参数配置表中每列的列编辑属性相同,转至步骤二。
步骤二:统计并归类列编辑(行编辑)属性类型,单元格数据类型。
作为优选的实施例,由步骤一的需求分析可知,报告参数配置的参数项中,序号所在列的属性为禁止编辑列,单元格数据类型为int32类型;报告索引和数据集所在列的属性为单行编辑列,单元格数据类型为string类型;最大报告数所在列的属性为单行编辑列,单元格数据类型为int32类型;报告类型、是否打开和解报告方式所在列的属性为下拉框编辑列,单元格数据类型为string类型;数据变化和品质变化所在列的属性为复选框编辑列,单元格数据类型为string类型。
步骤三:抽象功能实现接口。
根据步骤二的统计及归类结果,秉承面向对象设计理念,基于软件开发语言,抽象功能实现接口。
如图2所示,为本发明实施例基础设计类静态结构示意图。作为优选的实施例,图2展示了以列编辑方式的参数配置基础设计类的静态结构。图2中:
CFieldColAttr:列编辑属性基类,信息列表每一列的属性,包含列名、列宽等信息。根据不同的列编辑属性类型,又派生出禁止编辑列CFieldNoEditColAttr,单行编辑列CFieldLineEditColAttr,下拉框编辑列CFieldComboColAttr,……,复选框编辑列CFieldCheckColAttr。
CFieldAttrContain:参数域列属性容器类,聚合一到多个列属性对象。
CFieldColData:参数域单元格数据基类,根据单元格数据类型,又派生出整形单元数据类CLongFieldColData,字符串单元数据类CStrFieldColData,……,bool值单元数据类CBoolFieldColData。
CFieldRowData:参数域行数据类,内部聚合了单元格数据对象列表,并提供接口允许调用者添加或获取单元数据对象。
CAbstractDelegate:控件代理基类,实现参数域采用不同的控件修改参数功能。基于不同的列编辑属性类型,创建不同的控件代理类型,即控件代理基类派生出禁止编辑控件代理CNoEditDelegate、单行编辑控件代理CLineEditDelegate、下拉框编辑控件代理CComboEditDelegate,……,复选框编辑控件代理CCheckEditDelegate。
CDBFiled是参数域基类,记录列表中的表头、列个数、列属性、行个数和行数据类型信息。该类定义了LoadField和SaveField两个虚接口,用于参数域信息从数据库读取和保存修改内容至数据库。
根据功能划分,不同的功能拥有不同类型的参数域,即变电站二次设备通信参数配置中,包括基本信息参数域、接收遥测参数域、接收遥信参数域、定值参数域和报告参数域等,不同类型的参数域从CDBField参数域基类派生,并实现基类的虚接口。如图3所示,为本发明实施例功能实现类静态结构示意图。图3示出了变电站二次设备通信参数配置的实现类静态结构,图中各类含义如下:
CIEDBaseField:二次设备基本参数配置域。
CIEDYCField:二次设备接收遥测参数域。
CIEDYXField:二次设备接收遥信参数域。
CIEDDZField:二次设备定值参数域。
CIEDReportField:二次设备报告参数域。
CIEDBaseColAttr:二次设备基本参数域的列属性容器类。
CIEDYCColAttr:二次设备接收遥测参数域的列属性容器类。
CIEDYXColAttr:二次设备接收遥信参数域的列属性容器类。
CIEDDZColAttr:二次设备定值参数域的列属性容器类。
CIEDReportColAttr:二次设备报告参数域的列属性容器类。
步骤四:MVC框架模式实现表格展示和编辑功能。
基于表格中列编辑(行编辑)的编辑属性是否相同,则选用不同方式的MVC框架模式实现表格的展示和编辑功能。若相同,选用方式一,不相同选择方式二。
作为优选的实施例,变电站二次设备通信参数配置中,考虑到每个功能参数配置页面的列编辑属性相同,采用方式一实现表格展示和编辑功能。如图4所示,为本发明实施例MVC框架模式示意图。图4示出了变电站二次设备通信参数配置的MVC框架模式,数据模型由CDBFieldModel类实现,用户界面视图由CCfgParamView类实现,控制器由CAbstractDelegate类实现。基于用户界面视图CCfgParamView类依赖CDBFieldModel类和CAbstractDelegate类,实现用户页面表格的展示和页面表格内各参数域的编辑修改操作。本参数界面采用的是多选项卡展示界面,由CIEDCfgParamTab类实现,其CIEDCfgParamTab类依赖CCfgParamView类实现多选项卡展示界面的功能。
Claims (4)
1.面向对象的表格功能通用实现方法,其特征在于,包括以下步骤:
步骤一、表格功能需求分析,确定当前表格的编辑方式是列编辑方式、或者行编辑方式;判断列编辑/行编辑的编辑属性是否相同,如果相同,则转至步骤二;如果不相同,则转至步骤四;
步骤二、统计并归类列编辑/行编辑属性类型、单元格数据类型;
步骤三、抽象功能实现接口,抽象列编辑/行编辑属性基类、单元格数据基类、参数域基类;
步骤四、根据列编辑/行编辑编辑属性是否相同,通过不同的方式,采用MVC框架模式实现表格展示和编辑功能;
步骤四所述的采用MVC框架模式实现表格展示和编辑功能的具体方法如下:
如果列编辑/行编辑编辑属性相同,则采取方式一:依赖步骤三中抽象功能实现的数据模型和控制器功能接口实现用户界面视图,进而实现表格的展示和编辑功能;
如果列编辑/行编辑编辑属性不相同,则采取方式二:首先根据业务需求建立数据模型,然后通过对每个数据条目采用代理方式实现控制器接口,最后依赖数据模型和每个数据条目控制器接口实现用户界面视图,进而实现表格的展示和编辑功能。
2.根据权利要求1所述的面向对象的表格功能通用实现方法,其特征在于,步骤二所述的表格列编辑/行编辑属性类型包括:禁止编辑列/编辑行、单行编辑列/编辑行、下拉框编辑列/编辑行、复选框编辑列/编辑行、日期框编辑列/编辑行、调色板编辑列/编辑行、IP地址编辑列/编辑行;
单元格数据类型包括:布尔类型、浮点类型、双精度类型、整型类型、无符号整型类型、字节类型、短整型类型、无符号短整型类型、日期类型、二进制类型、字符串类型。
3.根据权利要求2所述的面向对象的表格功能通用实现方法,其特征在于,步骤三所述的抽象列编辑/行编辑属性基类是指:根据列编辑/行编辑属性类型派生各类型的列编辑/行编辑属性,然后通过编辑列/编辑行属性容器类实现一到多个列属性/行属性对象的聚合;
抽象单元格数据基类是指:根据单元格数据类型派生各类型的数据类型,然后通过行数据/列数据类型聚合单元格数据类型对象;
抽象参数域基类是指:该类包含列表的表头、列属性/行属性和数据类型信息;然后根据不同的业务功能需求,派生各功能的实现类。
4.根据权利要求1-3任一项所述的面向对象的表格功能通用实现方法,其特征在于,步骤一所述的判断列编辑/行编辑的编辑属性是否相同的方法是:根据功能需求识别当前所在列/行的每个单元格的编辑属性、且单元格的值相同,则判断为列编辑/行编辑的编辑属性相同,反之不相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910292834.7A CN110032373B (zh) | 2019-04-12 | 2019-04-12 | 面向对象的表格功能通用实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910292834.7A CN110032373B (zh) | 2019-04-12 | 2019-04-12 | 面向对象的表格功能通用实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110032373A CN110032373A (zh) | 2019-07-19 |
CN110032373B true CN110032373B (zh) | 2022-05-06 |
Family
ID=67238254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910292834.7A Active CN110032373B (zh) | 2019-04-12 | 2019-04-12 | 面向对象的表格功能通用实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110032373B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110738037B (zh) * | 2019-10-15 | 2021-02-05 | 深圳逻辑汇科技有限公司 | 用于自动生成电子表格的方法、装置、设备及存储介质 |
CN112241267A (zh) * | 2020-09-16 | 2021-01-19 | 武汉木仓科技股份有限公司 | 配置化工具及利用配置化工具实现表格页面开发的方法 |
CN113204329B (zh) * | 2021-03-19 | 2024-06-14 | 浙江华云信息科技有限公司 | 统一数据模型驱动业务应用的控制方法及其应用系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902767A (zh) * | 2012-09-25 | 2013-01-30 | 北京科东电力控制系统有限责任公司 | 一种表格快速搭建的方法及系统 |
CN104063219A (zh) * | 2014-06-25 | 2014-09-24 | 北京思特奇信息技术股份有限公司 | 一种web系统的表格开发方法及系统 |
CN107807913A (zh) * | 2017-11-16 | 2018-03-16 | 金航数码科技有限责任公司 | 一种基于web的电子表单设计系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9514115B2 (en) * | 2014-12-31 | 2016-12-06 | Shih-Hsin Chen | Method for creating form validation program and corresponding form interface according to result set metadata |
-
2019
- 2019-04-12 CN CN201910292834.7A patent/CN110032373B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902767A (zh) * | 2012-09-25 | 2013-01-30 | 北京科东电力控制系统有限责任公司 | 一种表格快速搭建的方法及系统 |
CN104063219A (zh) * | 2014-06-25 | 2014-09-24 | 北京思特奇信息技术股份有限公司 | 一种web系统的表格开发方法及系统 |
CN107807913A (zh) * | 2017-11-16 | 2018-03-16 | 金航数码科技有限责任公司 | 一种基于web的电子表单设计系统及方法 |
Non-Patent Citations (1)
Title |
---|
可视化报表中表格处理软件研究开发;王炜光;《中国优秀硕士学位论文全文数据库》;20101215;第6、9、17-35页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110032373A (zh) | 2019-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110032373B (zh) | 面向对象的表格功能通用实现方法 | |
US6360188B1 (en) | Time-based modeling | |
CN106569801A (zh) | 一种基于复杂参数的组态化显控系统 | |
CN110955410B (zh) | 一种代码自动生成方法、装置、设备及介质 | |
CN104123227A (zh) | 一种自动生成测试用例的方法 | |
CN111930635A (zh) | 基于swagger快速自动化测试的方法及系统 | |
CN105528337B (zh) | 一种数据转换实现性能管理系统导出ppt报表的方法 | |
CN114035773A (zh) | 一种基于配置的低代码开发表单方法、系统及装置 | |
JP2007048261A (ja) | 図式化されたビジネスネットワークの関連付けと視覚化 | |
CN114115883B (zh) | 一种使用中台业务能力快速构建前端应用的方法 | |
CN113297825A (zh) | 动态可视化的表单应用设计系统和计算机可读存储介质 | |
CN103778201A (zh) | 基于流程模型配置的大屏可视化展示系统及方法 | |
CN101702218A (zh) | 应用于企业资源规划erp中的信息发送方法及装置 | |
CN104915297A (zh) | 一种android设备的APP耗电量的自动化测试方法 | |
CN115840567A (zh) | 一种应用编辑方法及相关设备 | |
CN111190814B (zh) | 软件测试用例的生成方法、装置、存储介质及终端 | |
CN109062816A (zh) | 一种软件测试的方法、装置及设备 | |
US20080319813A1 (en) | Methods and apparatus for collaborative process modeling | |
CN114895875B (zh) | 一种零代码可视化信息系统元数据的生产应用方法及系统 | |
CN110532535A (zh) | 一种政务智能表单交互系统 | |
CN109885483A (zh) | 用于实时反馈游戏内运行状态的日志可视化方法和系统 | |
KR101815561B1 (ko) | 전사적 자원관리 시스템의 클라이언트 프로그램 | |
CN109359123A (zh) | 一种运行数据查询及分析系统和方法 | |
CN112732744B (zh) | 一种基于Tcl/Tk和R语言的高效处理CIDAS数据库的方法 | |
CN117094284B (zh) | 一种变电站智能设备能力描述文件生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |