版权声明:本文为博主原创文章,未经博主允许不得转载。 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]));
}
}
}