1、NC65查询追加查询条件
继承nc65 默认查询类DefaultQueryAction,重写executeQuery
/** Key:返回查询条件where语句 */
public static final String KEY_SQL_WHERE = "where";
/** Key:返回表连接式from-where语句 */
public static final String KEY_SQL_TABLE_JOIN = "tablejoin";
/** Key:返回表列表式(逗号分隔式)from-where语句 */
public static final String KEY_SQL_TABLE_LIST = "tablelist";
protected void executeQuery(IQueryScheme queryScheme) {
Object sql=queryScheme.get(KEY_SQL_TABLE_JOIN);
nc.ui.querytemplate.querytree.FromWhereSQLImpl fwsi =( nc.ui.querytemplate.querytree.FromWhereSQLImpl)sql1;
String where = fwsi .getWhere();
where = where + " and hrwa_wapayroll.creator='" + InvocationInfoProxy.getInstance().getUserId()+"'";
fwsi .setWhere(where);
super.executeQuery(queryScheme);
}```
原文链接:https://blog.csdn.net/ZhWe12345/article/details/128701779
2、NC65对单表单据查询的结果进行排序
nc.impl.pub.ace.AceCmp_paymesPubServiceImpl 这个类是单据从元数据走完向导时自动生成的(当然,不同模块类名不同,根据自己项目的实际情况找到对应类即可),里面有各按钮的动作方法。
想要对查询的数据进行排序,找到这个类,修改pubquerybills方法,方法中的query.query(queryScheme, null) 第二个参数,就是查询SQL的排序语句,默认为空。
按照要排序的要求,修改query方法的参数即可,如下:
public AggPaymes[] pubquerybills(IQueryScheme queryScheme) throws BusinessException {
AggPaymes[] bills = null;
try {
this.preQuery(queryScheme);
BillLazyQuery<AggPaymes> query = new BillLazyQuery<AggPaymes>(AggPaymes.class);
//add by xuzihui 2020-09-28 查询结果按照单据日期和单据编码降序显示
bills = query.query(queryScheme, " order by dbilldate desc, vbillcode desc ");
} catch (Exception e) {
ExceptionUtils.marsh(e);
}
return bills;
}
原文链接:https://blog.csdn.net/bronzehammer/article/details/108853902