zoukankan      html  css  js  c++  java
  • Args传值总结 (Report Class Form)

    在开发过程中,我们往往会遇到传值问题!以下是关于我在这方面的工作总结,以后会更新!希望大家关注!

    //可以从Form的MenuItem中的单击事件中传批量参数至Report或者Class

    A ) Form

        void clicked()
    {
        Container       cData;
        ContainerClass  cClass;
        Formrun         formRun;
        Args            args = new Args();
        str             st1;//可以是数据源中的值
        int             int1;//也可以是传控件的值
        boolean         boolean1;
    ;
        cData       = [st1,int1,boolean1];//container内容
        cClass      = new ContainerClass(cData);//创建ContainerClass

        args.parmObject(cClass);//ContainerClass作为一个对象传过去


        new MenuFunction('YAM_D_InvoicesRepExportToExcel',MenuItemtype::Output).run(args);//Report

        new MenuFunction('YAM_D_InvoicesRepExportToExcel',MenuItemtype::Action).run(args);//Class
        super();//调用MenuItem(Report or Class)
    }

    /************************************/

    B ) Report(init())

    //报表中初始化接收从from中传过来的参数

    public void init()   //对Class取值并返回
    {
        ContainerClass  _ContainerClass;
        container       containerData;
    ;
        super();
        if(element.args() && element.args().parmObject())
        {
            _ContainerClass = element.args().parmObject();//取得对象
            containerData   = _ContainerClass.value();//取得class中的数据为container类型,用时直接从container中取即可

        }

    }

    C ) Class (Main())

    //报表中初始化接收从from中传过来的参数

    static void main(Args args)
    {
        YAM_Label       YAM_Label = new YAM_Label();
        int             StartTime,TakeTime;
    ;
        print args.parm();//接收从Form从传来的值

        if (YAM_Label.prompt())
        {
            StartTime = timenow();

            YAM_Label.run();

            TakeTime  = timeNow() - StartTime;
            info(strfmt("Take it time to %1 Hour %2 Minute %3 Second",TakeTime div 3600,TakeTime mod 3600 div 60,TakeTime mod 3600 mod 60));
            YAM_Label.initSomething(args);
        }
    }

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

    2009 - 09 - 02 增加 以下部分

    传递数据源当前记录值到class

    我们经常遇到这个问题;

    如:一个Form有很多记录,当选中某一条是,如何将这个记录传递给一个class呢? 

    A ) 在MenuItem中 选择数据源

    form有一个menuitem,menuitemtype是active,menuitemname就是class name

    B ) 在Class中的Main方法中获取

    通过args这个参数。在menuItemButton的datasopurce属性中设置你要传递的table。在class的main方法中通过args获得。
    static void main(Args args)
    {
          custtable t;//假定我的datasource是custtable
    ;
          t  = args.record();
          info( t.Address);
    }
        

  • 相关阅读:
    matlab学习(1)——sparse函数和full函数处理稀疏矩阵
    MFC学习(6)——以数组矩阵形式表示读取出来的BMP图像||将数组矩阵数据转成BMP图像
    opencv学习(5)——HOG算子
    图像处理MFC学习(7)——实现8*8数组的DCT、IDCT
    MFC学习(3)——WIDTHBYTES()每行象素所占的字节数目
    【iOS】The differences between Class Extension and Header File 类扩展与头文件的区别
    PAT算法题学习笔记
    【前端】require函数实现原理
    【前端】从输入URL到页面加载完成的过程中都发生了什么事情
    Photoshop学习笔记(待续)
  • 原文地址:https://www.cnblogs.com/Fandyx/p/2761565.html
Copyright © 2011-2022 走看看