一种创建控件的方法、装置和计算机程序与流程

文档序号:12119834阅读:168来源:国知局
一种创建控件的方法、装置和计算机程序与流程

本发明涉及信息技术领域,尤其涉及一种创建控件的方法、装置和计算机程序。



背景技术:

一般而言,控件的创建需要根据数据文件,事先定义好属性和数量。但在开发过程中,数据文件需要根据开发流程不断修改;这使得控件的创建和使用非常不方便。

例如在用脚本语言读取数据文件时,可以通过控件直观的显示出数据文件的标签项,如果事先规定好界面的长度,当数据文件的标签项发生变化时,则可能显示不美观或显示不全。

由此可知,通用的控件创建的方式比较死板,缺乏灵活性,在难以事先定义属性和数量的场景下,不能很好的满足使用需要,遇到数据文件发生变化的情况,更是造成极大的使用障碍。



技术实现要素:

本发明公布了一种创建控件的方法,在给定数据文件的情况下,自动为数据文件生成控件参数。

一种创建控件的方法,包括:读取通过控件显示的数据文件,生成与该数据文件对应的数据序列;在数据序列的每个数据项后增加项变量;通过与数据序列中的数据项一一对应的项变量生成序列变量,并将序列变量关联到控件;依据序列变量,生成控件参数。

进一步的,通过控件显示的数据文件包括多个,多个数据文件组成为数据文件集;数据文件集内的每个数据文件对应的序列变量共同组成集变量;集变量关联到集控件;集控件为集变量所包括的全部序列变量所对应的控件的组合。

进一步的,依据控件参数生成控件;生成控件前,比较控件参数生成时间和数据文件保存时间;如果控件参数生成时间早于数据文件保存时间,生成新的控件参数。

一种控件生成装置,包括:数据序列生成模块,生成与数据文件对应的数据序列;项变量生成模块,为数据序列的每个项添加项变量;序列变量生成模块,依据与数据序列中的数据项一一对应的项变量生成序列变量;控件参数生成模块,依据序列变量生成控件参数。

进一步包括:集变量生成模块,根据由多个数据文件组成的数据文件集生成集变量。

进一步包括:控件更新模块,通过比较控件参数生成时间和数据文件保存时间决定是否生成新的控件参数。

一种计算机程序,该计算机程序可存储在可读取存储器上,通过读取可读取存储器执行该计算机程序,执行该计算机程序包括以下步骤:读取通过控件显示的数据文件,生成与该数据文件对应的数据序列;为数据序列的每个数据项后增加项变量;通过与数据序列中的数据项一一对应的项变量生成序列变量,并将序列变量关联到控件;依据序列变量,生成控件参数。

该计算机程序进一步的包括:根据数据文件集生成集变量。

该计算机程序进一步的包括:比较控件参数生成时间和数据文件保存时间决定是否生成新的控件参数。

该计算机程序进一步的包括:根据集变量生成对应于数据文件集内的数据文件的控件。

本发明的优点在于:

1、为给定数据文件自动生成控件参数。

2、在无法事先确定控件属性的场景实现控件的创建。

3、控件创建以后,数据文件再发生变化时,控件参数可随之改变,无需手动修改控件参数,节约了大量人力成本,提高开发效率。

4、在无法确定控件数量的情况,使用集变量,从而无需在给定控件数量的情况下创建集控件。

附图说明

图1示出本发明的主要流程;

图2示出了创建控件的装置;

图3示出了长数据文件;

图4示出了短数据文件。

本发明的实施例

图1示出了本发明的创建控件的方法的主要流程。

如图3和图4所示,数据文件的比特数、数据文件的行数、数据文件的列数,都会影响到显示数据文件的控件的参数,例如控件的几何宽度或者长度,或者说,控件的行数或者列数。同时,在软件开发过程中,对于由一组数据文件构成的数据文件集,需要一组与数据文件一一对应的控件,该组与数据文件一一对应的控件构成集控件。

数据文件可以是INI,XML,INF,CFG等多种格式,这些数据文件可编辑、可存储,这些数据文件可在DOS、windows、UNIX、LINUX等各种电脑操作系统正常读取、存储、使用。如附图3所示的数据文件,其包括了31行,31行中包括27行具有字符串的行,4行不包括字符串的空行。

