zoukankan      html  css  js  c++  java
  • 报表Query中的DataSource间的关系

    在报表中,用Query做报表的数据源,如果有多个数据源,并且数据源之间要通过一定的字段关联起来,有两种方式
    1.将子数据源的Relations属性设为Yes,这样子数据源和父数据源之间的关系会根据物理表的关系自动建立
    2.手动在Relations节点下添加关系.
    这两种方式都没办法解决一个问题,父子数据源之间存在两种关联,一种是Nomal的,一种是Field Fixed.
    比如InventTrans和InventJournalTable这两个表之间有多个关系,都是通过字段TransRefId进行Nomal方式的关联,同时通过限定不同的TransType来定义一个Field Fixed关系,这样这两个表之间就形成了BOM,BOMLine,InventJournal等多个Ralations,在报表中如果想通过InventJournal这个关系取得两个表中的数据,用上述两种方式还真没办法实现(也许有,俺没找到),因为如果采用第一种方法,始终会采用默认的第一个关系(不知道怎么指定用InventJournal这个关系),而第二种方法没办法创建Field Fixed类型的关系.
    查看文档也没找到解决方案,没办法,只能重载了fetch方法,用代码Load特定的关系,代码如下:
    public boolean fetch()
    {
        boolean ret;
        QueryRun qr;
        DictRelation dict;
            ;
        qr 
    = new QueryRun(this);

        dict 
    = new DictRelation(tablenum(inventTrans));
        dict.loadNameRelation(
    "InventJournal");

        qr.query().dataSourceTable(tablenum(InventTrans)).addRelation(dict);
        ret 
    = super();
        
    return ret;
    }

    另外谴责一把右对齐,真搞不清楚Axapta为什么弄个右对齐出来,上述两个表的对应字段,如果按照默认安装,不调整全局类型的情况下,查不出数据,因为默认情况下,一个左对齐,一个右对齐,ft!
  • 相关阅读:
    【OpenJudge 2.5-1792】这绝壁是一道玄学题!【DFS】
    【BZOJ1034】省队选手不务正业打泡泡堂(我也不知道是啥算法)
    文件操作的常用方法和使用
    数据类型所有方法和使用整理之------字典
    数据类型所有方法和使用整理之------列表
    用类的内置方法实现类型检查
    类的内置方法及描述符
    用python实现MRO算法
    RHEL6.5 DHCP服务器搭建
    Python之禅 吾心笃定
  • 原文地址:https://www.cnblogs.com/Farseer1215/p/497973.html
Copyright © 2011-2022 走看看