SVN r310
SVN-Revision: r310
This commit is contained in:
Generated
+26
-31
@@ -33,8 +33,8 @@ namespace Lskj.PubBomAlter
|
||||
this.splitRightContainer = new DevExpress.XtraEditors.SplitContainerControl();
|
||||
this.splitControlContainer = new DevExpress.XtraEditors.SplitContainerControl();
|
||||
this.topPanel = new DevExpress.XtraEditors.PanelControl();
|
||||
this.treeGridControlEx = new Lskj.Control.TreeGridControlEx();
|
||||
this.pl_buttom = new DevExpress.XtraEditors.PanelControl();
|
||||
this.btnApply = new DevExpress.XtraEditors.SimpleButton();
|
||||
this.btnSave = new DevExpress.XtraEditors.SimpleButton();
|
||||
this.pl_top = new DevExpress.XtraEditors.PanelControl();
|
||||
this.pl_top_search = new DevExpress.XtraEditors.PanelControl();
|
||||
@@ -49,6 +49,7 @@ namespace Lskj.PubBomAlter
|
||||
this.btnPmsSave = new DevExpress.XtraEditors.SimpleButton();
|
||||
this.rightDetailPanel = new System.Windows.Forms.Panel();
|
||||
this.gcDetailControlEx = new Lskj.Control.GridControlEx();
|
||||
this.treeGridControlEx = new Lskj.Control.TreeGridControlEx();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitRightContainer)).BeginInit();
|
||||
this.splitRightContainer.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitControlContainer)).BeginInit();
|
||||
@@ -130,21 +131,11 @@ namespace Lskj.PubBomAlter
|
||||
this.topPanel.Size = new System.Drawing.Size(380, 566);
|
||||
this.topPanel.TabIndex = 21;
|
||||
//
|
||||
// treeGridControlEx
|
||||
//
|
||||
this.treeGridControlEx.AdapterObj = null;
|
||||
this.treeGridControlEx.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.treeGridControlEx.Location = new System.Drawing.Point(2, 29);
|
||||
this.treeGridControlEx.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.treeGridControlEx.Name = "treeGridControlEx";
|
||||
this.treeGridControlEx.SiftEnumObj = Lskj.Control.GridControlEx.HeaderSiftEnum.Sum;
|
||||
this.treeGridControlEx.Size = new System.Drawing.Size(376, 500);
|
||||
this.treeGridControlEx.TabIndex = 29;
|
||||
//
|
||||
// pl_buttom
|
||||
//
|
||||
this.pl_buttom.Appearance.BackColor = System.Drawing.Color.Transparent;
|
||||
this.pl_buttom.Appearance.Options.UseBackColor = true;
|
||||
this.pl_buttom.Controls.Add(this.btnApply);
|
||||
this.pl_buttom.Controls.Add(this.btnSave);
|
||||
this.pl_buttom.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.pl_buttom.Location = new System.Drawing.Point(2, 529);
|
||||
@@ -153,6 +144,17 @@ namespace Lskj.PubBomAlter
|
||||
this.pl_buttom.Size = new System.Drawing.Size(376, 35);
|
||||
this.pl_buttom.TabIndex = 28;
|
||||
//
|
||||
// btnApply
|
||||
//
|
||||
this.btnApply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnApply.Appearance.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.btnApply.Appearance.Options.UseFont = true;
|
||||
this.btnApply.Location = new System.Drawing.Point(214, 5);
|
||||
this.btnApply.Name = "btnApply";
|
||||
this.btnApply.Size = new System.Drawing.Size(80, 26);
|
||||
this.btnApply.TabIndex = 41;
|
||||
this.btnApply.Text = "提交审批(&A)";
|
||||
//
|
||||
// btnSave
|
||||
//
|
||||
this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
@@ -310,6 +312,17 @@ namespace Lskj.PubBomAlter
|
||||
this.gcDetailControlEx.Size = new System.Drawing.Size(411, 566);
|
||||
this.gcDetailControlEx.TabIndex = 52;
|
||||
//
|
||||
// treeGridControlEx
|
||||
//
|
||||
this.treeGridControlEx.AdapterObj = null;
|
||||
this.treeGridControlEx.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.treeGridControlEx.Location = new System.Drawing.Point(2, 29);
|
||||
this.treeGridControlEx.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.treeGridControlEx.Name = "treeGridControlEx";
|
||||
this.treeGridControlEx.SiftEnumObj = Lskj.Control.GridControlEx.HeaderSiftEnum.Sum;
|
||||
this.treeGridControlEx.Size = new System.Drawing.Size(376, 500);
|
||||
this.treeGridControlEx.TabIndex = 29;
|
||||
//
|
||||
// FrmMain
|
||||
//
|
||||
this.Appearance.BackColor = System.Drawing.SystemColors.Control;
|
||||
@@ -352,22 +365,4 @@ namespace Lskj.PubBomAlter
|
||||
private DevExpress.XtraEditors.SplitContainerControl splitRightContainer;
|
||||
private DevExpress.XtraEditors.SplitContainerControl splitControlContainer;
|
||||
private DevExpress.XtraEditors.PanelControl topPanel;
|
||||
private DevExpress.XtraEditors.PanelControl pl_Bottom;
|
||||
private System.Windows.Forms.Panel rightDetailPanel;
|
||||
private DevExpress.XtraEditors.PanelControl pl_top;
|
||||
private DevExpress.XtraEditors.PanelControl pl_top_search;
|
||||
private DevExpress.XtraEditors.PanelControl pl_top_fix_search;
|
||||
private System.Windows.Forms.ComboBox cbField;
|
||||
private DevExpress.XtraEditors.SimpleButton btnFixSearch;
|
||||
private System.Windows.Forms.TextBox txtFixKey;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private Control.TreeGridControlEx treeGridControlEx;
|
||||
private DevExpress.XtraEditors.PanelControl pl_buttom;
|
||||
private DevExpress.XtraEditors.SimpleButton btnSave;
|
||||
private Control.GridControlEx gcMainControlEx;
|
||||
private DevExpress.XtraEditors.PanelControl panelControl1;
|
||||
private DevExpress.XtraEditors.SimpleButton btnPmsSave;
|
||||
private Control.GridControlEx gcDetailControlEx;
|
||||
}
|
||||
}
|
||||
|
||||
private DevExpress.XtraEditors.PanelC
|
||||
+222
-10
@@ -42,6 +42,10 @@ namespace Lskj.PubBomAlter
|
||||
/// </summary>
|
||||
public MyControl SearchObj;
|
||||
/// <summary>
|
||||
/// 数据源绑定完成后
|
||||
/// </summary>
|
||||
public event EventHandler OnAfterDataSourceCallback;
|
||||
/// <summary>
|
||||
/// 上方控件面板
|
||||
/// </summary>
|
||||
private XtraScrollableControl MainControlPanel = new XtraScrollableControl();
|
||||
@@ -58,6 +62,14 @@ namespace Lskj.PubBomAlter
|
||||
/// </summary>
|
||||
private ModuleModel sysModel;
|
||||
/// <summary>
|
||||
/// 列数据源
|
||||
/// </summary>
|
||||
private DataTable _gridColumns;
|
||||
/// <summary>
|
||||
/// 无需更新的列
|
||||
/// </summary>
|
||||
private string[] _disUpdateColumns = { "id" };
|
||||
/// <summary>
|
||||
/// 明细表
|
||||
/// </summary>
|
||||
private DataTable detailsTab;
|
||||
@@ -237,7 +249,7 @@ namespace Lskj.PubBomAlter
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
SearchObj.SearchGrid();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -322,6 +334,7 @@ namespace Lskj.PubBomAlter
|
||||
sysModel.PrefixKey = BaseImpl.GetColumnPrefix(sysModel.MenuTable);//获取列前缀
|
||||
SearchObj = new MyControl(sysModel.MenuSql, TreeGridObj);//替换sql语句中的bmp字段
|
||||
SearchObj.OnDataSourceBindCallBack += OnSearchObjDataSourceBindCallBack;
|
||||
SearchObj.OnSearchAfterCallBack += OnSearchObjSearchAfterCallBack;
|
||||
bool fixedQuery = queryTable == null || queryTable.Rows.Count == 0;
|
||||
if (fixedQuery)
|
||||
{
|
||||
@@ -340,8 +353,8 @@ namespace Lskj.PubBomAlter
|
||||
SearchObj.OtherParams = BomAlterModel.OtherParams();
|
||||
pl_top.Height = SearchObj.InitSearchControl(queryTable, pl_top_search);
|
||||
}
|
||||
DataTable gridColumns = BaseModuleImpl.GetBaseGridColumns(BomAlterModel.ModuleCode);
|
||||
TreeGridObj.SetEditColumns(gridColumns, GridCustomColumnStruct.BaseMainGridView + sysModel.FormKey);
|
||||
_gridColumns = BaseModuleImpl.GetBaseGridColumns(BomAlterModel.ModuleCode);
|
||||
TreeGridObj.SetEditColumns(_gridColumns, GridCustomColumnStruct.BaseMainGridView + sysModel.FormKey);
|
||||
TreeGridObj.SetGridRowColors(BaseModuleImpl.GetBaseGridRowColors(BomAlterModel.ModuleCode));
|
||||
TreeGridObj.TreeListObj.MouseClick += OnTreeListObjMouseClick;
|
||||
DataTable rightMenusTable = BaseModuleImpl.GetBaseGridRightMenus(BomAlterModel.ModuleCode);
|
||||
@@ -490,6 +503,7 @@ namespace Lskj.PubBomAlter
|
||||
//this.pl_scrollBottom.Click += OnScrollableControlClick;
|
||||
this.btnPmsSave.Click += OnBtnPmsSaveClick;
|
||||
this.btnSave.Click += OnBtnSaveClick;
|
||||
this.btnApply.Click += OnBtnApplyClick;
|
||||
this.gcDetailControlEx.GridView.DoubleClick += OnGcDetailGridViewDoubleClick;
|
||||
this.gcDetailControlEx.GridView.SelectionChanged += OnGridViewSelectionChanged;
|
||||
}
|
||||
@@ -502,6 +516,7 @@ namespace Lskj.PubBomAlter
|
||||
{
|
||||
try
|
||||
{
|
||||
this.OnAfterDataSourceCallback -= OnAfterDataSource;
|
||||
gcMainControlEx.GridControl.DataSource = null;
|
||||
TreeList treeListGrid = sender as TreeList;
|
||||
Point gcPoint = treeListGrid.PointToScreen(treeListGrid.Location);
|
||||
@@ -514,8 +529,8 @@ namespace Lskj.PubBomAlter
|
||||
if (dataRow.Table.Columns.Contains("Plm_lmb_SmartBmFa"))
|
||||
{
|
||||
string projectId = dataRow["Plm_lmb_SmartBmFa"] + "";
|
||||
this.OnAfterDataSourceCallback += OnAfterDataSource;
|
||||
SetDynamicControl(projectId);
|
||||
SetAllControlValue(dataRow);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -525,6 +540,22 @@ namespace Lskj.PubBomAlter
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 数据源加载完成后事件
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void OnAfterDataSource(object sender, EventArgs e)
|
||||
{
|
||||
WaitForm.ShowForm();
|
||||
this.Invoke(new Action(() =>
|
||||
{
|
||||
TreeListNode focusedNode = TreeGridObj.TreeListObj.FocusedNode;
|
||||
DataRow dataRow = (TreeGridObj.TreeListObj.GetDataRecordByNode(focusedNode) as DataRowView).Row;
|
||||
SetAllControlValue(dataRow);
|
||||
}));
|
||||
WaitForm.HideForm();
|
||||
}
|
||||
/// <summary>
|
||||
/// 更改菜单点击
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
@@ -910,6 +941,10 @@ namespace Lskj.PubBomAlter
|
||||
}));
|
||||
}
|
||||
}
|
||||
if (OnAfterDataSourceCallback != null)
|
||||
{
|
||||
OnAfterDataSourceCallback(null, null);
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
@@ -1302,12 +1337,49 @@ namespace Lskj.PubBomAlter
|
||||
TopControlObj.SetAllControlValue(BomAlterModel.MaintabFocusedRow);
|
||||
}
|
||||
List<BaseUserControl> modelControls = this.MainControlPanel.Controls.Cast<BaseUserControl>().Where(n => !string.IsNullOrEmpty((n.Tag as SysSetModel).DbName)).OrderBy(n => (n.Tag as SysSetModel).OrderId).ToList();
|
||||
foreach (BaseUserControl item in modelControls)
|
||||
if (selectSource == null)
|
||||
{
|
||||
SysSetModel sysSetModel = item.Tag as SysSetModel;
|
||||
string value = selectSource.Table.Columns.Contains(sysSetModel.DbName) ? selectSource[sysSetModel.DbName] + "" : "";
|
||||
item.EditText = value;
|
||||
primaryVlaue = dataRow["plm_lmb_id"] + "";
|
||||
selectSource = BaseImpl.GetDataRowResult(string.Format("select * from Plm_MbomListTab where plm_lmb_id = '{0}'", primaryVlaue));
|
||||
foreach (BaseUserControl item in modelControls)
|
||||
{
|
||||
SysSetModel sysSetModel = item.Tag as SysSetModel;
|
||||
string value = "";
|
||||
if (selectSource != null)
|
||||
{
|
||||
value = selectSource.Table.Columns.Contains(sysSetModel.DbName) ? selectSource[sysSetModel.DbName] + "" : "";
|
||||
}
|
||||
item.EditText = value;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (BaseUserControl item in modelControls)
|
||||
{
|
||||
SysSetModel sysSetModel = item.Tag as SysSetModel;
|
||||
string value = "";
|
||||
if (selectSource != null)
|
||||
{
|
||||
value = selectSource.Table.Columns.Contains(sysSetModel.DbName) ? selectSource[sysSetModel.DbName] + "" : "";
|
||||
}
|
||||
item.EditText = value;
|
||||
}
|
||||
}
|
||||
//if (!string.IsNullOrEmpty(lastValues))
|
||||
//{
|
||||
// string[] lastValueArray = lastValues.Split('\\');
|
||||
// for (int i = 0; i < modelControls.Count; i++)
|
||||
// {
|
||||
// if (i == 0)
|
||||
// {
|
||||
// continue;
|
||||
// }
|
||||
// int index = i - 1;
|
||||
// string value = index >= 0 && lastValueArray.Length > index ? lastValueArray[index] : "";
|
||||
// BaseUserControl item = modelControls[i];
|
||||
// item.EditText = value;
|
||||
// }
|
||||
//}
|
||||
}
|
||||
/// <summary>
|
||||
/// <para>说明:查找控件(无需要传入txt_)</para>
|
||||
@@ -1657,6 +1729,144 @@ namespace Lskj.PubBomAlter
|
||||
/// 保存按钮
|
||||
/// </summary>
|
||||
private void OnBtnSaveClick(object sender, EventArgs e)
|
||||
{
|
||||
TreeGridControlEx treeMain = TreeGridObj;
|
||||
string tableName = this.sysModel.MenuTable;
|
||||
if (string.IsNullOrEmpty(tableName))
|
||||
{
|
||||
MessageUtil.Show(ResourceKeys.MenuTableNameIsNull);
|
||||
return;
|
||||
}
|
||||
List<BaseSaveModel> mList = new List<BaseSaveModel>();
|
||||
DataRow[] modifiedRows = (treeMain.TreeListObj.DataSource as DataTable)
|
||||
.Rows
|
||||
.Cast<DataRow>()
|
||||
.Where(x => x.RowState == DataRowState.Modified || x.RowState == DataRowState.Added)
|
||||
.ToArray();
|
||||
|
||||
if (modifiedRows == null || modifiedRows.Length == 0)
|
||||
{
|
||||
MessageUtil.Show(ResourceKeys.UnUpdateData);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
string _parmaryKey = BaseImpl.GetBasePrimaryKey(this.BomAlterModel.ModuleCode);//获取主键
|
||||
DataColumnCollection columns = BaseImpl.GetTableColumns(tableName).Columns;
|
||||
foreach (DataRow row in modifiedRows)
|
||||
{
|
||||
string updateSql = "update {0} set {1} where {2}='{3}';";
|
||||
string insertSql = "insert into {0}({1}) values({2});";
|
||||
string updateFields = string.Empty;
|
||||
string insertFields = string.Empty;
|
||||
string insertValues = string.Empty;
|
||||
BaseSaveModel model = new BaseSaveModel()
|
||||
{
|
||||
MenuCode = this.BomAlterModel.ModuleCode,
|
||||
TableName = tableName,
|
||||
KeyField = _parmaryKey,
|
||||
NewVer = this.sysModel.NewVer
|
||||
};
|
||||
foreach (DataColumn col in columns)
|
||||
{
|
||||
// 区分大小写匹配列
|
||||
DataRow hasContainRow = _gridColumns.Rows.Cast<DataRow>().FirstOrDefault(x => x["fieldname"] + "" == col.ColumnName);
|
||||
if (hasContainRow != null && col.ColumnName != _parmaryKey && !_disUpdateColumns.Contains(col.ColumnName))
|
||||
{
|
||||
if (row.RowState == DataRowState.Modified && string.IsNullOrEmpty(sysModel.CustomColumnSQL))
|
||||
{
|
||||
if ((col.DataType == typeof(DateTime)) && (row[col.ColumnName] + "" == ""))
|
||||
{
|
||||
updateFields += string.Format("[{0}]=null,", col.ColumnName);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (col.DataType == typeof(Decimal) && string.IsNullOrWhiteSpace((row[col.ColumnName] + "").Replace("'", "''")))
|
||||
{
|
||||
updateFields += string.Format("[{0}]='{1}',", col.ColumnName, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
updateFields += string.Format("[{0}]='{1}',", col.ColumnName, (row[col.ColumnName] + "").Replace("'", "''"));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else if (row.RowState == DataRowState.Added || (row.RowState == DataRowState.Modified && !string.IsNullOrEmpty(sysModel.CustomColumnSQL)))
|
||||
{
|
||||
// 动态生成列,保存时默认全部为新增
|
||||
string fieldValue = (row[col.ColumnName] + "").Replace("'", "''");
|
||||
insertFields += "[" + col.ColumnName + "],";
|
||||
if (!string.IsNullOrWhiteSpace(fieldValue))
|
||||
{
|
||||
insertValues += col.DataType == typeof(DateTime) ? "'" + Convert.ToDateTime(fieldValue).ToString("yyyy-MM-dd HH:mm:ss") + "'," : "'" + fieldValue + "',";
|
||||
}
|
||||
else
|
||||
{
|
||||
if (col.DataType == typeof(Decimal) || col.DataType == typeof(Int32))
|
||||
insertValues += "0,";
|
||||
else if (col.DataType == typeof(DateTime))
|
||||
insertValues += "NULL,";
|
||||
else
|
||||
insertValues += "'',";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
updateFields = updateFields.TrimEnd(',');
|
||||
insertFields = insertFields.TrimEnd(',');
|
||||
insertValues = insertValues.TrimEnd(',');
|
||||
|
||||
if (!string.IsNullOrEmpty(updateFields))
|
||||
{
|
||||
model.FieldValue = row[_parmaryKey] + "";
|
||||
model.BaseSaveType = SaveType.Update;
|
||||
model.BaseSql = string.Format(updateSql, tableName, updateFields, _parmaryKey, row[_parmaryKey]);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(insertFields))
|
||||
{
|
||||
model.BaseSaveType = SaveType.Add;
|
||||
model.FieldValue = row[_parmaryKey] + "";
|
||||
model.BaseSql = string.Format(insertSql, tableName, insertFields, insertValues);
|
||||
}
|
||||
mList.Add(model);
|
||||
}
|
||||
try
|
||||
{
|
||||
// 批量保存数据
|
||||
if (BaseModuleImpl.SaveBaseGridData(mList))
|
||||
{
|
||||
(treeMain.TreeListObj.DataSource as DataTable).AcceptChanges();
|
||||
if (this.SearchObj != null)
|
||||
{
|
||||
this.SearchObj.SearchLastGrid();
|
||||
}
|
||||
MessageUtil.Show(ResourceKeys.SaveSuccess);
|
||||
}
|
||||
else
|
||||
{
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.Append("失败列表\r\n");
|
||||
foreach (BaseSaveModel item in mList)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(item.FaultMsg))
|
||||
builder.Append("原因:" + item.FaultMsg + "\r\n"); ;
|
||||
}
|
||||
LogHelper.Instance.WriteLog(builder.ToString());
|
||||
MessageUtil.Show(builder.ToString());
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
string Message = ErrorMessage.PromptErrorMessage(ex);
|
||||
MessageUtil.Show(Message, ex.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 提交按钮
|
||||
/// </summary>
|
||||
private void OnBtnApplyClick(object sender, EventArgs e)
|
||||
{
|
||||
TreeListNode focusedNode = treeGridControlEx.TreeListObj.FocusedNode;
|
||||
DataRow focusedRow = (treeGridControlEx.TreeListObj.GetDataRecordByNode(focusedNode) as DataRowView).Row;
|
||||
@@ -1765,5 +1975,7 @@ namespace Lskj.PubBomAlter
|
||||
SearchObj.SearchGrid();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 查询后事件
|
||||
/// </summary>
|
||||
/// <
|
||||
@@ -73,7 +73,6 @@
|
||||
<EmbeddedResource Include="FrmMain.resx">
|
||||
<DependentUpon>FrmMain.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\licenses.licx" />
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
|
||||
Reference in New Issue
Block a user