在开发过程中,图3所示的数据文件需要具有27个标签项的控件去显示。当开发人员对图3所示的数据文件进行修改时,一旦行数(包括具有字符串的行和空行)发生改变,或者行的宽度发生改变,或者数据结构需要加入新的列,此时,旧的已经指定参数的控件将无法理想的显示该数据文件——例如,当数据文件的行数增加为32行,或者数据增加为4列,数据文件的行数或者列数不能完全显示;或者,数据文件的行数减少为20行,这将空出若干行,控件出现不需要的空白区域;或者,数据文件中部分行的字符串过多,需要换行,此时,将会出现某些字符串无法在单行中完整显示的问题。

由图3、图4可以看出,在由控件显示数据文件时,控件显示的长度是由数据文件的项数或者列数决定的。而在开发软件的过程中,由于需要事先对控件参数及控件数量进行定义,因此,一旦控件参数和控件数量需要发生变化,现有手段只有重新定义控件参数和控件数量;这将耗费大量的人力并且不合理的增长开发周期;如果在控件参数和控件数量需要发生变化时,对这一需求置之不理,则会导致控件与数据文件不匹配的情况:如控件显示长度过长而数据文件较短从而控件内存有大量空白,或者如控件长度相对数据文件较短,从而导致数据文件无法完全显示。或者在部分数据文件已经被删除的情况下,该数据文件所对应的控件依旧存在,从而占据了存储空间。或者在新增部分数据文件的情况下,该部分新增的数据文件无相对应的控件,从而不能显示。

控件与数据文件在数量和参数上的不匹配对于软件开发是无法忍受的。因此可以创建一个通用的工具,达到在载入可变化的数据文件时,根据数据文件标签项的数量和内容,自动生成其对应项的列表的目的。为达到上述目的,需要量化数据文件的变化,并把这个量化后的变化跟生成界面的控件绑定。具体来说,就是创建一个集变量,将其绑定到生成界面的控件。通过对这个集变量进行操作,也可以生成若干和数据文件相对应的控件。

本专利提供了一种创建控件的方法、装置和计算机程序。下面结合附图和具体实施方式对本发明作进一步详细的说明:

创建控件的方法,包括如下步骤:读取通过控件显示的数据文件,生成与该数据文件对应的数据序列;参考图3,该数据文件可以生成其对应的数据序列S={["[Common Header]"],["Format Version","1"],[“”],["[Board Info]"]...}。该序列包括了数据文件的所有信息。

在获得前述数据文件所对应的数据序列后,为数据序列中的每个数据项增加项变量。数据文件中的一行信息构成一个数据项;数据项如前所述,既可以为字符串,也可以为空行,或者具有指定格式,或者具有不同的行数。单个数据文件可以有数目不定的数据项,在数据序列的每个数据项后增加项变量即在单个数据文件每一行数据信息后加入项变量。

为附图3中数据序列增加项变量的方式为S={["[Common Header]",V1],["Format Version","1",V2],[“”,V3],["[Board Info]",V4]...},其中V1,V2,V3,V4……即为项变量。项变量据开发人员的指定,可以记录数据序列中每个数据项的参数,例如,项所包含的字符串长度,项的显示格式,项的显示行数,项的显示列数等等。通过在数据序列后增加项变量,从而可以获得由项变量所决定的序列变量。

序列变量是由与数据序列中的数据项一一对应的项变量所决定的。项变量决定序列变量的方式至少包括了几种方式。如,项变量的集合组成了序列变量,也即序列变量VS={V1,V2,V3,V4……};或者,序列变量由项变量的行数信息、列数信息决定;总之,序列变量包括了开发人员所需要的数据文件的参数。该数据文件的参数可以用于决定控件参数。

在大多数情况下,数据文件常常包括多个。在包括了多个数据文件的情况,需要指定一组控件,为多个数据文件分别显示提供便利。通过控件显示的全部数据文件的集合组成为数据文件集,集变量是基于数据文件集的变量。集变量是数据文件集中所有数据文件的序列变量的集合。

