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

  • 相关阅读:
    领会一些比较巧妙的算法
    操作系统os常识
    C++中的继承与虚函数各种概念
    我学shell程序的记录
    matlab:linux环境中将m文件编译成动态链接库
    struct内存对齐:gcc与VC的差别
    fedora中丢失或损坏fstab,无法启动,如何补救
    判断一个字符串中的字符是否都在另一个中出现
    linux下的不错的小软件:apvlv,zathura和vifm
    C语言中将结构体写入文件
  • 原文地址:https://www.cnblogs.com/Fandyx/p/2761565.html
Copyright © 2011-2022 走看看