powerbuilder - Powerbuilder 12.5 中的表达式

标签 powerbuilder

我对 PowerBuilder(12.5 Classic)还很陌生,并试图找出我所做的是否是正确的方法。

我在 PowerBuilder DataWindow 中有三个文本控件,名为 t1t2t3

我正在尝试使用表达式,因此t1.Text属性设置为静态“Hello”

使用表达式的

t2.text 属性。因此,在表达式字段中,我指定 describe('t1.Text')
当我运行它时,它正确地将 t2.Text 显示为 "Hello" (不包括引号)。

现在对于t3,我将表达式指定为describe('t2.Text'),我认为这不是正确的做法,因为我得到的结果为: describe(~"t2.Text~") [包括所有引号]。

我只是想获取文本框的评估文本(此处为t2),而不是其表达式。感谢任何帮助。谢谢。

最佳答案

您可以获取 dw_1 中给定行的字段属性表达式的结果。数据窗口通过使用 evaluate() Describe() 中的数据窗口表达式:

string ls_expression = "t2.text"
string ls_text
ls_text = dw_1.Describe("evaluate(~"" + ls_expression + "~", " + string(row) + ")")

编辑:如果您需要将属性动态重用到 DW 中的另一个表达式中,则变得有点棘手

  • 因为您无法直接使用 eval() 评估特性因为该属性的形式为 "constant <tabulation> expression" (包括双引号),
  • 然后您需要直接获取值
  • 或者您需要计算表达式的正确部分并注意引号(这里我在开头添加一个,但描述中已经给出了相应的结束引号)。

多行dw表达式将是:

if(pos(describe("some_field.protect"),"~t")<1,  /*if the prop has no tab*/
    describe("some_field.protect"),             /*no expression, get it directly*/
    describe(                               /*else eval the right part*/
        "evaluate(~""
            +mid(describe("some_field.protect"), pos(describe("some_field.protect"),"~t")+1)
            +",1)"          /* 1=for row 1 */
    )
)

一些注意事项:

  • 正如你所看到的,我多次调用了表达式的描述,因此提前构造几个计算字段会更清楚
    • describe()并且只有一个表达式可供查询
    • pos() 的值制表符
    • 我在示例中对第 1 行进行了硬编码(在 evaluate() 的末尾,您将需要使用 string(getrow()) 或其他一些函数来评估正确行(或标题 IIRC 的第 0 行)处的属性
    • 请注意,如果您不直接将该表达式放入 dw 绘图程序中而是通过 PBScript 设置它,则必须展开双引号 "或简单的简单报价'包含 tilda 字符,具体取决于代码中使用的字符串类型

关于powerbuilder - Powerbuilder 12.5 中的表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28315058/

相关文章:

api - PowerObject 或 WindowObject 类的 API 是什么?

c# - 将 PowerBuilder 应用程序移植到 .NET

pdf - 将 PDF 读取为 Blob,然后作为附件发送

c# - 逐步将 PowerBuilder/C++ 应用程序移植到 C#/WPF 或 Winforms

powerbuilder - 如何在PowerBuilder上使用Windows资源管理器文件浏览器?

excel - PowerBuilder如何在Excel的单元格中设置WrapText?

syntax-error - 是什么导致我的PowerBuilder C0031语法错误?

powerbuilder - 如何在 PowerBuilder 中获取事件工作表菜单?

code-analysis - PowerBuilder 代码分析工具

webforms - PowerBuilder 12.5 Web 表单 - 列在部署时不可编辑或丢失 Tab 顺序