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

提取DataWindow的参数

    博客分类:
  • PB
 
阅读更多

这里说的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数组包含了参数名和参数类型,这样比较方便使用.

分享到:
评论

相关推荐

    PBdatawindow导出excel函数

    - 获取DataWindow对象中所有元素的信息,使用`Describe`方法提取每个元素的属性。 - 遍历所有元素,筛选出位于“详情”区域且可见的列或计算字段。 - 提取每个列的显示文本,并将其插入到`lds_sort`数据存储中。 ...

    datawindow dw常用详解

    检索数据是数据窗口的基本功能之一,主要用于从数据库中提取数据并展示给用户。 **2.1 Retrieve() 函数** - **语法格式**: ```powerbuilder dw_control.Retrieve() ``` - **功能说明**:此函数用于从数据库中...

    PBhelper/PBCOMMENT 支持PB11.5,带源码,说明书等,版权归李群巍所有

    修正一些情况在提取函数信息上的错误 新增支持 PB 11.0 beta 1 0.8.5 解决含中文变量的脚本代码美化代码时会出现删除中文变量的问题 1.0.0 所有代码进行整理,应用也进行重新设计 原来配置文件pbcomment.ini和...

    pb数据窗口点击列名排序

    - PowerBuilder提供了一系列字符串处理函数,如`LEFT`、`RIGHT`等,这些函数可以方便地用于提取字符串的子串或进行字符串拼接等操作。 - 在本例中,通过`LEFT`和`RIGHT`函数来获取列名和排序方向,体现了字符串...

    自定义pb数据窗口线条颜色

    在PowerBuilder(PB)开发环境中,自定义数据窗口(DataWindow)的线条颜色是一项重要的功能,这能够帮助开发者实现更个性化的界面展示,提升用户体验。本文将深入探讨如何在PB9中实现这一功能,包括对grid样式的...

    计算机软件-编程源码-dw2xls_For_pb115.zip

    2. DataWindow处理模块:这部分代码会解析DataWindow对象,提取其中的数据和结构信息。 3. Excel文件操作模块:此模块可能包含创建、写入和操作Excel文件的函数,可能使用了如Microsoft Office Interop库或者第三方...

    powerbuilder常用函数

    类似于字符串的Mid()函数,BlobMid()用于从Blob变量中提取一段数据。它接受数据的起始位置n和可选的长度length,返回一个新的Blob变量。如果位置或长度超出范围,函数将根据实际情况返回数据。 5. **Len()**: ...

    powerbuild 下拉数据窗口 动态检索 dddw

    在PowerBuilder(简称PB)开发环境中,下拉数据窗口(Dropdown DataWindow,简称DDDW)是一种常见的用户界面组件,用于提供用户友好的选择输入方式。动态检索是DDDW的一个重要特性,它允许根据用户的选择或者特定...

    pb动态报表

    2. **SQL表达式和参数**:在PB中,可以使用SQL语句动态地从数据库中提取数据。SQL表达式可以包含参数,这些参数可以在运行时由用户输入或程序动态设置,从而实现不同条件下的数据筛选和排序。 3. **事件驱动编程**...

    PB调用http api接口 PB解析json

    例如,你可以使用JsonParse函数将JSON字符串转换为一个解析对象,然后通过对象的属性和方法遍历JSON树结构,提取所需的数据。 解析JSON到数据源,意味着将JSON对象映射到PB的数据窗口(DataWindow)或其他数据结构...

    PB 经典源码,打印机功能自定义设置

    DataWindow能够从数据库中提取数据并以各种格式呈现,包括表格、报告、图表等。 - 打印机设置通常涉及到纸张大小、页边距、方向(纵向或横向)、字体和颜色等,这些在PB中可以通过设置DataWindow属性来实现。 3. *...

    网页文字资源分析及代码生成器

    3. `netroach.pbd`、`netroach.pbl`:这些文件可能与PowerBuilder的数据窗口对象(DataWindow)有关。`.pbd`是PowerBuilder的数据窗口对象库,而`.pbl`是PowerBuilder的库文件,可能包含了处理网页和网络请求的相关...

    PB+8.0+自定义报表系统 源码

    在这个系统中,开发者可能设计了易于使用的界面,让用户可以方便地选择报表参数、预览和打印报表。 7. **报表设计与布局**:自定义报表系统的核心是报表设计功能。开发者可能实现了自定义列宽、行高、排序、分组、...

    [PB12.X] PBHelperV1_0_2_20110903 增加对12.5的支持

    修正一些情况在提取函数信息上的错误 新增支持 PB 11.0 beta 1 0.8.5 解决含中文变量的脚本代码美化代码时会出现删除中文变量的问题 1.0.0 所有代码进行整理,应用也进行重新设计 原来配置文件pbcomment.ini和...

    PB调用WebServices的例子IP地址查询服务.rar_PB调用WebServices实例_pb_welle3k_服务

    这个方法可能需要一个参数,即要查询的IP地址字符串。在PB中,我们可以使用方法调用来执行这个操作,如`myWebService.GetIPAddressInfo("192.168.1.1")`。 WebServices返回的数据通常是以XML格式的SOAP响应。在PB中...

    PB函数大全(适合PB初学者)

    字符串处理函数是PB编程中常见的,例如`Left`用于返回字符串的左边部分,`Right`用于返回右边部分,`Mid`则可以从中间提取指定长度的子串。在处理数值时,`Abs`函数可以求绝对值,`Round`用于四舍五入,`Int`则是...

    PowerBuilder系统函数大全

    2. 字符串处理函数:`Len()`计算字符串长度,`Mid()`截取字符串,`Left()`和`Right()`分别从字符串左侧和右侧提取字符。 3. 日期时间函数:`Date()`、`Time()`获取当前日期和时间,`DateAdd()`、`DateDiff()`进行...

Global site tag (gtag.js) - Google Analytics