Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Di COBOL, Anda dapat menggunakan sintaks OCCURS DEPENDING ON untuk menentukan tabel dengan panjang variabel dalam deklarasi data. Penyimpanan untuk tabel panjang variabel bersifat dinamis, tergantung pada nilai dalam variabel penentu panjang. Jumlah data yang diteruskan juga tergantung pada nilai dalam variabel penentu panjang: Hanya jumlah elemen yang ditentukan yang dikirim atau diterima. Variabel penentu panjang untuk tabel panjang variabel harus merupakan jenis numerik, dan arahnya harus sesuai dengan arah tabel panjang variabel yang dikontrolnya.
Saat Anda mengimpor COBOL ke Proyek Integrator Transaksi (TI), dan Anda menentukan tabel panjang variabel sebagai aset rekaman, tabel panjang variabel secara otomatis menjadi array atau objek recordset yang ukurannya dibatasi oleh parameter lain. Penentu panjang diekspos pada bagian Automation sebagai parameter dan harus diatur dengan benar ketika parameter dikirim ke aplikasi induk.
Untuk menunjukkan bahwa parameter dalam metode secara manual adalah penentu panjang untuk array, pertama-tama tentukan parameter penentu panjang, lalu tentukan parameter array atau recordset:
Di kelas properti parameter yang akan didefinisikan sebagai array ODO, gunakan Perancang untuk memilih properti Is Array . Setelah IsArray dipilih, properti Dimensi Array dan Terjadi berdasarkan kondisi menjadi tersedia. Tentukan dimensi array menggunakan properti Array Dimensions . Tetapkan indeks ODO ke parameter yang didefinisikan sebagai array ODO. Pilih indeks dengan memperluas properti Terjadi tergantung pada.
Anda juga dapat secara manual menentukan bahwa sebuah parameter dalam metode berfungsi sebagai penentu panjang untuk parameter recordset.
Ikuti langkah-langkah yang sama seperti yang didefinisikan sebelumnya; namun, ubah jenis data parameter dari jenis data sederhana menjadi kumpulan rekaman.
Kode COBOL berikut menunjukkan tabel panjang variabel:
01 CUSTOMER-DATA.
05 CUSTOMER-NUMBER PIC 9(9).
05 LAST-NAME PIC X(20).
05 FIRST-NAME PIC X(20).
05 INVOICE-COUNT PIC 9(7) COMP-3.
05 INVOICES OCCURS 50 TIMES DEPENDING ON INVOICE-COUNT.
10 INVOICE-NUMBER PIC 9(10).
10 INVOICE-DATE PIC 9(7) COMP-3.
10 INVOICE-AMOUNT PIC S9(13)V9(2) COMP-3.
10 INVOICE-DESCRIPTION PIC X(40).
Berikut ini adalah metode yang dibuat ketika COBOL sebelumnya diimpor:
SendInvoices(lCustomerNo As Long, strLastName As String, strFirstName As String _
, lcInvoices As Long) As Object
Berikut ini adalah contoh kode Microsoft® Visual Basic® yang memanggil metode yang diimpor:
Dim objCustomer As Object 'Uses late binding
Dim objInvoices As ADODB.Recordset
Dim lCustomerNumber As Long
Dim iRow As Integer
Dim iCol As Integer
Dim strLastName As String
Dim strFirstName As String
'create an instance of the invoicing object
On Error GoTo ErrorHandler1
Set objCustomer = CreateObject("Customer.Invoicing.1")
lCustomerNumber = CLng(txtCustomerNumber)
'invoke the GetInvoices method
On Error GoTo ErrorHandler2
Set objInvoices = objCustomer.GetInvoices(lCustomerNumber _
, strLastName, strFirstName)
'
' Transfer the Recordset data to a variant array in a single operation.
' This is efficient, but may not be suitable for larger Recordsets.
'
Dim Data As Variant
Data = objInvoices.GetRows
grdInvoices.Rows = UBound(Data, 2) + 1
grdInvoices.Cols = UBound(Data, 1) + 1