/// <summary> /// 更新单据表(发起时) /// </summary> /// <param name="billTableName"></param> /// <param name="billId"></param> internal void UpdateBillDataWhenStartup(string billTableName, string billId) { FapTable table = DbSession.QueryFirstOrDefault <FapTable>($"select * from FapTable where TableName='{billTableName}'"); if (table == null || string.IsNullOrWhiteSpace(table.TableFeature)) { return; } if (("," + table.TableFeature + ",").IndexOf(",BillFeature,") >= 0) { //单据数据 dynamic billData = DbSession.Get(billTableName, billId); if (billData == null) { return; } WfProcessInstance process = DbSession.Get <WfProcessInstance>(ProcessId); DynamicParameters parameters = new DynamicParameters(); parameters.Add("ProcessId", ProcessId); IEnumerable <WfTask> tasks = DbSession.QueryWhere <WfTask>("ProcessId=@ProcessId", parameters); if (tasks != null && tasks.Count() > 0) { billData.CurrApprover = tasks.First().ExecutorEmpUid; } //更新单据的字段数据 billData.SubmitTime = PublicUtils.GetSysDateTimeStr(); billData.BillStatus = BillStatus.PROCESSING; DbSession.UpdateDynamicData(billData); } }
/// <summary> /// 导出excel数据 /// </summary> /// <param name="model"></param> /// <returns>filename</returns> public string ExportExcelData(JqGridPostData model) { string tableName = model.QuerySet.TableName; FapTable ftb = _dbContext.Table(tableName); string fileName = $"{ftb.TableComment}_{UUIDUtils.Fid}.xlsx"; string filePath = Path.Combine(Environment.CurrentDirectory, FapPlatformConstants.TemporaryFolder, fileName); Pageable pageable = AnalysisPostData(model); pageable.QueryCols = model.QuerySet.ExportCols; string sql = pageable.Wraper.MakeExportSql(); if (pageable.Parameters != null && pageable.Parameters.Count > 0) { foreach (var param in pageable.Parameters) { sql = sql.Replace("@" + param.Key, "'" + param.Value + "'"); } } ExportModel em = new ExportModel() { DataSql = sql, FileName = filePath, TableName = tableName, ExportCols = pageable.QueryCols }; bool result = _officeService.ExportExcel(em); return(result ? fileName : ""); }
public string CreateTableSql(FapTable table, IEnumerable <FapColumn> columns) { StringBuilder sqlBuilder = new StringBuilder(); //sqlBuilder.AppendLine("-- 创建表"); sqlBuilder.AppendLine($"CREATE TABLE `{table.TableName}`( "); foreach (var fapColumn in columns.OrderBy(c => c.ColOrder)) { sqlBuilder.Append(CreateColumnSql(fapColumn)).Append(",").AppendLine(); if (fapColumn.IsMultiLang == 1) //多语 { string fname = fapColumn.ColName; string description = fapColumn.ColComment; var languageList = typeof(MultiLanguage.MultiLanguageEnum).EnumItems(); foreach (var lang in languageList) { fapColumn.ColName = fname + lang.Value; fapColumn.ColComment = description + lang.Description; fapColumn.IsMultiLang = 0; sqlBuilder.Append(CreateColumnSql(fapColumn)).Append(",").AppendLine(); } } } var pkField = columns.FirstOrDefault(f => f.ColType == FapColumn.COL_TYPE_PK); if (pkField != null) { sqlBuilder.Append("PRIMARY KEY (").Append(pkField.ColName).Append("),"); } sqlBuilder.Remove(sqlBuilder.Length - 1, 1); sqlBuilder.AppendFormat(")comment='{0}' ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;", table.TableComment).AppendLine(); return(sqlBuilder.ToString()); }
/// <summary> /// 导入数据的具体方法 /// </summary> /// <param name="workbook"></param> public override void Import(IWorkbook workbook, SheetMetadata sheetMetadata) { int sheetCount = workbook.NumberOfSheets; if (sheetCount == 0) { return; } this.sheetMetadata = sheetMetadata; FapTable table = _dataAccessor.Table(tableName); if (table == null) { return; } //if (mode == ImportMode.FORCE) //强制导入 //{ // _dataAccessor.DeleteExec(tableName); // if (!string.IsNullOrWhiteSpace(table.ExtTable)) // { // _dataAccessor.DeleteExec(table.ExtTable); // } //} ImportDataToTable(workbook, workbook.GetSheetAt(0), this.tableName); }
public string DropTableSql(FapTable fapTable) { StringBuilder builder = new StringBuilder(); //builder.AppendLine("-- 删除表"); builder.AppendLine($"drop table if exists {fapTable.TableName};"); return(builder.ToString()); }
public string DropTableSql(FapTable fapTable) { StringBuilder builder = new StringBuilder(); //builder.AppendLine("-- 删除表"); builder.AppendLine($"if exists(select * from sysobjects where id = object_id(N'[{fapTable.TableName}]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)"); builder.AppendLine($"drop table {fapTable.TableName};"); return(builder.ToString()); }
public JsonResult ExportModeClass(string fid) { FapTable table = _dbContext.Get <FapTable>(fid); var columns = _dbContext.QueryWhere <FapColumn>($"TableName='{table.TableName}'").Where(c => c.IsDefaultCol == 0); string modelClass = _dbMetadataContext.GeneraterModelClass(table, columns); return(Json(new ResponseViewModel { success = true, data = modelClass })); }
/// <summary> ///数据属性 /// </summary> /// <returns></returns> public PartialViewResult ColumnMetadata(string fid) { FapTable table = _dbContext.Get <FapTable>(fid); JqGridViewModel model = this.GetJqGridModel("FapColumn", (q) => { q.GlobalWhere = $"TableName='{table.TableName}' and IsDefaultCol=0"; q.AddDefaultValue("TableName", table.TableName); }); return(PartialView(model)); }
public override void BeforeDynamicObjectDelete(FapDynamicObject fapDynamicData) { string fid = fapDynamicData.Get("Fid").ToString(); FapTable fapTable = _dbContext.Get <FapTable>(fid); if (fapTable.IsSync == 1) { throw new FapException("表已经建立,不能再删除!"); } _dbContext.DeleteExec(nameof(FapMultiLanguage), "Qualifier=@Qualifier and LangKey=@LangKey", new Dapper.DynamicParameters(new { Qualifier = MultiLanguageOriginEnum.FapTable.ToString(), LangKey = fapTable.TableName })); _dbContext.DeleteExec(nameof(FapTable), "TableName=@TableName", new Dapper.DynamicParameters(new { TableName = fapTable.TableName })); _dbContext.DeleteExec(nameof(FapColumn), "TableName=@TableName", new Dapper.DynamicParameters(new { TableName = fapTable.TableName })); }
public bool TryGetValueByName(string tableName, out FapTable fapTable) { if (!_initialized) { Init(); } var result = _allTables.FirstOrDefault <FapTable>(f => f.TableName.Equals(tableName, StringComparison.CurrentCultureIgnoreCase)); if (result != null) { fapTable = result; return(true); } fapTable = null; return(false); }
public bool TryGetValue(string fid, out FapTable fapTable) { if (!_initialized) { Init(); } var result = _allTables.FirstOrDefault <FapTable>(f => f.Fid == fid); if (result != null) { fapTable = result; return(true); } fapTable = null; return(false); }
public string ExportExcelTemplate(QuerySet querySet) { querySet.InitWhere = "1=2"; FapTable ftb = _dbContext.Table(querySet.TableName); string fileName = $"{ftb.TableComment}_{UUIDUtils.Fid}_模板.xlsx"; string filePath = Path.Combine(Environment.CurrentDirectory, FapPlatformConstants.TemporaryFolder, fileName); ExportModel em = new ExportModel() { DataSql = querySet.ToString(), FileName = filePath, TableName = querySet.TableName, ExportCols = querySet.QueryCols }; bool result = _officeService.ExportExcel(em); return(result ? fileName : ""); }
/// <summary> /// 更新单据表(完成时) /// </summary> /// <param name="billTableName"></param> /// <param name="billId"></param> internal void UpdateBillDataWhenComplete(string billTableName, string billId) { FapTable table = DbSession.Table(billTableName); if (table == null || string.IsNullOrWhiteSpace(table.TableFeature)) { return; } if (("," + table.TableFeature + ",").IndexOf(",BillFeature,") >= 0) { //单据数据 dynamic billData = DbSession.Get(billTableName, billId); if (billData == null) { return; } DynamicParameters parameters = new DynamicParameters(); parameters.Add("ProcessId", ProcessId); //WfProcessInstance process = DbSession.QueryFirstOrDefaultEntityByWhere<WfProcessInstance>("Fid=@ProcessId", parameters); //WfTask task = DbSession.QueryFirstOrDefaultEntityBySql<WfTask>("select top 1 * from WfTask where ProcessId=@ProcessId order by Fid desc", parameters); //WfTaskAdvice taskAdvice = DbSession.QueryFirstOrDefaultEntityBySql<WfTaskAdvice>("select top 1 * from WfTaskAdvice where TaskId='" + task.Fid + "' order by Fid desc"); WfProcessInstance process = DbSession.Get <WfProcessInstance>(ProcessId); WfTask task = DbSession.Get <WfTask>(TaskId); //更新单据的字段数据 billData.CurrApprover = task.ExecutorEmpUid; billData.ApprovalTime = task.ExecuteTime; billData.ApprovalComments = task.Suggestion; if (task.ApproveState == WfApproveState.Agree) { billData.BillStatus = BillStatus.PASSED; //同意 } else if (task.ApproveState == WfApproveState.Disagree) { billData.BillStatus = BillStatus.REJECTED; //不同意 } billData.EffectiveState = 0; //billData.EffectiveTime = PublicUtils.GetSysDateTimeStr(); DbSession.UpdateDynamicData(billData); } }
public long CreatePayCase(string caseUid) { var payCase = _dbContext.Get <PayCase>(caseUid); //生成工资套对应表元数据 FapTable ft = new FapTable(); ft.Fid = UUIDUtils.Fid; ft.TableName = $"PayCase{_applicationContext.TenantID}{payCase.CaseCode}"; ft.TableType = "BUSINESS"; ft.TableCategory = "Pay"; ft.TableComment = $"{payCase.CaseName}薪资套"; ft.TableMode = "SINGLE"; ft.TableFeature = "";//根据ColProperty='3'过滤,不在用TableFeature ft.IsSync = 1; ft.IsBasic = 1; ft.ProductUid = "HCM"; IEnumerable <FapColumn> centerCols = _dbContext.Columns(PAYROLLCENTER); var caseItems = _dbContext.QueryWhere <PayItem>("CaseUid=@CaseUid", new Dapper.DynamicParameters(new { CaseUid = caseUid })) .Select(c => c.ColumnUid); List <FapColumn> cols = new List <FapColumn>(); foreach (var col in centerCols.Where(c => caseItems.Contains(c.Fid))) { col.Fid = null; col.TableName = ft.TableName; cols.Add(col); } DynamicParameters param = new DynamicParameters(); param.Add("TableName", ft.TableName); _dbContext.Execute("delete from FapTable where TableName=@TableName", param); _dbContext.Execute("delete from FapColumn where TableName=@TableName", param); _dbContext.Execute($"delete from FapMultiLanguage where LangKey like '{ft.TableName}_%'"); _dbContext.Insert <FapTable>(ft); _dbContext.InsertBatch <FapColumn>(cols); _platformDomain.TableSet.Refresh(); _platformDomain.ColumnSet.Refresh(); _platformDomain.MultiLangSet.Refresh(); payCase.TableName = ft.TableName; _dbContext.Update(payCase); return(ft.Id); }
public BaseForm SetQueryOption(QuerySet querySet) { _fapTable = _dbContext.Table(querySet.TableName); DynamicParameters parameters = new DynamicParameters(); querySet.Parameters.ForEach(q => parameters.Add(q.ParamKey, q.ParamValue)); var frmData = _dbContext.QueryFirstOrDefault(querySet.ToString(), parameters, true); _fapColumns = _dbContext.Columns(querySet.TableName); if (!querySet.QueryCols.EqualsWithIgnoreCase("*")) { var queryColList = querySet.QueryCols.ToLower().SplitComma(); _fapColumns = _dbContext.Columns(querySet.TableName).Where(c => queryColList.Contains(c.ColName.ToLower())); } if (frmData != null) { FormData = (frmData as IDictionary <string, object>).ToFapDynamicObject(_fapColumns); if (_formStatus != FormStatus.View) { _formStatus = FormStatus.Edit; } } else { FormData = _dbContext.GetDefualtData(querySet.TableName); _formStatus = FormStatus.Add; } if (_fapTable.TableFeature != null && _fapTable.TableFeature.Contains("BillFeature")) { IsDocument = true; } FidValue = FormData.Get("Fid").ToString(); if (_fapColumns.Any()) { SetFapClumns(querySet); } return(this); }
public override void BeforeDynamicObjectUpdate(FapDynamicObject fapDynamicData) { string fid = fapDynamicData.Get("Fid").ToString(); FapTable fapTable = _dbContext.Get <FapTable>(fid); string tbFeature = fapDynamicData.Get(nameof(FapTable.TableFeature)).ToString(); if (fapTable.TableFeature.IsPresent() && fapTable.TableFeature != tbFeature) { var features = fapTable.TableFeature.SplitSemicolon(); foreach (var feature in features) { var featureColumns = GetColumnsByFeature(feature.Split(':')[0].Trim()); if (featureColumns.Any()) { var fcs = featureColumns.ToList(); var cols = fcs.Select(c => c.ColName); if (fapTable.IsSync == 1) { var columns = _dbContext.Query <FapColumn>("select * from FapColumn where TableName=@TableName and ColName in @Cols", new Dapper.DynamicParameters(new { TableName = fapTable.TableName, Cols = cols })); try { foreach (var column in columns) { _metadataContext.DropColumn(column); } } catch (Exception) { throw new FapException("物理表删除列出错!"); } } _dbContext.DeleteExec(nameof(FapColumn), "TableName=@TableName and ColName in @Cols" , new Dapper.DynamicParameters(new { TableName = fapTable.TableName, Cols = cols })); } } } //更新多语 string tableLabel = fapDynamicData.Get(nameof(FapTable.TableComment)).ToString(); if (!fapTable.TableComment.EqualsWithIgnoreCase(tableLabel)) { string updateMultisql = $"Update {nameof(FapMultiLanguage)} set {nameof(FapMultiLanguage.LangValue)}=@LangValue where Qualifier=@Qualifier and LangKey=@LangKey"; var param = new Dapper.DynamicParameters(new { Qualifier = MultiLanguageOriginEnum.FapTable.ToString(), LangKey = fapTable.TableName, LangValue = tableLabel }); _dbContext.Execute(updateMultisql, param); } if (tbFeature.IsPresent()) { var features = tbFeature.SplitSemicolon(); foreach (var feature in features) { var featureColumns = GetColumnsByFeature(feature.Split(':')[0].Trim()); if (featureColumns.Any()) { var fcs = featureColumns.ToList(); fcs.ForEach(c => c.TableName = fapTable.TableName); if (fapTable.IsSync == 1) { foreach (var column in fcs) { _metadataContext.AddColumn(column); } } _dbContext.InsertBatch(fcs); } } } }
public string CreateTableSql(FapTable table, IEnumerable <FapColumn> columns) { StringBuilder sqlBuilder = new StringBuilder(); sqlBuilder.Append($"CREATE TABLE [{table.TableName}](").AppendLine(); foreach (var fapColumn in columns.OrderBy(c => c.ColOrder)) { sqlBuilder.Append(CreateColumnSql(fapColumn)).Append(",").AppendLine(); if (fapColumn.IsMultiLang == 1) //多语 { string fname = fapColumn.ColName; string description = fapColumn.ColComment; var languageList = typeof(MultiLanguage.MultiLanguageEnum).EnumItems(); foreach (var item in languageList) { FapColumn mf = (FapColumn)fapColumn.Clone(); mf.ColName = fname + item.Value; mf.ColComment = description + item.Description; mf.IsMultiLang = 0; sqlBuilder.Append(CreateColumnSql(mf)).Append(",").AppendLine(); } } } var pkField = columns.FirstOrDefault(f => f.ColType == FapColumn.COL_TYPE_PK); if (pkField != null) { sqlBuilder.Append("PRIMARY KEY (").Append(pkField.ColName).Append("),"); } sqlBuilder.Remove(sqlBuilder.Length - 1, 1); sqlBuilder.AppendLine(");"); //默认值 //foreach (var field in columns) //{ // if (HasDefaultValueConstraint(field)) // { // sqlBuilder.AppendLine(string.Format("ALTER TABLE {0} ADD CONSTRAINT DF_{0}_{1} DEFAULT ('{2}') FOR {1};", field.TableName, field.ColName, field.ColDefault)); // } //} //表注释 MakeTableCommentSql(table, sqlBuilder); foreach (var field in columns.OrderBy(c => c.ColOrder)) { //字段注释 sqlBuilder.AppendLine(MakeColumnCommentSql(field)); if (field.IsMultiLang == 1) { var languageList = typeof(MultiLanguage.MultiLanguageEnum).EnumItems(); foreach (var lang in languageList) { FapColumn column = (FapColumn)field.Clone(); column.ColName = field.ColName + lang.Value; column.ColComment = field.ColComment + lang.Description; //多余字段注释 sqlBuilder.AppendLine(MakeColumnCommentSql(column)); } } } return(sqlBuilder.ToString()); void MakeTableCommentSql(FapTable table, StringBuilder sqlBuilder) { if (table.TableComment.IsPresent()) { sqlBuilder.Append("EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'"); sqlBuilder.Append(table.TableComment); sqlBuilder.Append("' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'"); sqlBuilder.Append(table.TableName); sqlBuilder.AppendLine("';"); } } }
/// <summary> /// 更新单据表(处理中) /// </summary> /// <param name="billTableName"></param> /// <param name="billId"></param> internal void UpdateBillDataWhenProcessing(string billTableName, string billId) { FapTable table = DbSession.Table(billTableName); if (table == null || string.IsNullOrWhiteSpace(table.TableFeature)) { return; } if (("," + table.TableFeature + ",").IndexOf(",BillFeature,") >= 0) { //单据数据 dynamic billData = DbSession.Get(billTableName, billId); if (billData == null) { return; } DynamicParameters parameters = new DynamicParameters(); parameters.Add("ProcessId", ProcessId); //WfProcessInstance process = DbSession.QueryFirstOrDefaultEntityByWhere<WfProcessInstance>("Fid=@ProcessId", parameters); //WfTask task = DbSession.QueryFirstOrDefaultEntityBySql<WfTask>("select * from WfTask where ProcessId=@ProcessId order by Fid desc", parameters); //WfTask task = DbSession.QueryFirstOrDefaultEntityByWhere<WfTask>("ProcessId=@ProcessId",parameters,"Id desc"); //order by 查不到事务中的数据 //WfTaskAdvice taskAdvice = DbSession.QueryFirstOrDefaultEntityBySql<WfTaskAdvice>("select * from WfTaskAdvice where TaskId='" + task.Fid + "' order by Fid desc"); WfProcessInstance process = DbSession.Get <WfProcessInstance>(ProcessId); //WfTask task = DbSession.Get<WfTask>(TaskId); IEnumerable <WfTask> tasks = DbSession.QueryWhere <WfTask>(" ProcessId=@ProcessId and TaskState='Handling'", parameters); WfTask task = tasks.FirstOrDefault(); if (task == null) { throw new Exception("不存在新任务"); } //更新单据的字段数据 if (process.ProcessState == WfProcessInstanceState.Running) { billData.BillStatus = BillStatus.PROCESSING; billData.CurrApprover = task.ExecutorEmpUid; billData.ApprovalTime = PublicUtils.CurrentDateTimeStr; //task.ExecuteTime; billData.ApprovalComments = task.Suggestion; DbSession.UpdateDynamicData(billData); } else if (process.ProcessState == WfProcessInstanceState.Canceled) { billData.BillStatus = BillStatus.CANCELED; billData.CurrApprover = task.ExecutorEmpUid; billData.ApprovalTime = PublicUtils.CurrentDateTimeStr;// task.ExecuteTime; billData.ApprovalComments = task.Suggestion; DbSession.UpdateDynamicData(billData); } else if (process.ProcessState == WfProcessInstanceState.Deleted) { billData.BillStatus = BillStatus.CLOSED; billData.CurrApprover = task.ExecutorEmpUid; billData.ApprovalTime = PublicUtils.CurrentDateTimeStr;// task.ExecuteTime; billData.ApprovalComments = task.Suggestion; DbSession.UpdateDynamicData(billData); } else if (process.ProcessState == WfProcessInstanceState.Ended) { billData.BillStatus = BillStatus.CLOSED; billData.CurrApprover = task.ExecutorEmpUid; billData.ApprovalTime = PublicUtils.CurrentDateTimeStr;// task.ExecuteTime; billData.ApprovalComments = task.Suggestion; DbSession.UpdateDynamicData(billData); } else if (process.ProcessState == WfProcessInstanceState.Suspended) { billData.BillStatus = BillStatus.SUSPENDED; billData.CurrApprover = task.ExecutorEmpUid; billData.ApprovalTime = PublicUtils.CurrentDateTimeStr;// task.ExecuteTime; billData.ApprovalComments = task.Suggestion; DbSession.UpdateDynamicData(billData); } else if (process.ProcessState == WfProcessInstanceState.Withdrawed) { billData.BillStatus = BillStatus.WITHDRAWED; billData.CurrApprover = task.ExecutorEmpUid; billData.ApprovalTime = PublicUtils.CurrentDateTimeStr;// task.ExecuteTime; billData.ApprovalComments = task.Suggestion; DbSession.UpdateDynamicData(billData); } else if (process.ProcessState == WfProcessInstanceState.Revoked) { billData.BillStatus = BillStatus.REVOKED; billData.CurrApprover = task.ExecutorEmpUid; billData.ApprovalTime = PublicUtils.CurrentDateTimeStr;// task.ExecuteTime; billData.ApprovalComments = task.Suggestion; DbSession.UpdateDynamicData(billData); } } }
/// <summary> /// 收集数据 /// </summary> public override void CollectData() { //主表的信息 FapTable table = _dataAccessor.Table(tableName); IEnumerable <FapColumn> columnList = _dataAccessor.Columns(tableName); if (exportColumns.IsPresent() && exportColumns != "*") { var cols = exportColumns.SplitComma(); columnList = columnList.Where(f => cols.Contains(f.ColName, new FapStringEqualityComparer())); } //字典表 foreach (var column in columnList.Where(c => c.RefTable.IsPresent() || c.ComboxSource.IsPresent())) { if (column.CtrlType == FapColumn.CTRL_TYPE_COMBOBOX) { this.GetCodeDictionaryData(column, DictionaryToExport); } else if (column.CtrlType == FapColumn.CTRL_TYPE_REFERENCE) { this.GetReferenceDictionaryData(column, DictionaryToExport); } } //主表元数据 foreach (var column in columnList) { string code = "C_" + column.Id; if (column.CtrlType == FapColumn.CTRL_TYPE_REFERENCE) { code = "R_" + column.Id; } if ((column.CtrlType == FapColumn.CTRL_TYPE_REFERENCE || column.CtrlType == FapColumn.CTRL_TYPE_COMBOBOX) && this.DictionaryToExport.ContainsKey(code)) { string range = this.DictionaryToExport[code].DictionaryExcelRange; int startIndex = this.DictionaryToExport[code].DictionaryRowStartIndex; int endIndex = this.DictionaryToExport[code].DictionaryRowEndIndex; this.SheetMetadata.Columns.Add(new ColumnMd() { StartRowIndex = startIndex, EndRowIndex = endIndex, DictionarySheetRange = range, DictionarySheetName = code, Field = column.ColName, IsNeedDictionary = true, Title = column.ColComment }); } else { this.SheetMetadata.Columns.Add(new ColumnMd() { Field = column.ColName, IsNeedDictionary = false, Title = column.ColComment }); } } //主表 SheetData mainSheetData = new SheetData(); mainSheetData.SheetName = tableName + "主表"; mainSheetData.Data = new List <RowData>(); mainSheetData.ColumnTitle = this.GetColumnTitle(columnList); mainSheetData.Data.Add(this.GetColumnName(columnList)); mainSheetData.ColumnProperties = this.GetColumnProperty(columnList); //主表的数据 List <RowData> dataList = this.GetEntityDataList(tableName, columnList); foreach (var data in dataList) { mainSheetData.Data.Add(data); } this.DataToExport.Add(mainSheetData); /* * //扩展表 * if (!string.IsNullOrWhiteSpace(table.ExtTable)) * { * SheetData extSheetData = new SheetData(); * extSheetData.SheetName = tableName + "扩展表"; * extSheetData.Data = new List<RowData>(); * string extTableName = table.ExtTable; * FapTable extTable = dataAccessor.GetSingleTable(extTableName); * List<FapColumn> extColumnList = dataAccessor.GetColumnList(tableName); * extSheetData.ColumnTitle = this.GetColumnTitle(columnList, defaultColumnNameList); * extSheetData.Data.Add(this.GetColumnName(columnList, defaultColumnNameList)); * * //扩展表的数据 * List<RowData> extDataList = this.GetEntityDataList(extTableName, columnList, defaultColumnNameList); * foreach (var data in extDataList) * { * extSheetData.Data.Add(data); * } * * this.DataToExport.Add(extSheetData); * } * */ }
public override void AfterEntityInsert(object entity) { FapTable tb = entity as FapTable; AddColumns(tb.TableName, tb.TableFeature, tb.TableComment); }