协同管理软件-C6自定义操作手册(11-27)(DOC103页)资料

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

自定义使用说明______________________________________________________________ 2
一、操作篇________________________________________________________________ 2
(一) 单表输入的示例说明__________________________________________________ 8
(二) 主子表输入的示例说明_______________________________________________ 27
(三) Word类型表单示例说明 _______________________________________________ 33
(四) 连接其他系统示例说明_______________________________________________ 46
(五) 简单的查询功能示例说明_____________________________________________ 51
(六) 表单加流程的示例说明_______________________________________________ 54
(七) 表单加权限的示例说明_______________________________________________ 61
二、基础篇_______________________________________________________________ 64
(一) 表单设计器的常用功能_______________________________________________ 64
(二) 表单设计器的控件功能_______________________________________________ 76
(三) 字段的编辑方式_____________________________________________________ 87
(四) 自定义模块中的数据库维护的使用说明_________________________________ 98
自定义使用说明
一、操作篇
自定义表单类型分为简易表单和高级表单。

其中简易表单主要包括单表输入类型的表单;高级表单主要包括多数据库表输入类、查询类、统计类型、Word类型的表单。

下面将结合具体的例子讲述在C6系统中如何使用自定义模块功能创建自定义表单。

其中自定义操作主界面如图1.1所示,点击系统管理>> 自定义模块进入:
图1.1 自定义模块操作主界面
其中:
1. 新建表单: 点击<新建表单>链接进入表单创建界面(图1.2),其中需要设置表单是否带审批流程及权限控制。

若选中带流程审批复选框,创建表单后,在流程绑定表单列表页中会显示该表单名称,允许对其进行流程设置;若选中权限控制复选框,创建表单后,在权限绑定表单列表页中会显示该表单名称,允许对其进行权限设置。

图1.2 新建表单界面
2. 设计表单:针对新建的表单进行设计。

点击<设计表单>链接进入表单列表界面(图
1.3),然后选择具体的表单名称链接进入表单设计界面,如(图1.4)所示。

图1.3 表单列表界面
图1.4 简单表单设计界面
注:表单创建后,设计界面默认有dataset数据集控件,并且该dataset属性中已经设置了默认的保存的数据库表(该表已经存在于数据库中),并且设置了sql语句,如图1.5所示。

用户可以根据自己的需要进行修改。

图1.5 dataset数据集控件属性界面
3. 菜单绑定:点击<菜单绑定>链接进入表单列表界面(图1.8),然后选择具体的表单名称链接进入菜单绑定界面,如(图1.9)所示。

图1.8 表单列表界面
图1.9 菜单绑定界面
4. 表单维护:对已经存在的表单进行修改。

点击<表单维护>链接进入表单维护界面,然后打开具体的表单进行设计修改,具体界面如(图1.10)所示。

图1.10 表单维护主界面
5. 表单分类维护:点击<表单分类维护>链接进入表单分类维护界面,如(图1.11)所示。

图1.11 表单分类维护主界面
6. 流程绑定:设置自定义表单的审批流程。

点击<流程绑定>链接进入表单列表界面,
然后选择具体的表单名称链接进入流程绑定界面,如(图1.12)所示。

图1.12 流程设置主界面
7. 权限绑定:设置自定义表单的用户操作权限。

点击<权限绑定>链接进入表单列表界面,然后选择具体的表单名称链接进入权限设置界面,如(图1.13)所示。

图1.13 权限设置主界面
下面将结合具体的实例演示常见的表单的创建过程,其中关于数据库表的创建过程请参考“自定义模块中的数据库维护的使用说明”部分,讲解了如何根据自定义表单的需要在C6系统数据库中创建数据库表。

关于如何创建表单以及如何设置表单流程、如何设置表单权限的部分请参考以上章节。

(一) 单表输入的示例说明
单表输入的表单一般分为在表格上直接输入保存和在文本框架输入保存并把记录显示在表格上两种格式,下面以费用类型为例介绍两种格式的操作方法。

