您的位置:首页 > 产品设计 > UI/UE

[转]用友NC单据UI基本代码示例

2013-11-10 00:00 260 查看
原地址:
http://blog.csdn.net/softwave/article/details/8781220
本示例在用友NC57环境下调试通过

最近在做基于NC的二次开发,这种封闭的系统文档很少,一个简单的例子都不能找到帮助。

本示例的目的是为了让后来者少走我走过的弯路

[java]
view plaincopy

package nc.ui.ic.generaltc;  
  
import nc.ui.pub.ButtonObject;  
import nc.ui.pub.ClientEnvironment;  
import nc.ui.pub.ToftPanel;  
import nc.ui.pub.beans.UIPanel;  
import nc.ui.pub.bill.BillCardPanel;  
import nc.ui.pub.bill.BillEditEvent;  
import nc.ui.pub.bill.BillEditListener;  
import nc.ui.pub.bill.BillItem;  
import nc.ui.pub.bill.BillListPanel;  
import nc.ui.scm.pub.query.SCMQueryConditionDlg;  
import javax.swing.JComboBox;  
import javax.swing.JLabel;  
import javax.swing.JTextField;  
import java.awt.Dimension;  
  
/** 
 * NC5.7单据基础示例 
 * @ClassName: ClientUI 
 * @Description: TODO 
 * @author s 
 * @date 2013-4-9 下午2:22:21 
 * BillEditListener  是按钮监听类 
 * 实现BillEditListener,需实现bodyRowChange()、afterEdit()两个方法 
 */  
public class ClientUI extends ToftPanel implements BillEditListener {  
  
    // 单据类型  
    private BillCardPanel cpBill = null;  
      
    // 客户端环境变量类  
    private ClientEnvironment ce = getClientEnvironment();  
      
    // 按钮查询,增加,修改,删除,保存,取消,打印,审核,弃审,关闭,打开.  
    protected ButtonObject bnQuery = new ButtonObject("查询", "查询", 1, "查询");  
    protected ButtonObject bnAdd = new ButtonObject("增加", "增加", 2, "增加");  
    protected ButtonObject bnModify = new ButtonObject("修改", "修改", 3, "修改");  
    protected ButtonObject bnDelete = new ButtonObject("删除", "删除", 4, "删除");  
    protected ButtonObject bnSave = new ButtonObject("保存", "保存", 5, "保存");  
    protected ButtonObject bnCancel = new ButtonObject("取消", "取消", 6, "取消");  
    protected ButtonObject bnPrint = new ButtonObject("打印", "打印", 7, "打印");  
    protected ButtonObject bnAudit = new ButtonObject("审核", "审核", 9, "审核");  
    protected ButtonObject bnUnAudit = new ButtonObject("弃审", "弃审", 10, "弃审");  
    protected ButtonObject bnClose = new ButtonObject("关闭", "关闭", 11, "关闭");  
    protected ButtonObject bnOpen = new ButtonObject("打开", "打开", 12, "打开");  
      
    protected ButtonObject[] bgMain = { bnQuery, bnAdd, bnModify, bnDelete,  
            bnSave, bnCancel, bnPrint, bnAudit, bnUnAudit, bnClose, bnOpen };  
      
    // 状态 有下列五种状态  
    private int iStatus = 0;  
    private int INIT = 0;  
    private int NEW = 1;  
    private int UPDATED = 2;  
    private int DELETED = 3;  
    private int SAVED = 4;  
      
    private nc.vo.scm.pub.session.ClientLink m_cl=null;  
    protected UIPanel conditionpanel = null;  
  
    public ClientUI() {  
        super();  
        initialize();  
    }  
  
    /** 
     * 选中行触发该方法 
     */  
    public void bodyRowChange(BillEditEvent arg0) {  
        // TODO Auto-generated method stub  
        // int isChangeRow = arg0.getRow();  
    }  
  
    public void afterEdit(BillEditEvent arg0) {  
    }  
  
    /** 
     * 界面初始化。 
     * @Title: initialize 
     * @Description: TODO 
     * @return void 
     * @throws 
     * 创建者:s 
     * 创建日期:2013-4-10 
     */  
    private void initialize() {  
        try {  
            setName("TcUI");  
            m_cl = new nc.vo.scm.pub.session.ClientLink(ClientEnvironment.getInstance());  
            //INIT,NEW,UPDATED,DELETED,SAVED;  
            iStatus = INIT;  
            setBnStatus(iStatus);  
            //bnOpen.setHint("测试!!!!!");  
            // 加载按钮  
            setButtons(bgMain);  
            add(getBillCardPanel());  
            // onQuery();  
        } catch (Exception e) {  
             nc.vo.scm.pub.SCMEnv.out(e.getMessage());  
             JLabel msg = new JLabel(e.getMessage());  
             msg.setHorizontalAlignment(JLabel.CENTER);  
             add(msg);  
        }  
    }  
  
