Java调用NC查询引擎 - 用友NC系统

引言

在企业信息管理中,用友NC系统是一个非常流行的企业级应用软件。使用Java编写的应用程序需要与NC系统进行交互,一种常见的需求是通过Java代码调用NC系统的查询引擎来获取企业信息。本文将介绍如何使用Java代码调用NC查询引擎,并以代码示例的形式进行说明。

NC查询引擎简介

NC查询引擎是用友NC系统的一个重要组成部分,它提供了强大的查询功能,可以方便地从NC系统中获取企业数据。使用NC查询引擎,可以实现复杂的查询操作,包括条件过滤、排序、分页等功能。通过调用NC查询引擎,我们可以将NC系统中的数据集成到自己的应用程序中,实现更灵活的数据处理和分析。

Java调用NC查询引擎的步骤

要在Java中调用NC查询引擎,需要经过以下几个步骤:

  1. 创建查询引擎实例
  2. 设置查询条件
  3. 执行查询操作
  4. 处理查询结果

下面我们将详细介绍每个步骤,并给出相应的代码示例。

创建查询引擎实例

要创建查询引擎实例,需要使用NC系统提供的API。首先,我们需要导入相关的Java类库:

import nc.vo.pub.lang.UFBoolean;
import nc.vo.pub.lang.UFDate;
import nc.vo.pub.lang.UFDateTime;
import nc.vo.pub.lang.UFDouble;
import nc.vo.pub.lang.UFLiteralDate;
import nc.vo.pub.lang.UFLiteralDateTime;
import nc.vo.pub.lang.UFLiteralTime;
import nc.vo.pub.lang.UFTime;
import nc.vo.pub.lang.UFTimeSpan;
import nc.vo.pub.lang.UFUFDouble;
import nc.vo.pub.lang.UFUserObject;
import nc.vo.query.framework.IQueryParameter;
import nc.vo.query.framework.IQueryScheme;
import nc.vo.query.framework.exception.VOQueryException;
import nc.vo.query.framework.ncplugin.DataObject;
import nc.vo.query.framework.ncplugin.Entity;
import nc.vo.query.framework.ncplugin.QueryEngine;
import nc.vo.query.framework.ncplugin.QueryResult;

然后,我们可以使用以下代码创建查询引擎实例:

QueryEngine queryEngine = new QueryEngine();

设置查询条件

在执行查询操作之前,我们需要设置查询条件。查询条件可以包括字段过滤条件、排序规则、分页参数等。

首先,我们需要创建一个查询参数实例,并设置查询条件。以下代码示例演示了如何设置一个简单的字段过滤条件:

IQueryParameter[] params = new IQueryParameter[1];
params[0] = new DataObject("字段名", "条件值");

如果需要设置多个字段过滤条件,可以创建多个DataObject实例,并将它们添加到查询参数数组中。

接下来,我们可以创建一个查询方案实例,并将查询参数设置到查询方案中:

IQueryScheme queryScheme = new IQueryScheme();
queryScheme.setParameters(params);

执行查询操作

设置查询条件之后,我们可以执行查询操作。以下是调用查询引擎的示例代码:

QueryResult queryResult = queryEngine.executeQuery("查询编码", queryScheme);

其中,"查询编码"对应NC系统中的一个查询定义,可以在NC系统中进行配置。

处理查询结果

查询操作完成之后,可以通过QueryResult对象获取查询结果。以下是一个示例代码,演示如何遍历查询结果并获取字段值:

Entity[] entities = queryResult.getEntities();
for (Entity entity : entities) {
    Object value = entity.get("字段名");
    // 处理字段值...
}

这里,我们使用Entity对象的get方法来获取字段值,其中"字段名"是要获取的字段名称。

示例应用场景

假设我们需要从NC系统中查询销售订单的数据,并在应用程序中进行统计分析。我们可以通过调用NC查询引擎来实现这个需求。

首先,我们可以定义一个查询方案,设置查询条件和排序规则:

IQueryScheme queryScheme = new IQueryScheme();

// 设置查询条件
IQueryParameter[] params = new IQueryParameter[1];
params[0] = new DataObject("订单类型", "销