费用类型的数据库结构如下:
A.用表格的单表输入
1.设计费用类型表单在表格上直接输入需要的控件有:
◆label 用来显示表单的标题,也可以不要;
◆grid 表格控件用来增加记录和显示记录,此控件必需;
◆dataset 数据集控件用来与数据库进行交互,dataset控件在显示页面和数据库之间
起一个桥梁的作用,在一个表单中如果要与数据库进行交互,dataset数据集控件是
必需的,在费用类型的页面中因要从数据库中读写记录,此控件必需;
◆button 控件用来启动事件,例“保存”按钮、“增加行”、“删除行”等按钮分别可
以启动保存、增加行、删除行等方法来实现功能,此控件必需;
2.设计费用类型表单:
◆打开自定义模块的设计界面,在工具栏上点击“”按钮,便可以在设计界面上
创建了一个label控件,双击label控件,打开label控件的属性页。

如图:
在label控件的属性页上分为“属性”和“样式”两个页签。

1)在属性页签上显示控件ID和标签,设置完成点击“确定”按钮,此控件的属
性页签上的内容便设置成功。

a)设置控件ID,当表单上有多个相同的控件时,控件ID不能重复,建议不
修改控件ID。

b)设置控件标签,标签是显示上控件上的内容,填写需要的内容即可,我们
在标签上填写“费用类型”。

2)在样式页签上可以设置控件的位置、颜色和选项等样式,设置完成点击“确定”
按钮,此控件的样式页签上的内容便设置成功。

a)设置控件的位置,选择定位类型,选择“绝对”,可以选中控件用鼠标在
设计页面上拖动,此控件的位置属性也会随着变化,也可以拖动控件大小,
它的宽和高属性也会随着变化。

选择“静态”不能拖动控件的位置,但可
以拖动控件的大小。

b)然后设置控件的颜色,点击“”按钮打开颜色选择页面,选择自己需
要的颜色,点击“确定”按钮即可。

点击“”打开字体设置页面,根
据自己的需要选择字体、字型、和大小等,点击“确定”按钮即可。

c)设置控件的选项,根据需要设置控件是否活动、是否透明、是否可见及控
件的对齐方式等,“条件格式”是根据表单的数据改变控件的外观。

在自定义表单设计界面的工具栏上点击“”按钮,在设计界面便创建了一个grid 表格控件,双击grid控件,打开grid控件的属性页。

如图:
在grid 控件的属性页上分为“表格”、“样式”和“交叉表”三个页签。

1)在表格页签上可以设置控件ID、数据集名称、和控件的一些选项等。

设置完
成后点击“确定”按钮,表格页签上的内容便设置成功。

a)设置控件的ID,在文本框中输入控件的ID,操作方式和方法同上面的label
控件,所有控件ID的操作都是一样的,在以后的文档中的将不再做详细
说明。

b)选择数据集的名称,如果表单还没有dataset数据集控件,则此选择处为
空,必须先创建一个数据集控件才可以选择,表格上显示的数据都从此数
据集上取。

c)设置表格的选项,选项内容包括是否允许选中单元格,表格自适应高度、
只读、自动增加新记录、表格自适应宽度、可见等,其中只读选项是说在
表格上不能编辑,而我们的此例是在表格直接编辑,所以不能选中此控件
的只读属性。

在选项说明的后面带有“?”表示对此选项的帮助说明,点
击“?”按钮便可以看到说明文档。

2)在表格样式的页签上可以设置表格的位置、表体颜色、标题信息、自定义标题、
标题行高、标题行数、标题HTML等信息。

设置完成点击“确定”按钮,表
格样式页签上的内容便设置成功了。

a)设置控件的位置,参照label控件中设置控件位置的方式和方法,这里不
做详细说明。

b)设置表体的颜色,也就是设置表格文字的字体和字体颜色,具体的操作方
法参照label控件中设置控件的颜色。

c)设置标题信息,也就设置表格标题信息的字体和字体颜色,具体操作方法
同上。

d)设置自定义标题。

在此示例中不用自定义标题,在这里不做详细说明。


定义标题在主子表输入的示例中会做详细说明。

3)在交叉表的页签上可以设置生成交叉表的信息。

在此示例中表格只用来做输入
和显示记录,固在这里不做使用说明,在统计功能的示例中会做详细介绍。