集变量的使用,解决了在控件创建时,控件数量无法确定的问题。例如,数据文件集包括了若干个数据文件,即使使用了序列变量,由于无法指定序列变量的个数,因此无法实现控件的创建。同时,如果在开发过程中,删除或者增加了数据文件,删除的数据文件所对应的控件无法及时删除;以及新增加的数据文件无对应显示的控件;从而需要重新人工指定新的控件参数。这为开发带来了不便。

获得序列变量即可生成控件参数。序列变量由于记录了数据序列中每个项的信息,因此,可以通过序列变量生成控件参数。在通过序列变量生成控件参数的过程中,将序列变量指定到控件。序列变量携带了数据序列的数据项信息,但是,序列变量并不直接等同于控件参数。将序列变量指定到控件参数的过程,是在序列变量和控件参数之间建立唯一的对应关系。这种对应关系,可以依据开发人员的事先指定,开发人员可以预定义若干种对应关系,在必要时候选择一种对应关系。

当数据文件为多个,从而形成数据文件集的情况下,集变量同样的指定到集控件,数据文件集、集变量和集控件分别为数据文件、序列变量、控件的集合,数据文件集内的数据文件、集变量内的序列变量、集控件内的控件,将建立单一的对应关系,也即对于一条数据文件,其对应的序列变量、控件在一次操作过程中将是唯一对应的。

对于本发明而言,序列变量和集变量一旦形成,控件参数或者集控件所对应的全部控件的参数将可以通过对应到序列变量和集变量的方式形成,从而控件或者集控件可以形成。对于本领域普通技术人员而言,在参数已经确定的情况下,控件或者集控件也将唯一确定。

以上描述了一次控件或者集控件的参数确定过程以及控件生成过程。

通过参照上述描述,本发明可以被本领域普通人员很好的执行。

由于序列变量的引入,当开发人员需要修改数据文件时,开发人员无需考虑控件参数。开发人员只需要执行一次更新控件的过程。控件更新过程可以通过比较序列变量的保存时间和数据文件保存时间来执行的。如上所述,一旦更新了数据文件,数据文件将存在一个新的保存时间。将数据文件保存时间与序列变量保存时间进行比较,数据文件的保存时间如果晚于序列变量保存时间,也就是数据文件在序列变量生成后有了更新,此时应当考虑更新序列变量。更新序列变量的过程和上述序列变量生成的过程项,也就是说,更新序列变量的过程完全的等同于生成序列变量的过程。

对数据文件集进行集变量的更新,也可以通过比较数据文件集的保存时间和集变量的保存时间来执行,执行过程类似于对序列变量的更新过程。

由于数据文件集和集变量是数据文件和序列变量的集合,因此,集变量的更新也可以采用对集变量内的每个序列变量分别进行更新的方式来进行,也即分别比较集变量内的每个序列变量的保存时间和相对应的数据文件集内的数据文件的保存时间来执行。

集控件的更新不仅仅包括了每个序列文件的更新,在比较保存时间时,当发现数据文件集内数据文件的数量与集变量所包括的序列变量数量不相等时,这就表示了数据文件集内的数据文件个数发生了增加或者减少,此时可以及时更新集变量,从而生成新的集控件所对应的控件参数。

以上描述的控件更新和集控件的更新是在开发人员指定进行执行的。如果开发系统设定了在数据文件或者数据文件集被修改后必须进行序列变量和集变量的更新,则无需开发人员进行指定的更新。

控件更新和集控件更新还可以采用其他形式的触发方式:例如,当每次启动软件时,自动执行对控件或者集控件的更新;当需要生成目标软件时,自动执行对控件或者集控件的更新;当读取数据文件从而使用控件对数据文件进行显示时,自动执行对控件或者集控件的更新。控件更新和集控件的更新触发方式完全取决于开发人员的决定。

控件更新在确定触发方式后,可以比较数据文件(数据文件集)和序列变量(集变量)的保存时间从而决定是否进行序列变量(集变量)更新,也可以不比较数据文件(数据文件集)和序列变量(集变量)的保存时间从而直接进行序列变量(集变量)更新。这些可以由开发人员进行设定。例如,可以设定当源代码开发完毕,生成目标代码时,进行更新,不用考虑数据文件和序列变量的保存时间;或者设定为当利用控件显示数据文件时,不考虑数据文件和序列变量的保存时间,进行控件更新。

通过本方法创建控件,可以解决无法事先确定控件属性和数量的场景下创建控件的问题。

