简单帐表插件开发示例分享
金蝶云社区-星星火
星星火
1人赞赏了该文章 11717次浏览 未经作者许可,禁止转载编辑于2014年04月21日 11:22:44

[code]public class DemoSysReport : SysReportBaseService
{
public override void Initialize()
{
// 支持分组汇总
this.ReportProperty.IsGroupSummary = true;
//this.ReportProperty.BillKeyFieldName = "FID";
this.ReportProperty.ReportName = new LocaleValue(Kingdee.BOS.Resource.ResManager.LoadKDString("销售分组汇总报表","002460030014686",Kingdee.BOS.Resource.SubSystemType.BOS), this.Context.UserLocale.LCID);
//this.ReportProperty.GroupSummaryInfoData.DefaultGroupbyString = "fwname";
this.ReportProperty.DecimalControlFieldList = new List();
// 标示famount用famount_decimal做精度格式化
this.ReportProperty.DecimalControlFieldList.Add(new DecimalControlField() { ByDecimalControlFieldName = "famount", DecimalControlFieldName = "famount_decimal" });
}

public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
{
// 拼接sql
string sSQL = @"select b.fname as fwname,c.fcustid,d.fname as fcname,a.* ,f.famount,3 as famount_decimal,f.fprice, {0} into {1} from T_SAL_ORDERENTRY a
left join T_BD_MATERIAL_L b on a.fmaterialid=b.fmaterialid and b.FLOCALEID=2052
left join T_SAL_ORDER c on a.fid=c.fid
left join T_BD_CUSTOMER_L d on c.fcustid=d.fcustid and d.FLOCALEID=2052
left join T_SAL_ORDERENTRY_F f on a.fentryid=f.fentryid";
// 设置分页排序
KSQL_SEQ = string.Format(KSQL_SEQ, "a.FID asc");
sSQL = string.Format(sSQL, this.KSQL_SEQ, tableName);

DBUtils.Execute(this.Context, sSQL);
}

public override ReportTitles GetReportTitles(IRptParams filter)
{
ReportTitles titles = new ReportTitles();
// TODO:从filter中获取具体的固定过滤条件,设置到tilte中,用于报表条件展示
//titles.AddTitle("FText", "55555");
//titles.AddTitle("FLabel", "66666");
return titles;
}
///


/// 设置汇总列信息
///

///
///
public override List GetSummaryColumnInfo(IRptParams filter)
{
List summarys = new List();
summarys.Add(new Core.Report.SummaryField("FQty", Core.Enums.BOSEnums.Enu_SummaryType.SUM));
// 单价求平均
summarys.Add(new Core.Report.SummaryField("fprice", Core.Enums.BOSEnums.Enu_SummaryType.AVERAGE));
// 金额汇总
summarys.Add(new Core.Report.SummaryField("famount", Core.Enums.BOSEnums.Enu_SummaryType.SUM));
return summarys;
}
///
/// 构建动态列
///

///
///
public override ReportHeader GetReportHeaders(IRptParams filter)
{
// TODO:fentryid,fid,fbaseunitqty,fmaterialid,fbomid,fqty
ReportHeader header = new ReportHeader();
header.AddChild("fwname", new LocaleValue(Kingdee.BOS.Resource.ResManager.LoadKDString("物料","002460030014689",Kingdee.BOS.Resource.SubSystemType.BOS), this.Context.UserLocale.LCID));
header.AddChild("fcustid", new LocaleValue(Kingdee.BOS.Resource.ResManager.LoadKDString("客户","002460030014692",Kingdee.BOS.Resource.SubSystemType.BOS), this.Context.UserLocale.LCID));
header.AddChild("FQty", new LocaleValue(Kingdee.BOS.Resource.ResManager.LoadKDString("数量","002460030014695",Kingdee.BOS.Resource.SubSystemType.BOS), this.Context.UserLocale.LCID),SqlStorageType.SqlDecimal);
header.AddChild("fprice", new LocaleValue(Kingdee.BOS.Resource.ResManager.LoadKDString("单价","002460030014698",Kingdee.BOS.Resource.SubSystemType.BOS), this.Context.UserLocale.LCID), SqlStorageType.SqlDecimal);
header.AddChild("famount", new LocaleValue(Kingdee.BOS.Resource.ResManager.LoadKDString("金额","002460030014701",Kingdee.BOS.Resource.SubSystemType.BOS), this.Context.UserLocale.LCID), SqlStorageType.SqlDecimal);
return header;
}
}[/code]