山那边是海 发表于 2015-1-16 22:37:15

MSSQL网页编程之如何使用PowerBulider的Datawindow创建...

支持大型的数据库。可以处理拥有上千万条记录的大型数据库。window|静态
天下上一切的报表,要算中国的报表最为庞大了。看老外的报表表头很复杂都是只要一行差未几。可是中国人的表头一样平常都有好几层,给你来上个两层已是很不错的一件事变了。别的中国人最喜好的就是举动式的表头,意义就是往年是这类的来岁大概要酿成别的一种格局了。以是这也对编写表头程序的程序员来说提出了一个困难。我们也晓得PowerBuilder的datawindow有壮大的检索功效,并且Powerbuilder就是一个数据库前端开辟工具,可是初学者都以为,它只能作为静态的报表,实在它面前埋没着更年夜的功效,datawindow也能制造静态的报表范例。
上面的一段程序是我之前在做项目标时分使用的,但愿能给列位带来一个提醒
stringls_part1,ls_aux1,ls_aux2,is_temp,ls_syntax
ulongai_x1=0,ai_x2=0,ai_y1=0,ai_y2=88,ai_style=0,ai_width=0,ai_linecolor=1,h_y1,h_y2
ulongcil_posx,cil_width,temp_x,temp_y,temp_cil
integerchar_w,i=1,font=19
ulongf1=0,f2=0,f3=0,save_i1,save_i2
ulongcol_table_len=0,as_old1,as_old2,col_len2=0,col_len3=0
stringas_syntax,as_table
ulongy0,y1,y2,y3,y4,id=0
stringas_name,as_unit,as_column
stringas_head1,as_head2,as_head3,as_head4,as_head5,as_date
ulongheight

//char_w=margin.paper_size*1000/margin.font_size
//char_w=1500/margin.font_size*10
//char_w=1500/100*10
char_w=1
of_profilestring_margin()
//margin.top=250
//margin.bottom=250
//margin.right=250
//margin.left=250
//margin.head=4330
//margin.detail=730
//margin.footer=100
//margin.title=2000
//margin.paper_size=35.4
//margin.font_size=30
y0=margin.title
y1=y0+(margin.head-y0)/4
y2=y0+2*(margin.head-y0)/4
y3=y0+3*(margin.head-y0)/4
y4=margin.head
height=y1-y0