本专利的控件生成装置,包括数据序列生成模块,生成与数据文件对应的数据序列;该数据序列生成模块读取通过控件显示的数据文件,生成与该数据文件对应的数据序列;参考图2,该数据文件可以生成其对应的数据序列S={["[Common Header]"],["Format Version","1"],[“”],["[Board Info]"]...}。该序列包括了数据文件的所有信息。

控件生成装置还包括项变量生成模块,为数据序列的每个项添加项变量;在获得前述数据文件所对应的数据序列后,为数据序列中的每个数据项增加项变量。数据文件中的一行信息构成一个数据项;数据项如前所述,既可以为字符串,也可以为空行,或者具有指定格式,或者具有不同的行数。单个数据文件可以有数目不定的数据项,在数据序列的每个数据项后增加项变量即在单个数据文件每一行数据信息后加入项变量。

如附图2中数据序列增加项变量的方式为S={["[Common Header]",V1],["Format Version","1",V2],[“”,V3],["[Board Info]",V4]...},其中V1,V2,V3,V4……即为项变量。项变量根据开发人员的指定,可以记录数据序列中每个数据项的参数,例如,数据项所包含的字符串长度,数据项的显示格式,数据项的显示行数,数据项的显示列数等等。通过在数据序列后增加项变量,从而可以获得由项变量所决定的序列变量。

控件生成装置还包括序列变量生成模块,依据与数据序列中的数据项一一对应的项变量生成序列变量;序列变量是由与数据序列中的数据项一一对应的项变量所决定的。项变量决定序列变量可以有多种方式。如,项变量的集合组成了序列变量,也即序列变量VS={V1,V2,V3,V4……};或者,序列变量由项变量的行数信息、列数信息决定;或者,序列变量包括了项变量,并将序列变量关联到控件;总之,序列变量包括了开发人员所需要的数据文件的参数。该数据文件的参数可以用于决定控件参数。

在大多数情况下,数据文件常常包括多个。在包括了多个数据文件的情况,需要指定一组控件,为多个数据文件分别显示提供便利。通过控件显示的全部数据文件的集合组成为数据文件集,集变量是基于数据文件集的变量。集变量是数据文件集中所有数据文件的序列变量的集合。

控件生成装置还包括控件参数生成模块,依据序列变量生成控件参数。在获得序列变量后,即可生成控件参数。序列变量由于记录了数据序列中每个项的信息,因此,可以通过序列变量生成控件参数。在通过序列变量生成控件参数的过程中,将序列变量指定到控件。序列变量携带了数据序列的数据项信息,但是,序列变量并不直接等同于控件参数。将序列变量指定到控件参数的过程,是在序列变量和控件参数之间建立唯一的对应关系。这种对应关系,可以依据开发人员的事先指定,开发人员可以预定义若干种对应关系,在必要时候选择一种对应关系。

当数据文件为多个,从而形成数据文件集的情况下,集变量同样的指定到集控件,数据文件集、集变量和集控件为数据文件、序列变量、控件的集合,数据文件集内的数据文件、集变量内的序列变量、集控件内的控件,将建立单一的对应关系,也即对于一条数据文件,其对应的序列变量、控件在一次操作过程中将是唯一对应的。

对于本发明而言,序列变量和集变量一旦形成,控件参数或者集控件所对应的全部控件的参数将可以通过对应到序列变量和集变量的方式形成,从而控件或者集控件可以形成。对于本领域普通技术人员而言,在参数已经确定的情况下,控件或者集控件也将唯一确定。

以上描述了控件生成装置。

通过参照上述描述,本发明可以被本领域普通人员很好的执行。

由于序列变量的引入,当开发人员需要修改数据文件时,开发人员无需考虑控件参数。开发人员只需要执行一次更新控件的过程。控件更新过程可以通过比较序列变量的保存时间和数据文件保存时间来执行。如上所述,一旦更新了数据文件,数据文件将存在一个新的保存时间。将数据文件保存时间与序列变量保存时间进行比较,数据文件的保存时间如果晚于序列变量保存时间,也就是,数据文件在序列变量生成后有了更新,此时应当考虑更新序列变量。更新序列变量的过程和上述序列变量生成的过程是相同的,也就是说,更新序列变量的过程完全的等同于生成序列变量的过程。

