如何在 COBOL 中使用 REDEFINES

事务集成器 (TI) Project 中的 COBOL 导入过程识别数据说明条目中的 REDEFINES 子句,并将重新定义的条目与重新定义的条目正确关联。 必须选择一个重新定义的子句或重新定义子句作为表示要传输的数据的条目。

重新定义的条目可以使用比重新定义的条目更少的空间。 如果选择的重定义条目小于重新定义的条目,TI Project 会自动添加填充符,以便数据在发送到主机时正确覆盖数据说明。 如果重新定义条目表示具有多个字段的表,则最后一个字段包含填充符。

下面的 COBOL 示例演示了 REDEFINES 子句。 在导入期间选择了重新定义子句:

01 CUSTOMER-DATA.  
   05 CUSTOMER-ID                          PIC X(10).  
   05 CUSTOMER-ID-PARTS REDEFINES CUSTOMER-ID.  
      10 LOCATION                          PIC X(3).  
      10 NAME-ABREV                        PIC X(5).  
  

导入的结果方法是:

CreateCustomerID(strLocation As String, strNameAbrev As String)  
  

为此方法生成的 COBOL 为:

01 CREATECUSTOMERID-INPUT-AREA.  
   05 LOCATION              PIC X(3).               INPUT  
   05 NAME-ABREV            PIC X(5).               INPUT  
   05 FILLER                PIC X(2).               INPUT  
  

将 FILLER 添加到重新定义的 CUSTOMER-ID 区域。 当此 FILLER 出现在发送或接收缓冲区的末尾时,出于性能原因,不会发送它。

下面是调用此方法的 Visual Basic 代码示例:

Dim objCustomer As Object  
Dim strLocation As String  
Dim strNameAbrev As String  
  
strLocation = "101"  
strNameAbrev = "SPORT"  
  
'create an instance of the invoicing object  
On Error GoTo ErrorHandler1  
Set objCustomer = CreateObject("Customer.Invoicing.1")  
  
'invoke the CreateCustomerID method  
On Error GoTo ErrorHandler2  
objCustomer.CreateCustomerID strLocation, strNameAbrev  

另请参阅

填充符