PB中如何得到Crosstab中的列名

转载 2012年03月31日 11:10:32

PB中如何得到Crosstab中的列名

(加入日期:2001-4-13)

保存文章至硬盘】【打印文章】【字体:

分享到: 0
赵韶平

---- PowerBuilder 是大家公认的、最佳的数据库前端开发工具之一,其独到之处,那就是数据窗口(DataWindow)。它能够灵活地组织数据库中的各种数据,用户能用一个简单的查询窗口就可以得到丰富的查询结果,并且能够对查询结果集通过程序控制,得出各种用户想得到的最终结果。如果能够熟练地运用数据窗口这一专利技术,无疑会给开发人员和用户带来巨大的方便。

---- Crosstab是数据窗口中一种用于统计、分析数据的显示风格,其含义为Cross Tabulation,即横向制表。它可以将检索到的数据分类或分组,进行累计求和或求平均值等运算,编制统计表格。

---- 但是,开发者在使用Crosstab数据窗口时会碰到一个问题:如果开发者想对其中的列内容进行处理时,不能用通用的方法得到Crosstab中的列名,使该操作无法运行。这是因为:Crosstab数据窗口中行列定义不同于其它的数据窗口,而且其列数是变化的。因此要得到Crosstab中的列名必须采用其它办法。

---- 下面以一个统计各工资段作者人数,按男女性别分别统计的Crosstab数据窗口静态风格为例探讨得到Crosstab中的列名。

---- 1、选择显示风格,定义数据源后,选择表”auths”中的列”author_code”、”salary”和”sex”;用鼠标拖动Source Data列表框中的“sex”列到Columns列表框中,使“sex”列成为数据窗口的纵向统计列;用鼠标拖动Source Data列表框中的“salary”列到Rows列表框中,使“salary”列成为数据窗口的横向统计列,将salary改为int(salary/100)*100;用鼠标拖动Source Data列表框中的“author_code”列到列表框中,使“count(author_code for Crosstab)”列成为数据窗口的统计值,此时“CrossTab Definition”对话框显示如下:(图略)

---- 2、单击OK按钮,数据窗口显示如下:(图略)

---- 3、Crosstab数据窗口中的列名

---- Crosstab显示风格有静态和动态。如采用静态风格,则在“CrossTab Definition”对话框中取消选中“Rebuild columns at runtime”复选框。数据窗口的列名在Detail栏中,有一定规律可循:

---- 第一栏的列名分两种情况:一、“CrossTab Definition”对话框中的所选的Rows的列名为表中的字段,如Rows=salary则第一栏的列名为”salary”;二、如“CrossTab Definition”对话框中的所选的Rows的列名为计算表达式,如int(salary/100)*100,则第一栏的列名均为”row_column”。

---- 其余各栏依次为所选Value的列名的排列,如Value为author_Code,则各栏依次”author_Code”,”author_code_1”, “author_code_2”,…… 栏的数目根据所选的Columns所能产生的数目而定,如Columns=sex,则只有两栏”author_Code”,”author_code_1”;

---- 最后一列的列名为“grand_count_”+所选Value名,如在此例中为”grand_count_author_code” 。如采用动态风格,则在“CrossTab Definition”对话框中选中“Rebuild columns at runtime”复选框。数据窗口的列名在Detail栏中:(图略)第一栏和最后一列的列名情况类似静态风格所述,也就不雷同了。中间各栏的列名情况与静态风格有所不同,依次为所选rows列名的排列,如rows为”salary”,在此例中各栏依次为”salary”,”salary_1”;

---- 这样,问题就迎韧而解了。在得到Crosstab中的列名之后也就能自由地对其中的行列内容进行处理。通过上面的介绍,读者其实也能感觉到,计算机中许多不太容易实现的功能,只要好好分析,仔细琢磨,多试验几次,一般还是能找到有效的解决办法的。

PB数据窗口难得一见的技巧

PB基础知识 1、Datawindow object(数据窗口库对象)    数据源决定了数据窗口对象获取数据的方式。PowerBuild支持五种数据源: A、 快速选择(Quik Sele...
  • tlammon
  • tlammon
  • 2016年03月22日 10:36
  • 2887

PB数据窗口对象之信息获取

〓获取数据窗口信息 ※函数Describe 使用函数Describe可以获取数据窗口对象中的信息。该函数语法是: dwcontrol.Describe(propertylist) 其中,d...
  • u012369435
  • u012369435
  • 2014年07月04日 12:56
  • 1653

PB数据窗口中各项指标的获取方法

PB数据窗口中各项指标的获取方法 (2013-03-23 09:30:56) 转载▼     1、得到当前鼠标所指对象所在的带区   strin...
  • tlammon
  • tlammon
  • 2016年03月21日 20:46
  • 1320

PB获取数据窗口字段列名和标题名

int li_value long ll_i,ll_rowcount string ls_usrid,ls_tooltip decimal ldc_lastvalue ll_rowcount = dw...
  • happymagic
  • happymagic
  • 2012年08月08日 13:24
  • 5278

如何把数据库的列名作为根节点添加到dbtreeview

  • 2007年09月15日 23:28
  • 36KB
  • 下载

获取数据库表的主键列名工具

  • 2008年07月01日 21:46
  • 2KB
  • 下载

LigerGrid动态改变加载字段列名

  • 2017年05月22日 09:13
  • 17KB
  • 下载

C语言 转换10进制数字到26进制(EXCEL 列名)

  • 2013年04月26日 10:58
  • 137KB
  • 下载

取得数据窗口中的所有列名及其text的文字

  • 2012年06月17日 11:26
  • 26KB
  • 下载

Excel的简单操作V1版(获取Sheet名和Sheet中第一列的列名)

  • 2014年01月01日 17:10
  • 47KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PB中如何得到Crosstab中的列名
举报原因:
原因补充:

(最多只允许输入30个字)