标签: openedge

将字符值从字符数组变量复制到字符(字符串)变量

这是我的问题

define varibale MyArray as character extent 40 no-undo.
define variable Mychara as character           no-undo.

Mychara = "hai this is checking how to copy values"
Run Code Online (Sandbox Code Playgroud)

现在我想将此字符串复制到我的"MyArray".所以它应该如下

MyArray [1] = h,MyArray [2] = a,MyArray [3] = i,MyArray [4] ="",MyArray [5] = t,MyArray [6] = h等等......

那怎么办呢?

progress-4gl openedge

1
推荐指数
1
解决办法
7055
查看次数

是否有OpenEdge ABL的makefile?

我正在拼命寻找为Progress OpenEdge ABL制作makefile的方法,并让它根据源文件的变化仅编译应用程序的一个子集.

有没有人设置这样的东西?我之前在C应用程序中使用过makefile,但是从未在Windows环境中使用过不是所有文件都符合设定命名约定的环境(例如abc/xxx可能是程序或包含).

makefile progress-4gl openedge

1
推荐指数
1
解决办法
677
查看次数

进度4gl OpenEdge abl从目录中删除文件

如何使用OpenEdge ABL(progress-4gl)代码从目录中删除文件?

我找不到任何代表这个问题的代码示例.我知道如何输出值(路径),以及从值(路径)输入,但是如何完成删除?

progress-4gl openedge

1
推荐指数
1
解决办法
2110
查看次数

RDBMS索引进度问题-供参考

我发现在Progress 10.1中,当在查询中使用多个索引时,数据库将使用索引列表中的第一个索引,而不是最优化的索引,也不是两个索引的子集。

其他人有没有经历过?

================================================== ===============

定义了几个索引,但我们正在查看的两个索引是:XIE1cac_role_person ownering_entity_mnemonic owning_entity_key role_key

XIE2cac_role_person contract_obj person_role_code Effective_from_date

最初,我的代码如下,它使用的是第一个索引,该索引返回的数据集更大。

FOR EACH cac_role_person NO-LOCK 
        WHERE cac_role_person.contract_obj = cbm_contract.contract_obj 
          AND cac_role_person.owning_entity_mnemonic = "BROKER"
          AND (
              (cac_role_person.effective_to_date > TODAY 
          AND  cac_role_person.effective_to_date >=  
               cbm_contract_component.contract_component_start_date)
           OR (cac_role_person.effective_to_date = ? 
          AND cac_role_person.effective_from_date <=                  
              cbm_contract_component.contract_component_start_date)
              ):
Run Code Online (Sandbox Code Playgroud)

所以我现在强迫它使用第二索引:

FOR EACH cac_role_person NO-LOCK USE-INDEX XIE2cac_role_person
        WHERE cac_role_person.contract_obj = cbm_contract.contract_obj 
          AND cac_role_person.owning_entity_mnemonic = "BROKER"
          AND (
              (cac_role_person.effective_to_date > TODAY 
          AND  cac_role_person.effective_to_date >=  
               cbm_contract_component.contract_component_start_date)
           OR (cac_role_person.effective_to_date = ? 
          AND cac_role_person.effective_from_date <=                  
              cbm_contract_component.contract_component_start_date)
              ):
Run Code Online (Sandbox Code Playgroud)

