【发布时间】:2014-03-22 13:32:18
【问题描述】:
我正在尝试从 UV 命令行做一个简单的 LIST:
LIST PSUB TSN.COMMENT
我得到以下信息:
LIST PSUB TSN.COMMENT 07:37:39am 22 Mar 2014 PAGE 1
@ID..................................... TSN..........
**Program "DICT.GET.LEDGER.DET.VALUE": Line 9, Improper data type.**
进一步看,我可以看到该领域的以下详细信息:
TSN.COMMENT
TYPE: I
LOC: SUBR('DICT.GET.LEDGER.DET.VALUE',FIELD(@ID,'~',4),FIELD(@ID,'~',6),FIELD(@ID,' ',5)"R%3",'3')<1,1,2>
CONV:
NAME: TSN
FORMAT: 13L
SM: S
我们针对此数据库使用的应用程序是 EPICOR Ecpise——从他们提供的包含该字段的工具生成的报告确实有效,所以我认为数据文件没有问题——我认为是只有我;我对这种类型的数据库不是很熟悉,不知道我不知道什么。
DICT.GET.LEDGER.DET.VALUE 程序如下:
ED OC DICT.GET.LEDGER.VALUE 531 行。
----: P
0001: SUBROUTINE (VAL,ATTB)
0002: $INCLUDE AD.DIR CC~COMMON
0003: *
0004: *
<--And lots more after that -->
我认为代码没问题,因为有很多其他我键入的字段使用类似的 SUBR,当从 UV 调用目录时,这些错误会以相同的方式出现。我想我只是错过了一些东西。
然后看看CC~COMMON里面有什么:
COMMON /STDCOM/ COMDATA(150),SECURITY,MAIN.MEN,FILES(50),AOFILES(150),GLDATA(35)
** Version# 13 - 05/07/2008 - 10:24am - BABS - main
COMMON FLAGS(100)
COMMON TCL.LEVEL., RECALL.FLAG, E.MESS.
COMMON LED(200),OLED(200),LD(150),OLD.LD(150)
COMMON PRD(200),PRDP(30),PRD.BR(70),PRDC.BR(30),PRDD.BR(40)
COMMON PGRP(10),PLNE(30),PLNE.BR(20),PLNB(5),BL.BR(50)
COMMON CUS(200),CUSS(200),MA(40)
COMMON TAX(20),AR(50)
COMMON SCROLL.VAR, SVIEW.DEF., SVIEW.DATA.(10)
$INCLUDE CC EQU.ESC.OBJECT
$INCLUDE CC EQUATES
PROMPT CHAR(0)
!BABS~05/07/08~10:24
* Compiled by ECLIPSE on 02/11/12 09:29 from CC:COMMON
*** Version# 13 - 05/07/2008 - 10:24am - BABS - main
【问题讨论】:
-
子程序DICT.GET.LEDGER.DET.VALUE的代码是什么?您可以通过在命令行输入“ED DICT.GET.LEDGER.DET.VALUE”来打开程序。通常程序文件是BP。因此,您的命令将是“ED BP DICT.GET.LEDGER.DET.VALUE”。如果这不起作用,您可以通过查看程序“ED VOC DICT.GET.LEDGER.DET.VALUE”的 VOC 条目的第 2 行来查找程序文件
-
另外,如果您将 LIST 选择限制为仅一条记录,您是否仍然会收到错误:LIST SAMPLE 1 TSN.COMMENT PSUB
-
感谢您的意见!是的,只是做一个 1 的样本会产生相同的错误。我已经发布了上面程序文件的代码。感谢您找到它的命令。
-
现在我已将子程序的代码放入问题中,这是否说明了问题?
-
看这段代码,第9行的LEDFILE还没有打开。我没有看到已打开此文件的参数变量、OPEN 语句或 COMMON 块。这很可能是您的问题之一。
标签: universe