NC57 自定义UIDilog

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sir_jun/article/details/45790279
1.建立单据模板,表体
 
2.继承 UIDialog ,一个对话框类
 
3.得到VO数据
 
4.加载模板
 
5.模板中设置3中得到的VO
 
 
----Handler 类:
if (intBtn == IXhfxButton.LINKQUERYSALE) {
            // 销售明细表VO
            if (getBillCardPanelWrapper().getBillVOFromUI().getParentVO() != null) {
                ArrayList<SaleDetaileBillVO> list = datalist;
                if (list == null
                        || list.size() == 0) {
                    throw new BusinessException("请先取销售数据或销售明细数据为空");
                } else {
                    // 加载数据
                    getsaledlg().setConditionData(list);
                    // 显示
                    getsaledlg().show();
                    return;
                }
            }
        }
-----独立的对话框类
package nc.ui.hn.hn307020;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.util.ArrayList;
import javax.swing.JLabel;
import javax.swing.JPanel;
import nc.bs.framework.common.NCLocator;
import nc.itf.uap.IUAPQueryBS;
import nc.jdbc.framework.processor.BeanListProcessor;
import nc.jdbc.framework.processor.ColumnProcessor;
import nc.ui.pub.ClientEnvironment;
import nc.ui.pub.beans.UIDialog;
import nc.ui.pub.bill.BillListPanel;
import nc.vo.hn.hnh506.ChannelVO;
import nc.vo.ic.pub.bill.GeneralBillHeaderVO;
import nc.vo.ic.pub.bill.GeneralBillItemVO;
import nc.vo.pub.BusinessException;
import nc.vo.pub.lang.UFBoolean;
import nc.vo.xhfx.pub.SaleDetaileBillVO;
import nc.vo.xhfx.pub.UnOnlineBillVO;
/**
 * 联查销售分摊明细表
 * <p>
 * 根据渠道分为上线渠道和未上线渠道,显示销售分摊明细表中的内容
 * <p>
 * 创建人: 李林君
 * <p>
 * 创建日期: 2013-3-14
 * <p>
 * 
 * @version 1.0
 * @since NC5.7
 */
