我又继续测试也找到了这个问题,确实是一个大小写导致的,现在成功了
现在给出海康获取通道的js调用代码
WebVideoCtrl.I_GetDigitalChannelInfo(szDeviceIdentify, {
success: function (xmlDoc) {
var oChannels = $(xmlDoc).find("InputProxyChannelStatus");
showOPInfo( "开始获取数字通道及通道名称");
$.each(oChannels, function (i) {
var id = $(this).find("id").eq(0).text(),
name = $(this).find("name").eq(0).text(),
online = $(this).find("online").eq(0).text();
if ("false" == online) {// 过滤禁用的数字通道
return true;
}
if ("" == name) {
name = "IPCamera " + (i < 9 ? "0" + (i + 1) : (i + 1));
}
if (gengxinbiao != null) {
// 构建JSON对象
var channelObject = {
通道号: id < 10 ? "D0" + id : "D" + id,
通道名称: name,
};
// 获取表格对象,这里假设表格名为"表格1"
var listView = Forguncy.Page.getListView(gengxinbiao);
// 目标列名
var columnNameCode = "通道号";
var columnNameName = "通道名称";
// 获取所有列的信息
var columnInfos = listView.getMergedColumnInfos();
// 获取"通道号"和"通道名称"的列索引
var channelCodeColumnIndex = -1;
var channelNameColumnIndex = -1;
for (var i = 0; i < columnInfos.length; i++) {
if (columnInfos.ColumnName === columnNameCode) {
channelCodeColumnIndex = i;
} else if (columnInfos.ColumnName === columnNameName) {
channelNameColumnIndex = i;
}
// 如果找到两个列,可以提前退出循环
if (channelCodeColumnIndex !== -1 && channelNameColumnIndex !== -1) {
break;
}
}
// 检查是否找到目标列
if (channelCodeColumnIndex == -1 || channelNameColumnIndex == -1) {
console.error("无法找到 '" + columnNameCode + "' 或 '" + columnNameName + "' 列。");
} else {
//获取表格的总行数
var rowCount = listView.getRowCount();
// 遍历表格,查找目标列的行索引
var rowIndex = -1;//行索引设置为-1
for (var i = 0; i < rowCount; i++) {
var rowData = listView.getValue(i,columnNameCode);//根据行索引及列索引获取单元格的值
if (rowData === channelObject[columnNameCode]) {
rowIndex = i;//设置正在循环的行索引
showOPInfo("找到目标行", rowIndex);
showOPInfo(JSON.stringify(channelObject, null, " "));//输出显示当前要更新的json对象
//更新该行的"通道名称"列
listView.setValue(rowIndex, channelNameColumnIndex, channelObject[columnNameName]);
showOPInfo(columnNameName+"已更新至行:", rowIndex);
break;
}
}
}
}
if (gengxinbiao == null) {
// 获取表格对象
var listview = Forguncy.Page.getListView(biaogeming);
// 获取表格的行数
var count= listview.getRowCount();
// 从最后一行开始向前删除
for (var i = count - 1; i >= 0; i--) {
listview.deleteRow(i);
}
// 构建JSON对象
var channelObject = {
通道号: id,
通道名称: name,
标记状态: false,
};
// 添加数据到表格
listview.addNewRow(channelObject,true);
}});
showOPInfo(szDeviceIdentify + " 获取数字通道成功!");
},
error: function (oError) {
showOPInfo(szDeviceIdentify + " 获取数字通道失败!", oError.errorCode, oError.errorMsg);
}
});
送给有缘人
|