对数据文件集进行集变量的更新,也是通过比较数据文件集的保存时间和集变量的保存时间来执行,执行过程类似于对序列变量的更新过程。

由于数据文件集和集变量是数据文件和序列变量的集合,因此,集变量的更新也可以采用对集变量内的每个序列变量分别进行更新的方式来进行,也即分别比较集变量内的每个序列变量的保存时间和相对应的数据文件集内的数据文件的保存时间来执行。

集控件的更新不仅仅包括了每个序列文件的更新。在比较保存时间时,当发现数据文件集内数据文件的数量与集变量所包括的序列变量数量不相等时,这就表示了数据文件集内的数据文件个数发生了增加或者减少,此时可以及时更新集变量,从而生成新的集控件所对应的控件参数。

以上描述的控件更新和集控件的更新是在开发人员指定进行执行的。如果开发系统设定了在数据文件或者数据文件集被修改后必须进行序列变量和集变量的更新,则无需开发人员进行指定的更新。

控件更新和集控件更新还可以采用其他形式的触发方式:例如,当每次启动开发软件时,自动执行对控件或者集控件的更新;当需要生成目标软件时,自动执行对控件或者集控件的更新;当读取数据文件从而使用控件对数据文件进行显示时,自动执行对控件或者集控件的更新。控件更新和集控件的更新触发方式完全取决于开发人员的决定。

控件更新在确定触发方式后,可以比较数据文件(数据文件集)和序列变量(集变量)的保存时间从而决定是否进行序列变量(集变量)更新,也可以不比较数据文件(数据文件集)和序列变量(集变量)的保存时间从而直接进行序列变量(集变量)更新。这些可以由开发人员进行设定。例如,可以设定当源代码开发完毕,生成目标代码时,进行更新,不用考虑数据文件和序列变量的保存时间;或者设定为当利用控件显示数据文件时候,不考虑数据文件和序列变量的保存时间,进行控件更新。

本专利还公开了一种计算机程序,该计算机程序可存储在可读取存储器上,通过读取可读取存储器执行该计算机程序,执行该计算机程序包括下列步骤:

读取通过控件显示的数据文件,生成与该数据文件对应的数据序列;参考图3,该数据文件可以生成其对应的数据序列S={["[Common Header]"],["Format Version","1"],[“”],["[Board Info]"]...}。该序列包括了数据文件的所有信息。

在获得前述数据文件所对应的数据序列后,为数据序列中的每个数据项增加项变量。数据文件中的一行信息构成一个数据项;数据项如前所述,既可以为字符串,也可以为空行,或者具有指定格式,或者具有不同的行数。单个数据文件可以有数目不定的数据项,在数据序列的每个数据项后增加项变量即在单个数据文件每一行数据信息后加入项变量。

如附图3中所示的数据文件生成的数据序列增加项变量的方式为S={["[Common Header]",V1],["Format Version","1",V2],[“”,V3],["[Board Info]",V4]...},其中V1,V2,V3,V4……即为项变量。项变量根据开发人员的指定,可以记录数据序列中每个数据项的参数,例如,数据项所包含的字符串长度,数据项的显示格式,数据项的显示行数,数据项的显示列数等等。通过在数据序列后增加项变量,从而可以获得由项变量所决定的序列变量。

序列变量是由与数据序列中的数据项一一对应的项变量所决定的。项变量决定序列变量的方式至少包括了几种方式。如,项变量的集合组成了序列变量,也即序列变量VS={V1,V2,V3,V4……};或者,序列变量由项变量的行数信息、列数信息决定;或者,序列变量包括了项变量并将序列变量关联到控件;总之,序列变量包括了开发人员所需要的数据文件的参数。该数据文件的参数可以用于决定控件参数。

在大多数情况下,数据文件常常包括多个。在包括了多个数据文件的情况,需要指定一组控件,为多个数据文件分别显示提供便利。通过控件显示的全部数据文件的集合组成为数据文件集,集变量是基于数据文件集的变量。集变量是数据文件集中所有数据文件的序列变量的集合。