在自定义表单设计界面的工具栏上点击“”按钮,在设计界面便创建了一个dataset 数据集控件,双击dataset控件,打开dataset控件的属性页。

如图:
在dataset属性页上分为“数据集合”、“数据项”、“事件”三个页签。

13.在数据集合的页签上可以设置控件ID、打开次序、保存表名、是否保存、和单据展现
SQL等信息。

◆设置控件ID,请参照label属性页中的设置控件ID的方法。

◆设置打开次序,控制同一表单上的多个数据集的打开次序,数字小的就先打开,即
设置为1的就先打开;如果多个数据集的打开次序相同,则按默认次序打开;如果
一个数据集调用另一个数据集的数据,要保证被调用数据集先打开。

◆设置保存到的表名,在保存表名的文本框中可以输入要保存到的表名,也可以选择
表名,我们的费用类型要保存到FeeType表,我们直接在文本框中输入FeeType。

◆设置是否保存,表单上的数据集默认都保存,如果数据集的数据只当参数传递用,
那可以选择不保存到数据库,以节省数据库的资源。

◆设置单据展现SQL,此SQL也就是数据集的数据来源,在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字段的值则从数据源中的同名字段中来,sub_time1则不用管,如果sub_time1是在数据项中,而在数据源的SQL中,那么sub_time1字段的值则为空。

a)增加字段,点击“增加”按钮,会在左侧的字段列表中增加一行,选中新
增加字段,在右侧修改此字段的属性,如果把此字段设置为不显示,那么
此字段将不会显示在表单的表格上。

b)批量增加字段,点击“批量增加”按钮,打开选择字段的页面,选择自己
需要的字段,双击字段可以进行多选,点击“确定”按钮便返回所选择的
字段。

在字段列表上选择字段后,在列表右侧可以修改字段的属性。

c)删除字段,在字段列表上选择要删除的字段,点击“删除”按钮,此字段
将在数据集上消失。

15.事件页签,事件页签主要设置数据集在操作中处发事件。

a)打开之前:打开数据集之前触发该事件。

b)打开之后:打开数据集之后触发该事件。

c)提交之前:提交之前触发该事件。

d)提交之后:提交之后触发该事件。

e)滚动之前:滚动之前触发该事件。

f)滚动之后:滚动之后触发该事件。

g)滚动之后:滚动之后触发该事件。

◆在自定义表单设计界面的工具栏上点击“”按钮,在设计界面便创建了一个button
控件,双击button控件,打开button控件的属性页。

如图:
在button的属性页上分为“属性”、“样式”、“事件”三个页签。

1)属性页签可以设置button的控件ID和标签。

a)设置button的控件ID和标签的方法请参照设置label的控件ID和标签的
方法,在标签的文本框内输入“保存”,此按钮做保存表单用。

2)样式页签主要可以设置button的位置、颜色、边框风格、和其它选项等信息。

a)Button的样式页签上设置的内容同label控件样式页签上的内容大体相同,
操作方法请参照label控件。

3)事件页签主要设置button的单击事件。

a)点击事件页签上的“”按钮,打开选择函数的页面,根据函数的说明
选择需要的函数,点击“确定”按钮则返回到单击事件的文本框内。

此示
例选择的函数是“GridSave(dataset1)”
根据“保存”按钮的设置方法,再增加“增加行”和“删除行”按钮,两个新按钮的单击事件分别为“dataset1.Append()”和“DelGridRow(dataset1)”。

现在费用类型示例的所有控件都设置完成,下面是费用类型的设计界面,如图:
点击工具栏上的“”按钮,会提示“表单sn不能为空,请进入表单属性窗口输入表单SN!”,然后打开表单属性窗口,也可以点击工具栏上的“”按钮直
接打开表单属性窗口,下面是表单属性的界面,如图:
在属性页签上设置表单SN,在表单SN的文本框内输入“FeeType”,表单名称中输入相应的表单名称,选择表单分类为测试分类,其它选项为默认。

在表单控制页签上设置主键字段的类别,选择字段类别是“自动编号ID值”,
选择表单进入时的状态为“修改”状态,主键字段名为“Fee_id”,其它选项为默
认。

