【发布时间】:2021-04-29 17:44:46
【问题描述】:
我正在使用一个软件 pc/mrp,它似乎有一个用于 FRX 文件的内置 Visual Fox Pro 编辑器。它还有一个 ef 文件的外部使用。根据谷歌的一些用法,报表设计器似乎是标准的,而不是定制的。 ef 文件的使用可能是一个自定义的东西。现在,我需要找到一种方法来访问报表中的 SQL 语句中的值。该语句需要在报告中逐行运行。
EF: 该文件包含以下部分: ~在~ ~出来~
在这些部分中,我可以运行代码,但如果有 ~perline~ 类型部分,我不知道如何访问它。我可以使用~in~来尝试创建数据库之间的关系,如下例所示:
~IN~
THISAREA = SELECT()
USE PARTMAST ORDER BYPARTNO IN 0
SELECT (THISAREA)
SET RELATION TO PARTNO INTO PARTMAST ADDITIVE
GO TOP
~OUT~
USE IN SELECT("SALES")
但是,为此我不知道如何加入数据库。我有两个数据库(A,B)我需要根据两个字段(pono,line)连接它们。如果 (A.pono and a.line) = (B.pono and B.line) 那么它们将被链接。这可能吗?
报表设计器: 我看到这个工作的另一种方式是在报表设计器中进行查询。内部报告属性是一个变量选项卡。我可以使用它来使用表达式分配给变量。我需要:
SELECT field from B where B.pono = pono and B.line = line; INTO ARRAY varArray;
但是,它给了我一个错误,可能是因为这是试图创建一个新变量,而不是实际分配给报告中的变量。我尝试在设计器中编辑一个字段以使用前面的代码,但这也失败了。
有没有办法使用报表设计器或 ef 文件来获取我需要的每行数据?
【问题讨论】:
-
您展示的示例代码正在执行类似于使用 SET RELATION 命令连接的操作。要使用 SET RELATION,必须在子表中的相关字段(表达式)上有一个索引。因此,如果您的表 B 在 PONO + LINE 上有一个索引(或者,如果它们是数字,则 STR(PONO, length) + STR(LINE, length)),您可以再次使用 SET RELATION TO PONO + LINE INTO B必要时使用更复杂的表达式。
-
太棒了,我没有意识到我可以简单地用'+'设置两个字段的关系。谢谢,可以发帖回答吗?
标签: visual-foxpro