Epicor ERP 客户化开发入门:Form 与 Dashboard 定制

← 返回首页

客户化开发概述

Epicor ERP 提供了强大的定制开发能力,允许在不修改标准代码的前提下对系统进行扩展。所有的客户化修改都存储在数据库中,与标准代码分离,这保证了版本升级时的兼容性。

主要的定制开发方式包括:

表单定制基础

进入定制模式

在任意 Epicor 标准界面中,点击菜单栏的「定制」按钮(或快捷键 Ctrl+D),即可进入定制模式。界面会切换到编辑状态,左侧出现工具箱(Toolbox)。

常用定制操作

  1. 添加标签:从工具箱拖拽 Label 控件到表单
  2. 添加字段绑定:将文本框、数值框等控件绑定到 EpiDataView 的字段
  3. 添加按钮:创建按钮并绑定点击事件处理程序
  4. 调整布局:修改控件的位置、大小、可见性
  5. 添加选项卡:在现有选项卡组中增加新的 Tab 页面

添加 UD 字段

当标准字段无法满足业务需求时,可以通过以下步骤添加自定义字段:

1. 进入「公司 → 用户自定义字段维护」
2. 选择目标表(如 OrderHed、Part 等)
3. 点击「添加字段」
4. 设置字段名(以 "UD_" 或 "Character01" 等前缀命名)
5. 选择数据类型(字符、数值、日期等)
6. 设置字段长度和默认值
UD 字段命名要有业务含义。Epicor 提供了两类 UD 字段:系统预留的(如 Character01-50)和用户自定义命名的。推荐使用自定义命名以提高可读性,但在高频率查询场景下,使用系统预留字段性能略优。

Form Event 编程

通过 Form Event 可以在界面事件中注入 C# 代码:

// 示例:在销售订单行数量变更时自动计算交货日期
private void OrderDtl_OrderQty_ValueChanged(object sender, EventArgs e)
{
    var edv = (EpiDataView)oTrans.EpiDataViews["OrderDtl"];
    var qty = Convert.ToDecimal(edv.dataView[edv.Row]["OrderQty"]);
    var partNum = edv.dataView[edv.Row]["PartNum"].ToString();
    
    // 简化逻辑:根据数量和物料估算交货天数
    int leadDays = qty > 1000 ? 30 : (qty > 100 ? 14 : 7);
    
    edv.dataView[edv.Row]["RequestDate"] = 
        DateTime.Today.AddDays(leadDays);
    
    edv.Notify(new EpiNotifyArgs(oTrans, edv.Row, edv.Column));
}

Dashboard 开发

Dashboard 是 Epicor 中最灵活的分析展示工具,支持以下组件类型:

追踪面板(Tracker)

以指标卡片形式展示关键数据,适合管理层监控核心 KPI:

网格面板(Grid)

以表格形式展示详细数据,可关联 BAQ 作为数据源,支持排序、筛选、分组和导出 Excel。

图表面板(Chart)

支持柱状图、折线图、饼图、仪表盘等多种图表类型。可配置数据系列、坐标轴和样式。

Dashboard 面板中的 BAQ 查询是实时执行的。如果查询较复杂,考虑设置刷新间隔(Refresh Interval)来避免频繁查询对数据库造成压力。

升级兼容性注意事项

总结

掌握 Form 定制和 Dashboard 开发是 Epicor 实施顾问和开发人员的必备技能。通过合理的客户化开发,可以让 ERP 更贴合企业实际业务需求,同时保持系统的可维护性和升级兼容性。