以下の例で既に機能する手動で作成された配列があります。
var PartsData = { 179: { ref:"",
partNum: "201-2007-C00-00",
descript: "System Monitor Card (Tracewell Only)",
cage: "39764",
qty: "1",
SMR: "XBOZZ",
UOC: "A" }};
上記の配列は、配列内の 1 つの値にすぎず、正常に動作します。これは、値を動的に変更するために使用しようとしている XML です。
<?xml version="1.0" encoding="utf-8"?>
<partsTables>
<partsList>
<part sheetNum="ta1">
<breakDownIndexNo>-1 </breakDownIndexNo>
<referenceDesg/>
<indent>20534220P01 </indent>
<description/>
<cage>TAC RI, GRADE-A SHOCK (TEC RACK), ALT P/N 72304-1</cage>
<qtyPerAssy>23991 </qtyPerAssy>
<smr>1 </smr>
<uoc>ADODD </uoc>
<blank/>
</part>
</partsList>
</partsTables>
この解析は、Acrobat で問題なく実行できます。ここで、これらの値を使用して配列を機能させたいと思います。以下があればうまくいきます。
part.item(i).indent.value は、インデント ノードの値などと同じです。
newArr = { 179: {
ref: part.item(i).referenceDesg.value,
partNum: part.item(i).indent.value,
descript: part.item(i).cage.value,
cage: part.item(i).qtyPerAssy.value,
qty: part.item(i).smr.value,
SMR: part.item(i).uoc.value,
UOC: part.item(i).blank.value}};
直接 part.item(i).breakDownIndexNo.value を使用して、breakDownIndexNo ノードにある 179 値を動的にしようとするとすぐに、コンパイルされません。Acrobat は JavaScript を使用しているため、これを解析できない理由がわかりません。
breakDownIndexNo ノードから変数を作成して、文字列と整数の両方に入力しようとしました。これにより、配列を作成できますが、配列から出力することはできません。newArr[indexNum].partNum は「プロパティなし」を提供します。インデックス番号を手動で 179 に設定した場合、newArr[179].partNum は part.item(i).indent.value の値を出力します。
誰かがアイデアや答えを持っている場合は、私に知らせてください。