NC单据左侧实现查询数据加载至新界面

该篇文章介绍了如何在NC系统中,通过HFAddQueryAction类,处理查询参数并实现数据从左侧查询到新界面的功能,包括使用QueryScheme、WHERE条件构建SQL语句,以及执行数据库查询操作。
摘要由CSDN通过智能技术生成

NC单据左侧实现查询数据加载至新界面

//代码类
package nc.ui.hfet.hfet_fininvoiceandorg.ace.action1;

import java.awt.event.ActionEvent;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import nc.bs.framework.common.NCLocator;
import nc.bs.logging.Logger;
import nc.itf.hffin.IHffin_bankwatereseiptMaintain;
import nc.itf.uap.IUAPQueryBS;
import nc.itf.uap.IVOPersistence;
import nc.jdbc.framework.processor.BeanListProcessor;
import nc.jdbc.framework.processor.ColumnListProcessor;
import nc.jdbc.framework.processor.ColumnProcessor;
import nc.ui.pubapp.uif2app.query2.action.DefaultQueryAction;
import nc.ui.querytemplate.querytree.IQueryScheme;
import nc.ui.querytemplate.querytree.QueryScheme;
import nc.vo.hfet.hfet_fininvoiceandorg.AggHfet_fininvoiceandorg;
import nc.vo.hfet.hfet_fininvoiceandorg.Hfet_fininvoiceandorg;
import nc.vo.hffin.hffin_bankwatereseipt.Hffin_bankwatereseipt;
import nc.vo.hffin.hffin_bankwatereseipt.Hffin_selectbwr;
import nc.vo.pub.BusinessException;
import nc.vo.pub.lang.UFDate;
import nc.vo.pub.lang.UFDateTime;
import nc.vo.pub.lang.UFDouble;
import nc.vo.pubapp.AppContext;

public class HFAddQueryAction extends DefaultQueryAction {

	private static final long serialVersionUID = 1L;

	public HFAddQueryAction() {
		this.setCode("HFAddQuery");
		this.setBtnName("查询");
	}

	@Override
	public void doAction(ActionEvent e) throws Exception {
		super.doAction(e);
		// 获取查询参数的WHERE条件进行查询
		/*
		 * QueryScheme queryScheme = (QueryScheme)
		 * getQryDLGDelegator().getQueryScheme(); String whereSQL =
		 * queryScheme.getWhereSQLOnly(); if(null == whereSQL || “”.equals(whereSQL)){
		 * return; } whereSQL = whereSQL.replace(" 00:00:00", “”).replace(" 23:59:59",
		 * “”); whereSQL = whereSQL.replace(" AND cwqszt = ‘2’",
		 * “”).replace(" AND cwqszt = ‘1’", “”).replace(" AND cwqszt in (‘1’,‘2’)", “”);
		 * whereSQL = whereSQL.replace(" AND cnqszt = ‘2’",
		 * “”).replace(" AND cnqszt = ‘1’", “”).replace(" AND cnqszt in (‘1’,‘2’)", “”);
		 */
//insertBillsByWhereSQL(whereSQL);
	}

