这里说的DataWindow是指dataobject的那个,而不是DataWindow Control
DataWindow可以有几个参数,但是PB并没有提供专门的函数去取得这些参数,DW Syntax也没有指出用那些关系可以去除这些参数信息。但是这些信息还是可以直接取得
dw_control.object.dataWindow.table.arguments
取出来的是一个字符串,参数之间通过~n连接,参数名和参数类型之间通过~t连接
比如有参数arg1/String和arg2/Number,我们用上述语句得到的结果就会是
"arg1~tString~narg2~tNumber"
所以这里取出来还需要做一些出来才能利用这些信息
// 定义一个custom user object去记录参数信息
(PB代码)
$PBExportHeader$nvo_dw_args.sru
forward
global type nvo_dw_args from nonvisualobject
end type
end forward
global type nvo_dw_args from nonvisualobject autoinstantiate
end type
type variables
string argName
string argType
end variables
on nvo_dw_args.create
call super::create
TriggerEvent( this, "constructor" )
end on
on nvo_dw_args.destroy
TriggerEvent( this, "destructor" )
call super::destroy
end on
event constructor;/**
* This object use to store the argument info of datawindow
* argName store argument's name
* argType store argument's data type
*/
end event
// 读取和分析参数并返回参数信息
(PB代码)
$PBExportHeader$n_cst_dw_util2.sru
forward
global type n_cst_dw_util2 from nonvisualobject
end type
end forward
global type n_cst_dw_util2 from nonvisualobject
end type
global n_cst_dw_util2 n_cst_dw_util2
type variables
DataWindow idw
end variables
forward prototypes
public function integer of_getarguments (ref nvo_dw_args args[])
end prototypes
public function integer of_getarguments (ref nvo_dw_args args[]);/**
* get the registe datawindow arguments.
* the arguments will be store into nvo_dw_args array args[]
* @param ref args[]- nvo_dw_args
* @return integer
* - return the arguments count if successful
* - return 0 if no arguments
* - return -1 if invalid idw or error
* @author Ben
* @history
* 1. created 21-Apr-2008 Ben
*/
string ls_argStr
string ls_tmpArg
integer li_pos, li_posTab, li_index
if not isValid(idw) then return -1
ls_argStr = idw.object.dataWindow.table.arguments
if isNull(ls_argStr) or ls_argStr = "" then return 0
do
li_pos = pos(ls_argStr, '~n')
if li_pos > 0 then
ls_tmpArg = left(ls_argStr, li_pos - 1)
ls_argStr = right(ls_argStr, len(ls_argStr) - li_pos)
else
ls_tmpArg = ls_argStr
end if
if not isNull(ls_tmpArg) and ls_tmpArg <> "" then
li_posTab = pos(ls_tmpArg, '~t')
if li_posTab > 0 then
li_index = upperBound(args) + 1
args[li_index].argName = left(ls_tmpArg, li_posTab - 1)
args[li_index].argType = right(ls_tmpArg, len(ls_tmpArg) - li_posTab)
end if
end if
loop while li_pos > 0
return 1
end function
on n_cst_dw_util2.create
call super::create
TriggerEvent( this, "constructor" )
end on
on n_cst_dw_util2.destroy
TriggerEvent( this, "destructor" )
call super::destroy
end on
返回的nvo_dw_args数组包含了参数名和参数类型,这样比较方便使用.
分享到:
相关推荐
- 获取DataWindow对象中所有元素的信息,使用`Describe`方法提取每个元素的属性。 - 遍历所有元素,筛选出位于“详情”区域且可见的列或计算字段。 - 提取每个列的显示文本,并将其插入到`lds_sort`数据存储中。 ...
检索数据是数据窗口的基本功能之一,主要用于从数据库中提取数据并展示给用户。 **2.1 Retrieve() 函数** - **语法格式**: ```powerbuilder dw_control.Retrieve() ``` - **功能说明**:此函数用于从数据库中...
在PowerBuilder(PB)开发环境中,自定义数据窗口(DataWindow)的线条颜色是一项重要的功能,这能够帮助开发者实现更个性化的界面展示,提升用户体验。本文将深入探讨如何在PB9中实现这一功能,包括对grid样式的...
修正一些情况在提取函数信息上的错误 新增支持 PB 11.0 beta 1 0.8.5 解决含中文变量的脚本代码美化代码时会出现删除中文变量的问题 1.0.0 所有代码进行整理,应用也进行重新设计 原来配置文件pbcomment.ini和...
- PowerBuilder提供了一系列字符串处理函数,如`LEFT`、`RIGHT`等,这些函数可以方便地用于提取字符串的子串或进行字符串拼接等操作。 - 在本例中,通过`LEFT`和`RIGHT`函数来获取列名和排序方向,体现了字符串...
2. DataWindow处理模块:这部分代码会解析DataWindow对象,提取其中的数据和结构信息。 3. Excel文件操作模块:此模块可能包含创建、写入和操作Excel文件的函数,可能使用了如Microsoft Office Interop库或者第三方...
类似于字符串的Mid()函数,BlobMid()用于从Blob变量中提取一段数据。它接受数据的起始位置n和可选的长度length,返回一个新的Blob变量。如果位置或长度超出范围,函数将根据实际情况返回数据。 5. **Len()**: ...
在PowerBuilder(简称PB)开发环境中,下拉数据窗口(Dropdown DataWindow,简称DDDW)是一种常见的用户界面组件,用于提供用户友好的选择输入方式。动态检索是DDDW的一个重要特性,它允许根据用户的选择或者特定...
2. **SQL表达式和参数**:在PB中,可以使用SQL语句动态地从数据库中提取数据。SQL表达式可以包含参数,这些参数可以在运行时由用户输入或程序动态设置,从而实现不同条件下的数据筛选和排序。 3. **事件驱动编程**...
例如,你可以使用JsonParse函数将JSON字符串转换为一个解析对象,然后通过对象的属性和方法遍历JSON树结构,提取所需的数据。 解析JSON到数据源,意味着将JSON对象映射到PB的数据窗口(DataWindow)或其他数据结构...
DataWindow能够从数据库中提取数据并以各种格式呈现,包括表格、报告、图表等。 - 打印机设置通常涉及到纸张大小、页边距、方向(纵向或横向)、字体和颜色等,这些在PB中可以通过设置DataWindow属性来实现。 3. *...
3. `netroach.pbd`、`netroach.pbl`:这些文件可能与PowerBuilder的数据窗口对象(DataWindow)有关。`.pbd`是PowerBuilder的数据窗口对象库,而`.pbl`是PowerBuilder的库文件,可能包含了处理网页和网络请求的相关...
在这个系统中,开发者可能设计了易于使用的界面,让用户可以方便地选择报表参数、预览和打印报表。 7. **报表设计与布局**:自定义报表系统的核心是报表设计功能。开发者可能实现了自定义列宽、行高、排序、分组、...
在这个方法中,可能需要创建数据窗口(DataWindow)来与数据库交互,并根据需要添加WHERE条件。 在处理Blob数据时,可能会涉及到将数据窗口内容转化为Blob,然后通过Web Service返回给客户端。这通常涉及对数据窗口...
修正一些情况在提取函数信息上的错误 新增支持 PB 11.0 beta 1 0.8.5 解决含中文变量的脚本代码美化代码时会出现删除中文变量的问题 1.0.0 所有代码进行整理,应用也进行重新设计 原来配置文件pbcomment.ini和...
这个方法可能需要一个参数,即要查询的IP地址字符串。在PB中,我们可以使用方法调用来执行这个操作,如`myWebService.GetIPAddressInfo("192.168.1.1")`。 WebServices返回的数据通常是以XML格式的SOAP响应。在PB中...
字符串处理函数是PB编程中常见的,例如`Left`用于返回字符串的左边部分,`Right`用于返回右边部分,`Mid`则可以从中间提取指定长度的子串。在处理数值时,`Abs`函数可以求绝对值,`Round`用于四舍五入,`Int`则是...
2. 字符串处理函数:`Len()`计算字符串长度,`Mid()`截取字符串,`Left()`和`Right()`分别从字符串左侧和右侧提取字符。 3. 日期时间函数:`Date()`、`Time()`获取当前日期和时间,`DateAdd()`、`DateDiff()`进行...