您的位置:首页 > 其它

nc推单---弹出新单据框

2015-08-24 11:00 225 查看
nc 推单的话,先生成action按钮:

代码如下:

@Override

public void doAction(ActionEvent e) throws Exception {

if (getModel().getSelectedData() != null) {

//获取当前表单数据

AggInspectReportVO inspectReportVO = (AggInspectReportVO) getModel()

.getSelectedData();

//向下游单据传输数据

showDetailData(inspectReportVO);

}

super.doAction(e);

}

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

private void showDetailData(AggInspectReportVO inspectReportVO) {

FuncRegisterVO funcRegisterVO = WorkbenchEnvironment.getInstance()

.getFuncRegisterVO("K0H1040000");

if (inspectReportVO == null|| funcRegisterVO == null) {

return;

}

FuncletInitData initData = new FuncletInitData();

initData.setInitType(ILinkType.LINK_TYPE_ADD);

//关键代码,向下游传输数据,这个方法接收的是一个Object参数,所以 initData里面的内容可以随意定,

//传什么样的数据,下游就有什么样的数据类型来接收,下游接收调用的是data.getInitData()方法,见再下面代码:

initData.setInitData(inspectReportVO);

int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width * 9 / 10;

int screenHeight = Toolkit.getDefaultToolkit().getScreenSize().height * 9 / 10;

FuncletWindowLauncher.openFuncNodeFrame(this.getModel().getContext()

.getEntranceUI(), funcRegisterVO, initData, null, true,

new Dimension(screenWidth, screenHeight));

}

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

设置单据初始化功能节点佂听:

配置文件加:

#####################################################

<bean id="InitDataListener" class="nc.ui.bgymem.bgyqc40.listener.InspectReportFunInitListener">

<property name="model" ref="manageAppModel"/>

<property name="context" ref="context"></property>

<!-- VO的类名 -->

<property name="voClassName" ref="aggVoName"/>

<!-- 打开节点节点后要显示的界面 -->

<property name="autoShowUpComponent" ref="billFormEditor"/>

<property name="multiLinkQueryEnable" value="true"/>

</bean>

##########################################################################

添加类:

public class InspectReportFunInitListener extends JZFDCDefaultFuncNodeInitDataListener{

@SuppressWarnings("restriction")

@Override

public void initData(FuncletInitData data) {

super.initData(data);

if (data != null && data.getInitData() instanceof AggInspectReportVO) {

AggInspectReportVO initData = (AggInspectReportVO)data.getInitData();

InspectReportBillForm billForm = (InspectReportBillForm)this.getAutoShowUpComponent();

if (!billForm.isComponentVisible()) {// 判断是否为卡片界面

billForm.showMeUp();// 跳转到卡片界面

}

this.getModel().setUiState(UIState.ADD);

try {

billForm.loadAllData(initData);

} catch (BusinessException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

}

}

}

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

billform添加方法:

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

public void loadAllData(AggInspectReportVO aggvo) throws BusinessException {

getModel().getContext().setPk_org(aggvo.getParentVO().getPk_org());

this.getBillOrgPanel().setPkOrg(aggvo.getParentVO().getPk_org_v());

BillItem[] items = this.getBillCardPanel().getHeadItems();

for(BillItem item : items){

this.getBillCardPanel().setHeadItem(item.getKey(), aggvo.getParentVO().getAttributeValue(item.getKey()));

}

InspectReportBVO[] inspectReportBVO = (InspectReportBVO[]) aggvo.getChildren(InspectReportBVO.class);

this.getBillCardPanel().getBillModel("pk_inspproj").setBodyDataVO(inspectReportBVO);

this.getBillCardPanel().getBillModel("pk_inspproj").loadLoadRelationItemValue();

this.getBillCardPanel().getBillModel("pk_inspproj").execLoadFormula();

InspectReportB4VO[] inspectReportB4VO = (InspectReportB4VO[]) aggvo.getChildren(InspectReportB4VO.class);

this.getBillCardPanel().getBillModel("pk_inspspecial").setBodyDataVO(inspectReportB4VO);

this.getBillCardPanel().getBillModel("pk_inspspecial").loadLoadRelationItemValue();

this.getBillCardPanel().getBillModel("pk_inspspecial").execLoadFormula();

InspectReportB1VO[] inspectReportB1VO = (InspectReportB1VO[]) aggvo.getChildren(InspectReportB1VO.class);

this.getBillCardPanel().getBillModel("pk_inpgather").setBodyDataVO(inspectReportB1VO);

this.getBillCardPanel().getBillModel("pk_inpgather").loadLoadRelationItemValue();

this.getBillCardPanel().getBillModel("pk_inpgather").execLoadFormula();

InspectReportB2VO[] inspectReportB2VO = (InspectReportB2VO[]) aggvo.getChildren(InspectReportB2VO.class);

this.getBillCardPanel().getBillModel("pk_inspnotice").setBodyDataVO(inspectReportB2VO);

this.getBillCardPanel().getBillModel("pk_inspnotice").loadLoadRelationItemValue();

this.getBillCardPanel().getBillModel("pk_inspnotice").execLoadFormula();

InspectReportB3VO[] inspectReportB3VO = (InspectReportB3VO[]) aggvo.getChildren(InspectReportB3VO.class);

this.getBillCardPanel().getBillModel("pk_insporg").setBodyDataVO(inspectReportB3VO);

this.getBillCardPanel().getBillModel("pk_insporg").loadLoadRelationItemValue();

this.getBillCardPanel().getBillModel("pk_insporg").execLoadFormula();

}

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

另外,特殊情况下,可以利用方法重新组装initdata,然后再传到下游单据:

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

private ILinkQueryData getInitDatas(final AggInspectReportVO inspectReportVO) {

List<ILinkQueryData> initDatas = new ArrayList<ILinkQueryData>();

InspectReportVO assessVO =inspectReportVO.getParentVO();

final String pk_mkbhvass = assessVO.getPk_mkbhvass();

final String pk_org = assessVO.getPk_org();

ILinkQueryData initData=new ILinkQueryData() {

@Override

public String getBillID() {

return pk_mkbhvass;

}

@Override

public String getBillType() {

return "K071-Cxx-01";

}

@Override

public String getPkOrg() {

return pk_org;

}

@Override

public Object getUserObject() {

return inspectReportVO;

}

};

return initData;

}

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: