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.**.source = 0 print.**.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,将会发现
在列描述语句中多了一下内容:
update=yes key=yes
其中:update=yes 说明这列为可以UPDATE的列之一
key=yes 说明该列为UPDATE时对应表的主键设置之一
然后在数据源定义语句(RETRIEVE)中多了以下内容:
update="sysobjects" updatewhere=0 updatekeyinplace=no
其中
update="sysobjects" 说明需要保存的对于数据库表
updatewhere=0 对应DW中UPDATE属性定义窗口中"Where Clause for Update/Delete",这个参数将影响并发情况下数据的安全和运行效率,在讨论并发处理的帖子或文章中有介绍,在这里我们就不赘述了
updatekeyinplace=no 对应DW中UPDATE属性定义窗口中"Key Modification",在这里我们就不讨论这个了
text(band=header alignment="2" text="Id" border="0" color="0" x="9" y="8" height="64" width="261" name=id_t font.face="Arial" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" )
很混乱的一句话,说明了一个TEXT文本对象的各种属性,下面逐个说明:
text( 一个文本对象说明的开始
band=header 该文本对象在DW中放置的带区
alignment="2" 对齐方式,目前为中央对齐
text="Id" 文本显示内容
border="0" 边框类型,目前为没有边框
color="0" 文本色,目前为黑色
x="9" 放置位置X坐标(相对于指定的带区)
y="8" 放置位置Y坐标(相对于指定的带区)
height="64" 该文本对象的高度
width="261" 宽度
name=id_t 对象的名称
font.face="Arial" 字体
font.height="-10" 字体大小
font.weight="400" 是否加粗,如果使用加粗(BOLD)则为700,如果不加粗,则为400
font.family="2" 字体的家族,由于Windows是通过使用字体名称(Font Face)和字体家族(Font Family)来决定某一个具体的字体的,所以需要指定该参数,一般情况下,中文字体(比如:宋体)对应的Family 为0(anyfont!)
font.pitch="2" 不知道该怎么翻译,一般情况下,根据具体的字体决定该属性的值,比如宋体就使用2(Variable)
font.charset="0" 字符集,根据具体的字体所决定的,比如宋体就用0就可以了
background.mode="1" 背景模式,这个属性比较重要,决定该对象是否使用透明色,如果为1则为透明,如果为0则使用下面所指定的颜色,在实际使用中还会遇到值为2的情况,这种情况下,该对象将使用系统颜色,系统颜色的对应值在下面的background.color属性中指定,比如常用的按钮表面色ButtonFace,对应值为:79741120,不过这个值在不同情况下有些区别,具体为什么没有深入研究过,希望了解或有兴趣的朋友能给讲讲
background.color="53687091" 背景色,如果背景模式为1(透明),则该值没什么作用,如果背景模式为0,则该对象的背景色为当前指定的颜色,如果背景模式为2,则为系统色对应的标识
) 这个文本对象的说明结束
text(band=header alignment="2" text="Name" border="0" color="0" x="279" y="8" height="64" width="3511" name=name_t font.face="Arial" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" )
跟上一句类似,不再重复了
column(band=detail id=1 alignment="1" tabsequence=32766 border="0" color="0" x="9" y="8" height="76" width="261" format="" name=id edit.limit=0 edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="Arial" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" )
进入正题了,列对象的说明,下面我们也来先每个属性都看一遍
column( 一个可以显示在DW中的列对象说明的开始
band=detail 这个列对象在DW中放置的带区,简单说就是放在明细行中还是放在标题或者汇总行中
id=1 这个列对象对应的数据源ID号,这个属性很重要,如果设置错误了,那么你看到的数据就将与你预期的不同,这个ID号的顺序是由数据源中列的选择顺序决定的,比如这个1,就说明对应数据源SQL语句中所选择的第一个字段(ID)
alignment="1" 对齐方式(0->左对齐 1->右对齐 2->中央对齐 3->自适应对齐,即在多行情况下,各行宽度尽量相同)
tabsequence=32766 就是TAB ORDER,32766就是TabOrder = 0,所以在取值时一定要小于这个值,并且要大于0,否则光标就不能选中这列了
border="0" 边框类型,这里设置的是没有边框
color="0" 文字颜色,根据RGB值设定
x="9" 放置位置的X值
y="8" 放置位置的Y值
height="76" 对象高度
width="261" 对象宽度
format="" 数据内容显示格式
name=id 列对象命名,这个名字应该与DW数据源定义中各列的name设置相同
edit.limit=0 输入字符**,0为不**(实际上最多32760左右个字)
edit.case=any
edit.focusrectangle=no
edit.autoselect=yes
edit.autohscroll=yes
font.face="Arial" 字体格式说明,不详细说了
font.height="-10"
font.weight="400"
font.family="2"
font.pitch="2"
font.charset="0"
background.mode="1" 背景模式,与文本相类似
background.color="536870912" 背景颜色,与文本相类似
)
column(band=detail id=2 alignment="0" tabsequence=32766 border="0" color="0" x="279" y="8" height="76" width="3511" format="" name=name edit.limit=128
edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="Arial" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" )
htmltable(border="1" )
htmlgen(clientevents="1" clientvalidation="1" clientcomputedfields="1" clientformatting="0" clientscriptable="0" generatejavascript="1" )
这两句对我们所讨论的内容没什么关系,就不讨论这个了
参考别的地方的,可能不一样的版本不很一致,限参考,没仔细研究过 已复制备用,谢谢!
页:
[1]