K/3Cloud 分页报表示例参考
分页报表首先需要实现的方法就是GetList,这个方法用来获得分页的条件。
其他的就和其他报表类似了。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Kingdee.BOS.Core.Report.PlugIn;
using Kingdee.BOS.Core.Report;
using System.Data;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Contracts.Report;
using Kingdee.BOS.Core.CommonFilter;
using Kingdee.BOS.Util; namespace Kingdee.BOS.Demo.Report
{
public class DemoMoveReport : SysReportBaseService
{
public override void Initialize()
{
// 标记报表类型
this.ReportProperty.ReportType = Core.Report.ReportType.REPORTTYPE_MOVE;
this.ReportProperty.IsGroupSummary = true;
} /// <summary>
/// 构建分页报表每个报表的临时表
/// 首先从分页依据中拿到本次分页的条件,就是当前页报表的条件:this.CacheDataList[filter.CurrentPosition]
/// 然后把条件拼装到SQL中,例如b.FLocaleId= dr["FLocaleId"] 语言id=当前报表的语言id
/// </summary>
/// <param name="filter"></param>
/// <param name="tableName"></param>
public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
{
DataRow dr = this.CacheDataList[filter.CurrentPosition];
string sSQL = @"select a.fdeptid as FID, fname,ffullname as fdesc,FLocaleId,'BD_DEPARTMENT' as fformid, {0} into {1} from T_BD_DEPARTMENT a
inner join T_BD_DEPARTMENT_l b on a.fdeptid=b.fdeptid where b.FLocaleId=" + dr["FLocaleId"].ToString();
KSQL_SEQ = string.Format(KSQL_SEQ, "b.FLocaleId");
sSQL = string.Format(sSQL, this.KSQL_SEQ, tableName); DBUtils.Execute(this.Context, sSQL);
} public override List<Core.Report.SummaryField> GetSummaryColumnInfo(IRptParams filter)
{
List<Core.Report.SummaryField> fls = new List<Core.Report.SummaryField>();
Core.Report.SummaryField fs = new Core.Report.SummaryField("FLocaleId", Core.Enums.BOSEnums.Enu_SummaryType.SUM);
fls.Add(fs);
return fls;
} /// <summary>
/// 分页报表必须实现的方法,此方法用于为报表提供分页依据。
/// 比如以下示例:分别按语言来对部门分类,也就是说每种语言一个报表,中文的是一个报表、英文的一个报表,繁体的一个
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
public override DataTable GetList(IRptParams filter)
{
DataTable dt;
string sSQL = "select FLocaleId from T_BD_DEPARTMENT_L group by FLocaleId";
dt = DBUtils.ExecuteDataSet(this.Context, sSQL).Tables[0];
return dt;
} public override ReportTitles GetReportTitles(IRptParams filter)
{
ReportTitles titles = new ReportTitles();
if (CacheDataList == null)
{
DataTable dt = GetList(filter);
if (dt != null && dt.Rows.Count > 0)
{
//titles.AddTitle("FCondition", dt.Rows[0]["flocaleid"].ToString());
return titles;
}
return null;
}
DataRow dr = this.CacheDataList[filter.CurrentPosition];
//titles.AddTitle("FCondition", dr["flocaleid"].ToString());
return titles;
} public override ReportHeader GetReportHeaders(IRptParams filter)
{
// TODO:
ReportHeader header = new ReportHeader();
header.AddChild("FID", new LocaleValue(Kingdee.BOS.Resource.ResManager.LoadKDString("编码","002460030014674",Kingdee.BOS.Resource.SubSystemType.BOS), this.Context.UserLocale.LCID)); header.AddChild("fname", new LocaleValue(Kingdee.BOS.Resource.ResManager.LoadKDString("全名","002460030014677",Kingdee.BOS.Resource.SubSystemType.BOS), this.Context.UserLocale.LCID));
header.AddChild("fdesc", new LocaleValue(Kingdee.BOS.Resource.ResManager.LoadKDString("别名","002460030014680",Kingdee.BOS.Resource.SubSystemType.BOS), this.Context.UserLocale.LCID)); header.AddChild("FLocaleId", new LocaleValue(Kingdee.BOS.Resource.ResManager.LoadKDString("类别","002460030014683",Kingdee.BOS.Resource.SubSystemType.BOS), this.Context.UserLocale.LCID),SqlStorageType.SqlInt);
return header;
}
}
}
K/3Cloud 分页报表示例参考的更多相关文章
- K/3Cloud二次开发基于WebDev附加进程调试
大部分人在进行K/3cloud二次开发插件的调试时,选择的是附加IIS进程w3wp调试,本文给大家介绍一下基于WebDev附加进程调试,不用重启iis. 步骤如下: 1)拷贝K/3cloud产品安装目 ...
- EasyUI DataGrid 分页实现示例
使用easyui可以很方便的开发web程序,这儿仅展示一个后台使用mvc来实现分页的示例,截图如下 示例代码如下 1. 创建模型类,代码如下 using System; using System.Co ...
- scroll事件实现监控滚动条并分页显示示例(zepto.js)
scroll事件实现监控滚动条并分页显示示例(zepto.js ) 需求:在APP落地页上的底部位置显示此前其他用户的购买记录,要求此div盒子只显示3条半,但一页有10条,div内的滑动条滑到一页 ...
- Python 发送邮件包含附件报表示例
之前需要用Python发送报表邮件,在网上找了下资料,基本上符合要求了. 相关的示例如下,懂python的人应该都知道. from email.mime.text import MIMEText fr ...
- PHP+MySQL分页显示示例分析
Web开发是今后分布式程式开发的主流,通常的web开发都要涉及到与数据库打交道,客户端从服务器端读取通常都是以分页的形式来显示,一页一页的阅读起来既方便又美观.所以说写分页程序是web开发的一个重要组 ...
- socket.io入门示例参考
参考示例地址:http://www.linchaoqun.com/html/cms/content.jsp?menu=nodejs&id=1480081169735
- 使用vs进行Nuget打包时的LicenseExpression填写示例参考
新版的nuget包 PackageLicense 这样写 最近编译类库项目的时候发现总是有个 licenseUrl 的警告,警告信息如下: warning NU5125: The 'licenseUr ...
- laravel 数据分页简单示例
控制器代码:只需用paginate($pageSize)方法查询数据即可 $pageSize:每页显示的记录数 public function index() { $data = Member::pa ...
- [deviceone开发]-echart的简单报表示例
一.简介 echart是一个常用的基于h5的报表库.这个例子简单展示了实现折线图,柱状图,圆环图和圆饼图的使用. 并实现和do的非html部分的数据交互. 二.效果图 三.相关下载 https://g ...
随机推荐
- 分享几个自己喜欢的前端UI框架
http://www.layui.com/ http://element-cn.eleme.io/#/zh-CN/component/installation
- 你干啥的?Lombok
01.Lombok 的自我介绍 Lombok 在官网是这样作自我介绍的: Project Lombok makes java a spicier language by adding 'handler ...
- JVM内存各个区域分工简单介绍
JVM内存各个区域简单介绍: 程序计数器:程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器. 在使用多线程时,为了线程切换后能恢复到正确的执行位置,每条线程都需要有个独立 ...
- 必看的dockerfile禁忌与建议!
直接上对照组(看第三个run) test1 FROM centos MAINTAINER ** RUN yum -y update RUN yum -y install wget RUN wg ...
- Oracle的数据伪列(ROWNUM)
作者:Vashon 时间:20150414 数据库:Oracle11g 数据伪列(ROWNUM) *范例:查询前5条记录:select rownum,empno,job,hiredate,sal fr ...
- HDU 4465 Candy (数学期望)
题意:有两个盒子各有n个糖(n<=2*105),每天随机选1个(概率分别为p,1-p),然后吃掉一颗糖.直到有一天打开盒子一看,这个盒子没有糖了.输入n,p,求此时另一个盒子里糖的个数的数学期望 ...
- qs库 是将url参数和json互转 | query strings 缩写 | import qs from 'qs'
import qs from 'qs' 1.npm地址 https://www.npmjs.com/package/qs 2.概述 将url中的参数转为对象: 将对象转为url参数形式 3.示例 ...
- redis.conf介绍
默认配置文件: # Redis configuration file example. # # Note that in order to read the configuration file, R ...
- nvm、npm、nodejs的关系(转载)
nvm.npm.nodejs的关系 为什么要了解nvm.npm.nodejs的关系: reactNative的项目构建都是有这几个工具进行构建管理. 掌握他们的关系,就能了解reactNative项目 ...
- 小程序01 微信小程序介绍和开发准备
前言 火爆的微信小程序:跳一跳.摩拜单车.美柚.大众点评.滴滴出行 背景 为什么会有小程序? 微信最早推出公众号和服务号,公众号和服务号所传播的网页经常出现加载缓慢甚至页面空白的情况. 微信小程序的诞 ...