点击表单属性窗口中“确定”按钮,表单属性设置完成。

然后再点击工具栏上的“”按钮,表单保存成功。

注:
1.在选中的控件上双击均打开该控件的属性页。

2.事件不支持双引号,双击鼠标可选择函数。

3.设计完成后浏览效果:
在费用类型的示例表单设计完成后,通过“菜单绑定”进入菜单设置页面,将该自定义菜单放到某父菜单下,然后快速浏览页面。

如图:
点击“增加行”按钮,表格增加一行,可以在新增加的行中直接输入数据。

点击“删除行”按钮,则删除表格的当前选中行。

点击“保存”按钮,表格上的数据则更新成功。

B.用列表和卡片的单表输入
下面以单位表为例介绍列表和卡片的单表输入格式的操作方法。

单位表的数据库结构如下:
单位表分为两个表单来实现,单位列表和单位卡片,单位列表主要显示数据库中的数据,单位卡片主要对数据的增加、修改或删除;
1. 设计单位列表单所需要的控件有:
◆1个Label控件用来显示表单的标题,也可以不要;
◆1个Grid控件用来显示数据,此控件必需;
◆1个dataset控件用来与数据库交互,dataset在表单显示页和数据库之间起一个桥梁
作用,在一个表单中如果要与数据库交互,dataset控件是必需有的,在单位列表表单中要显示数据库数据,此控件必需;
◆2个Button控件用来启用事件,例如:“增加”和“删除”按钮可以分别启用增加
和删除等方法来实现功能,此控件必需;
2. 设计单位列表表单
◆在自定义表单的设计界面的工具栏上点击“”按钮,便在设计界面创建一个Label
控件,双击Label控件,打开Label控件的属性页,如图:
在Label控件属性页中分为:“属性”和“样式”两个页签;
1)在属性页签上设计控件ID和标签;
a)设置控件ID,当表单上有多个相同的控件时,控件ID不能重复。

b)设置控件标签,标签是显示上控件上的内容,填写需要的内容即可,我们在标签上填写“单位列表”。

◆创建一个grid控件,如图:
在grid控件属性页中分为:“表格”、“样式”和“交叉表”三个页签;
2)在“表格”页签中设置控件ID、数据集名称和控件的一些选项;
a)设置控件ID,请参考label控件的设置方法;
b)选择数据库名称,如果表单中还没有dataset控件,则此选择处为空,必须创建一个dataset数据集控件才可以选择,表格显示的数据是丛dataset
数据集中取的;
c)设置表格控件的选项,选项内容包括:“允许选中单元格”、“表格自适应高度”、“表格自适应宽度”、“只读”、“自动增加记录”和“可见”,“允许
选中单元格”:当前表格是否有焦点,相当于只读属性;“表格自适应高度”:
表格的高度和显示器显示屏幕的高度一致;“表格自适应宽度”:表格的宽
度和显示器显示屏的宽度一致;“可见”:表格控件在表单上是否显示;“只
读”:在表格上不能直接编辑;“自动增加记录”:可在表格的最后一行的
任意单元格中按下键盘上的【↓】键,即可自动增加新记录;
3)在“交叉表”页签上可以设置生成交叉表的信息。

在此示例中表格只用来做输
入和显示记录,用到时做详细说明;
◆创建一个dataset控件,如图:
在dataset控件的属性页中分为:“数据集合”、“数据项”和“事件”三个页签;
1)在数据集合页签中设置控件ID,保存表名,打开次序,是否保存和SQL语句;
a)设置控件ID,请参考label控件的设置方法;
b)选择控件的打开次序,控制同一表单中多个数据集的打开次序,数字小的
就先打开,即设置为1的就先打开;如果多个数据集的打开次序相同,则
按默认次序打开;如果一个数据集调用另一个数据集的数据,要保证被调
用数据集先打开。

c)设置保存到的表名,在保存表名文本框中输入要保存到的表名,把数据保
名;
d)设置单据展现SQL,此SQL也就是数据集的数据来源,
e)设置是否保存,表单上的数据集默认都保存,如果数据集的数据只当参数
传递用,那可以选择不保存到数据库,以节省数据库的资源。

