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

来源:互联网 发布:湖北广电网络武汉有线 编辑:程序博客网 时间:2024/04/30 21:15

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;
    }
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


0 0