NC常用方法

  1. 表头字段不可见
    getHeadItem("").setShow(false);

  2. 在单据或报表中,设置表体中的0.00显示或显示为空
    在单据中,如下设置:
    //表体行可以显示0.00
    getBillCardPanel().getBodyPanel().getRendererVO().setShowZeroLikeNull(false);
    在报表中,如下设置:
    //设置不显示零
    getReportBase().getBodyPanel().getRendererVO().setShowZeroLikeNull(true);

  3. 在程序查询过程中,加入"请等待 …"的提示框

    //线程
    Runnable checkRun = new Runnable(){
    public void run()
    {
    //线程对话框:系统运行提示框
    BannerDialog dialog = new BannerDialog(ui);
    dialog.start();
    try{
    1
    2
    3
    4
    5
    6
    7
    8
    /**
    将查询方法写在其中
    */

         } catch(Exception e) {
             e.printStackTrace();
             ui.showErrorMessage(e.getMessage());
         } finally {
          //销毁系统运行提示框
             dialog.end();
         }
     }
    

    };
    //启用线程
    new Thread(checkRun).start();
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

  4. 发送邮件
    MailTool.sendHtmlEmail(smtpHost, fromAddr, senderName, userName, password, receivers, subject, sb, fileName);

  5. 列表表体加afterEdit监听方法
    getBillListPanel().getBodyScrollPane(“页签表名”).addEditListener(this);
    触发afterEdit(BillEditEvent e)方法

  6. 表体按照recordnum倒序排列,类似定调资表体
    getBillListPanel().getBodyBillModel().setSortColumn(“recordnum”);
    getBillListPanel().getBodyBillModel().getSortColumns().get(0).setAscending(false);

  7. 表头最大化设置方法
    getBillListPanel().getUISplitPane().getRightComponent().setVisible(false);

  8. 登陆界面的日期设置不可修改
    有个配置文件可以直接修改的。
    nchome\ierp\bin\clientui.xml

  9. 在UI中得到的变化VO方法
    getBillCardPanel().getBillValueChangeVO
    是从页面得到的VO,如果修改查询出来的数据,当查询出来的数据如果没有主键的话,那得到得VO主键就是null的。

  10. 在修改的方法中,如果是根据主键为条件进行修改,主键不能通过
    key = getOID(storeadmin.getPk_corp());得到主键,因为这是新生成的,要使用以前的主键,key= storeadmin.getPrimarykey();

  11. 生成单据号的方法:
    String billcode= HYPubBO_Client.getBillNo(getUIControl().getBillType(),
    getClientEnvironment().getCorporation().getPrimaryKey(),null, null);

另一种是:
得到某个定义的单据号:BillcodeRuleBO_Client.
getBillCode(“biltype”, pk_corp,null, null);

//取得单据号(从NC取,服务器端)
String billNo = new nc.bs.trade.business.HYPubBO().
getBillNo(ISYYSBilltype.CTRLDDEPT_BGT_BILL, parentVo.getPk_corp(), null, null); // 设置单据号

