LCFieldlist の CopyRef メソッド

このメソッドは、新しいフィールドリストオブジェクトインスタンスを、別のフィールドリストの部分コピーとして作成します。フィールドリストのフィールドはコピーされるのではなく、参照されます。

このメソッドにより、新しいフィールドリストが別のネームスペースで作成されますが、フィールドとデータスペースは既存のフィールドリストと同じです。フィールド名はコピーされますが、新しいフィールドリストは元のフィールドを参照します。このような場合、フィールドリストのデータを変更すると、同じデータスペースを参照するすべてのフィールドリストのデータが変更されます。

注: フィールドの名前は LCField オブジェクトには保存されません。LCFieldlist に保存されます。したがって、CopyRef を実行し、次にフィールド名を変更 (SetName メソッド) した場合、同じフィールドが 2 つのリストでそれぞれ異なる名前で認識されます。

フィールドリストのメタデータおよびデータをコピーするには、LCFieldlistCopy を使用します。

定義位置

LCFieldlist

構文

Set fldListRecordNew = fldListRecord. CopyRef

パラメータ

パラメータ

説明

fldListRecord

LCFieldlist。参照コピーを作成するフィールドリストです。

戻り値

説明

fldListRecordNew

LCFieldlist。フィールドリストの参照コピーです。

Option Public
Uselsx "*lsxlc" 
Sub Initialize
  Dim olist As New LCFieldlist
  Dim nlist As LCFieldlist
  Dim ofield As LCField
  Set ofield = olist.Append ("FirstName", LCTYPE_TEXT)
  ofield.Text = "Chi Len"
  Set nlist = olist.CopyRef
  Set nfield = nlist.GetField (1)
  Call olist.SetName (1, "FullName")
  ofield.Text = "Cheiko"
  Print "The copy contains field named " & nlist.Names(0) &  ", value is " & nfield.Text(0)
  Print "The original contains field named " & olist.Names(0) &  ", value is " & ofield.Text(0)
End Sub

出力例

The copy contains field named FirstName, value is Cheiko
The original contains field named FullName, value is Cheiko