`
chenjunt3
  • 浏览: 14430 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

常用代码记录

阅读更多

 

1、单据设置某行或某字段不能修改

//i是行号,"cash"是字段名称
getBillCardPanelWrapper().getBillCardPanel().getBillModel().setCellEditable(i, "cash", false);
//取得单据表体所有项用以上语句做循环就能设置整行了
getBillCardPanelWrapper().getBillCardPanel().getBodyItems();

2、判断是否在卡片状态下
public boolean isCardPanel(){
		boolean istrue = true;
		ButtonObject[] buobj = super.getButtons();
		for(int i = 0 ;i<buobj.length;i++){
			String btnName = buobj[i].toString();
			Object btnStatus = buobj[i].isEnabled();
			//列表显示返回false
			if("卡片显示".equals(btnName) && btnStatus.equals(true)){
				istrue = false;
				break;
			}
		}
		return istrue;
}

3、JTree中得到当前选择节点的最末级子节点
	1)、构造树的时候已经把数据按编码进行了排序,而且编码类似于这样:1401->140101 140102 .并将对象VO放到DefaultMutableTreeNode的userObject中.
	2)、选择树时,可以通过这行代码得到选择的节点
	    DefaultMutableTreeNode node = (DefaultMutableTreeNode)treePath.getLastPathComponent();    
		BudgetTargetVO vo = (BudgetTargetVO)node.getUserObject();   
	3)、得到选择节点node的最后一个子节点
		DefaultMutableTreeNode nn = (DefaultMutableTreeNode)node.getLastChild();   
		nn即为当前选择节点的编码最大的子节点...

4、在UI画面上设置一个按钮的快捷键
调用ButtonObject的下面两个方法即可 
    1> setModifiers(int modifiers) 设置任意修饰符,可以调用NCKey类中的常量,如:NCKey.MODIFIERS_ALT 
    2> setHotKey(String keyStr) 设置任意快捷键,如:"G"。 
假如我们创建了一个ButtonObject类型的对象按钮bnObj,通过下面的设置,就可以指定按钮的快捷键为:alt+G 
    bnObj.setModifiers(NCKey.MODIFIERS_ALT); 
    bnObj.setHotKey("G"); 
5、nc后台怎么得到当前的登录用户
String usercode = nc.bs.framework.common.InvocationInfoProxy.getInstance().getUserCode();
(nc.ui.pub.ClientEnvironment.getInstance().getUser()这个在前台用)

6、前台更新语句
nc.itf.uif.pub.IUifService srv=(nc.itf.uif.pub.IUifService)NCLocator.getInstance().lookup("nc.itf.uif.pub.IUifService");

------------------------------------------------------------------------------------

7、	在单据初始化的时候就把表体某些字段的默认颜色修改为红色
getBillListPanel().getBodyBillModel().setFont(new Font(null,Font.PLAIN,20)); 

------------------------------------------------------------------------------------
8、查询条件主子转换
public void onBoQuery() throws Exception{
        StringBuffer strWhere = new StringBuffer();
        if (askForQueryCondition(strWhere) == false)
            return;// 用户放弃了查询

        SuperVO[] queryVos = queryHeadVOs(convertSqlWhere(strWhere,"kyss_install_b",
                new String[]{"kyss_install_b.vdebugid","kyss_install_b.vinstallid","kyss_install_b.dhd_spname"},
                "pk_install"));
        getBufferData().clear();
        addDataToBuffer(queryVos);
        updateBuffer();
    }
    /**
     * 转换查询模板中的子表条件为主表条件,子表条件应与查询模板中一致
     * @param strWhere
     * @param tab_b 子表名
     * @param fields 子表条件项
     * @param refField 关联的主表pk
     * @return
     * @throws Exception
     */
    public String convertSqlWhere(StringBuffer strWhere,String tab_b,String[] fields,String refField) throws Exception{
        String str = "";
        String newSql = strWhere.toString();
        for (int i = 0; i < fields.length; i++) {
            ConditionVO[] vo =
                ((HYQueryDLG) getQueryUI()).getConditionVOsByFieldCode(fields[i]);
            if (!Toolkit.isEmpty(vo)) {
                if (!Toolkit.isEmpty(vo[0].getValue())) {
                    str = vo[0].getValue();
                }
                if (!Toolkit.isEmpty(vo[0].getValue())) {
                    newSql = Toolkit.replaceAll(newSql, fields[i], "'1'");
                    newSql = Toolkit.replaceAll(newSql, str, "1");

                    newSql = newSql + " and "+refField+" in (";
                    newSql = newSql + " select pk_install from "+tab_b;
                    newSql = newSql + " where "+fields[i]+" = '" + str + "' and nvl(dr, 0) = 0)";
                }
            }

        }
        return newSql;
    }


getBillCardPanel().getBillModel("costs").setValueAt(oVer,arow,"pver");
//修改行状态
bm.setRowState(arow, BillModel.MODIFICATION);

------------------------------------------------------------------------------------
9、判断表体列不重复
public int uniqueCheck(BillModel bm,String[] code){
        int res= -1;
        HashMap hm=new HashMap();
        for(int i=0;i<bm.getRowCount();i++){
            String key="key";
            for(int j=0;j<code.length;j++){
                key+=bm.getValueAt(i,code[j])==null?"":bm.getValueAt(i,code[j]).toString();
            }
            if(hm.containsKey(key)){
                return i+1;
            }
            hm.put(key, i+""); 
        }
        return res;
    }
    public int uniqueCheck(CircularlyAccessibleValueObject[] cvos,String[] code){
        int res= -1;
        HashMap hm=new HashMap();
        for(int i=0;i<cvos.length;i++){
            String key="key";
            for(int j=0;j<code.length;j++){
                key += cvos[i].getAttributeValue(code[j]) == null? "" : cvos[i].getAttributeValue(code[j]).toString();
            }
            if(hm.containsKey(key)){
                return i+1;
            }
            hm.put(key, i+""); 
        }
        return res;
    }

------------------------------------------------------------------------------------
10、单据模板不允许点击表头排序
//移除HEAD表头排序监听
getBillListPanel().getHeadTable().removeSortListener();
//移除BODY表头排序监听
getBillListPanel().getBodyTable().removeSortListener();

------------------------------------------------------------------------------------
11、表单界面数据编辑状态控制
调用代码

BillModel bm = ainpanel.getBillListPanel().getHeadBillModel();
BillModelCellEditableController bmc=new BillModelCellEditableController();
bmc.setRows(new int[]{1,3,5});
bm.setCellEditableController();

界面控制类
public class EditableControllerImpl implements BillModelCellEditableController{
 private int rows[]=null;

 public boolean isCellEditable(boolean value, int row, String itemkey) {
  boolean tag=true;
  for(int i=0;i<rows.length;i++){
   if(row==rows[i]){
    tag=false;
   }
  }
  return tag;
 } 
 public void setRows(int rows[]){
  this.rows=rows;
 }
}
------------------------------------------------------------------------------------

12、会计科目参照
BillItem items[] = new BillItem[sBodyItemKeys.length];
items[i].setDataType(5);//items[i].setDataType(BillItem.UFREF);
items[i].setRefType("会计科目");//如果是参照收支项目:items[i].setRefType("收支项目");
items[i].setLoadFormula(new String[]{"jksubjname->getColValue(bd_accsubj,subjname,pk_accsubj,jksubjpk)",});
items[i].setIDColName("jksubjpk");
items[i].setEditFormula(new String[]{"jksubjname->getColValue(bd_accsubj,subjname,pk_accsubj,jksubjpk)",});
------------------------------------------------------------------------------------

13、附件
public void doFile(){
		int irow = getMainPanel().getBillTable().getSelectedRow();
		if(irow < 0) return;
		
		String pk_ssinfo = getMainPanel().getBodyValueAt(irow, "pk_ssinfo")==null
		?"":getMainPanel().getBodyValueAt(irow, "pk_ssinfo").toString();
		
		if(pk_ssinfo == null || "".equals(pk_ssinfo)) return;
//		FileManageUI.showInDlg(this,"附件",pk_ssinfo);
		FileManageTreeTableUI.showInDlg(this,"附件",pk_ssinfo);
	}
------------------------------------------------------------------------------------
14、前台调用接口
接口名 iquery = (接口名) NCLocator.getInstance().lookup(接口名.class.getName());
		
------------------------------------------------------------------------------------
15、返回选择的文件路径
	public String getUserFilePath(){		
		//弹出客户端对话框
		UIFileChooser m_filechooser = new UIFileChooser();
        ExampleFileFilter filter = new ExampleFileFilter(); 
        filter.addExtension("xls");
        filter.setDescription("EXCEL文件");
        m_filechooser.setFileFilter(filter);
        m_filechooser.setDialogType(JFileChooser.FILES_ONLY);//m_filechooser.setDialogType(JFileChooser.SAVE_DIALOG);
		int result = m_filechooser.showOpenDialog(null);//m_filechooser.showSaveDialog(null);
		if(result != 0) return null;
		//取得用户保存的路径和文件名
		final String filepath= m_filechooser.getSelectedFile().getParent();
		final String filename = m_filechooser.getSelectedFile().getName();
		final String ExcelFile_Path = filepath+"\\"+filename;
		return ExcelFile_Path;
	}
------------------------------------------------------------------------------------
16、设置多表头
//设置多表头
	public void setMultiHead(){
		BillTable table = getBodyPanel().getTable();
    	GroupableTableHeader header = (GroupableTableHeader) table.getTableHeader();
    	TableColumnModel cm = table.getColumnModel();
    	
    	ColumnGroup subjname = new ColumnGroup("科目名称");
    	//合并哪些列
    	subjname.add(cm.getColumn(0));
    	subjname.add(cm.getColumn(1));
    	header.addColumnGroup(subjname);
    	
    	ColumnGroup rlpropn = new ColumnGroup("人力提取计划(元)");
    	rlpropn.add(cm.getColumn(2));
    	rlpropn.add(cm.getColumn(3));
    	rlpropn.add(cm.getColumn(4));
    	rlpropn.add(cm.getColumn(5));
    	header.addColumnGroup(rlpropn);
    	
    	ColumnGroup cwpropn = new ColumnGroup("财务成本列支(元)");
    	cwpropn.add(cm.getColumn(6));
    	cwpropn.add(cm.getColumn(7));
    	cwpropn.add(cm.getColumn(8));
    	cwpropn.add(cm.getColumn(9));
    	header.addColumnGroup(cwpropn);
    	
//    	ColumnGroup fipay = new ColumnGroup("实际支出(元)");
//    	fipay.add(cm.getColumn(10));
//    	header.addColumnGroup(fipay);
	}

------------------------------------------------------------------------------------
17、增行时表体联动
/*-------------------增行时表体联动表头选择的标准类型 START--------------------------------*/
//得到表头选择标准类型
Grade_BZTypeVO btVO = (Grade_BZTypeVO)this.getMainCardPanel().getHeadItem("bztype").getValueObject();
//设置表体新增行的pk_bztype字段值setBodyValueAt(值,行号,字段)
this.getMainCardPanel().setBodyValueAt(btVO.getPk_bztype(), this.getMainCardPanel().getRowCount()-1, "pk_bztype");
//执行表体加载公式(如果没有设置公式可以不用)
this.getMainCardPanel().getBillModel().execLoadFormula();
/*-------------------增行时表体联动表头选择的标准类型 END---------------------------------*/	

------------------------------------------------------------------------------------
18、得到参照中PK字段的值
UIRefPane ref = (UIRefPane)this.getHeadItem("pk_bz").getComponent();
return ref.getRefPKs();

19、得到参照中非PK的其他字段的值
	/**
	 * 得到选择的评价标准类型主键
	 * @return String[] 评价标准类型主键
	 */
	public String[] getPKBZTypes()
	{
		ArrayList<String> list = null;
		/*得到参照中选择的评价标准类型主键*/
		UIRefPane ref = (UIRefPane)this.getHeadItem("pk_bz").getComponent();
		Object obj[] = (Object[])ref.getRefValues("b.pk_bztype");
		if(obj!=null)
		{
			list = new ArrayList<String>();
			for (int i=0;i<obj.length;i++) {
				//去重复
				if(!list.contains(obj))
				{
					list.add((String)obj[i]);
				}
			}
		}
		if(list==null)
		{
			return null;
		}
		return list.toArray(new String[0]);
	}	

------------------------------------------------------------------------------------
20、取得表体选择行的VO
	/**
	 * 取得页面选择的VO
	 * @return Grade_CorpWeightVO[]
	 */
	public Grade_CorpWeightVO[]  getBillSelectVOs(){
		int row_count = getRowCount();
		if (row_count <= 0)
			return null;
		int[] rows = getBillTable().getSelectedRows();
		if(rows==null||rows.length==0){
			return null;
		}
		for (int i = 0; i < row_count; i++) {
			getBillModel().setRowState(i, BillModel.NORMAL);
		}
		for (int xxx = 0; xxx < rows.length; xxx++) {
			getBillModel().setRowState(rows[xxx], BillModel.SELECTED);
		}
		Grade_BZVO[] vos = (Grade_BZVO[]) getBillModel()
				.getBodySelectedVOs(Grade_BZVO.class.getName());
		return vos;
	}
	
------------------------------------------------------------------------------------
21、设置表体只能单选
this.getBillTable().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

22、表体菜单事件监听
	实现:
		implements BillBodyMenuListener
	添加监听:
		addBodyMenuListener(this);
	方法:如
		public void onMenuItemClick(ActionEvent arg0) {
			if("删行".equals(arg0.getActionCommand())){
				if(this.getRowCount()!=1){
					super.delLine();
				}
			}else if("增行".equals(arg0.getActionCommand())){
				super.addLine();
			}
		}
23、查询数据源是否存在
	/**
	 * 判断数据源是否存在
	 * @param dsName 数据源名称
	 * @return true:存在,false:不存在
	 */
	public boolean checkDataSource(String dsName){
		boolean exist = false;
		String[] ds;
		try {
			ds = XMLTableStruDataBO_Client.readDataSources();
			for(int xx=0;xx<ds.length;xx++){
				if(dsName.equals(ds[xx])){
					exist = true;
				}
			}
			if(!exist){
				MessageDialog.showErrorDlg(this, "错误", "数据源不存在,操作失败!");
			}
		} catch (Exception e1) {
			e1.printStackTrace();
			MessageDialog.showErrorDlg(this, "错误", "判断数据源时发生错误");
		}
		return exist;
	}

24、后台得到日期
public static UFDate getBSDate(){
   InvocationInfoProxy invocationInfoProxy = InvocationInfoProxy.getInstance();
   UFDate bsDate = null;
      if (null != invocationInfoProxy && null != invocationInfoProxy.getDate() && !"null".equals(invocationInfoProxy.getDate()))
       bsDate = new UFDate(Long.parseLong(invocationInfoProxy.getDate()));
      return bsDate;
  }

25、状态栏显示文字
ToftPanel中	this.showHintMessage("提示内容");

26、数字类型加千分位分割符
BillItemNumberFormat format = new BillItemNumberFormat();
format.setShowThMark(true);
items[i].setNumberFormat(format);

分享到:
评论

相关推荐

    Matlab 常用代码记录

    可能包含通用的函数、配置文件或者实验结果的记录。 综合以上内容,这个压缩包为学习和使用MATLAB和Python在CFD、网格处理、数据读写以及绘图等方面提供了实践案例,是提升编程技能和解决实际问题的宝贵资源。通过...

    SVN常用操作----查看代码提交以及改动记录方法

    **SVN常用操作——查看代码提交及改动记录方法** 在软件开发过程中,版本控制系统如Subversion(SVN)是团队协作的重要工具。它允许开发者跟踪和管理代码的修改历史,以便于协同工作、回溯错误并理解代码的发展过程...

    SAP常用事务代码,涉及到MM板块

    SAP常用事务代码,SAP系统中常用的事务代码(Transaction Codes,简称T-Codes)是执行特定功能或任务的快捷方式。这些事务代码覆盖了SAP的多个模块,包括财务(FI)、物料管理(MM)、销售与分销(SD)、生产计划...

    c#常用代码(每日更新)

    这个名为"C#常用代码(每日更新)"的资源库显然旨在为开发者提供一系列实用的C#代码片段,以帮助他们提高编程效率,使代码更易读,并简化日常开发工作。 首先,让我们深入了解一下C#的基础知识。C#是一种面向对象的...

    Web开发中的30种常用代码

    这些只是Web开发中30种常用代码的一部分,它们涵盖了基本的页面交互、数据操作和用户反馈。理解并熟练运用这些代码,能够帮助开发者快速构建功能丰富的Web应用程序。在实际开发中,还会涉及到更多技术,如AJAX异步...

    pb一些常用代码,和一些作业应用代码

    常用代码示例 除了上述代码外,PowerBuilder还提供了许多其他常用的代码片段,例如: - 插入记录:`dw_1.insert(); dw_1.update(sqlca);` - 更新记录:`dw_1.update(sqlca);` - 删除记录:`dw_1.delete(sqlca);` ...

    Flexsim编程常用代码.pdf

    【知识点一】FlexSim中的编程基础和常用对象操作 FlexSim的编程主要使用特定的类和方法,比如FSNode类。FSNode类代表了模型中的一个对象,比如机器、运输带等。例如,通过ownerobject()方法可以找到一个FSNode对象的...

    IOS开发常用代码.docx

    本文档主要涉及iOS开发中的常用代码,尤其是与Objective-C字符串操作相关的知识点。 首先,我们来看 `%` 符号在输出格式化字符串中的作用。在C语言及其派生语言(如Objective-C)中,`%`是格式化输出的标志,用于...

    ASP网站制做常用代码大全

    例如,`Conn`是数据库连接对象,`Rs`是记录集对象,你可以使用`Conn.Open("连接字符串")`建立连接,`Rs.Open("SQL语句", Conn)`执行查询,然后通过`Rs.Fields("字段名")`来访问数据。 3. **页面布局**: ASP页面...

    EXCEL VBA 常用代码集

    ### EXCEL VBA 常用代码集:利用Dos命令搜索文件 #### 一、概述 在Excel VBA编程中,经常需要处理大量的文件操作任务,例如搜索特定类型的文件、整理文件列表等。本篇文章将深入探讨如何通过VBA调用DOS命令`dir`来...

    SAP-MM常用表和常用事务代码[汇编].pdf

    SAP-MM常用表和常用事务代码汇编 SAP-MM系统中有许多重要的表和事务代码,这些表和代码对SAP-MM系统的运行和管理起着至关重要的作用。下面我们将对SAP-MM系统中常用的表和事务代码进行总结和解释。 一、常用表 ...

    SAP MM模块 常用事务代码

    ### SAP MM 模块常用事务代码详解 #### 物料主数据 - **建立物料主数据** **事务代码:** MM01 **路径:** 后勤 → 物料管理 → 物料主数据 → 物料 → 创建(一般) → 立即 MM01用于创建新的物料主数据记录。...

    .net中33种常用的代码

    ### .NET中33种常用的...综上所述,以上列举的一些常用代码片段为.NET开发人员提供了丰富的工具箱,使得在处理Web应用程序时更加灵活高效。需要注意的是,在实际开发过程中还需结合具体场景考虑安全性、性能等因素。

    EXCEL的常用259个常用宏代码

    - 录制宏:在执行一系列操作后,可以通过“开发工具”选项卡中的“录制宏”按钮,让Excel自动记录这些步骤,生成相应的VBA代码。 - 编辑宏:在VBA编辑器中,可以直接查看和修改宏代码,理解并学习代码逻辑,以适应...

    VB.net 常用代码示例

    这个压缩包文件包含了一系列VB.NET编程中的常用代码示例,特别关注了数据操作和用户界面交互。以下是对每个文件名称所代表的知识点的详细解释: 1. **04自定义函数ShowData的实现过程.jpg**:这可能是关于如何创建...

    PHP常用代码大全

    《PHP常用代码大全》这一资料集,为广大的PHP开发者提供了丰富的编程素材和实用的代码片段,涵盖了PHP语言的核心功能和常见应用场景,是提升开发效率、优化代码质量的宝贵资源。下面,我们将深入探讨这份资料中提及...

    用友U9系统客开常用代码.pdf

    本文档是一份关于用友U9系统客开常用代码的集合,对于从事相关开发工作的人员来说,是一项重要的参考资料。 首先,文档提到的PO(采购订单)终止操作,涉及到数据库操作的SQL脚本,这些脚本可以用来更新采购订单的...

    SAP常用事务代码汇总

    ### SAP常用事务代码知识点汇总 #### 物料移动类型及其用途 在SAP系统中,物料移动类型是用来定义物料在不同存储位置之间移动的方式。不同的移动类型代表着不同的业务流程。 - **261**:代表生产订单发料,通常...

    asp.net常用代码

    以下是一些ASP.NET编程中常用的代码和技巧: 1. 打开新窗口并传送参数:在ASP.NET中,你可以通过JavaScript在服务器端生成代码,将参数传递给新打开的窗口。例如,使用`Response.Write`在HTML中嵌入JavaScript代码...

    VBA宏编程示例集50个常用代码

    本示例集包含50个常用的VBA宏代码,涵盖了各种实用场景,帮助用户提高工作效率。 首先,"VBA实例36-列移动去空格.rar"可能是一个处理Excel数据的宏,它可能包含了移除单元格或整列中的空格功能。在Excel中,有时...

Global site tag (gtag.js) - Google Analytics