as_table=release8;~r~n+&
datawindow(units=3timer_interval=0color=1073741824processing=0print.margin.bottom=+string(margin.bottom)+&
print.margin.left=+string(margin.left)+print.margin.right=+string(margin.right)+print.margin.top=+string(margin.top)+&
print.preview.buttons=no)header(height=+string(margin.head)+)detail(height=+string(margin.detail)+&
)footer(height=+string(margin.footer)+)table()
dowhiletable.name""
as_name=table.name
as_unit=table.unit
cil_width=table.len*char_w
as_column="column_"+string(id)
as_head1="h1_"+string(id)
as_head2="h2_"+string(id)
as_head3="h3_"+string(id)
as_head4="h4_"+string(id)
as_head5="h11_"+string(id)//Ö»ÓÐÒ»²ãµÄ¿ÆĿͬÆäËû¿ÆÄ¿Çø·Ö£¬ÕâÑù¶Ô×ÖÌåµÄ±ä»¯ÓкܴóºÃ´¦
choosecasetable.layer
case"1"
iftable.unit=""then
iff1=0then
save_i1=i
f1=1
table.x=col_table_len
else
temp_x=table.x
temp_cil=col_table_len-table.x
iftable.len*char_w>=temp_cilthen
temp_cil=table.len*char_w
col_table_len=table.x+temp_cil
endif
ls_aux1=uf_text("header",table.name,as_head1,temp_x,y0,height,temp_cil)
as_syntax+=ls_aux1
//µÚÒ»²ãÓëµÚ¶þ²ãÖ®¼äµÄÁ¬Ïß
AI_x1=temp_x
AI_x2=col_table_len
h_Y1=y1
h_Y2=y1
ls_aux1=uf_lineh(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1

AI_x1=col_table_len
AI_x2=col_table_len
h_Y1=y0
h_Y2=y4
ls_aux1=uf_lineh(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1
h_Y1=0
h_Y2=margin.detail
ls_aux1=uf_lined(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1
col_len2=0
save_i1=i
f1=1
table.x=col_table_len
endif
else//Ö»ÓÐÒ»²ãµÄ¿ÆÄ¿
iff1=1then
temp_x=table.x
temp_cil=col_table_len-table.x
iftable.len*char_w>=temp_cilthen
temp_cil=table.len*char_w
col_table_len=table.x+temp_cil
endif
ls_aux1=uf_text("header",table.name,as_head1,temp_x,y0,height,temp_cil)
as_syntax+=ls_aux1
//µÚÒ»²ãÓëµÚ¶þ²ãÖ®¼äµÄÁ¬Ïß
AI_x1=temp_x
AI_x2=col_table_len
h_Y1=y1
h_Y2=y1
ls_aux1=uf_lineh(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1

f1=0
AI_x1=col_table_len
AI_x2=col_table_len
h_Y1=y0
h_Y2=y4
ls_aux1=uf_lineh(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1
h_Y1=0
h_Y2=margin.detail
ls_aux1=uf_lined(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1
endif
id++
as_table=uf_tablecolumn(as_table,as_column)
ls_aux1=uf_detailcolumn(as_column,id,col_table_len,margin.detail/4,margin.detail,cil_width,font)
as_syntax+=ls_aux1
temp_y=(y3+y0)/2
ls_aux1=uf_text("header",table.name,as_head5,col_table_len,temp_y,height,cil_width)
as_syntax+=ls_aux1
ls_aux1=uf_text("header",table.unit,as_head4,col_table_len,y3,height,cil_width)
as_syntax+=ls_aux1
col_table_len+=cil_width
AI_x1=col_table_len
AI_x2=col_table_len
h_Y1=y0
h_Y2=y4
ls_aux1=uf_lineh(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1
h_Y1=0
h_Y2=margin.detail
ls_aux1=uf_lined(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1
endif
case"2"
iftable.unit=""then//´æÔÚµÚÈý²ã
iff2=0then
save_i2=i
f2=1
table.x=col_table_len
else//ͬʱ°ÑÉϴμǼµÄµÚ¶þ²ã
temp_x=table.x
temp_cil=col_table_len-table.x
iftable.len*char_w>=temp_cilthen
temp_cil=table.len*char_w
col_table_len=table.x+temp_cil
endif
ls_aux1=uf_text("header",table.name,as_head2,temp_x,y1,height,temp_cil)
as_syntax+=ls_aux1
AI_x1=col_table_len
AI_x2=col_table_len
h_Y1=y1
h_Y2=y2
ls_aux1=uf_lineh(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1
//µÚ¶þ²ãÓëµÚÈý²ãÖ®¼äµÄÁ¬Ïß
AI_x1=temp_x
AI_x2=col_table_len
h_Y1=y2
h_Y2=y2
ls_aux1=uf_lineh(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1
col_len3=0
save_i2=i
f2=1
table.x=col_table_len
endif
f3=1
else//ûÓеÚÈý²ã
iff2=1then
temp_x=table.x
temp_cil=col_table_len-table.x
iftable.len*char_w>=temp_cilthen
temp_cil=table.len*char_w
col_table_len=table.x+temp_cil
endif
ls_aux1=uf_text("header",table.name,as_head2,temp_x,y1,height,temp_cil)
as_syntax+=ls_aux1
AI_x1=col_table_len
AI_x2=col_table_len
h_Y1=y1
h_Y2=y2
ls_aux1=uf_lineh(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1
//µÚ¶þ²ãÓëµÚÈý²ãÖ®¼äµÄÁ¬Ïß
AI_x1=temp_x
AI_x2=col_table_len
h_Y1=y2
h_Y2=y2
ls_aux1=uf_lineh(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1
f2=0
endif
id++
as_table=uf_tablecolumn(as_table,as_column)
ls_aux1=uf_detailcolumn(as_column,id,col_table_len,margin.detail/4,margin.detail,cil_width,font)
as_syntax+=ls_aux1
temp_y=(y1+y2)/2
ls_aux1=uf_text("header",table.name,as_head2,col_table_len,temp_y,height,cil_width)
as_syntax+=ls_aux1
ls_aux1=uf_text("header",table.unit,as_head4,col_table_len,y3,height,cil_width)
as_syntax+=ls_aux1
AI_x1=col_table_len
AI_x2=col_table_len
h_Y1=y1
h_Y2=y4
ls_aux1=uf_lineh(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1
h_Y1=0
h_Y2=margin.detail
ls_aux1=uf_lined(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1
col_table_len+=cil_width
endif
case"3"
id++
as_table=uf_tablecolumn(as_table,as_column)
ls_aux1=uf_detailcolumn(as_column,id,col_table_len,margin.detail/4,margin.detail,cil_width,font)
as_syntax+=ls_aux1
ls_aux1=uf_text("header",table.name,as_head3,col_table_len,y2,height,cil_width)
as_syntax+=ls_aux1
ls_aux1=uf_text("header",table.unit,as_head4,col_table_len,y3,height,cil_width)
as_syntax+=ls_aux1
AI_x1=col_table_len
AI_x2=col_table_len
//¿ÉÄÜÔÚµÚÈý²ãÖÐÒ»¿ªÊ¼¾ÍÓйÂÁ¢µÄ¶þ¼¶¿ÆÄ¿Òò´ËÓ¦¸Ã´Óy1->y4
iff3=1then
h_Y1=y1
h_Y2=y4
f3=0
else//¿ÉÄÜÔÚµÚÈý²ãÖÐÒ»¿ªÊ¼²»ÊǹÂÁ¢µÄ¶þ¼¶¿ÆÄ¿Òò´ËÓ¦¸Ã´Óy2->y4
h_Y1=y2
h_Y2=y4
endif
ls_aux1=uf_lineh(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1
h_Y1=0
h_Y2=margin.detail
ls_aux1=uf_lined(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1
col_len3=1
col_table_len+=cil_width
endchoose
i++
loop
iff1=1then
temp_x=table.x
temp_cil=col_table_len-table.x
iftable.len*char_w>=temp_cilthen
temp_cil=table.len*char_w
col_table_len=table.x+temp_cil
endif
ls_aux1=uf_text("header",table.name,as_head1,temp_x,y0,height,temp_cil)
as_syntax+=ls_aux1
id++
//µÚÒ»²ãÓëµÚ¶þ²ãÖ®¼äµÄÁ¬Ïß
AI_x1=temp_x
AI_x2=col_table_len
h_Y1=y1
h_Y2=y1
ls_aux1=uf_lineh(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1
endif
iff2=1then
temp_x=table.x
temp_cil=col_table_len-table.x
iftable.len*char_w>=temp_cilthen
temp_cil=table.len*char_w
col_table_len=table.x+temp_cil
endif
ls_aux1=uf_text("header",table.name,as_head1,temp_x,y1,height,temp_cil)
as_syntax+=ls_aux1
//µÚ¶þ²ãÓëµÚÈý²ãÖ®¼äµÄÁ¬Ïß
AI_x1=temp_x
AI_x2=col_table_len
h_Y1=y2
h_Y2=y2
ls_aux1=uf_lineh(id,Ai_x1,h_y1,Ai_x2,h_y1,0,0,1)
as_syntax+=ls_aux1
endif

//±í¸ñµÄ×î×ó¶ËµÄheaderÖ±Ïß
id++
AI_x1=0
AI_x2=0
h_Y1=y0
h_Y2=y4
ls_aux1=uf_lineh(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1
//±í¸ñµÄ×î×ó¶ËµÄdetailÖ±Ïß
id++
AI_x1=0
AI_x2=0
h_Y1=0
//h_Y2=margin.detail-3
ls_aux1=uf_lined(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1
//±í¸ñµÄ×îÓҶ˵ÄheaderÖ±Ïß
id++
AI_x1=col_table_len
AI_x2=col_table_len
h_Y1=y0
h_Y2=y4
ls_aux1=uf_lineh(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1
//±í¸ñµÄ×îÓҶ˵ÄdetailÖ±Ïß
id++
AI_x1=col_table_len
AI_x2=col_table_len
h_Y1=0
//h_Y2=margin.detail-3
ls_aux1=uf_lined(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1
//±í¸ñµÄ×îÉ϶˵ÄheaderÖ±Ïß
id++
AI_x1=0
AI_x2=col_table_len
h_Y1=y0
h_Y2=y0
ls_aux1=uf_lineh(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1
//±í¸ñµÄµÚÈý²ãÓ뵥λ֮¼äµÄheaderÖ±Ïß
id++
h_Y1=y3
h_Y2=y3
ls_aux1=uf_lineh(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1

//±í¸ñÔÚheaderÇøÓòÖÐ×îµ×²¿µÄÖ±Ïß
h_Y1=y4-50
h_Y2=y4-50
ls_aux1=uf_lineh(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1

//±í¸ñµÄÔÚdetailÇøÓò×îµ×²¿µÄÖ±Ïß
id++
h_Y1=margin.detail-50
h_Y2=margin.detail-50
ls_aux1=uf_lined(id,Ai_x1,h_y1,Ai_x2,h_y2,0,0,1)
as_syntax+=ls_aux1
/*

id++
h_Y1=margin.detail-10
h_Y2=margin.detail-10
ls_aux1=uf_lined(id,ai_x1,20,ai_x2,20,0,0,1)
as_syntax+=ls_aux1
*/
//ÒÔÏÂÊÇ´¦Àí±í¸ñµÄ±êÌâ¼°Æäҳü¡¢Ò³½Å

//cil_width=len("Õã½

金色的骷髅 发表于 2015-1-19 18:57:37

索引视图2k就有。但是2005对其效率作了一些改进但是schema.viewname的作用域真是太限制了它的应用面。还有一大堆的环境参数和种种限制都让人对它有点却步。

精灵巫婆 发表于 2015-1-27 15:19:49

你可以简单地认为适合的就是好,不适合就是不好。

飘飘悠悠 发表于 2015-2-5 08:12:32

以前的DTS轻盈简单。但是现在的SSIS虽然功能强大了很多,但是总是让人感觉太麻烦。看看论坛中询问SSIS的贴子就知道。做的功能太强大了,往往会有很多用户不会用了

再见西城 发表于 2015-2-11 08:11:31

这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。

谁可相欹 发表于 2015-3-2 00:46:25

入门没那么困难,精通没那么容易

若相依 发表于 2015-3-11 01:29:07

始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。

愤怒的大鸟 发表于 2015-3-17 18:09:41

学习SQL语言的话如果要学会去做网站就不是很难!但是要做数据库管理的话就有难度了!

admin 发表于 2015-3-24 18:23:37

代替了原来VB式的错误判断。比Oracle高级不少。
页: [1]
查看完整版本: MSSQL网页编程之如何使用PowerBulider的Datawindow创建...