@SuppressWarnings({})
public class SaledetaileDlg extends UIDialog {
    /** 变量的意义 */
    private static final long serialVersionUID = 1L;
    // 货源对账单的UI
    SrcCheckBillUI parent;
    // 上线panel
    private BillListPanel listpanelon = new BillListPanel();
    // 未上线panel
    private BillListPanel listpanelun = new BillListPanel();
    public SaledetaileDlg(Container parent, String title) throws Exception {
        super(parent, title);
        this.parent = (SrcCheckBillUI) parent;
        init();
    }
    private void init() throws Exception {
        setSize(655, 500);
        setResizable(false);
        setLayout(new BorderLayout());
        JPanel on = new JPanel(new BorderLayout());
        JPanel un = new JPanel(new BorderLayout());
        JLabel labelon = new JLabel("上线销售渠道");
        on.add(labelon, BorderLayout.NORTH);
        on.add(getListPanelOn(), BorderLayout.SOUTH);
        add(on, BorderLayout.NORTH);
        // add(getListPanelOn(), BorderLayout.CENTER);
        JLabel labelun = new JLabel("未上线销售渠道");
        un.add(labelun, BorderLayout.NORTH);
        un.add(getListPanelUn(), BorderLayout.SOUTH);
        add(un, BorderLayout.SOUTH);
        // add(labelun,BorderLayout.SOUTH);
        // add(getListPanelUn(), BorderLayout.SOUTH);
        Dimension dsScreen = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setLocation((dsScreen.width - getWidth()) / 2 - 100, (dsScreen.height - getHeight()) / 2 - 50);
    }
    private Component getListPanelOn() throws Exception {
        // 加载模板
        listpanelon.loadTemplet("TN1VDLG""", ClientEnvironment.getInstance().getUser().getPrimaryKey(), ClientEnvironment.getInstance().getCorporation().getPrimaryKey());
        return listpanelon;
    }
    // 未上线
    private Component getListPanelUn() throws Exception {
        // 加载模板
        listpanelun.loadTemplet("TN1VDLG""", ClientEnvironment.getInstance().getUser().getPrimaryKey(), ClientEnvironment.getInstance().getCorporation().getPrimaryKey());
        return listpanelun;
    }
    // 设置数据
    // ArrayList<SaleDetaileBillVO> onlinevo =null;
    // ArrayList<SaleDetaileBillVO> unlinevo=null;
    @SuppressWarnings({
        "unchecked",
        "null" })
    public void setConditionData(ArrayList<SaleDetaileBillVO> list) throws BusinessException {
        ArrayList<SaleDetaileBillVO> unlinevo = new ArrayList<SaleDetaileBillVO>();
        ArrayList<SaleDetaileBillVO> onlinevo = new ArrayList<SaleDetaileBillVO>();
        // 设置上线数据
        if (list == null
                || list.size() == 0) {
            listpanelon.getBodyBillModel().setBodyDataVO(null);
            listpanelun.getBodyBillModel().setBodyDataVO(null);
            return;
        }
        IUAPQueryBS service = NCLocator.getInstance().lookup(IUAPQueryBS.class);
        for (SaleDetaileBillVO svo : list) {
            String sql_channel = "select * from bd_channel where pk_channel='"
                    + svo.getPk_channel()
                    + "' and isnull(dr,0)=0";
            ArrayList<ChannelVO> channelvo = (ArrayList<ChannelVO>) service.executeQuery(sql_channel, new BeanListProcessor(ChannelVO.class));
            UFBoolean bshasaccount = channelvo.get(0).getBshasaccount();
            // 上线,如果上线,就取出该渠道的销售批次,
            if (bshasaccount.equals(UFBoolean.TRUE)) {
//                ArrayList<SaleDetaileBillVO> onlinevo = new ArrayList<SaleDetaileBillVO>();
                // 列表字段“销售批次”=销售分摊明细表中得到-销售出库单pk:cgeneralbid,从对应销售出库单表体中得到销售出库单表头PK:cgeneralhid
                String sql2 = "select * from ic_general_b where cgeneralbid='"
                        + svo.getCgeneralbid()
                        + "'  and isnull(dr,0)=0";
                //得到销售出库单表体VO
                ArrayList<GeneralBillItemVO> bodyvo = (ArrayList<GeneralBillItemVO>) service.executeQuery(sql2, new BeanListProcessor(GeneralBillItemVO.class));
                //得到渠道名称
                String vlevelnamesql="select vlevelname from bd_channel where pk_channel ='"+svo.getPk_channel()+"'";
                String vlevelname=(String) service.executeQuery(vlevelnamesql, new ColumnProcessor());
                for (GeneralBillItemVO bbvo : bodyvo) {
                    //得到该表体VO 的表头主键
                    String sql3 = "select * from ic_general_h where cgeneralhid='"
                            + bbvo.getCgeneralhid()
                            + "'  and isnull(dr,0)=0";
                    ArrayList<GeneralBillHeaderVO> headvo = (ArrayList<GeneralBillHeaderVO>) service.executeQuery(sql3, new BeanListProcessor(GeneralBillHeaderVO.class));
                    for (GeneralBillHeaderVO hvo : headvo) {
                        SaleDetaileBillVO bvo = new SaleDetaileBillVO();
                        bvo.setSalepc(hvo.getVbillcode());
                        // 列表字段“渠道名称”=vlevelname
                        bvo.setPk_channel(vlevelname);
                        // 列表字段“销售日期”=
                        bvo.setDsalebilldate(svo.getDsalebilldate());
                        // 列表字段“销售数量”=
                        bvo.setNrevokenumber(svo.getNrevokenumber());
                        // 列表字段“销售实洋”=
                        bvo.setNsalerealymny(svo.getNsalerealymny());
                        // 列表字段“省店发货实洋”=销售分摊明细表中得到对应的销售出库单表体,
                        bvo.setNsendrealmny(svo.getNsalerealymny());
                        // 将该vo增加到集合中
                        onlinevo.add(bvo);
                    }
                }
            } else {
                // 销售分摊明细VO
                // 列表字段“销售批次”=销售分摊明细表中得到未上线销售分摊明细表,
                String sql3 = "select * from hn_unonlinebill where pk_unonlinebill='"
                        + svo.getPk_saledetailebill()
                        + "'  and isnull(dr,0)=0";
                ArrayList<UnOnlineBillVO> unvo = (ArrayList<UnOnlineBillVO>) service.executeQuery(sql3, new BeanListProcessor(UnOnlineBillVO.class));
//                ArrayList<SaleDetaileBillVO> unlinevo = new ArrayList<SaleDetaileBillVO>();
                for (UnOnlineBillVO unOnlineBillVO : unvo) {
                    SaleDetaileBillVO bvo = new SaleDetaileBillVO();
                    bvo.setSalepc(unOnlineBillVO.getPk_unonlinebill());
                    // 列表字段“渠道名称”=
                    bvo.setPk_channel(svo.getPk_channel());
                    // 列表字段“销售日期”=
                    bvo.setDsalebilldate(svo.getDsalebilldate());
                    // 列表字段“销售数量”=
                    bvo.setNrevokenumber(svo.getNrevokenumber());
                    // 列表字段“销售实洋”=
                    bvo.setNsalerealymny(svo.getNsalerealymny());
                    // 列表字段“省店发货实洋”=
                    bvo.setNsendrealmny(unOnlineBillVO.getNsendrealmny());
                    // 将该vo增加到集合中
                    unlinevo.add(svo);
                }
            }
            
        }
        if (onlinevo != null
                || onlinevo.size() != 0) {
            listpanelon.getBodyBillModel().setBodyDataVO((SaleDetaileBillVO[]) onlinevo.toArray(new SaleDetaileBillVO[0]));
        }
        if (unlinevo != null
                | unlinevo.size() != 0) {
            listpanelun.getBodyBillModel().setBodyDataVO((SaleDetaileBillVO[]) unlinevo.toArray(new SaleDetaileBillVO[0]));
        }
    }
}
 

猜你喜欢

转载自blog.csdn.net/sir_jun/article/details/45790279