FAQ
>
金融建模
>
数据提取
>
基本面数据
Q:如何获取个股指定报告期财务数据发生调整的字段
复制链接
A:财务数据如果发生调整,天软会记录多条数据,数据表现为截止日相同而公布日不同
新的报告都有哪些字段发生过调整需逐一比较,实现过程参考以下案例:
实现案例
获取模型getReportAdjustmentField后调用即可
实现代码:
//获取万科A2015年年报利润分配表的字段调整情况
return getReportAdjustmentField("SZ000002",20151231,46);
getReportAdjustmentField
实现模型:
附件:getReportAdjustmentField.fun
Function getReportAdjustmentField(stock,rdate,infoid);
Begin
{
说明:获取个股指定报告期财报数据的调整字段
参数:
stock:string 股票代码
rdate:Int 报告期
infoid:Int 报表InfoID
返回:数组,发生调整的字段信息,没有调整返回空数组
}
setsysparam(pn_reportmode(),-1);//取全部
data:=select * from infotable infoid of stock
where ["截止日"]=rdate end;
if length(data)<2 then return array();
tarr:=data[:,"公布日"];
zhs:= nchoosek(tarr,2); //公布日分组
data:= `NormalTabletoStrSubscript(data,"公布日");
rt:=array();
for j in zhs do
begin
info:=data;
zh:=zhs[j,:];
rdate1:=Max(zh[0],zh[1]);
rdate2:=min(zh[0],zh[1]);
sdate1:=FloatToStr(rdate1);
sdate2:=FloatToStr(rdate2);
dbfield:=sdate1$"-"$sdate2;
//对比不同报告期数据
info[:,dbfield]:=info[:,rdate1].=info[:,rdate2];
tem:= select [rdate1],[rdate2]
from info where [dbfield]=0 end;
cols:=mrows(tem,1);
rt[n,"StockID"]:=stock;
rt[n,"StockName"]:=stockname(stock);
rt[n,"数据表"]:=bname(infoid);
rt[n,"截止日"]:=rdate;
rt[n,"调整前公布日"]:=rdate2;
rt[n,"调整后公布日"]:=rdate1;
rt[n,"调整字段"]:=cols;
rt[n++,"调整详情"]:=tem;
end
return rt;
End;
相关说明
FAQ:
Q:财务数据的调整前与调整后的表格数据提取:pn_reportmode()
FAQ:
在三大报表(44、46、48)中,截止日、数据报告期、公布日分别指什么?它们之间有何区别?