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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fandyx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值