1、金蝶桌面文档一、在编辑界面通过“编辑表信息”来设置分录列的隐藏(hide)或锁定(lock)属性后,若打开单据后发现并没有生效,此时可通过脚本来解决。解决方案具体方法如下(采购收货单分录“项目号”字段为例):步骤 1 在采购收货单编辑界面,点击“扩展-模板方法-加载值(loadFields)”。步骤 2 在加载值(loadFields)后置脚本添加如下脚本:pluginCtx.getKDTable(“kdtEntry“).getColumn(“projectNumCol“).getStyleAttributes().setHided(true); pluginCtx.getKDTable(“k
2、dtEntry“).getColumn(“projectNumCol“).getStyleAttributes().setLocked(true);第一行设置是否隐藏的脚本,第二行设置是否锁定的脚本。参数说明:“kdtEntry“ :采购收货单分录表格名称“projectNumCol“ :项目号列名 setHided(true):可选 true或 false,分别表示隐藏、不隐藏 setLocked(true):可选 true或 false,分别表示锁定、不锁定步骤 3 保存脚本并启用方案。二、界面上为新增字段增加了一个控件,设置位置时是和周围的控件保持了合理的间距,但是一打开菜单,就发现位置
3、错乱了,也不随界面缩放而合理的。解决方案这是因为 EAS界面的布局方式一般都是 KDLayout样式,控件的位置是由“锚定”确定的。可在 dep设计界面里双击控件,会弹出一个控件的属性设置窗口,其中有一行是锚定的设置,点击锚定值,会弹出“控件锚定约束设置”窗口,具体设置可参考该控件同一行或同一列其他控件的锚定设置。三、修改采购订单,在列表界面进行绑定时找不到数据源中新增的查询字段解决方案业务单元中定义的数据源不是列表界面绑定的数据源 Query,也就是说随采购订单引入的业务数据源是“com.kingdee.eas.scm.sm.pur.app.F7PurOrderForQuery“,并不是列表
4、界面绑定的数据源,因此容易引发误解。正确的做法是另外单独导入名为“com.kingdee.eas.scm.sm.pur.app.PurOrderQuery“的数据源,并在此数据源上修改,再进行数据绑定时就能选择到。四、通常在分录表格中,自定义的列可以随意调整其顺序;但对于系统自带的列,由于系统版本较低或者单据本身问题等原因,调整其顺序并不会生效。解决方案可通过 DEP脚本实现分录列顺序的调整。以销售出库单为例,将分录中的“批次”调整到“计量单位”之后。步骤 1 在销售出库单编辑界面,点击“扩展-模板方法-界面加载(onLoad)”。步骤 2 在界面加载(onLoad)后置脚本添加如下脚本:pl
5、uginCtx.getKDTable(“detailTable“).moveColumn(4, 8); “detailTable “:销售出库单分录表格名称 参数”4”:批次列调整前的索引位置(索引从 0开始) 参数”8”:批次列调整后的索引位置(计量单位索引是 7,需调整到计量单位之后所以为 8)如下图所示。步骤 3 保存脚本并启用方案,打开单据后修改生效。说明:若需调整多列,复制添加多行脚本即可,注意修改对应的索引位置,如上例的“4”和“8。五、在脚本里添加了监听器,例如:单据执行保存的时候,报如下中断错误:解决方案在监听器里重载 equal方法即可。脚本示例如下: 六、在 DEP 中对含
6、有分录的单据修改其分录的列名,在方案启用后为什么修改不生效?解决方案可通过脚本实现对分录列名的修改(以销售订单分录“数量”修改为“数量 DEP”为例)。步骤 1 在 DEP中打开编辑界面,点击“扩展-模板方法-加载值(loadFields)”。步骤 2 在加载值(loadFields)后置脚本添加如下示例脚本:pluginCtx.getKDTable(“kdtEntries“).getHeadRow(0).getCell(“qty“).setValue(“数量 DEP“); “kdtEntries“:销售订单分录表格名称 “qty“:销售订单分录表格“数量”列名称 “数量 DEP“:需要修改后
7、的显示名称如下图所示。步骤 3 保存脚本并启用方案。效果如下。说明:若需对多列进行修改,可复制添加多行脚本,只需修改对应的列名及需显示的名称即可,如上例的“qty”和“数量 DEP”。 七、使用 dep之后单据上右键都没有了“表格设置”菜单解决方案经 DEP修改过的单据,DEP 启用时,列表界面不支持右键表格设置,请使用查询界面的表格设置。八、DEP 新增字段的数据来源选择不到用户解决方案用户:选择 基础系统-权限系统-用户九、使用动态扩展平台 DEP会影响表,但不会影响索引解决方案如果使用 dep新增了字段,相当于 DDL,使表多了个字段,但是不会影响基于已有字段的索引;对于删除字段操作,d
8、ep 不会真正的删除字段,数据仍会保留,也不会删除表,因此表和索引是不会有影响。十、获取控件的脚本解决方案界面的控件可以通过 get + 控件类型 ( 控件名 )的方式获得,比如获取单据分录的表格可以这样 pluginCtx.getKDTable(“kdtEntries“)。控件 示例f7 控件 pluginCtx.getKDBizPromptBox(“name“);容器控件 pluginCtx.getKDContainer(“name“);textField 控件 pluginCtx.getKDTextField(“name“);KDTextArea 控件 pluginCtx.getKDTe
9、xtArea (“name“);KDPasswordField 控件 pluginCtx.getKDPasswordField (“name“);KDFormattedTextField 控件 pluginCtx.getKDFormattedTextField (“name“); KDDateTimeField 控件 pluginCtx.getKDDateTimeField (“name“);KDCheckBox 控件 pluginCtx.getKDCheckBox(“name“);KDRadioButton 控件 pluginCtx.getKDRadioButton (“name“);KDM
10、enu 控件 pluginCtx.getKDMenu(“name“);KDMenuItem 控件 pluginCtx.getKDMenuItem(“name“);KDTree 控件 pluginCtx.getKDTree(“name“);KDTreeView 控件 pluginCtx.getKDTreeView(“name“);KDList 控件 pluginCtx.getKDList(“name“);KDTimePicker 控件 pluginCtx.getKDTimePicker(“name“);KDDatePicker 控件 pluginCtx.getKDDatePicker (“nam
11、e“);KDTabbedPane 控件 pluginCtx.getKDTabbedPane (“name“);十一、将应收单编辑界面分录字段“应收科目”的“required”属性勾选后,仍然不能实现将该字段设置为必录,且字段底色也不显示为黄色,该如何处理?解决方案通过 DEP设置字段的必录属性,需要通过脚本实现,此案例可参考以下步骤进行脚本的设置。一般情况下,单据分录字段的“required”属性勾选后,虽然不能实现字段必录的逻辑,但可以将字段底色显示为黄色,如果不能显示为黄色,也可参考以下步骤二,通过脚本设置。步骤 1 设置应付单分录中的“应收科目”为必录项。1. 点击应付单编辑界面的“扩展
12、”图标,进入扩展定义界面。2. 在“扩展点”页签选择“操作-保存(ActionSubmit)”扩展点,并将鼠标定位到“前置脚本”的输入框,用于输入提交操作之前需要执行的脚本,如下图所示。脚本也可以在“保存(ActionSave)”扩展点编写,请根据实际的业务需求设置。3. 在“上下文”页签中通过单击左侧导航树提供的方法来快速获取如下脚本内容。new com.kingdee.eas.ep.client.util.NullVerifier(pluginCtx.getKDTable(“kdtEntry“),“account“).verify();如下图所示:new com.kingdee.eas.e
13、p.client.util.NullVerifier(pluginCtx.getKDTable(“kdtEntry“),“account“).verify();如下图所示: new com.kingdee.eas.ep.client.util.NullVerifier().verify();可通过双击“通用-控件值为空判断”获取。 pluginCtx.getKDTable(“kdtEntry“)可通过双击“界面控件-KDTalledPane1-KDPanel1-KDEntry”获取。因应付单有三个分录,对于各个分录的获取,可分别双击“KDTalledPane1”下的“KDPanel1”、“KD
14、Panel2”、“KDPanel3”下对应的分录名称获取。 “account“为需要设置的分录字段名称,可通过编辑界面的“表格属性”查看获取。 4. 点击保存图标,保存脚本。步骤 2 设置分录字段底色为黄色。1. 点击应付单编辑界面的“扩展”图标,进入扩展定义界面。2. 在“扩展点”页签选择“模板方法-界面加载(onLoad)”扩展点,并将鼠标定位到“后置脚本”的输入框,用于输入界面加载后需要执行的脚本,如下图所示。3. 在后置脚本中输入如下脚本信息。pluginCtx.getKDTable(“kdtEntry“).getColumn(“account“).setRequired(true);
15、“account“需要设置为黄色底色的分录字段名称,请根据实际需要修改。4. 单击保存图标,保存脚本。十二、在给某个用户授权时,只给他授了“系统平台”的权限,用户名登陆时可以看到“人力资源-基础资料”下的菜单,可以看到的菜单都是通过 DEP二次开发实现的,如下图所示。解决方案原因分析:通过 DEP开发的单据没有定义权限,不用分配权限即可见。解决方法:经过分析,“人力资源-基础资料”下的单据均绑定的是“aux_view”权限,如果是使用 BOS工具开发,在“aux_view”权限的绑定对象中加入新增基础资料的 UI对象即可,如果是使用 DEP开发,则请执行以下步骤新增对应基础资料的权限。新增权限
16、各项参数的定义,可参考标准产品类似单据权限的定义进行设置。例如,本案例中,可以通过BOS工具打开“aux_view”,参考该权限项参数的定义来设置新增 HR基础资料单据的权限。“aux_view”对应的权限文件为“hr_personal_permission”。步骤 1 双击打开 DEP方案中的权限编辑界面,点击“权限项列表”处对应的“新增”按钮,新增权限项。步骤 2 输入权限项的基本详细信息,如下图所示。 名称:权限项的名称 别名:权限项的别名 组别:权限项所在的路径。 组名:根据组别生成。 实体对象:新增单据实体对象。 步骤 3 设置权限的引用对象。点击“引用对象”对应的“新增”按钮,选择
17、新增单据对应的 UI对象。这里可以选择发布菜单对应的UI。步骤 4 设置权限的扩展属性,如下图所示。步骤 5 点击工具栏的“保存”图标,保存所定义的权限。步骤 6 使用 administrator用户登录 EAS系统,选择“系统-客户化菜单编辑”进入客户化菜单编辑界面。步骤 7 在“客户化菜单”列表中选中新增单据的菜单,在页面右侧将显示该菜单的信息,如下图所示。步骤 8 单击“功能”对应的 F7按钮,选择该菜单需要绑定的功能权限,如下图所示。步骤 9 单击“客户化菜单”列表对应的保存图标,保存信息。十三、用动态扩展平台,在“人力资源管理-员工管理-员工信息-个人信息”页签,增加了一个字段“健康
18、证有效期”。增加成功后,输入内容,保存。再打开,发现输入的内容没有保存上。解决方案遇到该问题,请参考以下步骤解决。步骤 1 确保编辑界面的字段已经正确绑定了对应的实体字段。步骤 2 安装 DEP的最新补丁,并安装 HR的补丁 PT042226十四、利用 DEP在新员工入职单据增加了一个字段(入职导师),后把该方案删除了。再次进入新员工入职单据做申请,保存后提示中断,出现如下错误信息:cannot find field CFTest at table T_HR_EmpEnrollBizBillEntry, please check your metadata原因分析:经过分析,客户之前使用界面定
19、制工具对新员工入职单新增了名称为“Test”字段,升级到 DEP环境后,将系统自动生成的名称为“bizconfigure”的扩展方案删除,重新建立方案对新员工入职单进行定制,导致系统提示找不到通过界面配置工具定制的内容。解决方法:该问题需要通过还原界面配置工具定制的内容,然后重新升级到 DEP环境来解决。步骤 1 确认现场环境是否安装了 DEP最新补丁,如果没有,请先安装。步骤 2 在 EAS环境中调出数据库查询分析器,执行以下 SQL语句,还原环境。update t_fw_commonlistener set fenable = 1 where (fClassName=com.kingdee
20、.eas.ep.updater.UpdateToSP2 and fmethodName=update) or (fClassName=com.kingdee.eas.ep.updater.TranslateToCustomScheme and fmethodName=translateToCustom)注意:该 SQL语句仅使用在已经明确是界面配置工具环境升级到 DEP环境异常导致的问题处理。步骤 3 重新启动 EAS服务器,系统将自动升级到 DEP环境,重新生成名称为“bizconfigure”的扩展方案。经过以上步骤,问题已经解决。温馨提示:DEP 是界面配置工具的替代产品,如需对标准产品
21、进行定制,建议您使用 DEP进行。原来通过界面配置工具进行二次开发的内容,升级后,自动生成在 bizconfigure方案中,如需对其中的内容进行进一步的开发,请在该方案下进行,不建议新建方案对界面配置工具开发过的单据进行开发。十五、员工明细表表头字段修改后,需要将员工明细表查询过滤界面过滤条件中对应的字段名称,如下图所示,将“职务”修改为“最新职务”。员工明细表查询过滤界面显示的字段名称可以通过修改查询数据源中字段的别名来修改,具体操作步骤如下。步骤 1 由于找不到员工明细表的业务单元,无法通过导入业务单元的方式直接导入员工明细表的信息,可通过直接导入元数据的方式将员工明细表的数据源导入到
22、DEP方案中。在 DEP方案中选择某个已经导入的业务单元,例如,“职员_员工信息”,单击鼠标右键,选择“导入-导入数据源”,如下图所示。步骤 2 在弹出的“选择 Query”页面查找“职员明细表”,并导入,如下图所示。步骤 3 打开导入的数据源,选择“字段页签”,修改字段的别名,如下图所示。步骤 4 修改完成后,启动动态扩展方案,查看修改后的结果,如下图所示。十六、使用动态扩展平台在领料出库单中新增了一个 F7字段,想在套打中打印出来,在业务单元中导入的数据源中添加该字段后,获取不了该字段,请问领料出库单默认套打模板对应的数据源是哪个?解决方案该问题中所涉及到的领料出库单的业务数据源有如下几种
23、: com.kingdee.eas.scm.im.inv.MaterialReqBillQuery:领料出库单序时簿界面对应的数据源,及随业务单元一起导入的 Query。 com.kingdee.eas.scm.im.inv.MaterialReqPrintQuery:领料出库单默认套打模板对应的数据源。 com.kingdee.eas.scm.im.inv.MaterialReqSubcontractPrintQuery:领料出库单同时又是委外发料单,此数据源为委外发料单默认套打模板对应的数据源。 该实例中应该在“com.kingdee.eas.scm.im.inv.MaterialReqP
24、rintQuery”中添加新增的字段,才能在套打模板中获取该字段。十七、标准系统提供的销售出库单分录字段太多,客户要求针对不同的用户,分别隐藏不同的字段。通过新建布局方案,在布局方案中通过“分录属性”对分录中的字段进行设置时,因为分录字段过多,系统页面显示不完整,如何对未显示的字段进行设置?解决方案该问题可以通过在布局方案中建立规则事件,设置字段的属性来实现,具体实现步骤如下:步骤 1 打开单据界面布局的编辑界面,点击页面左上角的“事件”按钮,如下图所示。图 1 新建事件步骤 2 进入事件管理器,在左侧的组件树下选择分录中的某个字段,点击右上角的新增图标,在该字段上新增规则事件,如下图所示。图
25、 2 增加规则事件步骤 3 在“业务规则定义”界面定义如下图所示规则。图 3 定义规则 选择规则事件:选中“加载”对应的单选按钮。 操作名称:采用系统默认值即可。 相应的操作:从下拉选项中选择“设置字段属性”。 选择“不使用条件”对应的单选按钮。 步骤 4 单击“新增”按钮,参考下图所示设置需要隐藏的字段。图 4 设置需要隐藏的字段 字段名称:选中单元格,可以从下拉选项中选择单据需要隐藏的字段。 字段属性:选中单元格,从下拉选项中选择“可用”属性。 值:选中单元格,从下拉选项中选择“否”。 十八、标准系统提供的销售出库单分录字段太多,客户要求隐藏其中的一部分字段,该如何实现?解决方案设置分录字
26、段的隐藏属性可通过在单据编辑界面的“编辑表信息”进行设置,具体方法如下:步骤 1 修改单据的编辑界面,在分录列表区域单击鼠标右键,选择“编辑表信息”,如下图所示。图 1-1 编辑表信息步骤 2 进入“表格设置”界面,如下图所示。图 1-2 表格设置界面步骤 3 在“表列”下选择需要隐藏的列,页面右侧将显示该列的属性,勾选“hide”属性对应的复选按钮,即可将该列设置为隐藏,如下图所示。十九、在基础资料“城市”中新增字段“所属国家”,需要设置其的默认值为“中国”,该如何实现?解决方案支持在界面布局方案中通过控件属性设置字段的默认值。步骤 1 在单据的布局方案中点击新增图标,在弹出的界面中输入布局
27、方案的信息,如下图所示。图 1-1 新建布局方案步骤 2 进入布局方案编辑界面后,双击字段控件,打开其属性设置界面,在该界面中设置字段的属性值,如下图所示。图 1-2 设置控件的默认值属性二十、在 DEP中新增多级明细基础资料,发布后需要对基础资料中的资料类别名称进行修改,如下图所示,该如何处理?图 1-1 修改多级基础资料的资料类别名解决方案多级基础资料中资料类别的名称可以通过修改对应的界面元数据中的界面控件名称来实现,具体步骤如下:步骤 1 禁用方案。步骤 2 打开多级基础资料编辑界面,如下图所示。图 1-2 打开对应的编辑界面步骤 3 点击修改图标,修改界面的基本布局。步骤 4 点击界面
28、的空白区域,弹出 UI控件的属性界面。 图 1-3 点击界面的空白区域步骤 5 在 UI控件的标题属性中输入新的名称,并将鼠标移到页面其它地方点击,使属性值修改生效。图 1-5 修改控件的标题属性步骤 6 关闭 UI控件属性页面,点击图标,保存修改。步骤 7 启动动态扩展方案,验证修改是否成功。二十一、在 DEP中新增基础资料名称为“岗位类别”的基础资料,通过发布菜单,将该基础资料发布到“基础数据管理辅助资料”下,菜单名称为“岗位类别”,发布菜单成功后,需要将其修改为“岗位类别查询”,如何实现?可通过如下方法实现对客户化开发菜单名称的修改。步骤 1 以 administrator用户登录业务系统。步骤 2 选择“系统客户化菜单编辑”菜单,进入“客户化菜单编辑”界面,如下图所示。图 1-1“客户化菜单编辑”界面