`
Ben.Sin
  • 浏览: 229522 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

PB动态创建DW的两个例子

    博客分类:
  • PB
阅读更多
PB提供了关于如何动态创建Datawindow的相关函数
transaction.SyntaxFromSQL ( sqlselect, presentation, err )
dwcontrol.Create ( string syntax {, string errorbuffer } )

关于这两个方法如何使用,这里就不再陈述了,帮助里面已经很详细了(使用帮助是很好的习惯).

例子1:动态创建有SQL的DW
说明:这个比较常用的方法,首先利用SQL得到DW的语法,然后用语法来创建DW
这过程跟创建可视化的DW,然后保存在PBL,在将这个保存的名字赋值给DW作为dataobject是同样的道理

string ls_sql = ""
string ls_syntax = ""
string ls_err = ""

// 初始化, SQL以oracle为例
// ls_sql = "select FIELDS from TABLE"
ls_sql = "select ‘’ as sID, '' as sName from dual"

// 创建syntax, 用ls_sql创建一个grid类型的DW
sqlca.syntaxFromSQL(ls_sql, "style(type=grid)", ls_err)

if len(ls_err) > 0 then
   messageBox('Error', ‘Create DW syntax failed! ~r~n’ + ls_err)
   return -1
end if

// 创建DW
ls_err = ‘’
dw_1.create(ls_syntax, ls_err)

if len(ls_err) > 0 then
   messageBox('Error', ‘Create DW failed! ~r~n’ + ls_err)
   return -1
end if

// 创建成功
messageBox('Success', 'Create dynamic DW with SQL successful!')

例子2:动态创建外部数据源的DW(没有SQL)
说明:外部数据源的DW没有SQL,但跟有SQL的DW相同的部分就是DW语法的table部分。
而创建DW的时候,对于例如区域、显示、HTML、update等等属性都有默认的设置。
所以无需用过份详细的syntax来创建DW,那部分将由PB帮助完成,我们只需要有table部分就可以了。

string ls_syntax = ""
string ls_err = ""

// 由SQL创建syntax部分可以省略
// 初始化syntax, release 9;表示PB9.0的例子
ls_syntax = "release 9;~r~n" +&
        "table(" +&
        " column=(type=number name=handle dbname=~"handle~" )~r~n" +&
        " column=(type=char(255) name=sdata dbname=~"sdata~" )~r~n" +&
        " column=(type=char(255) name=slabel dbname=~"slabel~" )~r~n" +&
        ")"

// 创建DW
ls_err = ‘’
dw_1.create(ls_syntax, ls_err)

if len(ls_err) > 0 then
   messageBox('Error', ‘Create DW failed! ~r~n’ + ls_err)
   return -1
end if

// 创建成功
messageBox('Success', 'Create dynamic DW without SQL successful!')

©All copyright resersed
Ben.Sin (Ben.BHX#gmail.com)
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics