在VB中利用MSHFlexGrid控件显示可收缩的子记录
在VB中利用MSHFlexGrid控件显示可收缩的子记录
步骤/方法
- 01
在窗口放置一个MSHFlexGrid1控件(注意:在标准工具箱没有这个控件,需要你自己添加,方法是点击【工程】菜单,在下拉菜单再点击【部件】,在对话框中勾选Microsoft FlexGrid control 6.0 (SP6)选项即可。),如果你还需要其他控件,继续添加,这里我们仅仅添加一个MSHFlexGrid1控件。
- 02
要显示或隐藏子记录,你必须有数据库,这里我们采用Access数据库,数据库中包含二个数据表,一个是父记录表,一个是子记录表,父记录表可以包含很多字段,同样子记录表中也可以包含很多字段,但是必须强调的一点:父记录表中的其中一个字段必须和子记录表中的一个字段不论大小、数据类型、字段名称、默认值都应该完全一样,这是父记录连接子记录的依据,具体的数据表我这里就不给出,根据你自己的需要设置吧!
- 03
下面就是设置显示、隐藏子记录的方法: 在VB界面的工程属性窗口,右击已经存在的窗口名称,在弹出的菜单中选择【添加】-【Data Environment】这样在你的程序中就添加了一个数据环境设计器DataEnvironment1,点击DataEnvironment1,在设计窗口有一个Connection1的项目,右击Connection1项目,选择<属性>,在出现的对话框中选择<连接>选项卡,点击(使用连接字符串)选项,再点击【编译…】按钮,安装要求创建文件数据源,最后在编译按钮前的文本框中就可以显示你选择的文件数据源了(包括数据源、数据源的连接方式等等,这部分不是本文探讨的重点,不再详述)。 好了创建了数据连接,我们基本上完成了一半工作,下面你必须双击Connection1项目,呵呵!在Connection1项目下面增加了一个Command1项目,右击Command1项目,选择属性,在对话框的通用选项卡中的数据库对象选择“表“,对象名称中选择“父记录表”,然后点击【确定】按钮即可。哈哈!父记录表的所有字段全部显示在Command1项目下了! 再双击Command1项目,在Command1项目下面增加了一个Command2项目,右击Command2项目,选择属性,在对话框的通用选项卡中的数据库对象选择“表“,对象名称中选择“子记录表”,紧接着,你必须设置父记录和子记录的关联,选择关联选项卡,在父字段选择要和子记录关联字段名,在子字段选择和父记录关联的字段名,选择后点击【添加】按钮,这样父记录和子记录就设置了相互关联了,然后点击【确定】按钮即可。哈哈!子记录表的所有字段全部显示在Command2项目下了!
- 04
好了到这里数据环境设计已经完成,接下来我们必须将我们刚刚设计的数据环境加载到MSHFlexGrid1控件,就界面转换到窗体的设计窗口,点击MSHFlexGrid1控件,在MSHFlexGrid1控件的属性对话框找到DataSource属性,就其属性设置为DataEnvironment1,将DataMember属性值设置为Command1,好了,我们已经将数据环境加载到MSHFlexGrid1控件了.
- 05
仅仅将数据环境加载到MSHFlexGrid1控件还不够,接下来我们要对MSHFlexGrid1控件进行连接设置,因为我们需要建立父记录和子记录的关联,这必须在MSHFlexGrid1控件的带区进行设置,具体方法是: 右击MSHFlexGrid1控件,在出现的列表中,选择属性,在属性对话框中选择带区选项卡,这时出现的带区是带区0,在下面的列表框中出现“父记录表”中所有字段,如果你不想将有些字段显示在MSHFlexGrid1控件中,你可以将不显示字段前面的勾去掉即可,这样父记录就设置完成了。 接下来设置子记录,点击带区下拉框的小三角,选择带区为带区1,在下面的列表框中出现“子记录表”中所有字段,如果你不想将有些字段显示在MSHFlexGrid1控件中,你可以将不显示字段前面的勾去掉即可,另外,这样子记录就设置完成了。 好了,整个设置已经完成,现在你点击运行按钮(即小三角),怎么样?你的父记录前面是不是出现了+、-号的展开收缩项?到这里就完成了。 注意:上面所说的“父记录表”和“子记录表”是为叙述方便而临时命名的,根据你的数据库不同,父记录和子记录数据表名称不同,进行修改即可。 如果你需要调整列宽,在代码窗口使用MSHFlexGrid1.ColWidth(X) =数字进行调整,其中X是需要调整的列代号(0-整个列数)。