我想構建數組來存儲報表列名,但我得到了以下錯誤:您試圖解引用類型爲coldfusion.runtime的標量變量。數組作爲具有成員的結構。Coldfusion結構數組錯誤
我的代碼是:
<cfscript>
currentAssetNum = 0;
headerLabels = "";
headerUnderlines = "";
reportContent = "";
columns = eqInventoryHelper.getPreformattedColumnCharacteristics(showComponents = variables.showComponents);
// Get an array of the columns in the order they should be displayed.
columnOrder = StructSort(columns, "numeric", "asc", "sortOrder");
for (columnName in columnOrder) {
//for (columnIndex=1; columnIndex <= StructCount(columns); columnIndex++){
if (columns[columnName].justify == "left") {
headerLabels &= LJustify(columns[columnName].label, columns[columnName].length) & " ";
} else {
headerLabels &= RJustify(columns[columnName].label, columns[columnName].length) & " ";
}
headerUnderlines &= RepeatString("-", columns[columnName].length) & " ";
}
reportHeaders = headerLabels & variables.newLine & headerUnderlines;
</cfscript>
eqInventoryHelper.cfc:
<cffunction name="getPreformattedColumnCharacteristics" output="false">
<cfargument name="showComponents" required="true"/>
<cfscript>
var columnSort = 1;
var columns = {
asset_num = {label = "KFS Asset Number", length = 16, justify = "left", sortOrder = columnSort++},
manufacturer_name = {label = "Manufacturer", length = 30, justify = "left", sortOrder = columnSort++},
manufacturer_model_num = {label = "Model", length = 30, justify = "left", sortOrder = columnSort++},
serial_num = {label = "Serial Number", length = 30, justify = "left", sortOrder = columnSort++},
condition_code = {label = "Cond CD", length = 8, justify = "left", sortOrder = columnSort++},
owner_chart = {label = "Owner", length = 6, justify = "left", sortOrder = columnSort++},
owner_acct = {label = "Account", length = 10, justify = "left", sortOrder = columnSort++},
cur_uc_fnd = {label = "UC Fund", length = 8, justify = "left", sortOrder = columnSort++},
org_cd = {label = "Org Code", length = 10, justify = "left", sortOrder = columnSort++},
custodial_code = {label = "Custodial Code", length = 15, justify = "left", sortOrder = columnSort++},
pi_name = {label = "Principal Investigator", length = 30, justify = "left", sortOrder = columnSort++},
uc_acquisition_code = {label = "Acq. Type", length = 10, justify = "left", sortOrder = columnSort++},
received_date = {label = "Received Date", length = 14, justify = "right", sortOrder = columnSort++},
asset_desc = {label = "Asset Description", length = 51, justify = "left", sortOrder = columnSort++},
ucop_tag_num = {label = "UCOP Tag Number", length = 16, justify = "left", sortOrder = columnSort++},
asset_location = {label = "Asset Location", length = 60, justify = "left", sortOrder = columnSort++},
asset_type = {label = "Asset Type", length = 11, justify = "left", sortOrder = columnSort++},
is_uc_title = {label = "UCD Title", length = 14, justify = "left", sortOrder = columnSort++},
total_cost = {label = "Total Cost", length = 12, justify = "right", sortOrder = columnSort++},
useful_life = {label = "Useful Life", length = 12, justify = "right", sortOrder = columnSort++}
};
// If showing components, we tack the component specific columns to the main columns array.
if (arguments.showComponents) {
columns.component_num = {label = "Component Number", length = 18, justify = "left", sortOrder = columnSort++};
columns.component_desc = {label = "Component Description", length = 45, justify = "left", sortOrder = columnSort++};
columns.component_manufacturer_name = {label = "Manufacturer Name", length = 18, justify = "left", sortOrder = columnSort++};
columns.component_model_num = {label = "Manufacturer Model Number", length = 26, justify = "left", sortOrder = columnSort++};
columns.component_serial_num = {label = "Serial Number", length = 20, justify = "left", sortOrder = columnSort++};
columns.component_po_number = {label = "PO Number", length = 12, justify = "right", sortOrder = columnSort++};
}
return columns;
</cfscript>
</cffunction>
謝謝。
哪一條是538行? –
對於cfscript,第538行:for(columnName in columnOrder){ – tigerpuzzle
看起來像在參數4中傳遞的值在結構中不存在並且該數組爲空 –