CN111104108A - 一种显示界面wpf的生成方法及装置 - Google Patents
一种显示界面wpf的生成方法及装置 Download PDFInfo
- Publication number
- CN111104108A CN111104108A CN201811266310.2A CN201811266310A CN111104108A CN 111104108 A CN111104108 A CN 111104108A CN 201811266310 A CN201811266310 A CN 201811266310A CN 111104108 A CN111104108 A CN 111104108A
- Authority
- CN
- China
- Prior art keywords
- data
- data structure
- displayed
- datagrid
- base station
- 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.)
- Granted
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供一种显示界面WPF的生成方法及装置,该方法包括:接收数据展示请求,所述数据展示请求用于指示待展示数据表在显示界面上展示;根据所述数据展示请求,获取所述待展示数据表的数据结构文件;根据所述数据结构文件生成动态类的ModelView数据模板;所述ModelView数据模板的数据结构信息与所述数据结构文件相符;将所述数据结构信息与View层的控件关联,生成DataGrid表,所述DataGrid表用于显示所述待展示数据表。
Description
技术领域
本发明涉及通信领域,尤其涉及一种WPF的生成方法及装置。
背景技术
基站的本地操作维护工具(LMT)运行在Windows生态环境当中,当前LMT使用的是基于微软.NET框架的显示界面(Windows Presentation Foundation)WPF技术实现用户操作界面,与WPF技术配合使用的是(ModelView-View-Model,MVVM)框架。
MVVM框架中,将用户界面的显示View层仅负责显示,通过MV(ModelView,模型显示)层将显示View层与数据模型Model层的业务逻辑进行分离,数据模型Model层中的数据可以用JavaScript对象表示,Model层的数据变化时,MV层将Model层的数据同步到View层显示,还可以将显示层的修改数据返回给数据层。
在一个现有的系统中,如果需要升级和维护WPF时,需要在用户的View层新增数据格式DataGrid表格用于显示新的数据结构的数据,因此,针对MVVM架构,需要在View、ViewModel以及Model三层当中,使用编辑代码的方式编写三个一一对应的代码段进行处理。在LMT跟随网络设备升级和维护中,效率很低,不利于设备的升级和维护。
发明内容
本发明提供一种显示界面WPF的生成的方法和装置,用以解决现有技术中更新WPF时需要在MVVM中的每个模块中分别修改,效率低,不利于设备的升级和维护。
本发明实施例提供一种显示界面WPF的生成方法,所述方法包括:
接收数据展示请求,所述数据展示请求用于指示待展示数据表在显示界面上展示;
根据所述数据展示请求,获取所述待展示数据表的数据结构文件;
根据所述数据结构文件生成动态类的ModelView数据模板;所述ModelView数据模板的数据结构信息与所述数据结构文件相符;
将所述数据结构信息与View层的控件关联,生成DataGrid表;所述DataGrid表用于显示所述待展示数据表。
一种可能的实现方式,接收数据展示请求之前,还包括:
向基站发送数据结构获取请求,所述数据结构获取请求用于获取基站存储的各数据表的数据结构文件;
接收所述各数据表的数据结构文件;
针对每个数据结构文件,生成JASON格式的数据结构文件。
一种可能的实现方式,所述生成JASON格式的数据结构文件之后,还包括:
将所述JSON格式的数据结构文件加载至内存中,并以哈希表的形式保存。
一种可能的实现方式,所述数据结构文件中包括MIB(Management InformationBase,公共信息管理库)节点的简单网络管理协议(Simple Network ManagementProtocol,SNMP)命令;
将所述数据结构信息与View层的控件关联,生成DataGrid表,包括:
在所述View层的控件中生成符合所述数据结构信息的DataGrid表;
根据所述MIB节点的SNMP命令,向基站发起对所述待展示数据表的查询请求;
根据所述基站返回的待展示数据表的数据,将所述待展示数据表的数据写入所述DataGrid表。
一种可能的实现方式,所述数据结构文件中包括至少一种语言类型的指示信息;
所述根据所述MIB节点的SNMP命令,向基站发起对所述待展示数据表的查询请求,包括:
从符合所述数据结构信息的DataGrid表中选择展示所述待展示数据表的语言类型;
根据所述语言类型和所述MIB节点的SNMP命令,生成用于获取所述语音类型对应的待展示数据表的查询请求。
本发明实施例提供一种显示界面WPF的生成装置,所述装置包括:
收发单元,用于接收数据展示请求,所述数据展示请求用于指示待展示数据表在显示界面上展示;
处理单元,用于根据所述数据展示请求,获取所述待展示数据表的数据结构文件;根据所述数据结构文件生成动态类的ModelView数据模板;所述ModelView数据模板的数据结构信息与所述数据结构文件相符;将所述数据结构信息与View层的控件关联,生成DataGrid表,所述DataGrid表用于显示所述待展示数据表。
一种可能的实现方式,所述收发单元,还用于:
向基站发送数据结构获取请求,所述数据结构获取请求用于获取基站存储的各数据表的数据结构文件;接收所述各数据表的数据结构文件;
所述处理单元,还用于针对每个数据结构文件,生成JASON格式的数据结构文件。
一种可能的实现方式,所述处理单元,还用于:
将所述JSON格式的数据结构文件加载至内存中,并以哈希表的形式保存。
一种可能的实现方式,所述数据结构文件中包括MIB节点的SNMP命令;所述处理单元,具体用于:
在所述View层的控件中生成符合所述数据结构信息的DataGrid表;根据所述MIB节点的SNMP命令,向基站发起对所述待展示数据表的查询请求;根据所述基站返回的待展示数据表的数据,将所述待展示数据表的数据写入所述DataGrid表。
一种可能的实现方式,所述数据结构文件中包括至少一种语言类型的指示信息;
所述处理单元具体用于:
从符合所述数据结构信息的DataGrid表中选择展示所述待展示数据表的语言类型;根据所述语言类型和所述MIB节点的SNMP命令,生成用于获取所述语音类型对应的待展示数据表的查询请求。
本发明实施例提供一种计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令用于执行如实施例所述的任一方法。
本发明实施例提供一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述实施例中任一方法。
本发明实施例中,通过接收用户的数据展示请求,根据所述数据展示请求,获取所述待展示数据表的数据结构文件;根据所述数据模板生成动态类的ModelView数据模板;本发明实施例能够在LMT运行时在ModelView数据显示层,将所述数据结构信息与View层的控件关联生成的DataGrid表中的数据结构与ModelView数据显示层进行数据绑定,并根据ModelView数据显示层的动态类在编译时赋值为所述数据模板中对应的数据结构,因此,可以针对不同基站版本需要展示的数据表时,动态生成与需要展示的数据表匹配的ModelView数据显示层以及View层当中的DataGrid表格,保证正确性的同时降低维护人员操作复杂度,提高了系统的灵活性,具有不同版本的兼容性,不需要将MIB表发送给LMT负责升级的开发人员,然后由LMT的开发人员会在ModelView层建立与MIB表格相同的数据类型,然后在View层中建立一个与之匹配的DataGrid表格,然后再与基站版本同时发布,降低了代码量,在外场运维的人员,也不需要手动选择与基站相同的LMT版本,降低了运维工作复杂性,便于维护。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的MVVM的架构示意图;
图2为本申请实施例提供的显示界面WPF的生成的流程示意图;
图3为本申请实施例提供的显示界面WPF的生成的流程示意图;
图4为本申请实施例提供的显示界面WPF的生成的装置示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例适用的基站的通信制式包括但不限于:全球移动通信系统(GlobalSystem of Mobile communication,GSM)、码分多址(Code Division Multiple Access,CDMA)IS-95、码分多址(Code Division Multiple Access,CDMA)2000、时分同步码分多址(Time Division-Synchronous Code Division Multiple Access,TD-SCDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、时分双工-长期演进(TimeDivision Duplexing-Long Term Evolution,TDD LTE)、频分双工-长期演进(FrequencyDivision Duplexing-Long Term Evolution,FDD LTE)、长期演进-增强(Long TermEvolution-Advanced,LTE-advanced)、个人手持电话系统(Personal Handy-phoneSystem,PHS)、802.11系列协议规定的无线保真(Wireless Fidelity,WiFi)、全球微波互联接入(Worldwide Interoperability for Microwave Access,WiMAX),以及未来演进的各种无线通信系统。
简单网络管理协议(Simple Network Management Protocol,SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema)和一组资源对象。该协议能够支持网络管理系统,用以监测连接到网络上的设备。该协议是互联网工程工作小组(IETF,Internet Engineering Task Force)定义的internet(因特网)协议簇的一部分。SNMP的目标是管理互联网上众多厂家生产的软硬件平台所在的主机。
SNMP管理平台(可以配置在本地维护终端Local Maintenance Terminal,LMT中)通过基站中的MIB(Management Information Base,公共信息管理库)库实现对基站的状态的获取。在SNMP的网络管理模型中,MIB(Management Information Base,管理信息库)匹配文档是管理站与基站之间实现管理功能的数据载体和接口协议,是二者之间接口一致性的保证和通道,包含MIB、操作对象模型设计报告、系统操作命令清单、操作维护南向接口流程交互手册、性能计数器设计报告以及告警信息表等文档。其中,系统操作命令清单定义了管理站与基站之间的SNMP命令接口,是根据MIB命令清单定义的命令以及其它文档所生成的,管理站将系统操作命令清单导入管理站数据库中,使得管理站与基站的MIB保持一致,从而使得管理站正确管理和呈现对应MIB版本的基站,以实现对基站的管理。
具体的,MIB库提供了大部分监控功能,每个监控功能对应一个节点,每个节点对应一个节点标识(OID),该节点可称为OID节点,可在MIB库中定义不同功能的节点,SNMP管理平台接收基站发送的被管理基站状态的消息,解析该消息中携带的节点标识,根据该节点标识,调用并执行MIB库中相应节点的脚本,得到SNMP管理平台所要获取的状态,并在LMT中显示。
由于基站本地操作维护工具运行在Windows生态环境当中,所以必须大量的遵循微软生态系统的种种限制,当前LMT使用的是基于微软.NET框架的WPF技术实现的用户操作界面,在微软官方开发者网站上,推荐与WPF技术配合使用的技术是MVVM框架(ModelView-View-Model的缩写)。
如图1所示,MVVM框架的特性就是将其中View层的状态进行行为的抽象化,将View层与数据模型Model层的业务逻辑进行分离,业务逻辑的分离是数据显示ModelView层的工作,它可以取出数据模型Model层的数据,同时为显示View层要显示的内容进行逻辑处理工作。MVVM可以用于基于基础数据模型的交互式视图的双向数据绑定。WPF可以基于ModelView层生成数据模板DataTemplate,通过设置依赖属性Dependency Property,通过使用Binding从数据源(Model层或的分离是数据显示ModelView层)获得值,即实现ModelView层与View层的数据绑定。
现有的基于微软WPF技术的表格展示,都是简单通过MVVM架构实现的,MVVM架构的优点就是能够通过Model View层直接控制View层的显示内容,这样一来,就可以很好的将View层与Model层进行解耦和。但是这样一来,会导致一个新问题:每当新增了一个Model层后,就会对应的新增Model View与View两层的代码,这样一来,只要数据结构有更新,就一定需要在代码中新增对应的Model View与View层的代码,在一个现有的系统中,如果要在用户的UI界面新增一个DataGrid表格用于显示新的数据类型,那么需要在View、ViewModel以及Model三层当中,使用编辑代码的方式编写三个一一对应的代码段进行处理,对代码的开发量与开发周期都带来了非常大的压力。
并且,每一个LMT版本必须和与之匹配的版本配合使用,造成了在运维阶段的使用不便利性。
举例来说,如果基站发起一次升级,且在这次升级过程中,存在MIB表的修改,那么按照之前的流程,则需要基站升级负责人将MIB表发送给LMT负责升级的开发人员,然后由LMT的开发人员会在ModelView层建立与MIB表格相同的数据类型,然后在View层中建立一个与之匹配的DataGrid表格,然后再与基站版本同时发布,流程非常复杂。并且这个LMT也会被标明与基站相同的版本号,在外场运维的人员,必须使用与基站相同的LMT版本,对于运维工作来说,也具有一定的不便利性。
每当基站版本升级,在MIB表当中新增一种数据类型的时候,都需要在代码中生成对应的数据类型,即工具LMT都必须同时跟随基站进行升级。
基于上述问题,本发明实施例中,如图2所示,为本申请提供的一种显示界面WPF的生成的方法流程示意图,包括以下步骤:
步骤201:接收数据展示请求,所述数据展示请求用于指示待展示数据表在显示界面上展示;
步骤202:根据所述数据展示请求,获取所述待展示数据表的数据结构文件;
步骤203:根据所述数据结构文件生成动态类的ModelView数据模板;所述ModelView数据模板的数据结构信息与所述数据结构文件相符;
步骤204:将所述数据结构信息与显示View层的控件关联,生成数据格式DataGrid表,所述DataGrid表用于显示所述待展示数据表。
本发明实施例中,通过接收用户的数据展示请求,根据所述数据展示请求,获取所述待展示数据表的数据结构文件;根据所述数据模板生成动态类的ModelView数据模板;将所述数据结构信息与View层的控件关联,该控件为能够读取动态类的DataGrid的WPF前端控件;通过该控件可以动态生成用于显示所述待展示数据表的DataGrid表,其生成的DataGrid表中的数据结构与ModelView数据显示层进行数据绑定,并根据动态类在编译时赋值为所述数据模板中对应的数据结构,因此,可以针对不同基站版本需要展示的数据表时,动态生成与需要展示的数据表匹配的ModelView数据显示层以及View层当中的DataGrid表格,保证正确性的同时降低维护人员操作复杂度,提高了系统的灵活性,不需要将MIB表发送给LMT负责升级的开发人员,然后由LMT的开发人员会在ModelView层建立与MIB表格相同的数据类型,然后在View层中建立一个与之匹配的DataGrid表格,然后再与基站版本同时发布,降低了代码量,在外场运维的人员,也不需要人工选择与基站相同的LMT版本,降低了运维工作复杂性,便于维护。
随着业务的发展,基站的版本需要更新,LMT在显示不同版本的基站的MIB表时可能随时需要更新或切换。
一种可能的实现方式,接收数据展示请求之前,还包括:
步骤一、向基站发送数据结构获取请求,接收所述各数据表的数据结构文件;所述数据结构获取请求用于获取基站存储的各数据表的数据结构文件;
步骤二、针对每个数据结构文件,生成JSON格式的数据结构文件。
在步骤一中,在具体实施过程中,当LMT主程序与基站使用TCP建立连接之后,LMT会启动一个FTP服务器,并主动向基站发送一条上传基站数据库的数据结构文件的上传命令,该命令中会包含LMT的IP地址以及数据结构文件(lm.dtz)所需要存放的地址,基站收到命令后,就会向LMT的FTP服务器发送基站当前版本的数据结构文件,LMT接收到数据结构文件后,会对该数据结构文件进行解析。
在步骤二中,在一种具体的实施方式中,LMT可以将Access格式的数据库文件转化为JSON标签格式,以便后续ModelView层的读取。
LMT可以将基站数据库发送的基站数据库模板(即MIB表结构)解析并保存到JSON文件当中,解析可以全程运行在后台线程当中,并且整个过程不会超过2秒钟,且会将不同的基站版本保存在本地,存储方式可以根据不同的数据类型存储,也可以根据不同基站的版本号进行存储,在此不做限定。保存的内容可以包括以下内容:
表1
JSON文件在本地数据可中的存储形式可参见表1。
JSON文件中以字符串的形式进行数据存储,对存储的数据加入描述,在设备开发和调试阶段有很好的直观性。具体的,JSON数据通常以数据表的形式存在,JSON数据表主要有key和value两个属性值,key是一个字符串,用于标识键值对的名称,value为对应的数值。在存储大量的配置信息时,JSON首先将数据按照key-value键值对的形式进行序列化,进而为每一个键值对动态申请内存,并把相应的数据通过关系链的形式存放到这段内存中。如果需要存储的数据量很大时,JSON会申请大量的内存并将序列后的数据长时间存放在这片内存中。
一种可能的实现方式,所述生成JASON格式的数据结构文件之后,还包括:
将所述JSON格式的数据结构文件加载至内存中,并以哈希表的形式保存。
在基站发送的数据结构文件解析成JSON文件后,将用户当前操作的基站对应的JSON文件都加载到运行LMT电脑的内存当中,在内存当中,所有的JSON文件中的数据全部以哈希表的形式保存,实现JSON文件的快速存取。
通过解析基站发送的数据结构文件,LMT会将不同的基站版本的数据结构文件生成的JSON文件保存在本地,若确定基站的新版本中存在新的数据结构,则对应生成对应版本的JSON文件。如果用户在LMT中切换基站操作时,LMT则会根据用户发来的切换基站的通知重新解析需要的基站版本的JSON文件,并刷新内存中的基站数据库模板。在下一次连接基站时,会直接加载该基站对应的版本的JSON文件,加快加载进度,节省系统资源。
若确定基站版本更新中仅修改了部分MIB节点,则可以基站可以仅发送对应的需要更新的MIB节点的数据结构文件,LMT根据发送的需要更新的MIB节点的数据结构文件,确定对应需要更新的MIB节点的节点标识及节点的脚本,并根据前一版本中未更新的MIB节点的内容生成当前版本对应的JSON文件。
在具体实施过程中,LMT存储的JSON文件中的MIB节点包括MIB节点的节点标识以及节点的脚本。对JSON文件中的MIB节点进行更新,生成新的JSON文件具体为:根据前一版本的JSON文件生成新版本的JSON文件模板,并对新版本的JSON文件中需更新的MIB节点的脚本进行更新。
一种可能的实现方式,本发明实施例中新版本的JSON文件中的MIB节点还包括MIB节点对应的哈希值。对新版本的JSON文件中的MIB节点进行更新具体为:对新版本的JSON文件中的MIB节点的脚本以及MIB节点对应的哈希值进行更新。通过对MIB节点对应的哈希值进行更新,以便于后续通过简单比较相同MIB节点标识的MIB节点对应的哈希值,就能快速找出MIB库的需更新的MIB节点,提高JSON文件的生成效率。
当JSON文件解析工作完成之后,此时会发起一个通知到LMT主线程,告知用户所有的数据准备工作已经完成,LMT界面会自动展开对象树模型,告知用户即可开始对基站进行操作。
在步骤204中,当用户进行点击对象树的操作,LMT确定需要获取的基站数据时,则针对用户操作的MIB节点信息,从保存JSON文件的内存哈希表中读取到对应的表结构信息,并通过Dynamic类生成该表结构的ModelView层。dynamic类是编译时根据JSON文件动态添加它的属性和方法。
当VM层通过Dynamic生成之后,将VM层与在LMT主程序中定义的支持动态Binding的DataGrid控件进行关联操作,DataGrid控件支持在运行时通过Binding操作为DataGrid表动态添加表头、表格数据以及表格的相关操作。
通过动态Binding的DataGrid控件,不需要在LMT中设置针对不同数据结构的VM层,可以兼容任何数据结构的MIB表的显示,提高了系统的灵活性,仅需写一次代码,极大的降低了代码量,便于维护。
针对初始化DataGrid表,可以包括初始化DataGrid表中表头、表格操作功能。具体的,可以通过遍历JSON文件中对应的MIB节点,然后根据MIB节点名动态添加dynamic实例的属性,并对BindingContext赋值。通过对每个MIB节点的BindingContext赋值,BindingContext可以包含对该对象的属性的简单绑定,若BindingContext设置在元素上,则该元素的所有子项中具有相同的BindingContext。因此,View层可以根据赋值后的数据类型,确定该MIB节点对应的属性和方法,进而根据该属性设置的显示方法对该MIB节点显示。
将DataGrid中对应的MIB节点根据动态添加dynamic实例的属性,生成初始化后的DataGrid表。
根据SNMP获取对应DataGrid表中的数据,根据DataGrid中对应的MIB节点,将数据添加至DataGrid表中。
具体的,本发明实施例在启动LMT时,判断本地数据库是否保存MIB库的各节点的数据,如果确定未保存,则从基站获取MIB库的各节点,并将获取的节点保存到本地数据库。SNMP管理平台向LMT发起GET或SET请求时,LMT可根据节点的节点标识从基站读取对应的节点并保存到本地,并将读取和保存的结果反馈给SNMP管理平台。如果节点被更新,SNMP管理平台向LMT发送节点更新通知,LMT根据该通知读取更新后的节点。
一种可能的实现方式,所述数据结构文件中包括MIB节点的SNMP命令;
将所述数据结构信息与View层的控件关联,生成DataGrid表,包括:
在所述View层的控件中生成符合所述数据结构信息的DataGrid表;
根据所述MIB节点的SNMP命令,向基站发起对所述待展示数据表的查询请求;
根据所述基站返回的待展示数据表的数据,将所述待展示数据表的数据写入所述DataGrid表。
此时,DataGrid控件则会自动刷新,刷新后,用户即可得到想要查看的数据,并且该表格也根据用户的操作向基站发送操作指令,并获得操作指令后基站执行的结果,并在显示界面上显示。
本发明实施例中,还可以在JSON标签当中增加其他语言类型,诸如英语、法语等,以实现动态切换LMT的中外文显示,而无需重新启动LMT。
一种可能的实现方式,所述数据结构文件中包括至少一种语言类型的指示信息;
所述根据所述MIB节点的SNMP命令,向基站发起对所述待展示数据表的查询请求,包括:
从符合所述数据结构信息的DataGrid表中选择展示所述待展示数据表的语言类型;
根据所述语言类型和所述MIB节点的SNMP命令,生成用于获取所述语音类型对应的待展示数据表的查询请求。
如图3所示,本发明实施例中,提供一种显示界面的生成方法,包括以下步骤:
步骤301:启动LMT;
步骤302:LMT与基站建立FTP连接,并发起数据模板文件的上传命令;
步骤303:基站接收所述数据模板文件的上传命令,向LMT上传所述数据模板文件;
步骤304:LMT接收所述数据模板文件;
步骤305:LMT根据所述数据模板文件的版本号,判断LMT中是否已存在相同版本的JSON文件;若是,则执行步骤;若否,则执行步骤306;
步骤306:解析所述数据模板文件,生成JSON格式的数据模板,并将JSON文件存储至本地;
步骤307:解析所述JSON文件中的所有标签(标签用于指向MIB节点),并将所有标签保存至哈希表中,在内存中存储所述哈希表;
步骤308:生成基站操作的对象树,通知用户解析工作完成,可以进行基站的数据操作;
步骤309:接收用户在对象树中的操作;
步骤310:解析用户操作的MIB节点名称,从内存中的哈希表中读取MIB节点的表结构;
步骤311:根据所述MIB节点的表结构,生成Dynamic类的ModelView层;
步骤312:将生成的Dynamic类的ModelView层与动态DataGrid控件进行关联,生成DataGrid表,该DataGrid表中用于展示所述MIB节点的表结构;
步骤313:根据所述MIB节点,向SNMP发起数据获取请求;
步骤314:将获取的MIB节点的数据,回填至DataGrid表中的MIB节点,在用户界面显示所述DataGrid表。
步骤315:用户根据显示的DataGrid表,进行下一步操作,返回至步骤309。
基于相同的发明构思,如图4所示,本申请还提供了一种显示界面WPF的生成装置,该装置包括:
收发单元401,用于接收数据展示请求,所述数据展示请求用于指示待展示数据表在显示界面上展示;
处理单元402,用于根据所述数据展示请求,获取所述待展示数据表的数据结构文件;根据所述数据结构文件生成动态类的ModelView数据模板;所述ModelView数据模板的数据结构信息与所述数据结构文件相符;将所述数据结构信息与View层的控件关联,生成DataGrid表,所述DataGrid表用于显示所述待展示数据表。
一种可能的实现方式,所述收发单元401,还用于:
向基站发送数据结构获取请求,所述数据结构获取请求用于获取基站存储的各数据表的数据结构文件;接收所述各数据表的数据结构文件;
所述处理单元402,还用于针对每个数据结构文件,生成JASON格式的数据结构文件。
一种可能的实现方式,所述处理单元402,还用于:
将所述JSON格式的数据结构文件加载至内存中,并以哈希表的形式保存。
一种可能的实现方式,所述数据结构文件中包括MIB节点的SNMP命令;所述处理单元402,具体用于:
在所述View层的控件中生成符合所述数据结构信息的DataGrid表;根据所述MIB节点的SNMP命令,向基站发起对所述待展示数据表的查询请求;根据所述基站返回的待展示数据表的数据,将所述待展示数据表的数据写入所述DataGrid表。
一种可能的实现方式,所述数据结构文件中包括至少一种语言类型的指示信息;
所述处理单元402具体用于:
从符合所述数据结构信息的DataGrid表中选择展示所述待展示数据表的语言类型;根据所述语言类型和所述MIB节点的SNMP命令,生成用于获取所述语音类型对应的待展示数据表的查询请求。
本发明实施例提供一种计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如本发明实施例中的任一方法。
本发明实施例提供一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如本发明实施例中的任一方法。
本发明实施例中,通过接收用户的数据展示请求,根据所述数据展示请求,获取所述待展示数据表的数据结构文件;基站与本地操作维护工具LMT进行数据库同步并解析数据结构文件中的数据模板,同时保存到JSON文件以及内存中以便后续快速存取使用JSON标签持久化保存基站数据模型,便于在下次启动LMT以及连接相同版本基站的时候,能够快速存取。根据所述数据模板生成动态类的ModelView数据模板;将所述数据结构信息与View层的控件关联,该控件为能够读取动态类的DataGrid的WPF前端控件;通过该控件可以动态生成用于显示所述待展示数据表的DataGrid表,其生成的DataGrid表中的数据结构与ModelView数据显示层进行数据绑定,并根据动态类在编译时赋值为所述数据模板中对应的数据结构,因此,可以针对不同基站版本需要展示的数据表时,动态生成与需要展示的数据表匹配的ModelView数据显示层以及View层当中的DataGrid表格,保证正确性的同时降低维护人员操作复杂度,提高了系统的灵活性,具有不同版本的兼容性,不需要将MIB表发送给LMT负责升级的开发人员,然后由LMT的开发人员会在ModelView层建立与MIB表格相同的数据类型,然后在View层中建立一个与之匹配的DataGrid表格,然后再与基站版本同时发布,降低了代码量,在外场运维的人员,也不需要选择与基站相同的LMT版本,降低了运维工作复杂性,便于维护。另外,还能够通过动态DataGrid控件配合JSON文件动态加载数据模板,不需要重新设置不同语言格式的ModelView层,即可在LMT中实现中英文显示的切换。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种显示界面WPF的生成方法,其特征在于,所述方法包括:
接收数据展示请求,所述数据展示请求用于指示待展示数据表在显示界面上展示;
根据所述数据展示请求,获取所述待展示数据表的数据结构文件;
根据所述数据结构文件生成动态类的数据显示ModelView数据模板;所述ModelView数据模板的数据结构信息与所述数据结构文件相符;
将所述数据结构信息与显示View层的控件关联,生成数据格式DataGrid表;所述DataGrid表用于显示所述待展示数据表。
2.如权利要求1所述的方法,其特征在于,接收数据展示请求之前,还包括:
向基站发送数据结构获取请求,所述数据结构获取请求用于获取基站存储的各数据表的数据结构文件;
接收所述各数据表的数据结构文件;
针对每个数据结构文件,生成JASON格式的数据结构文件。
3.如权利要求2所述的方法,其特征在于,所述生成JASON格式的数据结构文件之后,还包括:
将所述JSON格式的数据结构文件加载至内存中,并以哈希表的形式保存。
4.如权利要求1所述的方法,其特征在于,所述数据结构文件中包括公共信息管理库MIB节点的简单网络管理协议SNMP命令;
将所述数据结构信息与View层的控件关联,生成DataGrid表,包括:
在所述View层的控件中生成符合所述数据结构信息的DataGrid表;
根据所述MIB节点的SNMP命令,向基站发起对所述待展示数据表的查询请求;
根据所述基站返回的待展示数据表的数据,将所述待展示数据表的数据写入所述DataGrid表。
5.如权利要求4所述的方法,其特征在于,所述数据结构文件中包括至少一种语言类型的指示信息;
所述根据所述MIB节点的SNMP命令,向基站发起对所述待展示数据表的查询请求,包括:
从符合所述数据结构信息的DataGrid表中选择展示所述待展示数据表的语言类型;
根据所述语言类型和所述MIB节点的SNMP命令,生成用于获取所述语音类型对应的待展示数据表的查询请求。
6.一种显示界面WPF的生成装置,其特征在于,所述装置包括:
收发单元,用于接收数据展示请求,所述数据展示请求用于指示待展示数据表在显示界面上展示;
处理单元,用于根据所述数据展示请求,获取所述待展示数据表的数据结构文件;根据所述数据结构文件生成动态类的ModelView数据模板;所述ModelView数据模板的数据结构信息与所述数据结构文件相符;将所述数据结构信息与View层的控件关联,生成DataGrid表,所述DataGrid表用于显示所述待展示数据表。
7.如权利要求6所述的装置,其特征在于,所述收发单元,还用于:
向基站发送数据结构获取请求,所述数据结构获取请求用于获取基站存储的各数据表的数据结构文件;接收所述各数据表的数据结构文件;
所述处理单元,还用于针对每个数据结构文件,生成JASON格式的数据结构文件。
8.如权利要求7所述的装置,其特征在于,所述处理单元,还用于:
将所述JSON格式的数据结构文件加载至内存中,并以哈希表的形式保存。
9.如权利要求6所述的装置,其特征在于,所述数据结构文件中包括MIB节点的SNMP命令;所述处理单元,具体用于:
在所述View层的控件中生成符合所述数据结构信息的DataGrid表;根据所述MIB节点的SNMP命令,向基站发起对所述待展示数据表的查询请求;根据所述基站返回的待展示数据表的数据,将所述待展示数据表的数据写入所述DataGrid表。
10.如权利要求9所述的装置,其特征在于,所述数据结构文件中包括至少一种语言类型的指示信息;
所述处理单元具体用于:
从符合所述数据结构信息的DataGrid表中选择展示所述待展示数据表的语言类型;根据所述语言类型和所述MIB节点的SNMP命令,生成用于获取所述语音类型对应的待展示数据表的查询请求。
11.一种计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令用于执行如权利要求1至5任一权利要求所述的方法。
12.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至5任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811266310.2A CN111104108B (zh) | 2018-10-29 | 2018-10-29 | 一种显示界面wpf的生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811266310.2A CN111104108B (zh) | 2018-10-29 | 2018-10-29 | 一种显示界面wpf的生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111104108A true CN111104108A (zh) | 2020-05-05 |
CN111104108B CN111104108B (zh) | 2021-07-23 |
Family
ID=70419617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811266310.2A Active CN111104108B (zh) | 2018-10-29 | 2018-10-29 | 一种显示界面wpf的生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111104108B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111913739A (zh) * | 2020-07-30 | 2020-11-10 | 北京数立得科技有限公司 | 一种服务接口原语定义方法和系统 |
CN111966433A (zh) * | 2020-06-30 | 2020-11-20 | 北京百度网讯科技有限公司 | 页面之中语言的更改方法、装置、存储介质及电子设备 |
CN112445871A (zh) * | 2020-11-13 | 2021-03-05 | 航天精一(广东)信息科技有限公司 | 一种基于数据模型的数据可视化方法及系统 |
CN116402480A (zh) * | 2023-06-07 | 2023-07-07 | 成都普朗克科技有限公司 | 基于关联规则自建模型输出清单的方法和系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727319A (zh) * | 2009-12-09 | 2010-06-09 | 上海宝信软件股份有限公司 | 可翻页的面向服务的数据表格控件及其实现方法 |
CN103064689A (zh) * | 2013-01-04 | 2013-04-24 | 大唐软件技术股份有限公司 | 一种动态生成报表页面的实现方法及系统 |
US20140282138A1 (en) * | 2013-03-12 | 2014-09-18 | Microsoft Corporation | Dynamic generation of user interface placeholder templates |
CN104615735A (zh) * | 2015-02-11 | 2015-05-13 | 中科九度(北京)空间信息技术有限责任公司 | 一种基于地理信息空间系统的时空信息可视化方法 |
US20150205603A1 (en) * | 2013-01-29 | 2015-07-23 | ArtinSoft Corporation | Code transformation using extensibility libraries |
CN106648647A (zh) * | 2016-12-13 | 2017-05-10 | 北京中船信息科技有限公司 | 基于Spring依赖注入动态创建对象的综合管控系统 |
CN106681698A (zh) * | 2015-11-05 | 2017-05-17 | 阿里巴巴集团控股有限公司 | 动态列表的生成方法及装置 |
CN106873986A (zh) * | 2017-01-17 | 2017-06-20 | 武汉天喻教育科技有限公司 | 一种wpf中表格系统及实现方法 |
-
2018
- 2018-10-29 CN CN201811266310.2A patent/CN111104108B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727319A (zh) * | 2009-12-09 | 2010-06-09 | 上海宝信软件股份有限公司 | 可翻页的面向服务的数据表格控件及其实现方法 |
CN103064689A (zh) * | 2013-01-04 | 2013-04-24 | 大唐软件技术股份有限公司 | 一种动态生成报表页面的实现方法及系统 |
US20150205603A1 (en) * | 2013-01-29 | 2015-07-23 | ArtinSoft Corporation | Code transformation using extensibility libraries |
US20140282138A1 (en) * | 2013-03-12 | 2014-09-18 | Microsoft Corporation | Dynamic generation of user interface placeholder templates |
CN104615735A (zh) * | 2015-02-11 | 2015-05-13 | 中科九度(北京)空间信息技术有限责任公司 | 一种基于地理信息空间系统的时空信息可视化方法 |
CN106681698A (zh) * | 2015-11-05 | 2017-05-17 | 阿里巴巴集团控股有限公司 | 动态列表的生成方法及装置 |
CN106648647A (zh) * | 2016-12-13 | 2017-05-10 | 北京中船信息科技有限公司 | 基于Spring依赖注入动态创建对象的综合管控系统 |
CN106873986A (zh) * | 2017-01-17 | 2017-06-20 | 武汉天喻教育科技有限公司 | 一种wpf中表格系统及实现方法 |
Non-Patent Citations (1)
Title |
---|
YANG_B621: ""WPF -- 数据模板(Content Control)(一)"", 《HTTPS://BLOG.CSDN.NET/QQ_23018459/ARTICLE/DETAILS/79898412》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966433A (zh) * | 2020-06-30 | 2020-11-20 | 北京百度网讯科技有限公司 | 页面之中语言的更改方法、装置、存储介质及电子设备 |
CN111913739A (zh) * | 2020-07-30 | 2020-11-10 | 北京数立得科技有限公司 | 一种服务接口原语定义方法和系统 |
CN111913739B (zh) * | 2020-07-30 | 2023-09-12 | 北京数立得科技有限公司 | 一种服务接口原语定义方法和系统 |
CN112445871A (zh) * | 2020-11-13 | 2021-03-05 | 航天精一(广东)信息科技有限公司 | 一种基于数据模型的数据可视化方法及系统 |
CN116402480A (zh) * | 2023-06-07 | 2023-07-07 | 成都普朗克科技有限公司 | 基于关联规则自建模型输出清单的方法和系统 |
CN116402480B (zh) * | 2023-06-07 | 2023-09-19 | 成都普朗克科技有限公司 | 基于关联规则自建模型输出清单的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111104108B (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111104108B (zh) | 一种显示界面wpf的生成方法及装置 | |
US11016878B2 (en) | System and method for data collection and analysis of information relating to mobile applications | |
US10353807B2 (en) | Application development management | |
US20150331882A1 (en) | Redundant file deletion method, apparatus and storage medium | |
WO2018036342A1 (zh) | 基于csar的模型文件的可视化设计方法及装置 | |
CN110955428A (zh) | 一种页面显示方法、装置、电子设备及介质 | |
CN111068328A (zh) | 游戏广告配置表格的生成方法、终端设备及介质 | |
CA3056859C (en) | Window parameter configuration method and system, computer-readable media | |
CN104750472A (zh) | 一种终端应用的资源包管理方法和装置 | |
CN110704122A (zh) | 插件加载方法及装置 | |
CN107368407B (zh) | 信息处理方法和装置 | |
US20210409327A1 (en) | Creating endpoints | |
CN112269588B (zh) | 算法的升级方法、装置、终端和计算机可读存储介质 | |
CN112068879B (zh) | 基于配置化的客户端应用程序开发框架构建方法及装置 | |
CN110825622A (zh) | 软件测试方法、装置、设备和计算机可读介质 | |
CN113495723B (zh) | 一种调用功能组件的方法、装置及存储介质 | |
CN115469849A (zh) | 一种业务处理系统、方法、电子设备和存储介质 | |
CN110945478B (zh) | 管理用于软件应用开发的软件组件 | |
CN112817655A (zh) | 文案信息处理方法、装置、存储介质及电子设备 | |
CN110109698B (zh) | 按键板配置方法、装置、计算机设备及可读存储介质 | |
CN113377346A (zh) | 集成环境搭建方法、装置、电子设备及存储介质 | |
CN112667491A (zh) | 虚拟机的功能测试方法及装置 | |
CN111258586B (zh) | 快应用运行、编译方法、装置、电子设备和存储介质 | |
US20240086157A1 (en) | Visual generation of software deployment pipelines using recommendations of development and operations blueprints | |
CN113805878B (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 |