2)在数据项页签中设置字段信息,左侧显示数据集上的字段列表,右侧可以设置
每个字段的属性,设置字段的数据类型、修改字段的显示名称、及字段是否显示等;另外,数据集的数据源与数据项的关系是采用同名字段复制的方法,例如在数据源的SQL中有sdwid、sdwcode和sname三个字段,而在数据项列表中也有sdwid 和sdwcode字段,那么数据项的sdwid 和sdwcode字段的值则从数据源中的同名字段中来,sname则不用管,如果sname是在数据项中,而
在数据源的SQL中,那么sname字段的值则为空。

同名字段复制流程如图:
a)增加字段,点击“增加”按钮,会在左侧的字段列表中增加一空行,选中
新增加字段,在右侧填写或修改此字段的属性
b)批量增加字段,点击“批量增加”按钮,打开选择字段页面,选择自己需
要的字段,双击字段可以进行多选,点击“确定”按钮,将选中的字段返
回到字段列表中。

c)删除字段,在字段列表中选择要删除的字段,点击“删除”按钮,此字段
将在数据集上消失。

d)设置是否显示,当前字段是否在表单的表格中显示。

e)鼠标的双击事件,在表格上双击触发的事件,填写
“DjOpen('sh_y_input1_s',dssub1,'修改') ;dssub1.Open()”,“DjOpen“:重
新打开一个表单,“sh_y_input1_s”:是要打开表单的名称(表单SN);
“dssub1”:要传的数据集对象;“修改”:是以哪种模式打开表单, 可为(默
认/新增/修改/展现),dssub1.Open()是重新打开数据集;
3)在数据集的事件页签中设置数据集在操作中的触发事件
a)打开之前事件:在打开数据集之前触发该事件
b)打开之后事件:在打开数据集之后触发该事件
c)提交之前事件:在提交数据集之前触发该事件
d)提交之后事件:在揭底数据集之后触发该事件
e)滚动之前事件:在数据集的数据移动之前触发该事件
f)滚动之后事件:在数据集的数据移动之后触发该事件
创建两个button按钮,如图:
在button控件的属性页中分为:“属性”、“样式”和“事件“三个页签
1)在button控件的属性页中设置控件的ID和标签,请参考label控件的设置方

a)设置当前表单的按钮的标签分别为:“增加”和“删除”
2)在事件页中设置控件的单击事件
b)设置控件的单击事件,点击“”按钮,打开自定义函数页,定义一个
函数,在button控件的单击事件上调用,“增加”按钮的单击事件为:
“DjOpen('sh_y_input1_s',dssub1,'新增') ; dssub1.Open();”,打开单位卡片表
单增加记录;“删除”按钮的单击事件为:“DelRow(dssub1)”,是删除当
前选中的记录,
3. 设计表单完成后的效果
4. 设计单位卡片表单所需要的控件有:
◆四个label控件,用来显示表单标题和字段标题
◆三个text控件,用来输入信息
◆一个dateset控件,用来与数据库交互
◆两个button控件分别为:“保存”和“关闭”
5. 设计单位卡片表单
◆创建四个label控件,label控件的标签分别为:“单位卡片”、“单位编号”、“单位
名称”和“备注”,其中“单位卡片”控件的字体颜色为蓝色。

