pbcrosstab:PB中如何得到Crosstab中的列名

赵韶平

---- 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改为(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”; 2、如“CrossTab Definition”对话框中所选Rows列名为计算表达式(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中列名的后也就能自由地对其中行列内容进行处理通过上面介绍读者其实也能感觉到计算机中许多不太容易实现功能只要好好分析仔细琢磨多试验几次般还是能找到有效解决办法
Tags:  列名无效 crosstab pb列名 pbcrosstab

延伸阅读

最新评论

发表评论