有时碰到在发布客户端UI(editUI和ListUI)后,编译代码时提示getTDFileName()和getTDQueryPK()方法找不到,也就是bos没发布出来,仔细分析了一下发现,是因为UI是用BIM建的,之后觉得.bizunit不会再用了就将其删掉了,但用BIM建的单据元数据中已经包含了套打的方法,所以bos对UI在发布时会去找.bizunit文件,找不到此文件就不会发布这两个方法,导致发布的代码出错。解决办法:恢复(或在bim中新建然后用导入的方式重新创建).bizunit文件后发布即可。
直接用bos studio建的UI不会涉及套打,所以没有此问题。
以下是抽象类中发布出来的代码,供参考。
public void actionPrint_actionPerformed(ActionEvent e) throws Exception
{
ArrayList idList = new ArrayList();
if (editData != null && !StringUtils.isEmpty(editData.getString("id"))) {
idList.add(editData.getString("id"));
}
if (idList == null || idList.size() == 0 || getTDQueryPK() == null || getTDFileName() == null)
return;
com.kingdee.bos.ctrl.kdf.data.impl.BOSQueryDelegate data = new com.kingdee.eas.framework.util.CommonDataProvider(idList,getTDQueryPK());
com.kingdee.bos.ctrl.report.forapp.kdnote.client.KDNoteHelper appHlp = new com.kingdee.bos.ctrl.report.forapp.kdnote.client.KDNoteHelper();
appHlp.print(getTDFileName(), data, javax.swing.SwingUtilities.getWindowAncestor(this));
}
《完》