    /** 
     * 设置单据窗体 
     * @Title: getBillCardPanel 
     * @Description: TODO 
     * @return BillCardPanel 
     * @throws 
     * 创建者:s 
     * 创建日期:2013-4-10 
     */  
    private BillCardPanel getBillCardPanel() {  
        if (cpBill == null) {  
            try {  
                cpBill = new BillCardPanel();  
                /* 
                 * 单据模板有两种常用加载方式 
                 * 第一种是根据“单据模板编号”来加载 
                 * 单据模板编号是模板在标准产品库中所保存的模板编号,在pub_billtemplet(单据模板主表)中的pk_billtemplet字段 
                 * 可根据nodecode条件去pub_billtemplet表中查询 
                 * 可用语句select pk_billtemplet from pub_billtemplet where nodecode='40081001'来查询 
                 * nodecode是在“功能注册”时定义的节点“功能编码”,或称“节点编号”,见图1(单据类型管理) 
                 */  
                //cpBill.loadTemplet("0001AA1000000004OJWO");  
                /* 
                 * 第二种方式是使用cpBill.loadTemplet(strBillType, strBusiType, strOperator, strCorp)方法加载 
                 * strBillType是单据模板在标准产品库中所保存的模板类型,在pub_billtemplet(单据模板主表)中的pk_billtypecode字段 
                 * 可根据nodecode条件去pub_billtemplet表中查询 
                 * 可用语句select pk_billtypecode from pub_billtemplet where nodecode='40081001'来查询 
                 * strBusiType是业务类型,可设为null 
                 * strOperator是操作者,使用ClientEnvironment.getUser().getPrimaryKey()取得环境用户参数 
                 * strCorp是公司参数,使用ClientEnvironment.getCorporation().getPk_corp()取得环境公司参数 
                 */  
                cpBill.loadTemplet("40081001", null, ce.getUser().getPrimaryKey(), ce.getCorporation().getPk_corp());  
                //设置单据体表体菜单是否显示  
                cpBill.setBodyMenuShow(false);  
                //添加监听  
                cpBill.addEditListener(this);  
  
            } catch (java.lang.Throwable ivjExc) {  
            }  
        }  
        return cpBill;  
    }  
    /** 
     *  
     * @Title: getConditionPanel 
     * @Description: TODO 
     * @return UIPanel 
     * @throws 
     * 创建者:s 
     * 创建日期:2013-4-9 
     */  
    protected UIPanel getConditionPanel() {  
        if (conditionpanel == null) {  
            conditionpanel = new UIPanel();  
            conditionpanel.setName("UIPanel");  
            conditionpanel.setLayout(new java.awt.GridLayout(2, 6, 0, 1));  
            conditionpanel.setMaximumSize(new Dimension(550, 40));  
            conditionpanel.setPreferredSize(new Dimension(550, 40));  
            conditionpanel.setMinimumSize(new Dimension(550, 1));  
        }  
        return conditionpanel;  
    }  
      
    @Override  
    public String getTitle() {  
        // TODO Auto-generated method stub  
        return null;  
    }  
  
    @Override  
    public void onButtonClicked(ButtonObject arg0) {  
        // TODO Auto-generated method stub  
          
    }  
      
    /** 
     * 设置按钮状态。 
     * @Title: setBnStatus 
     * @Description: TODO 
     * @param status 
     * @return void 
     * @throws 
     * 创建者:s 
     * 创建日期:2013-4-10 
     */  
    public void setBnStatus(int status) {  
        //初始、删除、保存状态  
        if (status == INIT || status == DELETED || status == SAVED) {  
            bnQuery.setEnabled(true);  
            bnAdd.setEnabled(true);  
            bnModify.setEnabled(true);  
            bnSave.setEnabled(false);  
            bnCancel.setEnabled(false);  
            bnDelete.setEnabled(true);  
            //  bnModify.setEnabled(false);  
        }  
        //增加、修改状态  
        else if (status == NEW || status == UPDATED) {  
            bnQuery.setEnabled(false);  
            bnAdd.setEnabled(false);  
            bnSave.setEnabled(true);  
            bnCancel.setEnabled(true);  
            bnDelete.setEnabled(false);  
            bnModify.setEnabled(false);  
        }  
            //bnPrint.setEnabled(false);  
        updateButtons();  
    }  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: