下面是一段代码,主要是BOTP调用方法的使用,希望读者能看明白。
public void actionCreateTo_actionPerformed(ActionEvent e)
throws Exception
{
setCanVoucher(false);
checkSelected();
ArrayList idList = new ArrayList();
List entriesKey = new ArrayList();
getBillIdList(idList, entriesKey);
String[] idArray = new String[idList.size()];
idList.toArray(idArray);
if (this.isDAPTrans)
{
entriesKey.clear();
}
this.billList.createTo(idArray, new String[] { getEntriesName() }, entriesKey, getBizType().toString(), getBOTPSelectors());
}
public void getBillIdList(List idList, List entriesList)
{
int mode = 0;
List blockList = this.tblMain.getSelectManager().getBlocks();
if ((blockList != null) && (blockList.size() == 1))
{
mode = ((IBlock)this.tblMain.getSelectManager().getBlocks().get(0)).getMode();
}
if (mode == 8) {
List selectIdList = getQueryPkList();
if (selectIdList != null) {
Iterator lt = selectIdList.iterator();
while (lt.hasNext())
{
Object[] idObj = (Object[])lt.next();
if (idObj == null)
continue;
if (!(idList.contains(idObj[0].toString()))) {
idList.add(idObj[0].toString());
}
if ((idObj.length == 2) && (idObj[1] != null))
entriesList.add(idObj[1]);
}
}
}
else
{
ArrayList blocks = this.tblMain.getSelectManager().getBlocks();
Iterator iter = blocks.iterator();
while (iter.hasNext())
{
KDTSelectBlock block = (KDTSelectBlock)iter.next();
int top = block.getTop();
int bottom = block.getBottom();
for (int rowIndex = top; rowIndex <= bottom; ++rowIndex)
{
ICell cell = this.tblMain.getRow(rowIndex).getCell(getKeyFieldName());
if ((this.tblMain.getRow(rowIndex).getCell(getEntriesPKName()) != null) && (this.tblMain.getRow(rowIndex).getCell(getEntriesPKName()).getValue() != null))
{
entriesList.add(this.tblMain.getRow(rowIndex).getCell(getEntriesPKName()).getValue().toString());
}
if (!(idList.contains(cell.getValue())))
idList.add(cell.getValue());
}
}
}
}
public void createTo(String[] idList, String[] entryNames, List entriesKey, String srcBillType, SelectorItemCollection botpSelectors)
throws Exception
{
if ((idList == null) || (idList.length == 0))
{
MsgBox.showWarning(this.billListUI, EASResource.getString("com.kingdee.eas.framework.FrameWorkResource.Msg_NoneSelect_Bill"));
return;
}
Map uiContext = new HashMap();
uiContext.put("Owner", this.billListUI);
uiContext.put("idList", idList);
uiContext.put("entryNames", entryNames);
uiContext.put("entriesKey", entriesKey);
uiContext.put("srcBillType", srcBillType);
uiContext.put("botpSelectors", null);
uiContext.put("SRCBILLLIST", this.billListUI);
IUIFactory uiFactory = UIFactory.createUIFactory(UIFactoryName.MODEL);
IUIWindow window = uiFactory.create("com.kingdee.eas.base.btp.client.BTPMakeBillUIWithoutGrp", uiContext, null);
CtrlSwingUtilities.centerWindow((UIModelDialog)window);
BTPMakeBillUIWithoutGrp uiWindow = (BTPMakeBillUIWithoutGrp)window.getUIObject();
uiWindow.setBTPImplCaller(this);
window.show();
Logger.info("createTo finished!");
}