**没有sls折扣记录可用。 (91)

时间:2015-11-19 02:59:26

标签: progress-4gl openedge

/ * sls-discount我是数据库名称 */美好的一天。关于特定浏览的值更改,我还有另一个问题。

我的添加按钮代码:

FIND CURRENT {&FIRST-TABLE-IN-QUERY-DIALOG-FRAME} NO-LOCK NO-ERROR.
IF AVAIL {&FIRST-TABLE-IN-QUERY-DIALOG-FRAME} THEN DO:
    ASSIGN mode = 3.
    ASSIGN BROWSE BROWSE-13:READ-ONLY = NO
        sls-discount.dsc-amount:READ-ONLY IN BROWSE BROWSE-13 = NO
        sls-discount.dsc-discount:READ-ONLY IN BROWSE BROWSE-13 = NO
        sls-discount.log:READ-ONLY IN BROWSE BROWSE-13 = NO.

    {&OPEN-QUERY-BROWSE-13}
    IF BROWSE-13:num-iterations ne 0 then
    BROWSE BROWSE-13:SELECT-FOCUSED-ROW().
    BROWSE BROWSE-13:INSERT-ROW("BEFORE"). /*will cause value-change in browse*/
    APPLY 'entry' TO sls-discount.dsc-discount IN BROWSE BROWSE-13.

    RUN disp-enable.
END.

我的browse-13代码:

ASSIGN xpromo-no = {&FIRST-TABLE-IN-QUERY-BROWSE-13}.promo-no
    mdlrid = {&FIRST-TABLE-IN-QUERY-BROWSE-13}.record-id.

MESSAGE xpromo-no mdlrid VIEW-AS ALERT-BOX INFO.

OPEN QUERY BROWSE-16 FOR EACH sls.sls-disccount-model WHERE sls.sls-disccount-model.promo-no = xpromo-no
    AND sls.sls-disccount-model.record-id = mdlrid NO-LOCK,
    EACH sls.sls-model WHERE sls.sls-model.car-model = sls.sls-disccount-model.car-model NO-LOCK.

如果我在浏览中取消注释整个值更改,它将在单击添加按钮时显示消息“**没有DBName记录可用。(91)”。但如果注释/删除,它将不会显示该消息。

希望你能再次帮助我..谢谢

2 个答案:

答案 0 :(得分:1)

你无疑遇到了臭名昭着的“部分字段自动完成”#34;功能/错误。这意味着 - 如果您引用一个没有本地定义的变量,Progress编译器将搜索所有可用表中启动的字段,并使用相同的字母序列。

错误告诉你的是编译器将一个字段与" DBName"中的某个字段相关联。表,当代码尝试访问该变量时,DBName缓冲区不在范围内 - 这是可以理解的,因为访问它并不是你的意图。

我的猜测是你错误地指定了一个BROWSE结构。看看你的第一组结构,你有两种不同的形式:

BROWSE BROWSE-13:READ-ONLY = NO
sls-discount.dsc-amount:READ-ONLY IN BROWSE BROWSE-13 = NO 

我打赌其中一个是错误的,并且编译器正在关联非法"浏览"引用DBName中以&#34开头的字段;浏览"。

如果您将代码编译为XREF文件,它会告诉您它尝试与DBName表关联的变量。纠正这一点,你会很高兴。

答案 1 :(得分:0)

我弄清楚代码上的问题..点击“添加”按钮后,由于{&OPEN-QUERY-BROWSE-13},浏览中的行被排列了。之后,由于BROWSE BROWSE-13:SELECT-FOCUSED-ROW(),它专注于浏览的TOP日期,最后一个BROWSE BROWSE-13:INSERT-ROW("BEFORE"),在最顶层创建了一个空白数据行。从而触发browse-13的值改变。在浏览器13上我的值已更改,代码的开头是get current browse-13。由于它专注于空白行,因此导致错误,未找到任何查询。对不起,如果我在第一个例子中没有包含语法get current