protected void BuildDataSetStructure() { BuildDataSet(); if (BillType == Template.BillType.Bill || BillType == Template.BillType.Master) { DataTable masterTable = this.DataSet.Tables[0]; //DataSourceHelper.AddAttachmentSrcColumn(masterTable); if (!masterTable.ExtendedProperties.ContainsKey(TableProperty.DBIndex)) { masterTable.ExtendedProperties.Add(TableProperty.DBIndex, new DBIndexCollection()); } DBIndexCollection dbIndexs = (DBIndexCollection)masterTable.ExtendedProperties[TableProperty.DBIndex]; dbIndexs.Add(new DBIndex(string.Format("{0}_ID_IDX", masterTable.TableName.ToUpper()), new DBIndexFieldCollection() { new DBIndexField("INTERNALID") }, true)); for (int i = 1; i < this.DataSet.Tables.Count; i++) { DataTable table = this.DataSet.Tables[i]; if (table.ExtendedProperties.ContainsKey(TableProperty.UsingAttachment)) { if (Convert.ToBoolean(table.ExtendedProperties[TableProperty.UsingAttachment])) { DataSourceHelper.AddAttachmentSrcColumn(table); } } // 自动构建行项审核需要的数据列 if (table.ExtendedProperties.ContainsKey(TableProperty.UsingApproveRow)) { if (Convert.ToBoolean(table.ExtendedProperties[TableProperty.UsingApproveRow])) { DataSourceHelper.AddApproveRowFixColumn(table); } } } try { if (this.FuncPermission.UseSynchroData) { //如果启用数据同步功能,则添加同步到的目标站点的虚拟子表 //if (this.DataSet.Tables.Contains(LibFuncPermission.SynchroDataSettingTableName) == false && LibTemplate.HasAxpLinkSite && LibTemplate.HasSyncDataTable) if (this.DataSet.Tables.Contains(LibFuncPermission.SynchroDataSettingTableName) == false) { DataTable dt = DataSourceHelper.AddSyncDataSettingTable(this.DataSet, LibFuncPermission.SynchroDataSettingTableName); dt.ExtendedProperties.Add(TableProperty.IsVirtual, true); //设定同步配置数据表为虚表 dt.ExtendedProperties.Add(TableProperty.AllowCopy, false); //设定同步配置数据表不可复制 dt = DataSourceHelper.AddSyncDataHistoryTable(this.DataSet, LibFuncPermission.SynchroDataHisTableName); dt.ExtendedProperties.Add(TableProperty.IsVirtual, true); //设定同步历史数据表为虚表 dt.ExtendedProperties.Add(TableProperty.AllowCopy, false); //设定同步历史数据表不可复制 } } } catch { } } }