EAS自定义弹框弹出子界面案例

 

 

 自定义弹出列表界面获取选中的行索引方法

	int selectRows[] = KDTableUtil.getSelectedRows(tblMain);

 

下列为代码动态加列表字段(该方法繁琐但灵活度高)

package com.kingdee.eas.wastedisposal.hwd.client;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;

import org.apache.log4j.Logger;

import com.kingdee.bos.ctrl.kdf.table.ICell;
import com.kingdee.bos.ctrl.kdf.table.IColumn;
import com.kingdee.bos.ctrl.kdf.table.IRow;
import com.kingdee.bos.ctrl.kdf.table.KDTDefaultCellEditor;
import com.kingdee.bos.ctrl.kdf.table.KDTable;
import com.kingdee.bos.ctrl.kdf.table.event.KDTEditAdapter;
import com.kingdee.bos.ctrl.kdf.table.event.KDTEditEvent;
import com.kingdee.bos.ctrl.swing.KDCheckBox;
import com.kingdee.bos.ctrl.swing.KDFormattedTextField;
import com.kingdee.bos.dao.IObjectCollection;
import com.kingdee.bos.dao.IObjectValue;
import com.kingdee.bos.dao.query.SQLExecutorFactory;
import com.kingdee.bos.ui.face.CoreUIObject;
import com.kingdee.eas.common.client.SysContext;
import com.kingdee.eas.csinterface.syncdatabase.SQLFacadeFactory;
import com.kingdee.eas.fm.common.client.FMClientHelper;
import com.kingdee.eas.framework.ICoreBase;
import com.kingdee.eas.util.SysUtil;
import com.kingdee.eas.util.client.EASResource;
import com.kingdee.eas.util.client.MsgBox;
import com.kingdee.jdbc.rowset.IRowSet;
import com.kingdee.jdbc.rowset.IRowSetMetaData;
import com.kingdee.util.StringUtils;

public class TempIssuePriceVindicate extends AbstractTempIssuePriceVindicate {
	private static final Logger logger = CoreUIObject
			.getLogger(TempIssuePriceVindicate.class);

	public TempIssuePriceVindicate() throws Exception {
		super();
	}
	
	
   /**
    * 调整弹出界面大小
    */
	public void initUIContentLayout() {
		super.initUIContentLayout();
		 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
		   setPreferredSize(new Dimension(screenSize.width-450,screenSize.height-300));
		   setUITitle("暂存入库单修改");
	}

	public void onLoad() throws Exception {
		super.onLoad();
 		actionAddLine.setVisible(false);
		actionRemoveLine.setVisible(false);
		this.menuFile.setVisible(false);
		this.menuTable.setVisible(false);
		btnSave.setVisible(false);
		btnSubmit.setVisible(false);
		btnSubmit.setEnabled(false);
		actionInsertLine.setVisible(false);
		 this.actionSave.setVisible(false);
		this.actionSave.setEnabled(false);
		this.actionSubmit.setVisible(false);
		this.actionSubmit.setEnabled(false); 
		this.actionAddLine.setVisible(false);
		
		entrysCulomnInit();
		KDCheckBox kdtReceive_selected_CheckBox = new KDCheckBox();
//        kdtReceive_selected_CheckBox.setName("kdtReceive_selected_CheckBox");
        KDTDefaultCellEditor kdtReceive_selected_CellEditor = new KDTDefaultCellEditor(kdtReceive_selected_CheckBox);
    //    this.tblMain.getColumn("selected").setEditor(kdtReceive_selected_CellEditor);
        tblMainNumberFormat("used");
        tblMainNumberFormat("price");
        tblMainNumberFormat("amount");
        
        inittblMain();
		Calendar c = Calendar.getInstance();
		pkendDate.setValue(c.getTime());
		c.set(Calendar.DAY_OF_MONTH, 1);
		pkbebinDate.setValue(c.getTime());

		initKdtReqBill(tblMain);
	}