序列变量记录了数据序列中每个项的信息,因此,可以通过序列变量生成控件参数。在通过序列变量生成控件参数的过程中,将序列变量指定到控件。序列变量携带了数据序列的数据项信息,但是,序列变量并不直接等同于控件参数。将序列变量指定到控件参数的过程,是在序列变量和控件参数之间建立唯一的对应关系。这种对应关系,可以依据开发人员的事先指定,开发人员可以预定义若干种对应关系,在必要时候选择一种对应关系。

当数据文件为多个,从而形成数据文件集的情况下,集变量同样的指定到集控件,数据文件集、集变量和集控件为数据文件、序列变量、控件的集合,数据文件集内的数据文件、集变量内的序列变量、集控件内的控件,将建立单一的对应关系,也即对于一条数据文件,其对应的序列变量、控件在一次操作过程中将是唯一对应的。

对于本发明而言,序列变量和集变量一旦形成,控件参数或者集控件所对应的全部控件的参数将可以通过对应到序列变量和集变量的方式形成,从而控件或者集控件可以形成。对于本领域普通技术人员而言,在参数已经确定的情况下,控件或者集控件也将唯一确定。

以上所描述的是用于生成控件的计算机程序。该计算机程序可以是存储在本地硬盘上的计算机程序;也可以存储在可读取存储器,例如光盘或者优盘上的;也可以是通过远端云服务方式为本地提供服务的;总之,该计算机程序并不限于其存储或者安装的位置和形式,其应该实质性的可以提供以上的处理过程。

该计算机程序还可以完成控件的更新步骤。

由于序列变量的引入,当开发人员需要修改数据文件时,开发人员无需考虑控件参数。开发人员只需要执行一次更新控件的过程。控件更新过程可以通过比较序列变量的保存时间和数据文件保存时间来执行的。如上所述,一旦更新了数据文件,数据文件将存在一个新的保存时间。将数据文件保存时间与序列变量保存时间进行比较,数据文件的保存时间如果晚于序列变量保存时间,也就是说,数据文件在序列变量生成后有了更新,此时应当考虑更新序列变量。更新序列变量的过程和上述序列变量生成的过程是相同的,也就是说,更新序列变量的过程完全的等同于生成序列变量的过程。

对数据文件集进行集变量的更新,也是通过比较数据文件集的保存时间和集变量的保存时间来执行,执行过程类似于对序列变量的更新过程。

由于数据文件集和集变量是数据文件和序列变量的集合,因此,集变量的更新也可以采用对集变量内的每个序列变量分别进行更新的方式来进行,也即分别比较集变量内的每个序列变量的保存时间和相对应的数据文件集内的数据文件的保存时间来执行。

以上描述的控件更新和集控件的更新是在开发人员指定进行执行的。如果开发系统设定了在数据文件或者数据文件集被修改后必须进行序列变量和集变量的更新,则无需开发人员进行指定的更新。

集控件的更新不仅仅包括了每个序列文件的更新,在比较保存时间时,当发现数据文件集内数据文件的数量与集变量所包括的序列变量数量不相等时,这就表示了数据文件集内的数据文件个数发生了增加或者减少,此时可以及时更新集变量,从而生成新的集控件所对应的控件参数。

控件更新和集控件更新还可以采用其他形式的触发方式:例如,当每次启动开发软件时,自动执行对控件或者集控件的更新;当需要生成目标软件时,自动执行对控件或者集控件的更新;当读取数据文件从而使用控件对数据文件进行显示时,自动执行对控件或者集控件的更新。控件更新和集控件的更新触发方式完全取决于开发人员的决定。

控件更新在确定触发方式后,可以比较数据文件(数据文件集)和序列变量(集变量)的保存时间从而决定是否进行序列变量(集变量)更新,也可以不比较数据文件(数据文件集)和序列变量(集变量)的保存时间从而直接进行序列变量(集变量)更新。这些可以由开发人员进行设定。例如,可以设定当源代码开发完毕,生成目标代码时,进行更新,不用考虑数据文件和序列变量的保存时间;或者设定为当利用控件显示数据文件时候,不考虑数据文件和序列变量的保存时间,进行控件更新。

以上对控件的更新步骤,可以通过计算机程序来实现。

本发明所描述实施例并不是对于本发明的限定,其仅仅用于说明本发明的步骤。本发明的权利要求保护范围,由本发明权利要求相同或者等同的范围构成。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1