//取得单据号(从NC取,客户端)
return HYPubBO_Client.getBillNo(getUIControl().getBillType(), _getCorp().getPrimaryKey(), null, null);

  1. 验证非空
    @Override
    protected void onBoSave() throws Exception {
    this.getBillCardPanelWrapper().getBillCardPanel().getBillData().dataNotNullValidate();
    super.onBoSave();
    }

  2. 实现多选
    getBillListPanel().getHeadTable().setSelectionMode(
    javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

遇到几次列表界面可多选,但取值难的问题,现总结如下:
设置列表多选框
getBillListPanel().setMultiSelect(true);
//设置列表Ctrl、Shift多选
getBillListWrapper().getBillListPanel().getHeadTable().
setSelectionMode(javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

获取列表多条记录的方法
1、int[] selectRows = ((BillManageUI) getBillUI()).getBillListPanel().getHeadTable().getSelectedRows();
2、 ((BillManageUI) getBillUI()).getBillListPanel().getHeadBillModel().getBodySelectedVOs(DemoYsHVO.class.getName());

其中,方法1只在Ctrl、Shift多选时能取到多条记录的行号。
方法2都能取到多选记录的VO。

  1. 实现选择框全选全消小按钮
    import nc.ui.hr.frame.util.table.TableMultiSelHelper;
    headTableMultiSelector headTableMultiSelector = new TableMultiSelHelper();
    headTableMultiSelector.addMultiSeletor(getBillListPanel().getHeadTable());

  2. 分别从卡片、列表中取得表头、表体VO数组的方法
    //列表界面
    if (getSelfUI().isListPanelSelected()) {
    int rowCount = getSelfUI().getBillListPanel().getHeadBillModel().getRowCount();

if (rowCount == 0) {
getSelfUI().showWarningMessage(“没有可以确认的数据!”);
return;
}

//取得选中的行
selectRow = getSelfUI().getBillListPanel().getHeadTable().getSelectedRow();
//在列表界面取得表头VO
hvo = (Df1BmsqHVO)getBufferData().getVOByRowNo(selectRow).getParentVO();
//在列表界面取得表体VO
bvos = (Df1BmsqBVO[])getBufferData().getVOByRowNo(selectRow).getChildrenVO();

}

//卡片界面
else {
int rowCount = getSelfUI().getBillCardPanel().getBillTable().getRowCount();

if (rowCount == 0) {
getSelfUI().showWarningMessage(“没有可以确认的数据!”);
return;
}

try {
//在卡片界面取得表头VO
hvo = (Df1BmsqHVO)getBufferData().getCurrentVO().getParentVO();
//在卡片界面取得表体VO
bvos = (Df1BmsqBVO[])getBufferData().getCurrentVO().getChildrenVO();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
} catch (Exception e) {
e.printStackTrace();
}
}

  1. 得到行号数组
    Int []rows= ui.getBillListWrapper().getBillListPanel().getHeadTable().getSelectedRows();

  2. 得到当前行的聚合VO
    AggRequirepubVO aggRequirepubVO= (AggRequirepubVO)ui.getBillListWrapper().getBillListPanel().getBillValueVO(iCurRow,AggRequirepubVO.class.getName(),
    HeadVO.class.getName(), BodyVO.class.getName());

  3. 得到行号,得覆盖这个方法
    @Override
    public void bodyRowChange(BillEditEvent e) {
    // TODO Auto-generated method stub
    iCurrRow = e.getRow();
    }

  4. 自定义按钮的使用
    需要在ui中覆盖这个方法
    @Override
    protected void initPrivateButton() {
    // TODO Auto-generated method stub
    PublicVO publicVO = new PublicVO();
    addPrivateButton(publicVO.getPublicButtonVO());
    addPrivateButton(publicVO.getUnpublicButtonVO());
    }
    PublicVO 是自己创建的按钮VO

package nc.vo.zygb;

import nc.itf.zygb.IMyButton;
import nc.ui.trade.base.IBillOperate;
import nc.vo.trade.button.ButtonVO;
import nc.vo.trade.pub.IBillStatus;

public class PublicVO {

public ButtonVO getPublicButtonVO(){
ButtonVO btnVo = null;
if (btnVo == null) {
btnVo = new ButtonVO();
btnVo.setBtnNo(IMyButton.publicBtn);
btnVo.setBtnName(“发布”);
btnVo.setHintStr(“发布”);
btnVo.setOperateStatus(new int[] { IBillOperate.OP_EDIT,IBillOperate.OP_NOTEDIT});
btnVo.setBusinessStatus(new int[] {IBillStatus.FREE});
}
return btnVo;

}

public ButtonVO getUnpublicButtonVO(){
ButtonVO btnVO = null;
if(btnVO == null){
btnVO = new ButtonVO();
btnVO.setBtnNo(IMyButton.unpulicBtn);
btnVO.setBtnName(“取消发布”);
btnVO.setHintStr(“取消发布”);
btnVO.setOperateStatus(new int[] { IBillOperate.OP_EDIT,IBillOperate.OP_NOTEDIT });
btnVO.setBusinessStatus(new int[] {IBillStatus.FREE});
}
return btnVO;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
}

IMyButton是定义按钮的接口:

public interface IMyButton {
//发布按钮
public final static int publicBtn = 185;
//取消发布按钮
public final static int unpulicBtn = 186;
}

20.下拉框的定义,在initSelfData()方法中

@Override
protected void initSelfData() {
// TODO Auto-generated method stub
// 发布状态
IConstEnum[] require_status= new DefaultConstEnum[]{new DefaultConstEnum(0, “未发布”),
new DefaultConstEnum(1, “已发布”)};

BillPanelUtils.initComboBox(getBillListPanel(), IBillItem.HEAD, null,RequirepubVO.PUBLICSTATUS, require_status, false);
BillPanelUtils.initComboBox(getBillCardPanel(), IBillItem.HEAD, null,RequirepubVO.PUBLICSTATUS, require_status, false);

}
1
2
3
21 向页面回写数据
((MainBillMgrPanel)getMainPanel()).getMainBillCardPanel().setHeadData(m_emptyJobVO);
((MainBillMgrPanel)getMainPanel()).getMainBillListPanel().setHeadSelectedData(m_emptyJobVO);

22 比较日期的先后方法
ValidityChecker.validateDate(date1,date2,1,“给出校验的警告语句”);

23初始化下拉列
getBillCardWrapper().initHeadComboBox(“vbillstatus”, ISYYSBillStatus.strStateRemark, true);
getBillListWrapper().initHeadComboBox(“vbillstatus”, ISYYSBillStatus.strStateRemark, true);

24执行表头公式
getBillCardPanel().execHeadFormula("");
getBillCardPanel().execHeadEditFormulas();
25执行表体公式
//列表状态
getBillListPanel().getBodyBillModel().execEditFormulaByKey(i, “vdef2”);
//卡片状态
getBillCardWrapper().getBillCardPanel().execBodyFormula(i, “vdef2”);

为参照增加约束
AbstractRefModel arm = UIUtilTools.getRefPane(item).getRefModel();
arm.addWherePart(" and dr=0 “);
arm.reloadData();
26自定义按钮添加至界面
ButtonVO editedplan = ButtonFactory.createButtonVO(ISHSHButton.LINK_KY_DETAIL, “修订计划”,“修订计划”);
editedplan.setOperateStatus(new int[] { IBillOperate.OP_NOTEDIT});
addPrivateButton(editedplan);
27当前单据的操作状态
设置是否可以编辑 getBillUI().getBillOperate()
//表体所有行
int rowsNum=getBillCardPanel().getBillModel().getRowCount();
int rowcount = getBillCardPanel().getBillModel(”").getRowCount();
getBillCardPanelWrapper().getBillCardPanel().getHeadItem(“high”).setEnabled(false);

初始上下游得单据状态(在DLG的构造方法里面加入)

BillItem billItem = getbillListPanel().getBillListData().getHeadItem(“vbillstatus”);
initComboBox(billItem, ISHSHBillStatus.strStateRemark,true);

List item
设置是否合计和得到合计值
设置是否合计:
在initSelfData()方法中加入getBillCardWrapper().getBillCardPanel().setTatolRowShow(true);
得到合计值:
首先设置显示合计行
getBillCardPanel().setTatolRowShow(true);
然后获取获取合计行的值
getBillCardPanel().getTotalTableModel().getValueAt(“行号”,“列字段”);
28. 隐藏表体某列
getBillCardPanel().hideBodyTableCol(“bodyitem”);
29. 表体带出表头

/*

  • 在表头增加三个字段
  • 通过vccode带出
  • 麻杰 2011-03-04
    */
    String pk_customer = (String)getBillCardPanel().getBillModel(“ps_so_sign_customer”).getValueAt(0, “pk_customer”);
    if(null!=pk_customer){
    String ccpostalcode = QueryUtil.queryByPk(“ccpostalcode”, pk_customer);
    getBillCardPanel().setHeadItem(“ccpostalcode”, ccpostalcode);
    }
    }
  1. 行不可编辑方法
    只有选中行可编辑的解决方法,当行可编辑
    @Override
    public void bodyRowChange(BillEditEvent e) {
    // 修改的时候不能选中其他行,如果选择,则自动跳回编辑行
    int currow = getBillCardPanel().getBillTable().getSelectedRow();
    int editRow = getBillCardPanel().getBillTable().getEditingRow();
    if (getBillOperate() == IBillOperate.OP_EDIT && editRow >-1 && currow != editRow) {
    getBillCardPanel().getBillTable().setRowSelectionInterval(editRow, editRow);
    return;
    }
    }

  2. 非空校验方法:

/**

  • 数据非空监测 hashFilter (billitem,int[rowindex]) 创建日期:(01-2-21 10:08:48)
    */
    public static void dataNotNullValidate(BillData billdata, Hashtable<BillItem, int[]> hashFilter) throws ValidationException {
    StringBuffer message = null;
    BillItem[] headtailitems = billdata.getHeadTailItems();
    if (headtailitems != null) {
    for (int i = 0; i < headtailitems.length; i++) {
    if (headtailitems[i].isNull()) {
    if (PubUtils.isNull(headtailitems[i].getValueObject())) {
    if (message == null) {
    message = new StringBuffer();
    }
    message.append("[");
    message.append(headtailitems[i].getName());
    message.append("]");
    message.append(",");
    }
    }
    }
    }
    if (message != null && message.length() > 0) {
    message.deleteCharAt(message.length() - 1);
    throw new NullFieldException(message.toString());
    }

    // 增加多子表的循环
    String[] tableCodes = billdata.getTableCodes(BillData.BODY);
    if (tableCodes != null) {
    for (int t = 0; t < tableCodes.length; t++) {
    String tablecode = tableCodes[t];
    for (int i = 0; i < billdata.getBillModel(tablecode).getRowCount(); i++) {
    StringBuffer rowmessage = new StringBuffer();
    // 判断行状态是否可以编辑
    int editrow = billdata.getBillModel(tablecode).getEditRow();
    if (editrow != -1) { // 说明启动行编辑状态, 才继续判断 by 王松涛
    if (editrow != i) {
    continue;
    }
    }

      		rowmessage.append(" ");
      		if (tableCodes.length > 1) {
      			rowmessage.append(billdata.getTableName(BillData.BODY, tablecode));
      			rowmessage.append("(");
      			// "页签"
      			rowmessage.append(nc.ui.ml.NCLangRes.getInstance().getStrByID("_Bill", "UPP_Bill-000003"));
      			rowmessage.append(") ");
      		}
      		rowmessage.append(i + 1);
      		rowmessage.append("(");
      		// "行"
      		rowmessage.append(nc.ui.ml.NCLangRes.getInstance().getStrByID("_Bill", "UPP_Bill-000002"));
      		rowmessage.append(") ");
    
      		StringBuffer errormessage = null;
      		BillItem[] items = billdata.getBodyItemsForTable(tablecode);
      		OUTER: for (int j = 0; j < items.length; j++) {
      			BillItem item = items[j];
      			int[] rows = hashFilter != null ? hashFilter.get(item) : null;
      			if (item.isNull()) {
      				if (rows != null) {
      					for (int ii = 0; ii < rows.length; ii++) {
      						if (rows[ii] == i) {
      							continue OUTER;
      						}
      					}
      				}
      				Object aValue = billdata.getBillModel(tablecode).getValueAt(i, item.getKey());
      				if (PubUtils.isNull(aValue)) {
      					// if(message == null)
      					// message = new StringBuffer(rowmessage);
      					errormessage = new StringBuffer();
      					errormessage.append("[");
      					errormessage.append(item.getName());
      					errormessage.append("]");
      					errormessage.append(",");
      				}
      			}
      		}
      		if (errormessage != null) {
    
      			errormessage.deleteCharAt(errormessage.length() - 1);
      			rowmessage.append(errormessage);
    
      			if (message == null) {
      				message = new StringBuffer(rowmessage);
      			} else {
      				message.append(rowmessage);
      			}
    
      			break;
      		}
      	}
      	if (message != null) {
      		break;
      	}
      }
    

    }
    if (message != null) {
    throw new NullFieldException(message.toString());
    }
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77

  1. 设置背景颜色
    /**
  • 为当前BillItem数组设置label组件的背景颜色 参数说明
  • @param bis
  • @param color
  • @author 麻杰
  • @time 2010-9-25 下午03:13:11
    */
    private static void setBackColor(BillItem[] bis, Color color) {
    for (int i = 0; i < bis.length; i++) {
    UILabel label = bis[i].getCaptionLabel();
    label.setBackground(color);
    }
    }
  1. 设置表格表头的颜色
    /**
  • 创建者:晁志平 功能:设置表格的Header颜色
  • 蒋力,修改原因:加入参数为空判断,改调用公共过程
    */
    public static void setBillCardHeaderColor(BillCardPanel cardPanel, ArrayList colorString, Color color) {
    BillItem[] bis = cardPanel.getBillData().getHeadItems();
    if (bis == null) {
    return;
    }
    // 还原所有背景色
    setBackColor(bis, cardPanel.getBackground());
    // 设置指定前景色
    setForegroundColor(bis, colorString, color);
    }

/**
*

  • 为当前BillItem数组设置label组件的背景颜色 参数说明
    */
    private static void setBackColor(BillItem[] bis, Color color) {
    for (int i = 0; i < bis.length; i++) {
    UILabel label = bis[i].getCaptionLabel();
    label.setBackground(color);
    }
    }

/**

  • 根据cols集合中指定的名称,来对BillItems数组元素中的label组件设置前景色
    */
    private static void setForegroundColor(BillItem[] bis, ArrayList cols, Color color) {
    for (int i = 0; i < cols.size(); i++) {
    if (cols.get(i) == null && “”.equals(cols.get(i))) {
    continue;
    }

      String col = cols.get(i).trim();
      for (int j = 0; j < bis.length; j++) {
      	String item = bis[j].getKey().trim();
      	if (item.equals(col)) {
      		// 获得当前表头组件的Label组件
      		UILabel label = bis[i].getCaptionLabel();
      		// 使该组件绘制其边界内的所有像素
      		label.setOpaque(true);
      		// 设置前景色为用户指定的颜色
      		label.setForeground(color);
      	}
      }
    

    }
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

  1. 设置表格底颜色
    /**
  • 创建者:晁志平 功能:设置表格的Tailer颜色 参数: 返回: 例外: 日期:
    */
    public static void setBillCardTailColor(BillCardPanel bcpBillCardPanel, ArrayList alColChangeColorString, Color color) {
    BillItem[] biBillItems = bcpBillCardPanel.getBillData().getTailItems();
    if (biBillItems == null || biBillItems.length == 0) {
    PubUtils.eatException(“当前表体没有任何元素,要为表体设置颜色,请确认是否为“主子表”、“单表头””, new Exception(“当前表体没有任何元素,要为表体设置颜色,请确认是否为“主子表”、“单表头””));
    return;
    }
    // 还原所有背景色
    setBackColor(biBillItems, bcpBillCardPanel.getBackground());
    // 设置指定前景色
    setForegroundColor(biBillItems, alColChangeColorString, color);
    上面这两个方法的实现在设置表格表头的方法中有
    }
  1. 是否可以输入数字
    /**
  • 设置是否可以输入数字 (0~9)
    */
    public static void setAllowNumeric(BillItem item, Boolean isEnable) {
    if (PubUtils.isNotNull(item)) {
    UITextField txtItem = getTextField(item);
    if (PubUtils.isNotNull(txtItem)) {
    txtItem.setAllowNumeric(isEnable);
    }
    }
    }

/**
*

  • 从BillItem对象中获取UITextField的对象
    */
    private static UITextField getTextField(BillItem item) {
    UITextField txtItem = null;
    if (PubUtils.isNotNull(item) && item.getComponent() instanceof UIRefPane) {
    txtItem = ((UIRefPane) item.getComponent()).getUITextField();
    } else if (PubUtils.isNotNull(item) && item.getComponent() instanceof UITextField) {
    txtItem = (UITextField) item.getComponent();
    }
    return txtItem;
    }
  1. 设置是否可以输入英文字母
    /**
  • 设置是否可以输入英文字母(大小写)(az)(AZ)
    */
    public static void setAllowAlphabetic(BillItem item, Boolean isEnable) {
    if (PubUtils.isNotNull(item)) {
    UITextField txtItem = getTextField(item);
    if (PubUtils.isNotNull(txtItem)) {
    txtItem.setAllowAlphabetic(isEnable);
    }
    }
    }
  1. 从服务器上下载文件并且复制到指定目录

/**
*

  • 方法功能描述:从服务器上下载文件并且复制到指定目录。
    */
    public static void downloadFileToDirectory(String packName, String dstPackName) {
    String downloadpack = packName.replace(’/’, ‘.’);
    downloadFile(downloadpack);
    copyDirectory(new File(UiUtils.getCodeCachePath() + “/” + packName), new File(dstPackName));
    }

/**
*

  • 方法功能描述:从服务器上下载文件。
    */
    public static void downloadFile(String packName) {
    Map<String, VID[]> vidMap;

    vidMap = VIDManager.getInstance().getClientVID();

    if (null == vidMap) {

      // 读取本地版本
      try {
      	vidMap = Util.readFromFile(UiUtils.getCodeCachePath() + "/Version/" + Consts.VID_FILE_NAME);
    
      } catch (Exception e) {
      	e.printStackTrace();
      	System.out.println("DELET OLD PACKAGE CACHE FILE...");
    
      }
    

    }

    VID[] fileVIDs = vidMap.get(packName);

    if (null == fileVIDs || 0 == fileVIDs.length) {
    return;
    }

    List listvid = new ArrayList();

    for (VID fileVID : fileVIDs) {
    listvid.add(fileVID);
    }

    try {
    String oriFilePath = ServiceConfig.getFileBase();
    String oriBaseHttpURL = ServiceConfig.getBaseHttpURL();
    ServiceConfig.setFileBase(getCodeCachePath());
    ServiceConfig.setBaseHttpURL(getSysURLBaseString());
    DownloadService.downloadClassFIle(packName, listvid, fileVIDs[0].getLocation(), 0);
    ServiceConfig.setFileBase(oriFilePath);
    ServiceConfig.setBaseHttpURL(oriBaseHttpURL);
    } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/**

  • 拷贝文件夹 将srcDir下的所有文件拷贝到dstDir下
    */
    public static void copyDirectory(File srcDir, File dstDir) {
    // boolean isSuccess = false;
    if (srcDir.isDirectory()) {
    if (!dstDir.exists()) {
    dstDir.mkdir();
    }
    String[] children = srcDir.list();
    for (int i = 0; i < children.length; i++) {
    copyDirectory(new File(srcDir, children[i]), new File(dstDir, children[i]));
    }
    } else {
    // This method is implemented in e1071 Copying a File
    copyFile(srcDir, dstDir);
    }
    }
  1. 大文件拷贝的问题
    /**
  • 通过NIO的方式拷贝文件,可以解决大文件拷贝的问题

*/
public static void copyFile(File srcDir, File dstDir) {
FileChannel srcChannel = null;
FileChannel dstChannel = null;
try {
// Create channel on the source
srcChannel = new FileInputStream(srcDir).getChannel();

	// Create channel on the destination
	dstChannel = new FileOutputStream(dstDir).getChannel();

	// Copy file contents from source to destination
	dstChannel.transferFrom(srcChannel, 0, srcChannel.size());

	// Close the channels
	srcChannel.close();
	dstChannel.close();
} catch (IOException e) {
	Logger.error("", e);
} finally {
	try {
		if (srcChannel != null && srcChannel.isOpen()) {
			srcChannel.close();
		}
		if (dstChannel != null && dstChannel.isOpen()) {
			dstChannel.close();
		}
	} catch (IOException e1) {
		e1.printStackTrace();
	}
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
39. 单点登录,从NC中跳转到浏览器的方法
比如点上传按钮,跳转到浏览器的方法,在上传方法中加入
Runtime.getRuntime().exec(“explorer “”+address+”"");
其中address为网址

  1. 导凭证的时候,报以下错误是怎样解决的
    异常信息: GlPeriodBO::getPeriod(pk_glorgbook,date) Exception!
    原因:
    客户有可能用的xml是旧模板
    日期字段和新模板的不一致
    你对比一下他的模板和你的模板字段是否一致

  2. 获得当前登录的数据源
    PfUtilUITools.getLoginDs()

  3. 获得当前登录的账簿主键
    String pk_loginGlorgbook = ((GlorgbookVO)nc.ui.pub.ClientEnvironment.getInstance().getValue(ClientEnvironment.GLORGBOOKPK)).getPrimaryKey();

  4. 查询某模块是否启用,是否启用模块
    ICreateCorpQueryService接口 有个 isEnabled(pk_corp, nc.vo.pub.ProductCode.PROD_IC))

  5. 字段宽度
    //表头
    String date_name = getBillListPanel().getHeadItem(“doperatordate”).getName(); //首先取得该字段的汉字名称,因为汉字名称可能会因修改模板而发生变化
    getBillListPanel().getHeadTable().getColumn(date_name).setPreferredWidth(100); //使用该方法,可以仅修改列表状态下的字段宽度

//表体
String wlbm_name = getBillListPanel().getBodyItem(“vwlbm”).getName();
getBillListPanel().getBodyTable().getColumn(wlbm_name).setPreferredWidth(300);

  1. 汉化配置文件(中文配置文件)
    在F:\nchome57\langlib中找到相应模块的jar包,然后解压可以找到。

  2. 根据帐套编码查询数据源名称
    dsName = AccountXMLUtil.findDsNameByAccountCode(accountCode);
    ————————————————
    版权声明:本文为CSDN博主「威定天下」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_33639332/article/details/83789399

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值