使用 prowin32 将参数传递给进度 4gl 文件

问题描述 投票:0回答:2

我正在尝试使用 prowin32 传递多个输入参数。但我无法找到传递多个参数的正确方法。

这是我的 *.p 文件的代码

define input parameter param1 as character no-undo.
define input parameter param2 as character no-undo.
message param1 param2 
view-as alert-box.    

我正在 proenv 中尝试以下命令

prowin32.exe -p D:\proj\myfolder\sample.p -param "1stValue","SecondValue" -clientlog D:\proj\myfolder\pf\lg.log

我尝试删除输入参数的引号,但仍然收到错误消息

mismatched parameters passed to the routine
openedge progress-4gl
2个回答
1
投票

使用-param“1stValue,2ndValue”。

在您的代码中,您可以使用:

P1 = entry( 1, session:parameter ).
P2 = entry( 2, session:parameter ).

而不是“定义输入参数...”语句。


0
投票

您无法解析正在进行的多个参数 只有一个会话:参数 我们用自己的 .p 文件做到了 从会话中调用 .p:parameter

prowin32.exe启动

prowin32.exe -p D:\proj\myfolder\startpgm.p -param "D:\proj\myfolder\sample.p,1stValue,SecondValue" -clientlog D:\proj\myfolder\pf\lg.lo

startpgm.p

DEFINE VARIABLE hCall AS HANDLE    NO-UNDO.
DEFINE VARIABLE i     AS INTEGER   NO-UNDO.

CREATE CALL hCall.
hCall:CALL-NAME = ENTRY(1,SESSION:PARAMETER). /* Datei Pfad */
hCall:NUM-PARAMETERS = NUM-ENTRIES(SESSION:PARAMETER) - 1. // Num-Parameter

IF NUM-ENTRIES(SESSION:PARAMETER) > 1 THEN DO:

   DO i = 2 TO NUM-ENTRIES(SESSION:PARAMETER):

      // Parameter
      hCall:SET-PARAMETER(i - 1, "CHARACTER", "INPUT", ENTRY(i,SESSION:PARAMETER)).

   END.

END.

hCall:INVOKE. // Start
© www.soinside.com 2019 - 2024. All rights reserved.