首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

请问一下DW右键点edit source后,里面的代码意思。

2012-03-17 
请教一下DW右键点edit source后,里面的代码意思。。。。有一段代码是这样的---------------------release 9da

请教一下DW右键点edit source后,里面的代码意思。。。。
有一段代码是这样的
---------------------
release 9;
datawindow ( units=0 timer_interval=0 color=15793151 processing=0 pointer="HyperLink!" print.printername="" print.documentname="" print.orientation=0 print.margin.left=110 print.margin.right=110 print.margin.top=96 print.margin.bottom=96 print.paper.size=0 print.paper.source=0 print.canusedefaultprinter=yes selected.mouse=no rows_per_detail=2)
header(height=8 color="536870912" )
summary(height=0 color="536870912" )
footer(height=0 color="536870912" )
detail(height=320 color="536870912" )
table(column=(type=char(4) update=yes updatewhereclause=yes name=ch_tableno dbname="cybr_bt_table.ch_tableno" )
column=(type=char(12) update=yes updatewhereclause=yes name=vch_tablename dbname="cybr_bt_table.vch_tablename" )
column=(type=char(2) update=yes updatewhereclause=yes name=ch_typeno dbname="bt_table.ch_typeno" )

column=(type=char(64) updatewhereclause=yes name=flag dbname="flag" )

column=(type=long updatewhereclause=yes name=int_id dbname="cybr_bt_table.int_id" )

column=(type=char(2) updatewhereclause=yes name=book dbname="book" )
column=(type=char(1) updatewhereclause=yes name=booktype dbname="booktype" )
 retrieve=" SELECT a.ch_tableno,  
a.vch_tablename,
a.ch_typeno,  
  a.ch_areano,  
  a.ch_billno,  
a.ch_state,
(case when a.ch_billno is null and a.ch_state = 'Y' then 'bitmaps~\tablestate4.jpg'
when a.ch_billno is not null and a.ch_state = 'N' then 'bitmaps~\tablestate2.jpg'

else (case when b.vch_picname is null or rtrim(b.vch_picname) = ''
  then 'bitmaps~\tablestate1.jpg' else b.vch_picname end)
  end) as flag,
' ' as cost,
' ' as checked,
datediff(mi,a.dt_opertime,getdate()) as time_len,
(case when a.ch_billno is null and a.ch_state = 'Y' then 4
when a.ch_billno is not null and a.ch_state = 'N' then 2
when a.ch_billno is not null and a.ch_state = 'Y' then 3
when a.ch_billno is not null and a.ch_state = 'P' then 5
else 1 end) as state,
' ' as memo,
' ' as bt_state,
a.ch_temp,
a.int_id,
a.int_person,
  ch_page = 'N',
' ' as book,
'1' as booktype
  FROM cybr_bt_table a, cybr_bt_table_type b
 Where a.ch_typeno = b.ch_typeno
order by a.ch_typeno,a.ch_tableno
  
"
  sort="ch_typeno A, ch_tableno A"
)
compute(name=compute_1 visible="1" band=summary font.charset="134" font.face="宋体" font.family="0" font.height="-9" font.pitch="2" font.weight="400" background.mode="1" background.color="553648127" color="33554432" x="151" y="8" height="64" width="613" format="[GENERAL]" expression="sum( if (state = 1 , 1 , 0))" alignment="0" border="0" crosstab.repeat=no )
compute(name=compute_2 visible="1" band=summary font.charset="134" font.face="宋体" font.family="0" font.height="-9" font.pitch="2" font.weight="400" background.mode="1" background.color="553648127" 
htmlgen(clientComputedFields="1" clientEvents="1" clientFormatting="0" clientScriptable="0" clientValidation="1" generateJavaScript="1" netscapeLayers="0" netscapelayers="0" encodeSelfLinkArgs="1" )
export.xml(headGroups="1" includewhitespace="0" metadatatype=0 savemetadata=0 )


import.xml()
export.pdf(method=0 distill.customPostScript="0" xslfop.print="0" )
----------------------------------------------------

面面太长,相似的我删了一部分。
这一堆代码,分几段,每段是什么意思啊?是不是手工创建DW就是这么写的


[解决办法]
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="[general]" 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="[general]" 数据内容显示格式
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="[general]" 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" )


这两句对我们所讨论的内容没什么关系,就不讨论这个了
参考别的地方的,可能不一样的版本不很一致,限参考,没仔细研究过

热点排行