	private void tblMainNumberFormat(String key){
		 KDFormattedTextField kdtEntrys_TextField = new KDFormattedTextField();
		 kdtEntrys_TextField.setVisible(true);
		 kdtEntrys_TextField.setEditable(true);
		 kdtEntrys_TextField.setHorizontalAlignment(2);
		 kdtEntrys_TextField.setDataType(1);
		 kdtEntrys_TextField.setMinimumValue(new java.math.BigDecimal("0"));
		 kdtEntrys_TextField.setMaximumValue(new java.math.BigDecimal("1.0E18"));
         kdtEntrys_TextField.setPrecision(3);
		 KDTDefaultCellEditor kdtEntrys_CellEditor = new KDTDefaultCellEditor(kdtEntrys_TextField);
		 this.tblMain.getColumn(key).setEditor(kdtEntrys_CellEditor);
	}

	public void loadFields() {
		try {
			Map listen = FMClientHelper.removeCompListeners(this);
			super.loadFields();
			FMClientHelper.addCompListeners(this, listen);
		} catch (Exception e) {
			e.printStackTrace();
		}
		entrysCulomnInit();
		KDCheckBox kdtReceive_selected_CheckBox = new KDCheckBox();
        kdtReceive_selected_CheckBox.setName("kdtReceive_selected_CheckBox");
        KDTDefaultCellEditor kdtReceive_selected_CellEditor = new KDTDefaultCellEditor(kdtReceive_selected_CheckBox);
        this.tblMain.getColumn("selected").setEditor(kdtReceive_selected_CellEditor);
        inittblMain();
		Calendar c = Calendar.getInstance();
		pkendDate.setValue(c.getTime());
		c.set(Calendar.DAY_OF_MONTH, 1);
		pkbebinDate.setValue(c.getTime());
	}

	private void entrysCulomnInit(){
		// 新增一列,用于记录原单据分录ID
	   IColumn addColumn = tblMain.addColumn();
		addColumn.setKey("selected");
		addColumn = tblMain.addColumn();
//		addColumn.getStyleAttributes()
		addColumn.setKey("material");
		addColumn.getStyleAttributes().setLocked(true);
		addColumn = tblMain.addColumn();
		addColumn.setKey("groupnumber");
		addColumn.getStyleAttributes().setLocked(true);
		addColumn = tblMain.addColumn();
		addColumn.setKey("price");
//		addColumn.getStyleAttributes().setLocked(true);
		addColumn = tblMain.addColumn();
		addColumn.setKey("used");
		addColumn.getStyleAttributes().setLocked(true);
		addColumn = tblMain.addColumn();
		addColumn.setKey("amount");
		addColumn.getStyleAttributes().setLocked(true);
		addColumn = tblMain.addColumn();
		addColumn.setKey("batch");
		addColumn.getStyleAttributes().setLocked(true);
		addColumn = tblMain.addColumn();
		addColumn.setKey("movenumber");
		addColumn.getStyleAttributes().setLocked(true);
		addColumn = tblMain.addColumn();
		addColumn.setKey("settlecustomername");
		addColumn.getStyleAttributes().setLocked(true);
		addColumn = tblMain.addColumn();
		addColumn.setKey("secondparty");
		addColumn.getStyleAttributes().setLocked(true);
		addColumn = tblMain.addColumn();
		addColumn.setKey("settlecustomer");
		addColumn.getStyleAttributes().setLocked(true);
		addColumn = tblMain.addColumn();
		addColumn.setKey("id");
		addColumn.getStyleAttributes().setLocked(true);
		// 设置为隐藏,GUI端不显示
		addColumn.getStyleAttributes().setHided(true);
		// 新增的列,列名赋值
		IRow addHeadRow = tblMain.addHeadRow();
	    addHeadRow.getCell("selected").setValue("选择");
		addHeadRow.getCell("material").setValue("危废品名称");
		addHeadRow.getCell("groupnumber").setValue("危废品八位码");
		addHeadRow.getCell("price").setValue("单价");
		addHeadRow.getCell("used").setValue("入库量");
		addHeadRow.getCell("amount").setValue("金额");
		addHeadRow.getCell("batch").setValue("入库批次");
		addHeadRow.getCell("movenumber").setValue("联单编号");
		addHeadRow.getCell("settlecustomername").setValue("结算客户");
		addHeadRow.getCell("secondparty").setValue("合同乙方");
	 	addHeadRow.getCell("settlecustomer").setValue("结算客户id");
		addHeadRow.getCell("id").setValue("ID");
//		addHeadRow.getCell("amount").setValue("金额");
//		addHeadRow.getCell("amount").setValue("金额");
		
	}

