分页报表首先需要实现的方法就是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 分页报表示例参考的更多相关文章

  1. K/3Cloud二次开发基于WebDev附加进程调试

    大部分人在进行K/3cloud二次开发插件的调试时,选择的是附加IIS进程w3wp调试,本文给大家介绍一下基于WebDev附加进程调试,不用重启iis. 步骤如下: 1)拷贝K/3cloud产品安装目 ...

  2. EasyUI DataGrid 分页实现示例

    使用easyui可以很方便的开发web程序,这儿仅展示一个后台使用mvc来实现分页的示例,截图如下 示例代码如下 1. 创建模型类,代码如下 using System; using System.Co ...

  3. scroll事件实现监控滚动条并分页显示示例(zepto.js)

    scroll事件实现监控滚动条并分页显示示例(zepto.js  ) 需求:在APP落地页上的底部位置显示此前其他用户的购买记录,要求此div盒子只显示3条半,但一页有10条,div内的滑动条滑到一页 ...

  4. Python 发送邮件包含附件报表示例

    之前需要用Python发送报表邮件,在网上找了下资料,基本上符合要求了. 相关的示例如下,懂python的人应该都知道. from email.mime.text import MIMEText fr ...

  5. PHP+MySQL分页显示示例分析

    Web开发是今后分布式程式开发的主流,通常的web开发都要涉及到与数据库打交道,客户端从服务器端读取通常都是以分页的形式来显示,一页一页的阅读起来既方便又美观.所以说写分页程序是web开发的一个重要组 ...

  6. socket.io入门示例参考

    参考示例地址:http://www.linchaoqun.com/html/cms/content.jsp?menu=nodejs&id=1480081169735

  7. 使用vs进行Nuget打包时的LicenseExpression填写示例参考

    新版的nuget包 PackageLicense 这样写 最近编译类库项目的时候发现总是有个 licenseUrl 的警告,警告信息如下: warning NU5125: The 'licenseUr ...

  8. laravel 数据分页简单示例

    控制器代码:只需用paginate($pageSize)方法查询数据即可 $pageSize:每页显示的记录数 public function index() { $data = Member::pa ...

  9. [deviceone开发]-echart的简单报表示例

    一.简介 echart是一个常用的基于h5的报表库.这个例子简单展示了实现折线图,柱状图,圆环图和圆饼图的使用. 并实现和do的非html部分的数据交互. 二.效果图 三.相关下载 https://g ...

随机推荐

  1. 配置组件的 props

    组件是相互独立.可复用的单元,一个组件可能在不同地方被用到.但是在不同的场景下对这个组件的需求可能会根据情况有所不同,例如一个点赞按钮组件,在我这里需要它显示的文本是“点赞”和“取消”,当别的同事拿过 ...

  2. ES之基本数据类型之间的显示转换和隐式转换

    typeof(数据)/ typeof 数据 判断数据的数据类型,typeof返回的都是字符串 输出结果类型有:number.string.boolean. undefined.object.funct ...

  3. ES6学习笔记(11)----Proxy

    参考书<ECMAScript 6入门>http://es6.ruanyifeng.com/ Proxy1.概述    Proxy可以用来修改对象的默认操作    let obj = {na ...

  4. Android SlidingTabLayout的使用--替代ActionBar的Tab导航

    最近在使用ActionBar的时候,如果使用的是最新版V7包或者最新的SDK平台,就会发现 ActionBar的导航功能已经不建议使用了.主要的原因是ActionBar自带Tab导航自定义性差(只能通 ...

  5. 安卓自定义View教程目录

    基础篇 安卓自定义View基础 - 坐标系 安卓自定义View基础 - 角度弧度 安卓自定义View基础 - 颜色 进阶篇 安卓自定义View进阶 - 分类和流程 安卓自定义View进阶 - Canv ...

  6. python程序的编辑和运行、变量

    第一个python程序 python是解释型弱类型高级语言 常见的python解释器CPython.IPython.pypy.JPython.IronPython 方法一.python程序可以写在命令 ...

  7. integer to roman leetcode c++实现

    Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...

  8. 利用pyautogui自动化领取dnf的在线养竹活动的竹子

    背景: Dnf的周年庆活动之一,鬼才策划为了在线率想的活动,规律如下 1.在线1分钟可以生成1根竹子,领取竹子以后可以获取到积分,积分满足活动要求后可以领取相应档位的奖励 2.玩家不在线期间,不会生成 ...

  9. HDU4300 Clairewd’s message(拓展kmp)

    Problem Description Clairewd is a member of FBI. After several years concealing in BUPT, she interce ...

  10. mongodb windows 开机启动

    1)新建存放db E:\mongodb\data\db 2)新建日志文件 E:\mongodb\logs\log.txt 3)管理员运行Cmd 4)CD mongodb安装路径 5)运行命令 mong ...