FAQ > 金融建模 > 数据提取 > 基本面数据

Q:财务数据的调整前与调整后的表格数据提取:pn_reportmode()    

  • 定义:pn_ReportMode():String;
    说明:设定基本面数据提取的规则,除了对取表格数据InfoTable、InfoArray有效,还对取财务指标如report、reportofall等有效。
    取值:1,只返回调整前
       0,如果有调整后,则返回;否则,返回调整前(即:取最新可取到的),默认值
       -1,返回调整前、调整后,则全部数据。
    范例01:提取万科A的2016年年报的调整前与调整后的所有合并资产负债表的数据
      setsysparam(pn_reportmode(),-1);//取全部
      return select * from infotable 44 of 'SZ000002' where ['截止日']=20161231 end;

    //返回:


    范例02:在指定日已存在调整前与调整后的=的情况下,取历史数据中调整前的指标值
    如:平安银行在20220331期数据如下:

    以取公布日为例,通过设置pn_reportmode()方式分别得到调整前调整后的公布日
    //取调整后-也可省,一般为默认方式(平台特别设置后例外)
    setsysparam(pn_reportmode(),0);//调整后-即取当前时间内最新公布的记录
    setsysparam(pn_stock(),"SZ000001");
    setsysparam(pn_date(),today());  
    return report(46102,20220331);
    //返回结果为:20230425 (即调整后的最新公布日)

    //设置为取调整前
    setsysparam(pn_reportmode(),1);//取调整前
    setsysparam(pn_stock(),"SZ000001");
    setsysparam(pn_date(),today());
    return report(46102,20220331);
    //返回结果为:20220427 (即调整前的公布日)



    关于调整前与调整后的概念,可参考:FAQ:2012-04-08-模型更新-关于财务数据的调整及访问方法
    FAQ:Q:财务数据提取时pn_ReportMode()与pn_date()对数据结果的影响