PB动态创建DW(包括外部数据源)

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的时候,利用syntax来创建就好了,SQL创建syntax就可以省略。
对于例如区域、显示、HTML、update等等属性, PB都有默认的设置。
所以无需用过份详细的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!')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值