SVN-Revision: r734
This commit is contained in:
tdx
2025-06-14 14:43:01 +00:00
parent 85ecc95bfc
commit 57887a4fec
2 changed files with 40 additions and 212 deletions
+13 -27
View File
@@ -31,14 +31,13 @@ namespace Lskj.PubBomImportNew
{
this.gcMain = new Lskj.Control.GridControlEx();
this.pl_top = new DevExpress.XtraEditors.PanelControl();
this.btnExport = new DevExpress.XtraEditors.SimpleButton();
this.btnCover = new DevExpress.XtraEditors.SimpleButton();
this.btnImport = new DevExpress.XtraEditors.SimpleButton();
this.btnRead = new DevExpress.XtraEditors.SimpleButton();
this.label2 = new System.Windows.Forms.Label();
this.pl_bottom = new DevExpress.XtraEditors.PanelControl();
this.label1 = new System.Windows.Forms.Label();
this.pl_main = new DevExpress.XtraEditors.PanelControl();
this.btnCover = new DevExpress.XtraEditors.SimpleButton();
((System.ComponentModel.ISupportInitialize)(this.pl_top)).BeginInit();
this.pl_top.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pl_bottom)).BeginInit();
@@ -65,7 +64,6 @@ namespace Lskj.PubBomImportNew
this.pl_top.Appearance.BackColor = System.Drawing.Color.Transparent;
this.pl_top.Appearance.Options.UseBackColor = true;
this.pl_top.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
this.pl_top.Controls.Add(this.btnExport);
this.pl_top.Controls.Add(this.btnCover);
this.pl_top.Controls.Add(this.btnImport);
this.pl_top.Controls.Add(this.btnRead);
@@ -77,27 +75,6 @@ namespace Lskj.PubBomImportNew
this.pl_top.Size = new System.Drawing.Size(1394, 64);
this.pl_top.TabIndex = 3;
//
// btnExport
//
this.btnExport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnExport.Location = new System.Drawing.Point(938, 12);
this.btnExport.Margin = new System.Windows.Forms.Padding(4);
this.btnExport.Name = "btnExport";
this.btnExport.Size = new System.Drawing.Size(110, 38);
this.btnExport.TabIndex = 13;
this.btnExport.Text = "导出模板";
//
// btnCover
//
this.btnCover.Appearance.ForeColor = System.Drawing.Color.Red;
this.btnCover.Appearance.Options.UseForeColor = true;
this.btnCover.Location = new System.Drawing.Point(260, 12);
this.btnCover.Margin = new System.Windows.Forms.Padding(4);
this.btnCover.Name = "btnCover";
this.btnCover.Size = new System.Drawing.Size(110, 38);
this.btnCover.TabIndex = 11;
this.btnCover.Text = "导入覆盖";
//
// btnImport
//
this.btnImport.Location = new System.Drawing.Point(141, 12);
@@ -163,6 +140,17 @@ namespace Lskj.PubBomImportNew
this.pl_main.Size = new System.Drawing.Size(1394, 927);
this.pl_main.TabIndex = 5;
//
// btnCover
//
this.btnCover.Appearance.ForeColor = System.Drawing.Color.Red;
this.btnCover.Appearance.Options.UseForeColor = true;
this.btnCover.Location = new System.Drawing.Point(260, 12);
this.btnCover.Margin = new System.Windows.Forms.Padding(4);
this.btnCover.Name = "btnCover";
this.btnCover.Size = new System.Drawing.Size(110, 38);
this.btnCover.TabIndex = 11;
this.btnCover.Text = "设计关联";
//
// FrmMain2
//
this.Appearance.BackColor = System.Drawing.SystemColors.Control;
@@ -176,6 +164,4 @@ namespace Lskj.PubBomImportNew
this.Name = "FrmMain2";
this.Opacity = 0D;
this.Text = "表格导入";
((System.ComponentModel.ISupportInitialize)(this.pl_top)).EndInit();
this.pl_top.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.pl_top)
+27 -185
View File
@@ -47,6 +47,7 @@ namespace Lskj.PubBomImportNew
/// </summary>
public partial class FrmMain2 : BaseForm
{
public DynamicBomImportNew Model;
/// <summary>
/// 判断是否是导入后的数据
/// </summary>
@@ -72,7 +73,7 @@ namespace Lskj.PubBomImportNew
/// </summary>
private string _parmaryKey;
private string _qzKey;
private string _leftField, _leftValue;
private string _primkey, _keyvalue;
private string _treeColumnName;
private int success = 0, failed = 0;
private ModuleModel SysModel;
@@ -107,10 +108,22 @@ namespace Lskj.PubBomImportNew
/// 导入返回控件值
/// </summary>
public List<string> ImportReturnValue = new List<string>();
protected override void OnLoad(EventArgs e)
{
DataRow modelRow = MainImpl.GetSystemdllTab(Model.ModuleCode);//获取模块信息
if (modelRow != null)
{
this.SysModel = new ModuleModel(modelRow);
InitializeControl(this.SysModel.MenuTable, this.Model.ModuleCode, _parmaryKey, this.gcMain, this.SysModel.PrefixKey, this.Model.primkey, this.Model.keyvalue, this.Model.FormText, this.SysModel.ConcatenatedPrefix);
}
else {
MessageUtil.Show("请检查模板是否配置正确!");
}
}
public void InitializeControl(string tableName, string menuCode, string parmaryKey, GridControlEx gridEx, string qzKey, string leftField, string leftValue, string Fromtext, bool ConcatenatedPrefix = true)
public void InitializeControl(string tableName, string menuCode, string parmaryKey, GridControlEx gridEx, string qzKey, string primkey, string keyvalue, string Fromtext, bool ConcatenatedPrefix = true)
{
try
{
@@ -121,8 +134,8 @@ namespace Lskj.PubBomImportNew
this._parmaryKey = parmaryKey;
this._gridEx = gridEx;
this._qzKey = qzKey;
this._leftValue = leftValue;
this._leftField = leftField;
this._primkey = primkey;
this._keyvalue = keyvalue;
this._calcFields = new List<string>();
this._fromText = Fromtext;
this.concatenatedPrefix = ConcatenatedPrefix;
@@ -205,27 +218,6 @@ namespace Lskj.PubBomImportNew
}
else
{
//foreach (GridColumn item in this._gridEx.GridView.VisibleColumns)
//{
// if (item.FieldName.Equals("RightMenuBtnEdit")) continue;
// GridColumn col = new GridColumn();
// col.Tag = item.Tag;
// col.FieldName = item.FieldName;
// col.Width = item.Width;
// col.Caption = item.Caption;
// col.Visible = true;
// if (this._gridEx is BandedGridControlEx)
// {
// GridColumnModel tag = item.Tag as GridColumnModel;
// if (tag.FieldText.Contains("|")) col.Caption = tag.FieldText;
// }
// //col.AppearanceCell.Options.UseFont = true;
// //col.AppearanceCell.Font = new Font("宋体", 14f);
// this.gcMain.GridView.Columns.Add(col);
//}
//this.gcMain.SetReadOnlyColumns(_tableColumns, GridCustomColumnStruct.BaseMainGridView + this.SysModel.FormKey);
//可编辑列可以触发关联,计算
this.gcMain.SetEditColumns(_tableColumns, GridCustomColumnStruct.BaseMainGridView + this.SysModel.FormKey);
this.gcMain.GridView.OptionsBehavior.Editable = false;//禁止编辑
@@ -547,29 +539,16 @@ namespace Lskj.PubBomImportNew
if (this.concatenatedPrefix)
if (string.IsNullOrEmpty(this._primkey))
{
if (datatb.Columns.Contains(_qzKey + _leftField) && !string.IsNullOrWhiteSpace(_leftValue) && SysModel.AssociationLeft)
if (datatb.Columns.Contains(_primkey) && !string.IsNullOrWhiteSpace(_keyvalue))
{
if (string.IsNullOrEmpty(tmpRow[_qzKey + _leftField] + "") || (tmpRow[_qzKey + _leftField] + "").Equals("0"))
if (string.IsNullOrEmpty(tmpRow[_primkey] + "") || (tmpRow[_keyvalue] + "").Equals("0"))
{
tmpRow[_qzKey + _leftField] = _leftValue;
tmpRow[_primkey] = _keyvalue;
}
}
}
else
{
if (datatb.Columns.Contains(_leftField) && !string.IsNullOrWhiteSpace(_leftValue) && SysModel.AssociationLeft)
{
if (string.IsNullOrEmpty(tmpRow[_qzKey + _leftField] + "") || (tmpRow[_qzKey + _leftField] + "").Equals("0"))
{
tmpRow[_qzKey + _leftField] = _leftValue;
}
}
}
foreach (GridColumn gc in gcMain.GridView.VisibleColumns)
{
@@ -807,7 +786,7 @@ namespace Lskj.PubBomImportNew
if (!string.IsNullOrEmpty(_treeColumnName) && col.ColumnName.ToLower() == _treeColumnName.ToLower())
{
insertFields += col.ColumnName + ",";
insertValues += "N'" + _leftValue + "',";
insertValues += "N'" + _keyvalue + "',";
}
}
}
@@ -1011,147 +990,8 @@ namespace Lskj.PubBomImportNew
}
}
/// <summary>
/// <para>说明:导入覆盖Excel</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2021-04-07 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
private void OnCoverButtonClick(object sender, EventArgs e)
{
try
{
if (MessageUtil.Show("注意!覆盖功能将替换原有的数据请慎重使用!是否确认覆盖?", MessageBoxButtons.YesNo) != DialogResult.Yes)
return;
List<string> ColumnNameList = GridExtend.ColumnNameList;
string sql = "select * from " + _tableName + " where 1<>1";
SqlDataAdapter dat = BaseImpl.GetAdapterResult(sql);
DataTable datatb = new DataTable();
dat.Fill(datatb);
DataTable table = this.gcMain.GridControl.DataSourceTable();
string updateSql = "update {0} set {1} where {2}='{3}';";
int successCount = 0;
string msg = string.Empty;
if (table != null && table.Rows.Count > 0)
{
if (!this.DetermineImportConditions())
{
return;
}
//根据全表字段类型进行默认填充
int currRow = 0;
foreach (DataRow row in table.Rows)
{
string updateFields = string.Empty;
foreach (DataColumn col in table.Columns)
{
if (ColumnNameList.Contains(col.ColumnName) && datatb.Columns.Contains(col.ColumnName) && table.Columns.Contains(col.ColumnName))
{
GridColumn gridCol = this.gcMain.GridView.Columns[col.ColumnName];
GridColumnModel gridmodel = gridCol.Tag as GridColumnModel;
if (col.ColumnName == _parmaryKey || col.ColumnName == "import_errormsg" || col.ColumnName == "lskjimport_errorFlag") continue;
if ((col.DataType == typeof(DateTime)) && (row[col.ColumnName] + "" == ""))
updateFields += string.Format("[{0}]=null,", col.ColumnName);
else if (gridmodel != null && (gridmodel.FieldType == ControlType.LabTreeType ||
gridmodel.FieldType == ControlType.LabComboxValue ||
gridmodel.FieldType == ControlType.LabComboxValueParam ||
gridmodel.FieldType == ControlType.LabAutoCompleteValue ||
gridmodel.FieldType == ControlType.LabAutoCompleteValueParam ||
gridmodel.FieldType == ControlType.LabMultiSelectValue ||
gridmodel.FieldType == ControlType.LabMultiSelectValueNew ||
gridmodel.FieldType == ControlType.LabMultiSelectValueParam))
{
bool isEmpty = gridmodel.CanNull;
string fieldValue = GetValueByImportText(row, gridCol.FieldName, row[gridCol.FieldName] + "");
if (string.IsNullOrEmpty(fieldValue))
{
if (isEmpty)
{
XtraMessageBox.Show("数据导入错误,未找到对应的编码,请检查!\r\n第" + (currRow + 1).ToString() + "行,第" + (gridCol.VisibleIndex + 1).ToString() + "列-" + gridCol.Caption, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
else
{
GridColumn column = _gridEx.GridView.Columns[gridCol.FieldName];
if (column.ColumnType.Name.ToLower().IndexOf("int") >= 0)
if (column.ColumnType.Name.ToLower() == "string")
updateFields += string.Format("[{0}]='{1}',", gridCol.FieldName, "");
if (column.ColumnType.Name.ToLower().IndexOf("char") >= 0)
updateFields += string.Format("[{0}]='{1}',", gridCol.FieldName, "");
if (column.ColumnType.Name.ToLower().IndexOf("int") >= 0)
updateFields += string.Format("[{0}]='{1}',", gridCol.FieldName, "0");
if (column.ColumnType.Name.ToLower() == "decimal")
updateFields += string.Format("[{0}]='{1}',", gridCol.FieldName, "0");
}
}
else
{
updateFields += string.Format("[{0}]='{1}',", gridCol.FieldName, fieldValue);
}
}
else
{
updateFields += string.Format("[{0}]='{1}',", col.ColumnName, (row[col.ColumnName] + "").Replace("'", "''"));
}
currRow++;
}
}
int ReRows = SqlHelper.ExecuteNonQuery(string.Format(updateSql, _tableName, updateFields.TrimEnd(','), _parmaryKey, row[_parmaryKey]));
successCount += ReRows;
if (ReRows == 0) msg += "\n主键:[" + row[_parmaryKey] + "]更新失败请检查";
}
this._isImported = true;
if (!string.IsNullOrEmpty(_gridEx.LastSearchSql)) _gridEx.SetGridViewDataSource(SqlHelper.ExecuteDataTable(_gridEx.LastSearchSql));
XtraMessageBox.Show("覆盖完成,成功" + successCount + "条" + msg, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
//_gridEx.ParentControl.SearchLastGrid();
}
else
{
MessageUtil.Show(ResourceKeys.NotFountGridData);
}
}
catch (Exception ex)
{
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
}
/// <summary>
/// <para>说明:导出模版</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-11-15 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
private void OnExportButtonClick(object sender, EventArgs e)
{
try
{
this.gcMain.GridControl.ToExcelTemplate(_fromText);
}
catch (Exception ex)
{
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
}
/// <summary>
/// <para>说明:</para>
/// <para>创建人:龚宇超</para>
@@ -1176,6 +1016,8 @@ namespace Lskj.PubBomImportNew
}
}
/// <summary>
/// 判断导入条件
/// </summary>