PB gird类型数据窗口 设置分组、分组小计、合计
今天遇到一个需求,gird表格数据如下:
| 部门 | 类型 | 数据 |
| A | 类型1 | 1 |
| A | 类型2 | 2 |
| B | 类型1 | 3 |
| B | 类型2 | 4 |
| 合计 | 10 |
实际需要显示的结果为:
| 部门 | 类型 | 数据 |
| A | 类型1 | 1 |
| A | 类型2 | 2 |
| 小计 | ||
| B | 类型1 | 3 |
| B | 类型2 | 4 |
| 小计 | 7 | |
| 合计 | 10 |
上述需求一般有三种处理方式:
1.数据库直接生成分组数据。该方式从数据源头进行处理,好处是不需要在DW窗口做分组处理,不好还处是会在数据库中重复检索生成合计、小计数据,不利于性能优化。
2.使用DW的group DW制作分组显示界面,没有使用暂不做说明。
3.采用gird 类型数据窗口进行分组处理。这是今天主要说明的方法;
1).插入分组字段:Row->Create-Group 设置分组字段为 “部门”,将生成一个分组,Group名称为:1.
2) .选中Detail中,要进行合计(sum、count的字段:“数据”),点击Insert->Control->Sum,此时将在Trailer group "部门"数据容器中生成sum(数据 for Group 1),此时即完成对部门的数据小计生成功能。
3) .合计功能。此功能和其他gird类型的数据窗口一样,在Summary容器中插入一个计算列,计算列内容为:sum(数据 ),即可生成合计计算列。
PB gird类型数据窗口 设置分组、分组小计、合计的更多相关文章
- pb笔记之数据窗口设置操作
1 使DataWindow列只能追加不能修改如何使DataWindow中的数据只能追加新记录而不能修改,利用 Column 的 Protect 属性可以很方便的做到这一点,方法如下:将每一列的 Pro ...
- pb数据窗口设置操作
1 使DataWindow列只能追加不能修改如何使DataWindow中的数据只能追加新记录而不能修改,利用 Column 的 Protect 属性可以很方便的做到这一点,方法如下:将每一列的 Pro ...
- PB笔记之数据窗口可编辑的条件
1.列的tab order为0,列不能获得焦点2.dw_control.object.datawindow.readonly="yes"3.DW.Object.<Column ...
- PB 获取或操作数据窗口语句的方法
1.setsqlselect用法: ls_select=getsqlselect //通过getsqlselect取得当前数据窗口的查询语句 ls_where=" " ...
- PB笔记之数据窗口添加虚拟列的方法
1.选择计算域控件: 2.输入公式 3.添加一个输入框作为列名,注意Name必须改为后缀为_t(PB固定识别_t)才可以绑定输入框和计算域作为虚拟列,虚拟列在最后一列时,有可能不能改变宽度,需往前挪才 ...
- PB笔记之数据窗口行不能编辑的原因
这里不打勾就不能编辑行
- PB Event ID 含义 内容浅析2 未公开的数据窗口事件
原网址:https://www.cnblogs.com/lenya/archive/2010/11/12/3706971.html (作者:Mark Brown) 到目前为止,P ...
- PowerBuilder -- 数据窗口
获取数据窗口列数 ls_colnum= integer(this.Describe("DataWindow.Column.Count")) 获取数据窗口列名 ls_colName ...
- PB数据窗口中的几种状态及应用
数据窗口的状态主要有以下几种: 1)New! 2)NewModified! 3)DataModified! 4)NotModified! 数据窗口可以利用这些状态标志判断数据是否被修改过. 记录和字段 ...
随机推荐
- 前端学HTTP之客户端识别和cookie
前面的话 Web服务器可能会同时与数千个不同的客户端进行对话.这些服务器通常要记录下它们在与谁交谈,而不会认为所有的请求都来自匿名的客户端.本文主要介绍客户端识别及cookie机制 HTTP首部 HT ...
- 使用 Ghost 写博客
今天在https://ghost.org/上试用了一会,发现这是一个出色的博客平台,相比WordPress,更轻量级,而且是使用Node.js来做的,性能也是非常的不错. 优点 轻量级 支持主题 支持 ...
- Oracle_创建和管理表
创建和管理表 常见的数据库对象 Oracle 数据库中的表 查询数据字典 命名规则 CREATE TABLE 语句 数据类型 使用子查询创建表 ALTER TABLE 语句 删除表 清空表 改变对象的 ...
- c 进程间的通信
在上篇讲解了如何创建和调用进程 c 进程和系统调用 这篇文章就专门讲讲进程通信的问题 先来看一段下边的代码,这段代码的作用是根据关键字调用一个Python程序来检索RSS源,然后打开那个URL #in ...
- js判断本机是否已安装app
需求:在浏览器或者app webview中打开的页面,js判断本机是否已安装搜狐新闻客户端. 一.微信 1.分享——好友/朋友圈,feed会有搜狐新闻标记,打开url后缀参数isappinstalle ...
- 探寻 JavaScript 逻辑运算符(与、或)的真谛
十二月已经过半,冬季是一个美妙的季节,寒冷的空气逼得人们不得不躲在安逸舒适的环境里生活.冬季会给人一种安静祥和的氛围,让人沉浸在其中,仿佛是一个旧的阶段的结束,同时也是一个新的阶段的开始.这么说来,西 ...
- 支撑Java NIO 与 NodeJS的底层技术
支撑Java NIO 与 NodeJS的底层技术 众所周知在近几个版本的Java中增加了一些对Java NIO.NIO2的支持,与此同时NodeJS技术栈中最为人称道的优势之一就是其高性能IO,那么我 ...
- helios架构详解(一)服务器端架构
看了“菜鸟耕地”的”.NET开源高性能Socket通信中间件Helios介绍及演示“,觉得这个东西不错.但是由于没有网络编程知识,所以高性能部分我就讲不出来了,主要是想根据开源代码跟大家分享下Heli ...
- CLR和.Net对象生存周期
标签:GC .Net C# CLR 前言 1. 基础概念明晰 * 1.1 公告语言运行时 * 1.2 托管模块 * 1.3 对象和类型 * 1.4 垃圾回收器 2. 垃圾回收模型 * 2.1 为什么需 ...
- Linq在Array,List,Dictionary中的应用
Linq在Array,List,Dictionary中的应用 今天在实际工作中需要对array,list,dictionary进行排序,试一试linq,发现非常好用,代码如下: using Syste ...