如何在 FOR EACH 查询中检查同一元素的多个子字符串?

问题描述

我正在尝试读取字符串的一部分,但编译器仅读取第一个子字符串。我的代码如下:

FOR EACH estrutura NO-LOCK,EACH item
WHERE estrutura.it-codigo = item.it-codigo
AND IF pc-ge <> 0           THEN item.ge-codigo = pc-ge ELSE item.ge-codigo > 0
AND IF pc-familia <> ""     THEN SUBSTRING(estrutura.it-codigo,1,2,"CHaraCTER") = pc-familia ELSE SUBSTRING(estrutura.it-codigo,"CHaraCTER") BEGINS pc-familia
AND IF pc-norma <> ""       THEN SUBSTRING(estrutura.it-codigo,3,"CHaraCTER") = pc-norma ELSE SUBSTRING(estrutura.it-codigo,"CHaraCTER") BEGINS pc-norma
AND IF pc-classe <> ""      THEN SUBSTRING(estrutura.it-codigo,4,"CHaraCTER") = pc-classe ELSE SUBSTRING(estrutura.it-codigo,"CHaraCTER") BEGINS pc-classe
AND IF pc-bitola <> ""      THEN SUBSTRING(estrutura.it-codigo,6,"CHaraCTER") = pc-bitola ELSE SUBSTRING(estrutura.it-codigo,"CHaraCTER") BEGINS pc-bitola
AND IF pc-comprim <> ""     THEN SUBSTRING(estrutura.it-codigo,8,"CHaraCTER") = pc-comprim ELSE SUBSTRING(estrutura.it-codigo,"CHaraCTER") BEGINS pc-comprim
AND IF pc-rosca <> ""       THEN SUBSTRING(estrutura.it-codigo,11,"CHaraCTER") = pc-rosca ELSE SUBSTRING(estrutura.it-codigo,"CHaraCTER") BEGINS pc-rosca
AND IF pc-acab <> ""        THEN SUBSTRING(estrutura.it-codigo,13,"CHaraCTER") = pc-acab ELSE SUBSTRING(estrutura.it-codigo,"CHaraCTER") BEGINS pc-acab
AND IF pc-seq <> ""         THEN SUBSTRING(estrutura.it-codigo,15,"CHaraCTER") = pc-seq ELSE SUBSTRING(estrutura.it-codigo,"CHaraCTER") BEGINS pc-seq NO-LOCK
BY estrutura.it-codigo:

    CREATE tt-estrutura.
    ASSIGN tt-estrutura.nivel-00 = estrutura.it-codigo
    .


END.

表格和变量是之前创建的。感谢您的阅读,如果我没有说清楚,请见谅。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)