diff --git a/插件库/Lskj.Control/Model/GridExtend.cs b/插件库/Lskj.Control/Model/GridExtend.cs index 40565fa..443da5a 100644 --- a/插件库/Lskj.Control/Model/GridExtend.cs +++ b/插件库/Lskj.Control/Model/GridExtend.cs @@ -476,11 +476,52 @@ namespace Lskj.Control.Model } // 保存管理员、普通用户列均保存到P_systemGridConfigTab表中,不操作系统表. StringBuilder sBuilder = new StringBuilder(); + + bool isGroupIndex = false; + bool isFilterInfo = false; + bool isDisplayFiltering = false; + string saveFieldName = string.Empty; + //分组号 + if (BaseImpl.HasExistsColumn(ResourceKeys.SettingTableName, "GroupIndex")) + { + isGroupIndex = true; + saveFieldName = ",GroupIndex"; + + } + //列筛选条件 + if (BaseImpl.HasExistsColumn(ResourceKeys.SettingTableName, "FilterInfo")) + { + isFilterInfo = true; + saveFieldName += ",FilterInfo"; + } + //是否显示筛选行 + if (BaseImpl.HasExistsColumn(ResourceKeys.SettingTableName, "DisplayFiltering")) + { + isDisplayFiltering = true; + saveFieldName += ",DisplayFiltering"; + } + + foreach (BandedGridColumn col in gridView.Columns) { + string fieldValue = string.Empty; + if (isGroupIndex) + { + fieldValue = ",'" + col.GroupIndex + "'"; + } + if (isFilterInfo) + { + fieldValue += ",'" + col.FilterInfo.FilterString.Replace("'", "''") + "'"; + } + if (isDisplayFiltering) + { + fieldValue += gridView.OptionsView.ShowAutoFilterRow ? ",'1'" : ",'0'"; + } + GridColumnModel model = col.Tag as GridColumnModel; - string tempSql = string.Format(@"insert into {8}(formkey,fieldname,username,orderid,isvisible,operatorid,operatorName,operatedate,fieldWidth,IfFixColumn,FieldText) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}',getdate(),'{7}','{9}','{10}');", - key, col.FieldName, col.Caption, col.VisibleIndex, Convert.ToInt32(col.Visible), ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, col.Width, ResourceKeys.SettingTableName, col.OwnerBand != null ? col.OwnerBand.Fixed == DevExpress.XtraGrid.Columns.FixedStyle.Left : false, model.FieldText); + if (model == null) continue; + string tempSql = string.Format(@"insert into {8}(formkey,fieldname,username,orderid,isvisible,operatorid,operatorName,operatedate,fieldWidth,IfFixColumn,FieldText {11}) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}',getdate(),'{7}','{9}','{10}' {12});", + key, col.FieldName, col.Caption, col.VisibleIndex, Convert.ToInt32(col.Visible), ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, col.Width, ResourceKeys.SettingTableName, col.OwnerBand != null ? col.OwnerBand.Fixed == DevExpress.XtraGrid.Columns.FixedStyle.Left : false, model.FieldText, saveFieldName, fieldValue); sBuilder.Append(tempSql); } return BaseImpl.ExecSqlValue(sBuilder.ToString()) > 0; @@ -518,12 +559,56 @@ namespace Lskj.Control.Model string sqlValue = string.Format("select * from {0} where formKey='{1}' and OperatorId='{2}'", ResourceKeys.SettingTableName, key, ERPInfo.Instance.UserId); DataTable customTable = SqlHelper.ExecuteDataTable(sqlValue); StringBuilder sBuilder = new StringBuilder(); + + bool isGroupIndex = false; + bool isFilterInfo = false; + bool isDisplayFiltering = false; + string saveFieldName = string.Empty; + //分组号 + if (customTable.Columns.Contains("GroupIndex")) + { + isGroupIndex = true; + saveFieldName = ",GroupIndex"; + + } + //列筛选条件 + if (customTable.Columns.Contains("FilterInfo")) + { + isFilterInfo = true; + saveFieldName += ",FilterInfo"; + } + //是否显示筛选行 + if (BaseImpl.HasExistsColumn(ResourceKeys.SettingTableName, "DisplayFiltering")) + { + isDisplayFiltering = true; + saveFieldName += ",DisplayFiltering"; + } + + foreach (BandedGridColumn col in gridView.Columns) { + string fieldValue = string.Empty; + string updateField = string.Empty; + if (isGroupIndex) + { + fieldValue = ",'" + col.GroupIndex + "'"; + updateField = string.Format(" ,GroupIndex='{0}' ", col.GroupIndex); + } + if (isFilterInfo) + { + fieldValue += ",'" + col.FilterInfo.FilterString.Replace("'", "''") + "'"; + updateField += string.Format(" ,FilterInfo='{0}' ", col.FilterInfo.FilterString.Replace("'", "''")); + } + if (isDisplayFiltering) + { + fieldValue += gridView.OptionsView.ShowAutoFilterRow ? ",'1'" : ",'0'"; + updateField += gridView.OptionsView.ShowAutoFilterRow ? " ,DisplayFiltering='1' " : " ,DisplayFiltering='0' "; + } + GridColumnModel model = col.Tag as GridColumnModel; DataRow a = customTable.Rows.Cast().FirstOrDefault(x => col.Name.Equals(x["fieldName"] + "", StringComparison.OrdinalIgnoreCase)); - string tempSql = a == null ? string.Format(@"insert into {8}(formkey,fieldname,username,orderid,isvisible,operatorid,operatorName,operatedate,fieldWidth,IfFixColumn,FieldText) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}',getdate(),'{7}','{9}','{10}');", - key, col.FieldName, col.Caption, col.VisibleIndex, Convert.ToInt32(col.Visible), ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, col.Width, ResourceKeys.SettingTableName, col.OwnerBand.Fixed == DevExpress.XtraGrid.Columns.FixedStyle.Left, model.FieldText) : string.Format(@"update {6} set orderid='{0}',fieldWidth='{1}',isvisible={2},IfFixColumn='{7}' where formkey='{3}' and fieldname='{4}' and operatorid='{5}';", + string tempSql = a == null ? string.Format(@"insert into {8}(formkey,fieldname,username,orderid,isvisible,operatorid,operatorName,operatedate,fieldWidth,IfFixColumn,FieldText {11}) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}',getdate(),'{7}','{9}','{10}' {12});", + key, col.FieldName, col.Caption, col.VisibleIndex, Convert.ToInt32(col.Visible), ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, col.Width, ResourceKeys.SettingTableName, col.OwnerBand.Fixed == DevExpress.XtraGrid.Columns.FixedStyle.Left, model.FieldText, saveFieldName, fieldValue) : string.Format(@"update {6} set orderid='{0}',fieldWidth='{1}',isvisible={2},IfFixColumn='{7}' where formkey='{3}' and fieldname='{4}' and operatorid='{5}';", col.VisibleIndex, col.Width, Convert.ToInt32(col.Visible), key, col.FieldName, ERPInfo.Instance.UserId, ResourceKeys.SettingTableName, col.OwnerBand != null ? col.OwnerBand.Fixed == DevExpress.XtraGrid.Columns.FixedStyle.Left : false); sBuilder.Append(tempSql); } @@ -1853,6 +1938,7 @@ namespace Lskj.Control.Model for (int i = 0; i < headerRow.LastCellNum; i++) { ICell cell = headerRow.GetCell(i); + if (cell == null) continue; if (index != 1) { GridColumn col = gridView.Columns.OfType().FirstOrDefault(x => Regex.Replace(x.Caption, @"\s", "") == Regex.Replace(cell.ToString(), @"\s", "")); @@ -1901,7 +1987,7 @@ namespace Lskj.Control.Model if (colFields.IndexOf("lskjimport_errorFlag") != -1 && !table.Columns.Contains("lskjimport_errorFlag")) table.Columns.Add("lskjimport_errorFlag"); - bool AutoImportCal = SystemInfo.Instance.AutoImportCal;//是否执行 计算公式 + bool AutoImportCal = SystemInfo.Instance.AutoImportCal;//是否执行 关联和计算公式 //bool ImportDefaultValue= SystemInfo.Instance.ImportDefaultValue;//是否为空单元格添加默认值 //bool isImportRows = true;//是否是导入行(如果是合计行就不触发默认值) // 添加行 @@ -1922,6 +2008,7 @@ namespace Lskj.Control.Model ICell cell = row.GetCell(j); ICell headcell = headerRow.GetCell(j); ICell Bandcell = BandheaderRow.GetCell(j); + if (headcell == null && Bandcell == null) continue; //cell.CellStyle.Indention 获取单元格的缩进 columnName = headcell.StringCellValue; @@ -1941,6 +2028,7 @@ namespace Lskj.Control.Model if (cell.CellType == CellType.Formula) { //isImportRows = false; + // dataRow[col.FieldName] = cell.StringCellValue; continue; } if (cell.CellType == CellType.Numeric && (cell.NumericCellValue + "").StartsWith("-")) @@ -2009,6 +2097,7 @@ namespace Lskj.Control.Model || model.FieldType == ControlType.LabCheckBox || model.FieldType == ControlType.LabAutoGridValue || model.FieldType == ControlType.LabAutoGridValueParam + || model.FieldType == ControlType.LabSelectReturnId )) { bool isEmpty = model.CanNull; @@ -2344,6 +2433,7 @@ namespace Lskj.Control.Model || model.FieldType == ControlType.LabCheckBox || model.FieldType == ControlType.LabAutoGridValue || model.FieldType == ControlType.LabAutoGridValueParam + || model.FieldType == ControlType.LabSelectReturnId )) { bool isEmpty = model.CanNull; @@ -2713,9 +2803,19 @@ namespace Lskj.Control.Model || model.FieldType == ControlType.LabCheckBox || model.FieldType == ControlType.LabAutoGridValue || model.FieldType == ControlType.LabAutoGridValueParam + || model.FieldType == ControlType.LabSelectReturnId ) { string sqlValue = model.SqlSource; + if (model.FieldType == ControlType.LabSelectReturnId) + { + if (model.IsRadio && !string.IsNullOrWhiteSpace(model.addModuleld)) + { + //单选模式数据源为模块sql + DataRow modelRow = Business.Impl.MainImpl.GetSystemdllTab(model.addModuleld); + sqlValue = modelRow["SQL"] + ""; + } + } if (sqlValue.Contains(" #")) { //sqlValue = sqlValue.Replace("#", ""); @@ -2776,6 +2876,7 @@ namespace Lskj.Control.Model || model.FieldType == ControlType.LabCheckBox || model.FieldType == ControlType.LabAutoGridValue || model.FieldType == ControlType.LabAutoGridValueParam + || model.FieldType == ControlType.LabSelectReturnId ) { string sqlValue = model.SqlSource; @@ -3077,47 +3178,4 @@ namespace Lskj.Control.Model // 设置填充模式为实心填充 cellStyle.FillPattern = FillPattern.SolidForeground; } - cell.CellStyle = cellStyle; - } - - - - - // 保存更改回原始文件 - using (FileStream file = new FileStream(excelFilePath, FileMode.Create, FileAccess.Write)) - { - workbook.Write(file); - } - } - catch (Exception ex) - { - - } - } - - - - /// - /// 是否存在未保存的数据 - /// - /// - /// - public static bool IsDataNotSaved(this GridControlEx control) - { - DataTable table = control.gridControl.DataSource as DataTable; - foreach (DataRow row in table.Rows) - { - if (row.RowState == DataRowState.Modified || row.RowState == DataRowState.Added) - { - return true; - } - } - - return false; - } - - - - - } -} + \ No newline at end of file