《C6自定义操作手册.docx》由会员分享,可在线阅读,更多相关《C6自定义操作手册.docx(103页珍藏版)》请在三一办公上搜索。
1、自定义使用说明2一、操作篇2(一) 单表输入的示例说明8(二) 主子表输入的示例说明27(三) Word类型表单示例说明32(四) 连接其他系统示例说明45(五) 简单的查询功能示例说明50(六) 表单加流程的示例说明53(七) 表单加权限的示例说明60二、基础篇63(一) 表单设计器的常用功能63(二) 表单设计器的控件功能75(三) 字段的编辑方式86(四) 自定义模块中的数据库维护的使用说明96自定义使用说明一、操作篇自定义表单类型分为简易表单和高级表单。其中简易表单主要包括单表输入类型的表单;高级表单主要包括多数据库表输入类、查询类、统计类型、Word类型的表单。下面将结合具体的例子讲
2、述在C6系统中如何使用自定义模块功能创建自定义表单。其中自定义操作主界面如图1.1所示,点击 系统管理 自定义模块 进入:图1.1 自定义模块操作主界面其中:1. 新建表单: 点击链接进入表单创建界面(图1.2),其中需要设置表单是否带审批流程及权限控制。若选中带流程审批复选框,创建表单后,在流程绑定表单列表页中会显示该表单名称,允许对其进行流程设置; 若选中权限控制复选框,创建表单后,在权限绑定表单列表页中会显示该表单名称,允许对其进行权限设置。图1.2 新建表单界面2. 设计表单:针对新建的表单进行设计。点击链接进入表单列表界面(图1.3),然后选择具体的表单名称链接进入表单设计界面,如(
3、图1.4)所示。图1.3 表单列表界面图1.4 简单表单设计界面注:表单创建后,设计界面默认有dataset数据集控件,并且该dataset属性中已经设置了默认的保存的数据库表(该表已经存在于数据库中),并且设置了sql语句,如图1.5所示。用户可以根据自己的需要进行修改。图1.5dataset数据集控件属性界面3. 菜单绑定:点击链接进入表单列表界面(图1.8),然后选择具体的表单名称链接进入菜单绑定界面,如(图1.9)所示。图1.8 表单列表界面图1.9 菜单绑定界面4. 表单维护:对已经存在的表单进行修改。点击链接进入表单维护界面,然后打开具体的表单进行设计修改,具体界面如(图1.10)
4、所示。图1.10 表单维护主界面5. 表单分类维护:点击链接进入表单分类维护界面,如(图1.11)所示。图1.11 表单分类维护主界面6. 流程绑定:设置自定义表单的审批流程。点击链接进入表单列表界面,然后选择具体的表单名称链接进入流程绑定界面,如(图1.12)所示。图1.12 流程设置主界面7. 权限绑定:设置自定义表单的用户操作权限。点击链接进入表单列表界面,然后选择具体的表单名称链接进入权限设置界面,如(图1.13)所示。图1.13 权限设置主界面下面将结合具体的实例演示常见的表单的创建过程,其中关于数据库表的创建过程请参考“自定义模块中的数据库维护的使用说明”部分,讲解了如何根据自定义
5、表单的需要在C6系统数据库中创建数据库表。关于如何创建表单以及如何设置表单流程、如何设置表单权限的部分请参考以上章节。(一) 单表输入的示例说明单表输入的表单一般分为在表格上直接输入保存和在文本框架输入保存并把记录显示在表格上两种格式,下面以费用类型为例介绍两种格式的操作方法。费用类型的数据库结构如下:费用类型(Form_FeeType)序号字段名称类 型长 度空 值初值描 述1Fee_idInt4F自增长ID2Fee_namechar500F费用名称3Sub_Timedatetime8TGetdate()提交时间A用表格的单表输入1.设计费用类型表单在表格上直接输入需要的控件有:u labe
6、l 用来显示表单的标题,也可以不要;u grid 表格控件用来增加记录和显示记录,此控件必需;u dataset 数据集控件用来与数据库进行交互,dataset控件在显示页面和数据库之间起一个桥梁的作用,在一个表单中如果要与数据库进行交互,dataset数据集控件是必需的,在费用类型的页面中因要从数据库中读写记录,此控件必需;u button 控件用来启动事件,例“保存”按钮、“增加行”、“删除行”等按钮分别可以启动保存、增加行、删除行等方法来实现功能,此控件必需;2.设计费用类型表单:u 打开自定义模块的设计界面,在工具栏上点击“”按钮,便可以在设计界面上创建了一个label控件,双击lab
7、el控件,打开label控件的属性页。如图:在label控件的属性页上分为“属性”和“样式”两个页签。1) 在属性页签上显示控件ID和标签,设置完成点击“确定”按钮,此控件的属性页签上的内容便设置成功。a) 设置控件ID,当表单上有多个相同的控件时,控件ID不能重复,建议不修改控件ID。b) 设置控件标签,标签是显示上控件上的内容,填写需要的内容即可,我们在标签上填写“费用类型”。2) 在样式页签上可以设置控件的位置、颜色和选项等样式,设置完成点击“确定”按钮,此控件的样式页签上的内容便设置成功。a) 设置控件的位置,选择定位类型,选择“绝对”,可以选中控件用鼠标在设计页面上拖动,此控件的位置
8、属性也会随着变化,也可以拖动控件大小,它的宽和高属性也会随着变化。选择“静态”不能拖动控件的位置,但可以拖动控件的大小。b) 然后设置控件的颜色,点击“”按钮打开颜色选择页面,选择自己需要的颜色,点击“确定”按钮即可。点击“”打开字体设置页面,根据自己的需要选择字体、字型、和大小等,点击“确定”按钮即可。c) 设置控件的选项,根据需要设置控件是否活动、是否透明、是否可见及控件的对齐方式等,“条件格式”是根据表单的数据改变控件的外观。u 在自定义表单设计界面的工具栏上点击“”按钮,在设计界面便创建了一个grid表格控件,双击grid控件,打开grid控件的属性页。如图:在grid 控件的属性页上
9、分为“表格”、“样式”和“交叉表”三个页签。1) 在表格页签上可以设置控件ID、数据集名称、和控件的一些选项等。设置完成后点击“确定”按钮,表格页签上的内容便设置成功。a) 设置控件的ID,在文本框中输入控件的ID,操作方式和方法同上面的label控件,所有控件ID的操作都是一样的,在以后的文档中的将不再做详细说明。b) 选择数据集的名称,如果表单还没有dataset数据集控件,则此选择处为空,必须先创建一个数据集控件才可以选择,表格上显示的数据都从此数据集上取。c) 设置表格的选项,选项内容包括是否允许选中单元格,表格自适应高度、只读、自动增加新记录、表格自适应宽度、可见等,其中只读选项是说
10、在表格上不能编辑,而我们的此例是在表格直接编辑,所以不能选中此控件的只读属性。在选项说明的后面带有“?”表示对此选项的帮助说明,点击“?”按钮便可以看到说明文档。2) 在表格样式的页签上可以设置表格的位置、表体颜色、标题信息、自定义标题、标题行高、标题行数、标题HTML等信息。设置完成点击“确定”按钮,表格样式页签上的内容便设置成功了。a) 设置控件的位置,参照label控件中设置控件位置的方式和方法,这里不做详细说明。b) 设置表体的颜色,也就是设置表格文字的字体和字体颜色,具体的操作方法参照label控件中设置控件的颜色。c) 设置标题信息,也就设置表格标题信息的字体和字体颜色,具体操作方
11、法同上。d) 设置自定义标题。在此示例中不用自定义标题,在这里不做详细说明。自定义标题在主子表输入的示例中会做详细说明。3) 在交叉表的页签上可以设置生成交叉表的信息。在此示例中表格只用来做输入和显示记录,固在这里不做使用说明,在统计功能的示例中会做详细介绍。u 在自定义表单设计界面的工具栏上点击“”按钮,在设计界面便创建了一个dataset数据集控件,双击dataset控件,打开dataset控件的属性页。如图:在dataset属性页上分为“数据集合”、“数据项”、“事件”三个页签。13. 在数据集合的页签上可以设置控件ID、打开次序、保存表名、是否保存、和单据展现SQL等信息。u 设置控件
12、ID,请参照label属性页中的设置控件ID的方法。u 设置打开次序,控制同一表单上的多个数据集的打开次序,数字小的就先打开,即设置为1的就先打开;如果多个数据集的打开次序相同,则按默认次序打开;如果一个数据集调用另一个数据集的数据,要保证被调用数据集先打开。u 设置保存到的表名,在保存表名的文本框中可以输入要保存到的表名,也可以选择表名,我们的费用类型要保存到FeeType表,我们直接在文本框中输入FeeType。u 设置是否保存,表单上的数据集默认都保存,如果数据集的数据只当参数传递用,那可以选择不保存到数据库,以节省数据库的资源。u 设置单据展现SQL,此SQL也就是数据集的数据来源,在
13、SQL的文本框中输入Select fee_id,Fee_name,sub_time from FeeType。14. 数据项页签,数据项页签主要设置数据集上的字段信息,左侧显示数据集上的字段列表,右侧可以设置每个字段的属性,设置字段的数据类型、修改字段的显示名称、及字段是否显示等;字段是否显示是指此字段是否显示在表单的表格上。另外,数据集的数据源与数据项的关系是采用同名字段复制的方法,例如在数据源的SQL中有Fee_id、Fee_name和sub_time1三个字段,而在数据项列表中也有Fee_id 和Fee_name字段,那么数据项的Fee_id 和Fee_name字段的值则从数据源中的同名
14、字段中来,sub_time1则不用管,如果sub_time1是在数据项中,而在数据源的SQL中,那么sub_time1字段的值则为空。a) 增加字段,点击“增加”按钮,会在左侧的字段列表中增加一行,选中新增加字段,在右侧修改此字段的属性,如果把此字段设置为不显示,那么此字段将不会显示在表单的表格上。b) 批量增加字段,点击“批量增加”按钮,打开选择字段的页面,选择自己需要的字段,双击字段可以进行多选,点击“确定”按钮便返回所选择的字段。在字段列表上选择字段后,在列表右侧可以修改字段的属性。c) 删除字段,在字段列表上选择要删除的字段,点击“删除”按钮,此字段将在数据集上消失。15. 事件页签,
15、事件页签主要设置数据集在操作中处发事件。a) 打开之前:打开数据集之前触发该事件。b) 打开之后:打开数据集之后触发该事件。c) 提交之前:提交之前触发该事件。d) 提交之后:提交之后触发该事件。e) 滚动之前:滚动之前触发该事件。f) 滚动之后:滚动之后触发该事件。g) 滚动之后:滚动之后触发该事件。u 在自定义表单设计界面的工具栏上点击“”按钮,在设计界面便创建了一个button控件,双击button控件,打开button控件的属性页。如图:在button的属性页上分为“属性”、“样式”、“事件”三个页签。1) 属性页签可以设置button的控件ID和标签。a) 设置button的控件ID
16、和标签的方法请参照设置label的控件ID和标签的方法,在标签的文本框内输入“保存”,此按钮做保存表单用。2) 样式页签主要可以设置button的位置、颜色、边框风格、和其它选项等信息。a) Button的样式页签上设置的内容同label控件样式页签上的内容大体相同,操作方法请参照label控件。3) 事件页签主要设置button的单击事件。a) 点击事件页签上的“”按钮,打开选择函数的页面,根据函数的说明选择需要的函数,点击“确定”按钮则返回到单击事件的文本框内。此示例选择的函数是“GridSave(dataset1)”根据“保存”按钮的设置方法,再增加“增加行”和“删除行”按钮,两个新按钮
17、的单击事件分别为“dataset1.Append()”和“DelGridRow(dataset1)”。现在费用类型示例的所有控件都设置完成,下面是费用类型的设计界面,如图:点击工具栏上的“”按钮,会提示“表单sn不能为空,请进入表单属性窗口输入表单SN!”,然后打开表单属性窗口,也可以点击工具栏上的“”按钮直接打开表单属性窗口,下面是表单属性的界面,如图:在属性页签上设置表单SN,在表单SN的文本框内输入“FeeType”,表单名称中输入相应的表单名称,选择表单分类为测试分类,其它选项为默认。在表单控制页签上设置主键字段的类别,选择字段类别是“自动编号ID值”,选择表单进入时的状态为“修改”状
18、态,主键字段名为“Fee_id”,其它选项为默认。点击表单属性窗口中“确定”按钮,表单属性设置完成。然后再点击工具栏上的“”按钮,表单保存成功。注:1. 在选中的控件上双击均打开该控件的属性页。2. 事件不支持双引号,双击鼠标可选择函数。3.设计完成后浏览效果:u 在费用类型的示例表单设计完成后,通过“菜单绑定”进入菜单设置页面,将该自定义菜单放到某父菜单下,然后快速浏览页面。如图:点击“增加行”按钮,表格增加一行,可以在新增加的行中直接输入数据。点击“删除行”按钮,则删除表格的当前选中行。点击“保存”按钮,表格上的数据则更新成功。B用列表和卡片的单表输入下面以单位表为例介绍列表和卡片的单表输
19、入格式的操作方法。单位表的数据库结构如下:单位表(DW)序号字段名称类 型长 度空 值初值描 述1SdwidChar11F自增长ID2SdwcodeChar15F单位编号3SdwnameChar40T单位名称4Bzvarchar100T备注单位表分为两个表单来实现,单位列表和单位卡片,单位列表主要显示数据库中的数据,单位卡片主要对数据的增加、修改或删除;1. 设计单位列表单所需要的控件有:u 1个Label控件用来显示表单的标题,也可以不要;u 1个Grid控件用来显示数据,此控件必需;u 1个dataset控件用来与数据库交互,dataset在表单显示页和数据库之间起一个桥梁作用,在一个表单
20、中如果要与数据库交互,dataset控件是必需有的,在单位列表表单中要显示数据库数据,此控件必需;u 2个Button控件用来启用事件,例如:“增加”和“删除”按钮可以分别启用增加和删除等方法来实现功能,此控件必需;2. 设计单位列表表单u 在自定义表单的设计界面的工具栏上点击“”按钮,便在设计界面创建一个Label控件,双击Label控件,打开Label控件的属性页,如图:在Label控件属性页中分为:“属性”和“样式”两个页签;1) 在属性页签上设计控件ID和标签;a) 设置控件ID,当表单上有多个相同的控件时,控件ID不能重复。b) 设置控件标签,标签是显示上控件上的内容,填写需要的内容
21、即可,我们在标签上填写“单位列表”。u 创建一个grid控件,如图:在grid控件属性页中分为:“表格”、“样式”和“交叉表”三个页签;2) 在“表格”页签中设置控件ID、数据集名称和控件的一些选项;a) 设置控件ID,请参考label控件的设置方法;b) 选择数据库名称,如果表单中还没有dataset控件,则此选择处为空,必须创建一个dataset数据集控件才可以选择,表格显示的数据是丛dataset数据集中取的;c) 设置表格控件的选项,选项内容包括:“允许选中单元格”、“表格自适应高度”、“表格自适应宽度”、“只读”、“自动增加记录”和“可见”,“允许选中单元格”:当前表格是否有焦点,相
22、当于只读属性;“表格自适应高度”:表格的高度和显示器显示屏幕的高度一致;“表格自适应宽度”:表格的宽度和显示器显示屏的宽度一致;“可见”:表格控件在表单上是否显示;“只读”:在表格上不能直接编辑;“自动增加记录”:可在表格的最后一行的任意单元格中按下键盘上的【】键,即可自动增加新记录;3) 在“交叉表”页签上可以设置生成交叉表的信息。在此示例中表格只用来做输入和显示记录,用到时做详细说明;u 创建一个dataset控件,如图:数据集的数据来源在dataset控件的属性页中分为:“数据集合”、“数据项”和“事件”三个页签;1) 在数据集合页签中设置控件ID,保存表名,打开次序,是否保存和SQL语
23、句;a) 设置控件ID,请参考label控件的设置方法;b) 选择控件的打开次序,控制同一表单中多个数据集的打开次序,数字小的就先打开,即设置为1的就先打开;如果多个数据集的打开次序相同,则按默认次序打开;如果一个数据集调用另一个数据集的数据,要保证被调用数据集先打开。c) 设置保存到的表名,在保存表名文本框中输入要保存到的表名,把数据保存到数据库中的数据表中,也可以点击“”按钮,选择要保存到的表名;d) 设置单据展现SQL,此SQL也就是数据集的数据来源,e) 设置是否保存,表单上的数据集默认都保存,如果数据集的数据只当参数传递用,那可以选择不保存到数据库,以节省数据库的资源。2) 在数据项
24、页签中设置字段信息,左侧显示数据集上的字段列表,右侧可以设置每个字段的属性,设置字段的数据类型、修改字段的显示名称、及字段是否显示等;另外,数据集的数据源与数据项的关系是采用同名字段复制的方法,例如在数据源的SQL中有sdwid、sdwcode和sname三个字段,而在数据项列表中也有sdwid 和sdwcode字段,那么数据项的sdwid 和sdwcode字段的值则从数据源中的同名字段中来,sname则不用管,如果sname是在数据项中,而在数据源的SQL中,那么sname字段的值则为空。同名字段复制流程如图:a) 增加字段,点击“增加”按钮,会在左侧的字段列表中增加一空行,选中新增加字段,
25、在右侧填写或修改此字段的属性b) 批量增加字段,点击“批量增加”按钮,打开选择字段页面,选择自己需要的字段,双击字段可以进行多选,点击“确定”按钮,将选中的字段返回到字段列表中。c) 删除字段,在字段列表中选择要删除的字段,点击“删除”按钮,此字段将在数据集上消失。d) 设置是否显示,当前字段是否在表单的表格中显示。e) 鼠标的双击事件,在表格上双击触发的事件,填写“DjOpen(sh_y_input1_s,dssub1,修改) ;dssub1.Open()”,“DjOpen“:重新打开一个表单,“sh_y_input1_s”:是要打开表单的名称(表单SN);“dssub1”:要传的数据集对象
26、;“修改”:是以哪种模式打开表单, 可为(默认/新增/修改/展现),dssub1.Open()是重新打开数据集;3) 在数据集的事件页签中设置数据集在操作中的触发事件a) 打开之前事件:在打开数据集之前触发该事件b) 打开之后事件:在打开数据集之后触发该事件c) 提交之前事件:在提交数据集之前触发该事件d) 提交之后事件:在揭底数据集之后触发该事件e) 滚动之前事件:在数据集的数据移动之前触发该事件f) 滚动之后事件:在数据集的数据移动之后触发该事件u 创建两个button按钮,如图:在button控件的属性页中分为:“属性”、“样式”和“事件“三个页签1) 在button控件的属性页中设置控
27、件的ID和标签,请参考label控件的设置方法a) 设置当前表单的按钮的标签分别为:“增加”和“删除”2) 在事件页中设置控件的单击事件b) 设置控件的单击事件,点击“”按钮,打开自定义函数页,定义一个函数,在button控件的单击事件上调用,“增加”按钮的单击事件为:“DjOpen(sh_y_input1_s,dssub1,新增) ; dssub1.Open();”,打开单位卡片表单增加记录;“删除”按钮的单击事件为:“DelRow(dssub1)”,是删除当前选中的记录,3. 设计表单完成后的效果4. 设计单位卡片表单所需要的控件有:u 四个label控件,用来显示表单标题和字段标题u 三
28、个text控件,用来输入信息u 一个dateset控件,用来与数据库交互u 两个button控件分别为:“保存”和“关闭”5. 设计单位卡片表单u 创建四个label控件,label控件的标签分别为:“单位卡片”、“单位编号”、“单位名称”和“备注”,其中“单位卡片”控件的字体颜色为蓝色。u 创建三个text控件,如图:在text控件属性页中分为:“属性”、“样式”和“事件”三个页签1) 在属性页设置控件的ID默认值和数据绑定a) 设置控件的ID和默认值,请参考label控件的设置方法;b) 设置绑定数据,例如:把text1控件绑定到DsMain数据集的sdwcode字段上,表示保存时text
29、1的值保存到sdwcode字段,也可以点击“选择字段”按钮,打开选择字段的页面,选择要绑定到控件的字段,点击“确定”返回;2) 在事件属性页设置控件的触发事件a) 设置控件的单击事件:单击控件时触发该事件b) 设置控件的双击事件:双击控件时触发该事件;c) 设置控件的进入事件:当控件获取焦点时触发该事件d) 设置控件的退出事件:当控件失去焦点时触发该事件e) 设置控件的按键事件:当用户按键时触发该事件u 创建一个dataset控件,数据集的ID为:“DsMain”,保存表名为“dw”,SQL语句为:“select sdwid,sdwcode,sdwname,bz from dw”,设置DsMi
30、an数据集的“数据项”页签的字段列表分别是:“sdwid”、“sdwcode”、“sdwname”和“bz”,在表单没有grid控件时,可以不考虑是否显示当前字段,因为DsMain控件的字段是绑定到其它控件上;u 创建四个button控件分别为:“保存”和“关闭”两个按钮,“保存”按钮的单击事件为“DjSave(退出)”,保存数据后关闭当前表单;“关闭”按钮的单击事件为“CloseBill()”,关闭当前表单;6. 设计表单完成后的效果7. 设计完成的运行效果u 设计完成后通过主菜单,打开快速浏览的页面,如图:C带导航条的单表输入说明下面以职员表为例介绍带导航条的单表输入格式的操作方法。职员表
31、的数据库结构如下:职员表(EMPLOYEE)序号字段名称类 型长 度空 值初值描 述1Semployeeidchar11F自增长ID2Semployeecodechar15F职员编号3Semployeenamechar40T职员名称4Bzvarchar100T备注5SphoneChar40T电话6SemailChar60T电子邮件7SsexChar2T性别8scultureChar18学历9sbirthdayChar10T出生日期1. 设计职员表单所需要的控件有:u 10个label控件,显示表单标题和字段标题;u 7个text控件和2个combobox控件,用来用户输入和选择信息。u 8个b
32、utton控件,用来启用点击事件。u 1个dataset控件,用来与数据库进行交互。2. 设计职员表单u 在设计界面上创建10个label控件,标签分别为:“职员表”、“职员编号”、“职员名称”、“电话”、“Email”、“文化程度”、“备注”、“性别”、“出生日期”和“身份证”;u 在设计界面上创建7个text控件,根据需要摆放和绑定控件,请参考上面text控件绑定的示例u 创建两个combobox控件,如图:把当前控件绑定的数据集上当前控件的text值和value值 在combobox控件的属性页中分为:“属性”、“样式”、“事件”三个页签3) 在属性页设置控件ID,数据绑定和取值方式;a
33、) 设置控件ID和数据绑定,请参考text控件的设置方法b) 设置控件的取值方式分为:“标准格式”和“SQL语句”标准格式:是由常数组成的值,SQL语句:是从数据库中读取的数据,当前控件的取值方式为:标准格式,显示值:“男”和“女”,取值:“男”和“女”。4) 在combobox控件的事件页签中设置启用事件a) 设置控件的单击事件:当用户用鼠标单击控件时触发该事件。b) 设置控件的选择事件:当控件的内容发生改变时触发该事件。c) 设置控件的进入事件:当控件获取焦点时触发该事件。d) 设置控件的退出事件:当控件失去焦点时触发该事件。u 创建一个dataset控件,控件ID为:“DsMain”,保
34、存表名为:“employee”,SQL语句为:“select * from employee order by semployeeid”, 设置DsMian数据集的“数据项”页签的字段列表分别是:“semployeeid”、“semployeecode”、“semployeename”、“bz”、“sphone”、“semail”、“sbirthday”、“sculture”、“scardid”和“ssex”,其中要“semployeeid”的右侧属性中的“显示”前面的复选框中的勾去掉,此字段不显示在表单的表格上,在没有表格的情况下可以不设置是否显示属性,设置“事件”属性页中的打开之前事件为:
35、“DsMain.PageSize=1;”,表示一次打开一条记录,滚动之后事件为:“pubdjbh=DsMain.Fields.Fieldsemployeeid.Value”,表示翻页后(移动记录后)将当前记录的主键字段的值赋给全局变量pubdjbh,以便修改保存时能够找到修改哪条记录。uu 创建八个button控件的标签分别为:“第一条”、“上一条”、“下一条”、“最后一条”、“增加”、“删除”和“保存”,“第一条”按钮的单击事件为:“DsMain.FirstPage();”,打开第一条记录,DsMain是绑定到数据集名称;“上一条”按钮的单击事件为:“DsMain.PrevPage();”打
36、开上一条记录,重新打开数据;“下一条”按钮的单击事件为“DsMain.NextPage();”,打开下一条记录,“最后一条”按钮的单击事件为:“DsMain.LastPage();”打开最后一条记录,“增加”按钮的单击事件为:“DsMain.Append();DsMain.fset_cont1();” fset_cont1()函数的流程如图:“删除”按钮的单击事件为:“DelGridRow(DsMain);”,删除数据库的记录,“保存”按钮的单击事件为:“uf_savedj()”,uf_savedj()函数为自定义函数,用来保存数据3. 设计完成后运行效果u 设计完成后点击主菜单进入快速浏览的
37、页面。如图:(二) 主子表输入的示例说明主子表输入的表单一般分为:一对一表单输入、带导航条的表单输入、一对多表单输入等。A主子表输入主子表输入以差旅报销单为例介绍设计方法及过程。要实现的功能是主表保存经手人、出差人、和摘要字段。子表保存出差过程中的每一项费用情况。1设计差旅报销单需要的控件u 四个label 用来显示表单的标题及主表输入字段的标题;u 两个dataset 数据集控件,一个用来做主表保存数据用,一个用来做子表保存数据用;u 三个text控件,用来输入主表的信息;u grid 表格控件用来输入子表的信息;u 三个button控件,“增加行”按钮、“删除行”按钮和“保存”按钮。“保存
38、”按钮用来保存表单的信息。2设计差旅报销单方法u 在设计页面工具栏上四次点击“”按钮,生成四个label控件,根据需要摆放四个控件的位置,依次修改四个控件的标签属性分别为“差旅报销单”、“经手人”、“出差人”、“摘要”,然后修改“差旅报销单”控件的字体颜色为蓝色。u 在设计页面创建两dataset数据集控件分别为DsMain和dssub。设置DsMain数据集的数据源SQL语句是“select * from Bx”,设置DsMian数据集的“数据项”页签的字段列表分别是“bx_jsRegName”、“bx_ccRegName”、“bx_summary”和“bx_id”,其中要“bx_id”的右
39、侧属性中的“显示”前面的复选框中的勾去掉,此字段不显示在页面上。“bx_jsRegName”的默认值为“GetSession(userName=)userName”,表示取当前操作用户。设置dssub1数据集的数据源SQL语句为“select * from BxDetail where bx_id=:DsMain.bx_id”。设置dssub1数据集的“数据项”页签的字段列表分别为“bx_id”、“bxd_begintime”、“bxd_beginplace”、“bxd_endtime”、“bxd_endplace”、“bxd_traffictool”、“bxd_trafficdjs”、“bx
40、d_trafficjes”、“bxd_btdjs”、“bxd_btjes”,对应的中文名称是“bx_id”、“出发日期”、“出发地”、“终到日期”、“终到地”、“交通工具”、“单据张数”、“金额”、“单据张数”、“金额”,其中“bx_id”不显示,“bxd_begintime”和“bxd_endtime”的鼠标双击中选择“SelectDate()”方法,双击时可以选择日期。u 创建三个text控件分别为text1、text2和text3,把text1放在“经手人”label控件的后面做输入经手人时用,text1要绑定的数据是DsMain数据集的bx_jsRegName字段;把text2放在“出
41、差人”label控件的后面做输入出差人时用,text2要绑定的数据是DsMain数据集的bx_ccRegName字段,设置text2的双击事件为“uf_sel()”,在text2上双击时可以选择出差人,“uf_sel()”方法需要自己在自定义函数中设计编写;把text3放在“摘要”label控件的后面做输入摘要内容时用,要把text3控件的宽度拉长一些,以便可以输入更多的摘要内容。u 创建一个grid控件为grid1,设置grid1绑定的数据集为dssub,设置grid1的自定义标题,标题HTML内容为“出发终到交通工具交通补贴出发日期出发地终到日期终到地单据张数金额单据张数金额”,可以gri
42、d表格的多层表头。u 创建三个button控件分别为button1、button2和button3。设置button1的标签为“保存”,点击事件为“DjSave()”,用来保存表单;设置button2的标签为“增加行”,点击事件为“dssub.Append()”,用来为表格增加一行;设置button3的标签为“删除行”,点击事件为“dssub.Delete()”,用来为表格删除选中的当前行,同时删除表格所绑定的数据集的内容的当前行。到此,差旅报销单设计完成,设计界面如下图:3设计完成的运行效果设计完成点击工具栏上的“”按钮打开快速浏览的页面。如图:点击“增加行”,表格增加一行。在表格上选择一行
43、,点击“删除行”,选中的当前行消失。输入完成后,点击“保存”按钮,表单保存成功。B带导航条的主子表输入说明下面以采购订单为例介绍带导航条的单表输入格式的操作方法。采购订单的数据库结构如下:采购订单主表(orderbill)序号字段名称类 型长 度空 值初值描 述1Djbhchar11F自增长ID2sdateChar10F日期3Sdeptidchar11T部门ID4Sdeptnamechar40T部门名称5SdeptcodeChar15T部门编号6SdwidChar11T单位ID7Sdwcodechar15T单位编号8Sdwnamechar40T单位名称9Bzvarchar60T备注10ddiscountdecimal9T扣率11saddressvarChar40T地址采购订单子表(orderbillsub)序号字段名称类 型长 度空 值初值描 述1Djbhchar11F自增长ID2dj_snint4F明细序号3Sitemcodechar15T商品编号4Sitemnamechar40T商品名称5SunitChar6T计量单位6Siunitsint4T计量规格7Dnumint4T数量8Dpricedecimal9T单价9dmoneydecimal9T金额10jehjdecimal9T金额合计11sitemidChar