当前位置: 代码迷 >> PB >> 动态创建N-UP数据窗口解决方法
  详细解决方案

动态创建N-UP数据窗口解决方法

热度:115   发布时间:2016-04-29 10:09:16.0
动态创建N-UP数据窗口
哪位兄弟给个 动态创建N-UP数据窗口 例子,先谢了!

------解决方案--------------------
给你一份datawindow语法的中文解释,你可以根据这个去尝试做一下
:$PBExportHeader$d_test.srd
这句话是一个PB导出文件的头说明信息,(如果你不需要导入到PBL的话)用处不大
这句在使用SyntaxFromSQL生成的DW教本中是没有的,而且如果你在要生成的DW的教本前也加入这句话,CREATE方法将报错
release 7;
很重要,留着,虽然看上去用处不大,只说明了一下生成器的版本,但却不能缺少,如果你用的不是PB7,后面的版本应该是你所以得PB版本的主版本号
datawindow(units=0 timer_interval=0 color=16777215 processing=1 HTMLDW=no print.documentname="" print.orientation = 0 print.margin.left = 110 print.margin.right = 110 print.margin.top = 96 print.margin.bottom = 96 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no grid.lines=0 )
嗬!好长的一句,这个大家伙说明的这个DW的主体信息,包括显示点单位、DW背景色、DW处理方式、打印设置等信息,我们一个个地分析

datawindow( 这是这句话的开头,说明这句话是用来描述DW主体信息的,以括号开头,以反括号结束
units=0 描述当前DW使用的点类型,0->PB点,大约等于1/4象素 1->屏幕象素 2->1/1000英寸 3->1/1000屏幕象素
timer_interval=0 时间中断频率,在这里不讨论这个,如果你需要你的DW一闪一闪亮晶晶,这个可是有用的东东
color=16777215 很重要,整个DW的背景色就指着她那
processing=1 VIP,整个DW的显示风格由她决定 0->FreeForm 或 Tabular (下面只讨论这种风格) 1->GRID 其他的我就不说了,可以看HELP
HTMLDW=no 对我们的讨论没有意义,不管他
print.* 如果你不需要打印这个DW,不用设置它,你哪怕删掉这些内容也没有影响
grid.lines=0 如果你选用了GRID风格,这个设置项决定是否显示表格线,如果是GRID的话,没有这个表格线好难看
) EASY,就是这句话讲完了啦 8-)

header(height=80 color="536870912" )
声明DW标题带区的高度和背景色信息

summary(height=0 color="536870912" )
声明DW合计带区的高度和背景色信息
 
footer(height=0 color="536870912" )
声明DW页脚带区的高度和背景色信息
  
detail(height=92 color="536870912" )
声明DW明细数据带区的高度和背景色信息

 table(column=(type=decimal(0) updatewhereclause=yes name=id dbname="id" )
column=(type=char(128) updatewhereclause=yes name=name dbname="name" )
retrieve="SELECT id,name FROM sysobjects" )

又一个长句子,我们继续逐个说明
table( 这句话的开头,说明这句话是用来描述当前DW的数据结构及数据源定义
column=( 第一个列描述的开头,说明这个列的数据源、数据类型、使用的名称和查询中的名称
type=decimal(0) 类型说明,当前列的类型是没有小数位的小数型(奇怪,怎么不用LONG)
updatewhereclause=yes 始终未在正式的文档中发现过与这个项目相关的说明,把这项去掉好像也没什么影响
name=id 这个列在DW中的别名,可以与数据源中的列名不同
dbname="id" 这个列对应数据源中列名
) 这一列完毕
column=( 第二列说明的开始
type=char(128) 类型说明,说明这个列的数据类型为最长128字节的字符型列
updatewhereclause=yes 不说它了
name=name 列的别名
dbname="name" 列的数据源名
) 第二列说明结束
retrieve= 这个DW的数据源定义
"SELECT id,name FROM sysobjects" 对应的SQL语句
) 数据源定义说明结束


补充两句
从这句话的结构不难看出,列描述的顺序是与SELECT语句中各列的排列顺序是相同的
而且,在这里其实隐含着一个列ID号,标识各列的位置,这个ID号在后面将用到
另外,目前例子中的这个DW是不可以UPDATE的,如果我们把这个DW强制修改为可以UPDATE,将会发现
  相关解决方案