	private void inittblMain(){
	    tblMain.getColumn("selected").setWidth(0);
		tblMain.getColumn("material").setWidth(140);
		tblMain.getColumn("groupnumber").setWidth(140);
		tblMain.getColumn("price").setWidth(80);
		tblMain.getColumn("price").getStyleAttributes().setBackground(new Color(255,255,220));
		tblMain.getColumn("used").setWidth(80);
		tblMain.getColumn("amount").setWidth(120);
		tblMain.getColumn("batch").setWidth(120);
		tblMain.getColumn("movenumber").setWidth(120);
		tblMain.getColumn("settlecustomername").setWidth(120);
		tblMain.getColumn("secondparty").setWidth(140);
		tblMain.getColumn("settlecustomer").setWidth(140);
//		tblMain.getColumn("entryId").setWidth(0);
	}

/*	private void initButton(){

		 this.btnSave.setToolTipText("确认");
		this.btnSave.setIcon(EASResource.getIcon("imgTbtn_filter"));
		this.btnSubmit.setToolTipText("查询"); 
		this.btnSubmit.setIcon(EASResource.getIcon("imgTbtn_autocollate"));
	}

	
	 */
         
	
    /**
     * 搜索按钮
     */
	protected void btnSearch_actionPerformed(java.awt.event.ActionEvent e)
	throws Exception {
		tblMain.removeRows();
		Calendar c = Calendar.getInstance();
		Date endDate = pkendDate.getValue() == null?c.getTime():(Date)pkendDate.getValue();
		c.set(Calendar.DAY_OF_MONTH, 1);
		Date beginDate = pkbebinDate.getValue() == null?c.getTime():(Date)pkbebinDate.getValue();
		SimpleDateFormat sbf = new SimpleDateFormat("yyyy-MM-dd");
		String begin = sbf.format(beginDate);
		String end = sbf.format(endDate);
		
		
		String  customerName=null;
		customerName=this.txtsettleCustomer.getText();
//		HWContractInfo info = (HWContractInfo) prmthwContract.getValue();
		// 查查询暂存入库单,查询的单据应该是未审核过的暂存入单
		StringBuffer sql = new StringBuffer("  /*dialect*/  select b.CFMaterial material,b.CFGroupNumber groupNumber\n ");
		sql.append(",convert(decimal(18,2),b.CFPrice)  price,b.CFQty used,convert(decimal(18,2),b.CFAmount)  amount,b.CFBatch batch\n");
		sql.append(",b.CFMoveNumber moveNumber,   e.fname_l2  settlecustomerName   , d.fname_l2 secondParty\n");
		sql.append(",a.CFCustomerID settleCustomer,b.FID id\n");
		sql.append("from CT_HW_TempInWarehsBillEntry b\n");
		sql.append("inner join CT_HW_TempInWarehsBill a on b.FParentID = a.FID\n");
	    //sql.append("inner join CT_HW_HWContract c on b.CFHWContractId = c.FID\n");
	    sql.append("inner join T_ORG_Admin d on d.FID = a.CFAdminOrgID\n");
	    sql.append("inner join T_BD_Customer e on e.FID = a.CFCustomerID\n");
		sql.append("where a.CFAdminOrgID='").append(SysContext.getSysContext().getCurrentAdminUnit().getId());
		sql.append("' and a.FBizDate >='").append(begin).append("'\n");
		sql.append("and a.FBizDate <='").append(end).append("' ");
		sql.append(" and a.CFStatu < 3\n");
 	   if( null!=customerName&&!customerName.equals("") ){
 			sql.append("and e.fname_l2   like '%"+customerName+"%'  ") ;
  		 }
	 
		//查询出所有的暂存入库单  暂存状态单据
		IRowSet rs = SQLExecutorFactory.getRemoteInstance(sql.toString()).executeSQL();
		while(rs.next()){
			IRowSetMetaData rowSetMetaData = rs.getRowSetMetaData();
			IRow addRow = tblMain.addRow();
			for (int i = 1; i <= rowSetMetaData.getColumnCount(); i++) {
				addRow.getCell(rowSetMetaData.getColumnLabel(i).toLowerCase()).setValue(rs.getObject(rowSetMetaData.getColumnLabel(i)));
			}
		   //addRow.getCell("selected").setValue(false);
		}
		
	     
	}
	 
	
	 /**
	  * 确认按钮
	  */
	protected void btnSure_actionPerformedmz(ActionEvent e) throws Exception {
		 
		int rowCount = tblMain.getRowCount();
	/*	int selectRows=0; 
		for (int i = 0; i < rowCount; i++) {
			IRow row = tblMain.getRow(i);
			Boolean selected = (Boolean) row.getCell("selected").getValue();
			if(selected){
				selectRows=selectRows+1;
			}
		
		}
		if(selectRows==0){
			MsgBox.showWarning("请先选中要更新的条数!");
			SysUtil.abort();
		}
		
		MsgBox.showConfirm2("您此次要更新入库单记录为:"+selectRows+" 条记录!");*/
		
		//更新
		for (int i = 0; i < rowCount; i++) {
			IRow row = tblMain.getRow(i);
				row.getCell("price").getValue().toString();
				BigDecimal price= new BigDecimal(  row.getCell("price").getValue().toString());
				BigDecimal used= new BigDecimal(  row.getCell("used").getValue().toString());
				String id=  row.getCell("id").getValue().toString() ;
				BigDecimal amt = price.multiply(used).setScale( 2, BigDecimal.ROUND_HALF_UP );
		        String  sql="  update   CT_HW_TempInWarehsBillEntry    set CFPrice='"+price+"',CFAmount='"+amt+"'  where fid='"+id+"'        ";
		        SQLFacadeFactory.getRemoteInstance().exeSQL(sql);
			 
		
		}
		 MsgBox.showInfo("更新结束!");
	}
	
	
	
	