第一个代码在30小时内修复了约4000次,而改进后的12小时内修复了7万次。(循环是更大的部分的一部分,但这只是我需要加快处理17倍的更改

database progress-4gl progress-db openedge

1
推荐指数
1
解决办法
764
查看次数

将FOR EACH中的行添加到TEMP-TABLE

我正在尝试创建一个临时表,它与数据库中已存在的表完全相同.如何将每行添加到临时表?

DEFINE TEMP-TABLE o_ttProducts.

FOR EACH Product:
    /*Add current row to the o_ttProducts temp table*/
END.
Run Code Online (Sandbox Code Playgroud)

progress-4gl openedge

1
推荐指数
1
解决办法
200
查看次数

输出到输出流有什么区别

请问你能帮我理解输出到输出流 4GL 和输出流之间的区别,还有什么是?,进度文档页面没有多大帮助.

非常感谢你.

progress-4gl openedge

1
推荐指数
1
解决办法
135
查看次数

如何在缓冲区句柄中使用`export`?

在删除表之前导出表的数据就像一个超级按钮一样。
范例:

OUTPUT TO VALUE("C:\mytable.d") APPEND.
EXPORT mybd.mytable.
OUTPUT CLOSE. 
DELETE mybd.mytable.
Run Code Online (Sandbox Code Playgroud)

但是,我还没有使它在使用缓冲区句柄时起作用。以下内容将导出一个整数,而不是删除的数据。

DEF INPUT PARAM hlTableToDelete AS HANDLE NO-UNDO.
...
OUTPUT TO VALUE("C:\" + hiTableToDelete:NAME + ".d") APPEND.
EXPORT hlTableToDelete:HANDLE.
OUTPUT CLOSE. 
hlTableToDelete:BUFFER-DELETE().
Run Code Online (Sandbox Code Playgroud)

命令运行export并实际导出缓冲区句柄的数据需要哪种语法?

progress-4gl openedge

1
推荐指数
1
解决办法
69
查看次数

如果找不到匹配项,则返回默认值

我有一个函数Ge​​tQuantity返回一个小数。在某些情况下,我不返回任何内容,即返回空字符串,以便显示“”。

实际行为:

  1. GetQuantity(1)-> 1.0
  2. GetQuantity(2)-> 2.0
  3. GetQuantity(3)-> 3.3

所需行为:

  1. GetQuantity(1)-> 1.0
  2. GetQuantity(2)-> 2.0
  3. GetQuantity(3)->''

在情况3中,我显然可以返回-1.0或其他值,但这不是我所需要的。

FUNCTION GetQuantity RETURNS DECIMAL(INPUT num  AS INTEGER):
    DEFINE VARIABLE quantity AS DECIMAL NO-UNDO FORMAT "->,>>>,>>9.9<<<<<<<<".

    quantity = 3.3. //initialization is neccessary as IRL my value is initialized

    IF num = 1 THEN DO:
        RETURN 1.0.
    END.

    ELSE IF num = 2 THEN DO:
        RETURN 2.0.
    END.

    RETURN quantity. //base case return ' '
END.

DISPLAY GetQuantity(3)
Run Code Online (Sandbox Code Playgroud)

progress-4gl openedge

1
推荐指数
1
解决办法
59
查看次数

执行 .p 文件后,未使用 proenv 在 test.out 文件中获取输出

我是进步的新手。我只是按照下面的知识库文章,但我没有得到所需的输出。 https://knowledgebase.progress.com/articles/Knowledge/How-to-write-ap-script-to-execute-via-proenv-to-produce-a-stderr-stdout-in-a-file

  1. 我用下面的代码创建了一个 test.p 文件:
MESSAGE ENTRY (1, "This is a test") VIEW-AS ALERT-BOX.
MESSAGE "Hello there" VIEW-AS ALERT-BOX.
DISPLAY "hello world".
Run Code Online (Sandbox Code Playgroud)
  1. chmod +x 测试.p
  2. 然后在 proenv 中我运行下面的命令
proenv>proenv -b -p test.p > test.out
Run Code Online (Sandbox Code Playgroud)
  1. 我只在 test.out 文件的输出下面找到
$ cat test.out

      DLC: /opt/progress/117
   WRKDIR: /opt/progress/wrk_117
      OEM: /opt/progress/oemgmt_117
OEMWRKDIR: /opt/progress/wrk_oemgmt_117

Inserting /opt/progress/117/bin to beginning of path and
setting the current directory to /opt/progress/wrk_117.

OpenEdge Release 11.7.5 as of Fri Jun  7 08:29:03 EDT 2019
Run Code Online (Sandbox Code Playgroud)

我没有找到,我做错了什么。感谢这方面的帮助。谢谢。

progress-4gl progress-db openedge

1
推荐指数
1
解决办法
77
查看次数

向正在进行的字符变量添加前导零 4gl

我正在尝试导入一个 .csv 文件以匹配数据库中的记录。但是,数据库记录有前导零。这是一个字符字段 数据量有点高的一面。这里数据库中字段的长度是 x(15)。

我面临的问题是 .csv 文件包含像示例 AB123456789 这样的数据,其中数据库字段具有 "00000AB123456789" 。

我正在将 .csv 导入到字符变量中。

有人可以让我知道我应该怎么做才能使用进度查询获取前缀零吗?

谢谢你。

4gl progress-4gl openedge

1
推荐指数
1
解决办法
42
查看次数

标签 统计

openedge ×10

progress-4gl ×10

progress-db ×2

4gl ×1

database ×1

makefile ×1