インデックスフィールド値へのアクセス

IAttributesインターフェースはインデックスフィールドのコレクションを表します。コレクション内のアイテムは IAttribute インターフェースを実装します。

コレクションのアイテムはインデックス (オブジェクトコレクションの使用を参照) またはインデックスフィールド名でアクセスできます。指定されたフィールドがコレクションに存在しない場合は、例外がスローされます。

以下の表は自動インデックス作成スクリプトからインデックスフィールドにアクセスする方法を示します。

言語: インデックスでインデックスフィールドにアクセス 名前でインデックスフィールドにアクセス
C# doc.Attributes[0] doc.Attributes["Name"]
Visual Basic .Net doc.Attributes(0) doc.Attributes("Name")
JScript .Net doc.Attributes(0) doc.Attributes("Name")
JScript this.Attributes(0) this.Attributes("Name")
VBScript Me.Attributes(0) Me.Attributes("Name")

Valueプロパティ(IAttribute インターフェースの)を使用してインデックスフィールドの値を取得、設定できます。例えば:

// C#
IAttribute attr = doc.Attributes("Name");
var current = attr.Value;
attr.Value = ...;

値のタイプはインデックスフィールドのタイプにより異なります(以下の表を参照)。

インデックスフィールドのタイプ バリアントタイプ .NET タイプ
DAT_Boolean VT_BOOL bool
DAT_Enumeration VT_BSTR string
DAT_SingleLine VT_BSTR string
DAT_MultipleLines VT_DISPATCH (IStringsCollection) IStringsCollection
DAT_RegularExpression VT_BSTR string
DAT_DateTime VT_DATE DateTime
DAT_Number VT_R8 double
DAT_Currency VT_CY double
DAT_Url VT_BSTR string

DAT_MultipleLinesタイプのフィールドには文字列配列またはIStringsCollectionタイプのオブジェクトである値を割り当てることができます。一部の例は以下の表に記載されています。

言語: 例:
C# doc.Attributes["Authors"].Value = new string[] {"Bob", "Alice"};
Visual Basic .Net doc.Attributes("Authors").Value = new string() {"Bob", "Alice"}
JScript .Net doc.Attributes("Authors").Value = ["Bob", "Alice"];
JScript this.Attributes("Authors").Value = ["Bob", "Alice"];
VBScript Me.Attributes("Authors").Value = Array("Bob", "Alice")

DAT_DateTimeタイプのフィールドにはDateタイプ (VBScriptまたはJScript) またはSystem.DateTimeタイプ (.NET言語) のオブジェクトである値を割り当てることができます。一部の例は以下の表に記載されています。

言語: 例:
C# doc.Attributes["Date"].Value = System.DateTime.Now;
Visual Basic .Net doc.Attributes("Date").Value = System.DateTime.Now
JScript .Net doc.Attributes("Date").Value = System.DateTime.Now;
doc.Attributes("Date").Value = new Date(...);
doc.Attributes("Date").Value = (new Date(...)).getVarDate();
JScript this.Attributes("Date").Value = new Date(...);
this.Attributes("Date").Value = (new Date(...)).getVarDate();
VBScript Me.Attributes("Date").Value = CDate(...)
Me.Attributes("Date").Value = Now

DAT_Currencyタイプのフィールドには、Currency(VBScriptの場合)、System.Decimal(.NET言語の場合)、またはSystem.Runtime.InteropServices.CurrencyWrapper(.NET言語の場合)タイプの任意のタイプまたはオブジェクトの値を割り当てることができます。。一部の例は以下の表に記載されています。

言語: 例:
C# doc.Attributes["Amount"].Value = 123.456;
doc.Attributes["Amount"].Value = 123.456m;
doc.Attributes["Amount"].Value = new System.Runtime.InteropServices.CurrencyWrapper(123.456m);
Visual Basic .Net doc.Attributes("Amount").Value = 123.456
doc.Attributes("Amount").Value = 123.456D
doc.Attributes("Amount").Value = new System.Runtime.InteropServices.CurrencyWrapper(789.012D)
JScript .Net doc.Attributes("Amount").Value = 123.456;
doc.Attributes("Amount").Value = new System.Decimal(123.456);
doc.Attributes("Amount").Value = new System.Runtime.InteropServices.CurrencyWrapper(123.456);
JScript this.Attributes("Amount").Value = 123.456;
VBScript Me.Attributes("Amount").Value = 123.456
Me.Attributes("Amount").Value = CCur(123.456)

29.11.2022 17:26:48

Please leave your feedback about this article

Usage of Cookies. In order to optimize the website functionality and improve your online experience ABBYY uses cookies. You agree to the usage of cookies when you continue using this site. Further details can be found in our Privacy Notice.