	@Override
	protected void executeQuery(IQueryScheme queryScheme) {
		super.executeQuery(queryScheme);
		// 获取查询参数的WHERE条件进行查询
		String whereSQL = ((QueryScheme) queryScheme).getWhereSQLOnly();
		/*
		 * if(null == whereSQL || "".equals(whereSQL)){ return; }
		 */
		// whereSQL = whereSQL.replace(" 00:00:00", "").replace(" 23:59:59", "");
		// whereSQL = whereSQL.replace(" AND cwqszt = '2'", "").replace(" AND cwqszt =
		// '1'", "").replace(" AND cwqszt in ('1','2')", "");
		// whereSQL = whereSQL.replace(" AND cnqszt = '2'", "").replace(" AND cnqszt =
		// '1'", "").replace(" AND cnqszt in ('1','2')", "");
		if (null != whereSQL) {
			whereSQL = whereSQL.replace("(", "").replace(")", "");
		}

		try {
			insertBillsByWhereSQL(whereSQL);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void insertBillsByWhereSQL(String whereSQL) throws Exception {
		IUAPQueryBS server = NCLocator.getInstance().lookup(IUAPQueryBS.class);
		List<Hfet_fininvoiceandorg> retvos = new ArrayList<Hfet_fininvoiceandorg>();

		// if(!"".equals(whereSQL) && null != whereSQL){
		String cuserid = AppContext.getInstance().getPkUser();
		String sqluser = "select pk_org from bd_defdoc a where a.pk_defdoclist in (select pk_defdoclist from bd_defdoclist a where a.name like'%出口公司操作员维护%') and a.code = (select user_code from sm_user a where a.cuserid='" + cuserid + "') ;";
		List<String> userorgs = (List<String>) server.executeQuery(sqluser, new ColumnListProcessor());
		String orgs = "";
		if (userorgs != null) {
			for (String string : userorgs) {
				orgs += ",'" + string + "'";
			}
			orgs = orgs.substring(1);
		}
		try {
			StringBuilder sbuSql = new StringBuilder();
			sbuSql.append(" select * from ( ");
			sbuSql.append(" select   a.sfckgskp,a.sfgccwkp,a.tssbpc,b.ystse,b.tsl,b.sftsbs,bd_customer.name def4,bd_customer.code def3,b.def5 bbkpje,bd_countryzone.name ydg,a.ckrq,a.ckkprq,a.ckzzsfph,a.pk_sggs,a.yf,a.bf,a.zybje,a.pk_bz,a.pk_mdg,a.pk_ysfs,a.pk_sfg,a.pk_myfs,a.hth,a.pk_shr,a.pkckgs pkckgs,a.pk_hfet_declearinfomt,b.pk_hfet_declearzb,a.transtype,a.pk_ghdw,a.bgdh,a.xsfph,b.rownumber bghh ,b.spbm,b.spmc,b.jjsl,b.def3 dyfddw,b.jz,b.ybkpje,b.spl,b.spje,b.jjdj,a.zzsfph,a.gccwkprq");
			sbuSql.append(" from hfet_declearinfomt a");
			sbuSql.append(" inner join hfet_declearzb b");
			sbuSql.append(" on a.pk_hfet_declearinfomt = b.pk_hfet_declearinfomt left join bd_customer on a.pk_shr = bd_customer.pk_customer left join bd_countryzone on bd_customer.pk_country = bd_countryzone.pk_country");
			sbuSql.append(" where a.dr=0 and b.dr=0 ");
			sbuSql.append(" and a.sfscbgd = 'Y'");
			sbuSql.append(" and a.pkckgs in (" + orgs + ")");
			if (null != whereSQL) {
				sbuSql.append(" and  ");
				sbuSql.append("  " + whereSQL + " ");
			}
			sbuSql.append(" )");

			List<Hfet_fininvoiceandorg> retvo = (List<Hfet_fininvoiceandorg>) server.executeQuery(sbuSql.toString(), new BeanListProcessor(Hfet_fininvoiceandorg.class));
			List<AggHfet_fininvoiceandorg> AggHfet_fininvoiceandorgs = new ArrayList<AggHfet_fininvoiceandorg>();
			if (null != retvo) {
				// 设置单据日期制单人制单日期集团PK等等字段值
				for (int i = 0; i < retvo.size(); i++) {
					Hfet_fininvoiceandorg vo = retvo.get(i);
					Hfet_fininvoiceandorg headvo = new Hfet_fininvoiceandorg();
					AggHfet_fininvoiceandorg AggHfet_fininvoiceandorg = new AggHfet_fininvoiceandorg();
					headvo.setBbkpje(vo.getBbkpje());
					headvo.setDef4(vo.getDef4());
					headvo.setDef3(vo.getDef3());
					headvo.setYdg(vo.getYdg());
					headvo.setCkrq(vo.getCkrq());
					headvo.setCkkprq(vo.getCkkprq());
					headvo.setCkzzsfph(vo.getCkzzsfph());
					headvo.setPk_sggs(vo.getPk_sggs());
					headvo.setYf(vo.getYf());
					headvo.setBf(vo.getBf());
					headvo.setZybje(vo.getZybje());
					headvo.setPk_bz(vo.getPk_bz());
					// 月初汇率
					BigDecimal rate = null;
					try {
						// 月初汇率
						String sql = "select a.rate  from bd_currrate a left join bd_currinfo d on a.pk_currinfo = d.pk_currinfo where d.oppcurrtype='1002Z0100000000001K1' and a.ratedate<'" + new UFDate().toString().substring(0, 8) + "01" + "' and d.pk_currtype = '" + vo.getPk_bz() + "' and a.dr=0 and d.dr=0  order by a.ratedate desc";
						rate = (BigDecimal) server.executeQuery(sql, new ColumnProcessor());
						headvo.setHl(new UFDouble(rate));
					} catch (Exception e) {
						throw new Exception("查询汇率出错" + e.getMessage());
					}
					headvo.setPk_mdg(vo.getPk_mdg());
					headvo.setPk_sfg(vo.getPk_sfg());
					headvo.setPk_ysfs(vo.getPk_ysfs());
					headvo.setHth(vo.getHth());
					headvo.setPk_myfs(vo.getPk_myfs());
					headvo.setPk_shr(vo.getPk_shr());
					headvo.setTranstype(vo.getTranstype());
					headvo.setPk_org("GLOBLE00000000000000");
					headvo.setPk_group("0001A110000000000L9C");
					headvo.setVbilldate(new UFDate());
					headvo.setBillmaker(cuserid);
					headvo.setMaketime(new UFDateTime());
					headvo.setCreator(cuserid);
					headvo.setCreationtime(new UFDateTime());
					headvo.setDr(0);
					headvo.setPk_ghdw(vo.getPk_ghdw());
					headvo.setBgdh(vo.getBgdh());
					headvo.setXsfph(vo.getXsfph());
					headvo.setBghh(vo.getBghh());
					headvo.setSpbm(vo.getSpbm());
					headvo.setBgrq(vo.getBgrq());
					headvo.setSpmc(vo.getSpmc());
					headvo.setJjsl(vo.getJjsl());
					headvo.setDyfddw(vo.getDyfddw());
					headvo.setJz(vo.getJz());
					headvo.setYbkpje(vo.getYbkpje());
					headvo.setSpl(vo.getSpl());
					headvo.setSpje(vo.getSpje());
					headvo.setJjdj(vo.getJjdj());
					headvo.setZzsfph(vo.getZzsfph());
					headvo.setGccwkprq(vo.getGccwkprq());
					headvo.setApprovestatus(-1);
					headvo.setPkckgs(vo.getPkckgs());
					headvo.setPk_hfet_declearinfomt(vo.getPk_hfet_declearinfomt());
					headvo.setPk_hfet_declearzb(vo.getPk_hfet_declearzb());
					headvo.setDef7("2");
					headvo.setTssbpc(vo.getTssbpc());
					headvo.setTsl(vo.getTsl());
					headvo.setYstse(vo.getYstse());
					headvo.setSftsbs(vo.getSftsbs());
					headvo.setSfgccwkp(vo.getSfgccwkp());
					headvo.setSfckgskp(vo.getSfckgskp());
					AggHfet_fininvoiceandorg.setParentVO(headvo);
					AggHfet_fininvoiceandorgs.add(AggHfet_fininvoiceandorg);
				}
				/*
				 * IVOPersistence inSrv = NCLocator.getInstance().lookup(IVOPersistence.class);
				 * String sql = "select * from hfet_fininvoiceandorg ";
				 * List<Hfet_fininvoiceandorg> deletevos = (List<Hfet_fininvoiceandorg>)
				 * server.executeQuery(sql, new BeanListProcessor(Hfet_fininvoiceandorg.class));
				 * inSrv.deleteVOList(deletevos); inSrv.insertVOList(retvos);
				 */
				getModel().initModel(AggHfet_fininvoiceandorgs.toArray(new AggHfet_fininvoiceandorg[] {}));
				// 刷新即重新查值
				// getDataManager().refresh();
			}
		} catch (BusinessException e) {
			Logger.error(e);
		}
		// }
	}
}
                        

原文链接:https://blog.csdn.net/wxingcai/article/details/91041382

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值