// BusinessDataServiceHelper 查询示例 // 适用插件:Form/Operation/Validator/Report // 依赖 API:BusinessDataServiceHelper, QFilter // 相关检查:推荐避免直接猜测字段 key,建议通过元数据核实 using Kingdee.BOS; using Kingdee.BOS.Core.CommonFilter; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.ServiceHelper; public class QuerySample { private Context ctx; public void DemonstrateQuery() { string formId = "PUR_POOrder"; // 按主键查询单个实体 long primaryKey = 100001; DynamicObject entity = BusinessDataServiceHelper.LoadSingle(ctx, primaryKey, formId); // 按 QFilter 条件查询多个实体 QFilter filter = new QFilter("billno", "=", "PO-001"); DynamicObject[] entities = BusinessDataServiceHelper.Load(ctx, formId, new QFilter[] { filter }); // 查询指定字段(优化性能,只加载需要的字段) string[] selectFields = new string[] { "id", "billno", "date", "amount" }; DynamicObject[] partialEntities = BusinessDataServiceHelper.Load( ctx, formId, selectFields, new QFilter[] { filter } ); // 从实体取值 string billNo = entity["billno"] as string; decimal amount = Convert.ToDecimal(entity["amount"] ?? 0); // 基础资料字段取值(返回 DynamicObject) DynamicObject supplier = entity["supplier"] as DynamicObject; if (supplier != null) { long supplierId = Convert.ToInt64(supplier["Id"]); string supplierName = supplier["Name"] as string; } } }