NC65企业报表数据获取

文章描述了如何使用SQL查询从企业报表物理表中获取特定指标数据,涉及到了报表的版本号、关键字组合以及数据的左连接操作。同时,文章还展示了获取资产负债表数据的过程,包括从报表组织和日期确定alone_id,以及利用缓存管理和指标管理对照关系进行数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
SQL查询企业报表各个指标数据(t3=企业报表物理表)
1.企业报表物理表请查看《报表表样-全局或集团》节点,格式设计>数据>指标管理,能看到数据库物理表名和各指标具体列名;
2.t3.m10005是指标具体物理表列名;
3.t1.keyword1和t1.keyword2为《报表表样-全局或集团》节点“关键字组合”两个字段,就是各企业报表设计界面的两个字段值。
4.有版本号的具体怎么取数,没有研究过,默认t1.ver大部分都是0。
*/
 select t1.alone_id, /*主键*/
        t1.keyword1, /*关键字1=报表组织*/
        t1.keyword2, /*关键字2=单位:会计月*/
        t1.ver, /*版本号*/
        t2.code, /*报表组织编码*/
        t2.name, /*报表组织名称*/
        nvl(t3.m10005, 0) as yyzsr /*企业利润表-营业收入指标值*/
   from iufo_measpub_0011 t1 /*固定表1*/
   left join org_reportorg t2 /*固定表2*/
     on t1.keyword1 = t2.pk_reportorg
   left join iufo_measure_data_kvt4w1fi t3 /*各企业报表物理表*/
     on t1.alone_id = t3.alone_id
  where t1.dr = 0
  order by t2.name, t1.keyword2;

//获取资产负债表的数据

Map<String,String> reportMap = (Map<String, String>) dao.executeQuery("select pk_report from iufo_report where  code= '企业报表编码'", new MapProcessor());

//获取资产负债表指标管理对照关系
        RepFormatModelCache repFormatModelCache = UFOCacheManager.getSingleton().getRepFormatCache();
        CellsModel formatModel = repFormatModelCache.getUfoTableFormatModel(pk_report);
        IStoreCell[] storeCells= StoreCellUtil.getMeasureStoreCellsByRepId(pk_report);
        // 格式态,将指标pk与指标vo的对应关系维护起来
        MeasureModel measModel = MeasureModel.getInstance(formatModel);
        String[] strMeasPKs = measModel.getAllMeasurePK();
        MeasureCache measCache = UFOCacheManager.getSingleton().getMeasureCache();
        MeasureVO[] measures = measCache.getMeasures(strMeasPKs);
        // 确定位置
        Hashtable list = measModel.getMeasureVOPosByAll();

//根据报表组织跟报表日期确定aloneid
        List<String> aloneidList = (List<String>) dao.executeQuery("select alone_id from iufo_measpub_0011 where keyword1 in ("+reportorg+") and keyword2 = '"+reportdate+"' and ver = '0' ",new ColumnListProcessor());

String[] aloneidArr = aloneidList.toArray(new String[0]);

//获取数据

MeasureDataDMO dataDMO = new MeasureDataDMO();
            MeasureDataVO[] datas = dataDMO.getRepData(aloneidArr, storeCells);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值