《NC报表联查单据教程》
本教程主要聚焦于用友NC系统的报表联查功能,特别是如何从分组表联查到销售报价单。在用友NC系统中,报表联查是一项重要的功能,它允许用户从一个报表的明细数据出发,深入查看相关的上游单据,从而提供更全面的数据分析和决策支持。
1) 案例概述
在这个案例中,我们假设已经开发出了销售报价单,并基于此创建了一个分组表。我们的目标是为分组表的语义模型分配一个联查方案,使得用户能够从分组表的任何一条明细数据出发,直接查看对应的销售报价单。当用户在分组表中选择一行时,系统会自动定位到销售报价单的主表和子表中与选定行相对应的记录。
2) 实现步骤
- 确保已经按照快速开发教程完成了销售报价单的开发。
- 制作分组统计表,并在报表设计界面中,选择分组表的扩展区域,通过“隐藏字段”按钮将主表主键和子表主键设置为隐藏字段,以准备进行联查。
- 接着,需要在客户端包下编写联查发起端的相关代码。这部分代码通常包括获取选中行的主键信息,并触发联查操作,以展示销售报价单的详细信息。
以下是一个示例代码片段,展示了如何实现这一功能:
```java
// 省略部分代码...
public class ReportTraceDataOperator implements ITraceDataOperator, TraceDataInterface {
public final static String DEST_FUNC_CODE = "TR1001";
public final static String PK_HEAD = QuotationHVO.PK_SALEQUOTATION;
@Override
public Action[] ctreateExtensionActions() {
return null; // new Action[]{new MyAction()};
}
@Override
public ITraceDataOperator[] provideTraceDataOperator() {
return new ITraceDataOperator[] { new ReportTraceDataOperator() };
}
@Override
public void traceData(Container container, TraceDataParam param) {
// 获取选中表体行的 PK
final IRowData rowData = param.getRowData();
String selItem0 = (String) rowData.getData(PK_HEAD);
final String selItem = (selItem0 == null) ? "" : selItem0;
// 显示选中的单据 PK
// JOptionPane.showMessageDialog(container, "单据 PK:" + selItem);
// 获得 invoker 参数
// ToftPanelAdaptor adaptor = ...
}
// 省略部分代码...
}
```
在这个例子中,`traceData` 方法是关键,它处理了从分组表选中行到销售报价单的联查逻辑。通过 `rowData.getData(PK_HEAD)` 获取选中的主键值,然后可以使用这个值去查找并打开相应的销售报价单详情。
总结来说,用友NC系统的报表联查功能通过编程的方式实现了从一个报表的明细数据跳转到相关联的上游单据,提供了便捷的数据导航路径,极大地增强了系统的交互性和数据分析能力。开发者需要理解并熟练掌握联查方案的配置以及联查触发代码的编写,才能在实际应用中灵活运用这一功能。
2025-08-01 09:34:55
337KB
用友NC
1