	public void actionSave_actionPerformed(ActionEvent e) throws Exception {
		
	}
	
	public void actionSubmit_actionPerformed(ActionEvent e) throws Exception {
		
	}

	private void initKdtReqBill(KDTable table){
		table.addKDTEditListener(new KDTEditAdapter() {
			public void editStopped(KDTEditEvent e) {
				KDTable table = (KDTable) e.getSource();
				try {
					TempIssuePriceVindicate.this.tblMain_Changed(e.getRowIndex(), e.getColIndex());//sumActAmt(kdtReqBill, txtreqBillAmt);
				} catch (Exception ex) {
					TempIssuePriceVindicate.this.handUIExceptionAndAbort(ex);
				}
			}
		});
	}

	private void tblMain_Changed(int rowIndex, int colIndex) throws Exception {
		String key = tblMain.getColumn(colIndex).getKey();
		if("price".equals(key)){
			BigDecimal price = tblMain.getCell(rowIndex, key) == null ?
					BigDecimal.ZERO:new BigDecimal(tblMain.getCell(rowIndex, key).getValue().toString());
			if(price.doubleValue()<0){
				MsgBox.showInfo("单价不得小于0");
			}else{
				BigDecimal used = tblMain.getCell(rowIndex, "used") == null ?
						BigDecimal.ZERO:new BigDecimal(tblMain.getCell(rowIndex, "used").getValue().toString());
				String amount = price.multiply(used).stripTrailingZeros().toPlainString();
				tblMain.getCell(rowIndex, "amount").setValue(amount);
			}
		}
	}

	public void storeFields() {
		super.storeFields();
	}

	public boolean checkBeforeWindowClosing() {
		return true;
	}

	protected IObjectCollection createNewCollection() {
		return null;
	}

	protected IObjectValue createNewData() {
		return null;
	}

	protected ICoreBase getBizInterface() throws Exception {
		return null;
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值