◆创建三个text控件,如图:
在text控件属性页中分为:“属性”、“样式”和“事件”三个页签
1)在属性页设置控件的ID默认值和数据绑定
a)设置控件的ID和默认值,请参考label控件的设置方法;
b)设置绑定数据,例如:把text1控件绑定到DsMain数据集的sdwcode字
段上,表示保存时text1的值保存到sdwcode字段,也可以点击“选择字
段”按钮,打开选择字段的页面,选择要绑定到控件的字段,点击“确定”
返回;
2)在事件属性页设置控件的触发事件
a)设置控件的单击事件:单击控件时触发该事件
b)设置控件的双击事件:双击控件时触发该事件;
c)设置控件的进入事件:当控件获取焦点时触发该事件
d)设置控件的退出事件:当控件失去焦点时触发该事件
e)设置控件的按键事件:当用户按键时触发该事件
◆创建一个dataset控件,数据集的ID为:“DsMain”,保存表名为“dw”,SQL语句
为:“select sdwid,sdwcode,sdwname,bz from dw”,设置DsMian数据集的“数据项”
页签的字段列表分别是:“sdwid”、“sdwcode”、“sdwname”和“bz”,在表单没有
grid控件时,可以不考虑是否显示当前字段,因为DsMain控件的字段是绑定到其
它控件上;
◆创建四个button控件分别为:“保存”和“关闭”两个按钮,“保存”按钮的单击
事件为“DjSave('退出')”,保存数据后关闭当前表单;“关闭”按钮的单击事件为
“CloseBill()”,关闭当前表单;
6. 设计表单完成后的效果
设计完成后通过主菜单,打开快速浏览的页面,如图:
C.带导航条的单表输入说明
下面以职员表为例介绍带导航条的单表输入格式的操作方法。

职员表的数据库结构如下:
1. 设计职员表单所需要的控件有:
◆10个label控件,显示表单标题和字段标题;
◆7个text控件和2个combobox控件,用来用户输入和选择信息。

◆8个button控件,用来启用点击事件。

◆1个dataset控件,用来与数据库进行交互。

2. 设计职员表单
◆在设计界面上创建10个label控件,标签分别为:“职员表”、“职员编号”、“职员
名称”、“电话”、“Email”、“文化程度”、“备注”、“性别”、“出生日期”和“身份
证”;
◆在设计界面上创建7个text控件,根据需要摆放和绑定控件,请参考上面text控件
绑定的示例
◆创建两个combobox控件,如图:
在combobox 控件的属性页中分为:“属性”、“样式”、“事件”三个页签 3) 在属性页设置控件ID ,数据绑定和取值方式;
a ) 设置控件ID 和数据绑定,请参考text 控件的设置方法
b ) 设置控件的取值方式分为:“标准格式”和“SQL 语句”标准格式:是由
常数组成的值,SQL 语句:是从数据库中读取的数据,当前控件的取值方式为:标准格式,显示值:“男”和“女”,取值:“男”和“女”。

4) 在combobox 控件的事件页签中设置启用事件
a) 设置控件的单击事件:当用户用鼠标单击控件时触发该事件。

b) 设置控件的选择事件:当控件的内容发生改变时触发该事件。

c) 设置控件的进入事件:当控件获取焦点时触发该事件。

d) 设置控件的退出事件:当控件失去焦点时触发该事件。

◆ 创建一个dataset 控件,控件ID 为:“DsMain ”,保存表名为:“employee ”,SQL
语句为:“select * from employee order by semployeeid ”, 设置DsMian 数据集的“数据项”页签的字段列表分别是:“semployeeid ”、“semployeecode ”、“semployeename ”、“bz ”、“sphone ”、“semail ”、“sbirthday ”、“sculture ”、“scardid ”和“ssex ”,其中要“semployeeid ”的右侧属性中的“显示”前面的复选框中的勾去掉,此字段不显示在表单的表格上,在没有表格的情况下可以不设置是否显示属性,设置“事件”属性页中的打开之前事件为:“DsMain.PageSize=1;”,表示一次打开一条记录,滚动之后事件为:“pubdjbh=DsMain.Fields.Field['semployeeid'].Value ”,表示翻页后(移动记录后)将当前记录的主键字段的值赋给全局变量pubdjbh,以便修改保存时能够找到修改哪条记录。

◆ 创建八个button 控件的标签分别为:“第一条”、“上一条”、“下一条”、“最后一条”、
“增加”、“删除”和“保存”,“第一条”按钮的单击事件为:“DsMain.FirstPage();”,打开第一条记录,DsMain 是绑定到数据集名称;“上一条”按钮的单击事件为:“DsMain.PrevPage();”打开上一条记录,重新打开数据;“下一条”按钮的单击事件为“DsMain.NextPage();”,打开下一条记录,
“最后一条”按钮的单击事件为:。

相关文档
最新文档