SVN-Revision: r330
This commit is contained in:
tdx
2025-03-16 06:22:43 +00:00
parent 0da1e0e065
commit 8fe2018dfa
2 changed files with 126 additions and 121 deletions
+7 -6
View File
@@ -28,6 +28,7 @@
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.ssc_main = new DevExpress.XtraEditors.SplitContainerControl();
this.ssc_main_top = new DevExpress.XtraEditors.SplitContainerControl();
this.pl_left = new DevExpress.XtraEditors.PanelControl();
@@ -40,7 +41,7 @@
this.pl_treeview_detault_search = new DevExpress.XtraEditors.PanelControl();
this.panelControl4 = new DevExpress.XtraEditors.PanelControl();
this.textEdit1 = new DevExpress.XtraEditors.TextEdit();
this.barManager1 = new DevExpress.XtraBars.BarManager();
this.barManager1 = new DevExpress.XtraBars.BarManager(this.components);
this.barDockControl1 = new DevExpress.XtraBars.BarDockControl();
this.barDockControl2 = new DevExpress.XtraBars.BarDockControl();
this.barDockControl3 = new DevExpress.XtraBars.BarDockControl();
@@ -50,7 +51,7 @@
this.btnTreeSearch = new DevExpress.XtraEditors.SimpleButton();
this.pl_main_bottom = new DevExpress.XtraEditors.PanelControl();
this.dbpFP = new DevExpress.XtraEditors.DropDownButton();
this.pmFP = new DevExpress.XtraBars.PopupMenu();
this.pmFP = new DevExpress.XtraBars.PopupMenu(this.components);
this.btnRefresh = new DevExpress.XtraEditors.SimpleButton();
this.btnHiding = new DevExpress.XtraEditors.SimpleButton();
this.btnHelp = new DevExpress.XtraEditors.SimpleButton();
@@ -63,15 +64,15 @@
this.labelControl2 = new DevExpress.XtraEditors.LabelControl();
this.btn_input = new DevExpress.XtraEditors.SimpleButton();
this.dpbImport = new DevExpress.XtraEditors.DropDownButton();
this.pmBillExp = new DevExpress.XtraBars.PopupMenu();
this.pmBillExp = new DevExpress.XtraBars.PopupMenu(this.components);
this.btnBillAdd = new DevExpress.XtraEditors.SimpleButton();
this.btnBillApply = new DevExpress.XtraEditors.SimpleButton();
this.dpCopyBill = new DevExpress.XtraEditors.DropDownButton();
this.pmBill = new DevExpress.XtraBars.PopupMenu();
this.pmBill = new DevExpress.XtraBars.PopupMenu(this.components);
this.btnPrint = new DevExpress.XtraEditors.DropDownButton();
this.pMprint = new DevExpress.XtraBars.PopupMenu();
this.pMprint = new DevExpress.XtraBars.PopupMenu(this.components);
this.dpbTools = new DevExpress.XtraEditors.DropDownButton();
this.pMenu = new DevExpress.XtraBars.PopupMenu();
this.pMenu = new DevExpress.XtraBars.PopupMenu(this.components);
this.btnDelete = new DevExpress.XtraEditors.SimpleButton();
this.btnBillSave = new DevExpress.XtraEditors.SimpleButton();
this.pl_main_top = new DevExpress.XtraEditors.PanelControl();
+119 -115
View File
@@ -1678,7 +1678,7 @@ namespace Lskj.PubBill
if (attachModels.Count > 0)
this.tb_buttom.TabControlObj.TabPages[0].Text = model.UserName + DetailedSuffix;
}
if (model.MainDetailsAddType!="2")
if (model.MainDetailsAddType != "2")
{
TreeGridDragGrid treeGridDragGrid = new TreeGridDragGrid((gridDetail as TreeGridControlEx).TreeListObj, this.gcMain.GridView);
treeGridDragGrid.OnDragComplete += new TreeGridDragGridCompleteEventHandler(OnTreeGridDetailGridCompleted);
@@ -1750,7 +1750,7 @@ namespace Lskj.PubBill
int width = this.tb_buttom.Width;//获取控件宽度
splitContainerControl.SplitterPosition = width / 2;//然后将分割位置设置在宽度一半位置
}
if (model.MainDetailsAddType != "1")
if (model.MainDetailsAddType != "1")
{
//明细的明细拖拽到上方
if (this.BillModel.DetailTreeTable)
@@ -1772,7 +1772,7 @@ namespace Lskj.PubBill
gridDetail_Details.GridView.DoubleClick += new EventHandler(OnGridDetailDetailDoubleClick);
}
}
splitContainerControl.Parent = tabDetail;
unionModel.GridDetailDetailControlObj = gridDetail_Details;
}
@@ -1791,7 +1791,7 @@ namespace Lskj.PubBill
this.tb_buttom.TabControlObj.TabPages[0].Text = model.UserName + DetailedSuffix;
}
if (model.MainDetailsAddType != "2")
if (model.MainDetailsAddType != "2")
{
if (this.BillModel.DetailTreeTable)
{
@@ -1809,7 +1809,7 @@ namespace Lskj.PubBill
dragDetailGrid.OnDragComplete += new GridFragGridCompleteEventHandler(OnDragDetailGridCompleted);
}
}
if (BillModel.IsBillDetailCheck == 1)//加载复选框
@@ -3784,12 +3784,12 @@ namespace Lskj.PubBill
this.AddRowToGridViewByBom(rowItem, unionModel, ref onlyPopup);
if (BillModel.drgFinishHide == "1" && unionModel.GridDetailControlObj != null)
{
if (unionModel.GridDetailControlObj.GridControl.DataSourceTable().Rows.IndexOf(rowItem) >= 0)
if (unionModel.GridDetailControlObj.GridControl.DataSourceTable().Rows.IndexOf(rowItem) >= 0)
{
unionModel.GridDetailControlObj.GridControl.DataSourceTable().Rows.Remove(rowItem);
//RemoveRowitem.Add(rowItem);
}
if (unionModel.GridDetailDetailControlObj!=null&&unionModel.GridDetailDetailControlObj.GridControl.DataSourceTable().Rows.IndexOf(rowItem) >= 0)
if (unionModel.GridDetailDetailControlObj != null && unionModel.GridDetailDetailControlObj.GridControl.DataSourceTable().Rows.IndexOf(rowItem) >= 0)
{
unionModel.GridDetailDetailControlObj.GridControl.DataSourceTable().Rows.Remove(rowItem);
//RemoveRowitem.Add(rowItem);
@@ -4391,7 +4391,7 @@ namespace Lskj.PubBill
{
DataTable tvp = new DataTable();//虚构一个保存存储过程
//更新前进行数据源筛选
if (DateColumnList.Count > 0)
if (DateColumnList.Count > 0 && string.IsNullOrEmpty(BillModel.PrimaryDetailKey))
{
// 创建临时表
tvp.Columns.Add("lblOrderNo", typeof(string)); // 固定主键
@@ -4408,7 +4408,7 @@ namespace Lskj.PubBill
if (row.RowState == DataRowState.Modified || row.RowState == DataRowState.Added)
{
// 提取 billdocument_id
string key = row["bom_rdl_productid"].ToString();
string key = row[BillModel.PrimaryDetailKey].ToString();
// 遍历列并处理虚拟列
foreach (DataColumn col in mainDataSource.Columns)
@@ -4519,9 +4519,9 @@ namespace Lskj.PubBill
SaveRefreshSource();
RefreshPrindMenu();
//保存完成后所有数据源进行拼接执行保存
if (tvp!=null&& tvp.Rows.Count > 0)
if (tvp != null && tvp.Rows.Count > 0)
{
foreach (DataRow dataRow in tvp.Rows)
foreach (DataRow dataRow in tvp.Rows)
{
dataRow["lblOrderNo"] = billNo;
}
@@ -5045,39 +5045,18 @@ namespace Lskj.PubBill
{
if (DateColumnList.Count > 0 && DateColumnList[0].Tag is DateTime dateTime)
{
this.gcMain.GridView.DataSourceChanged -= OnGcMainDataSourceChanged;
DataTable dataTable = gcMain.GridControl.DataSource as DataTable;
//DataTable dataMain = dataTable.Copy();
string sqlValue = "select * from RD_worktimetab where 1 = 1";
sqlValue = $"{sqlValue} and showday >= '{dateTime.ToString("yyyy-MM-dd")}'";
DataTable dataDayPlan = BaseImpl.GetDataTableResult(sqlValue);
MergeMainDataWithDayPlan(dataTable, dataDayPlan, dateTime);
//gcMain.GridControl.DataSource = dataMain;
this.gcMain.GridView.DataSourceChanged += OnGcMainDataSourceChanged;
dataTable.TableNewRow += OnDataTableTableNewRow;
}
}
/// <summary>
/// 表格行添加数据时
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void OnDataTableTableNewRow(object sender, DataTableNewRowEventArgs e)
{
if (DateColumnList.Count > 0 && DateColumnList[0].Tag is DateTime dateTime)
{
DataRow focusedRow = gcMain.GridView.GetFocusedDataRow();
if (focusedRow != null)
string billNo = this.lblOrderNo.Text;
if (!string.IsNullOrEmpty(billNo))
{
string key = focusedRow.Table.Columns.Contains(BillModel.PrimaryKey) ? focusedRow[BillModel.PrimaryKey] + "" : "";
if (!string.IsNullOrEmpty(key))
{
string sqlValue = $"select * from RD_worktimetab where billdocument_id = '{key}'";
sqlValue = $"{sqlValue} and showday >= '{dateTime.ToString("yyyy-MM-dd")}'";
DataTable dataDayPlan = BaseImpl.GetDataTableResult(sqlValue);
UpdateRowWithDayPlan(focusedRow, dataDayPlan, dateTime);
}
this.gcMain.GridView.DataSourceChanged -= OnGcMainDataSourceChanged;
DataTable dataTable = gcMain.GridControl.DataSource as DataTable;
//DataTable dataMain = dataTable.Copy();
string sqlValue = "select * from RD_worktimetab where 1 = 1";
sqlValue = $"{sqlValue} and lblOrderNo = '{billNo}' and showday >= '{dateTime.ToString("yyyy-MM-dd")}'";
DataTable dataDayPlan = BaseImpl.GetDataTableResult(sqlValue);
MergeMainDataWithDayPlan(dataTable, dataDayPlan, dateTime);
//gcMain.GridControl.DataSource = dataMain;
this.gcMain.GridView.DataSourceChanged += OnGcMainDataSourceChanged;
}
}
}
@@ -5129,8 +5108,10 @@ namespace Lskj.PubBill
/// <returns></returns>
private DataTable MergeMainDataWithDayPlan(DataTable dataMain, DataTable dataDayPlan, DateTime startDate)
{
string rightPrimaryKey = "key";
string topPrimaryKey = this.BillModel.PrimaryKey;
string rightPrimaryKey = "billdocument_id";
string dateField = "showday";
string amountField = "amount";
string topPrimaryKey = this.BillModel.PrimaryDetailKey;
DateTime endDate = startDate.AddDays(7); // 计算结束日期
// **1. 预索引 dataDayPlan 数据(billdocument_id -> 该 key 相关的所有行)**
Dictionary<string, List<DataRow>> dayPlanMap = new Dictionary<string, List<DataRow>>();
@@ -5166,13 +5147,13 @@ namespace Lskj.PubBill
{
foreach (DataRow dayRow in dayPlanMap[key])
{
if (dayRow["date"] != DBNull.Value)
if (dayRow[dateField] != DBNull.Value)
{
DateTime dayValue = Convert.ToDateTime(dayRow["date"]);
DateTime dayValue = Convert.ToDateTime(dayRow[dateField]);
string colName = dayValue.ToString("yyyy-MM-dd");
if (dayValue >= startDate && dayValue <= endDate && dataMain.Columns.Contains(colName))
{
dataMap[key][colName] = Convert.ToDecimal(dayRow["amount"]);
dataMap[key][colName] = Convert.ToDecimal(dayRow[amountField]);
}
}
}
@@ -5201,8 +5182,10 @@ namespace Lskj.PubBill
/// <returns></returns>
private void UpdateRowWithDayPlan(DataRow focusedRow, DataTable dataDayPlan, DateTime startDate)
{
string rightPrimaryKey = "key";
string topPrimaryKey = this.BillModel.PrimaryKey;
string rightPrimaryKey = "billdocument_id";
string dateField = "showday";
string amountField = "amount";
string topPrimaryKey = this.BillModel.PrimaryDetailKey;
DateTime endDate = startDate.AddDays(7); // 计算结束日期
// **1. 预索引 dataDayPlan 数据(billdocument_id -> 该 key 相关的所有行)**
Dictionary<string, List<DataRow>> dayPlanMap = new Dictionary<string, List<DataRow>>();
@@ -5236,13 +5219,13 @@ namespace Lskj.PubBill
{
foreach (DataRow dayRow in dayPlanMap[key])
{
if (dayRow["date"] != DBNull.Value)
if (dayRow[dateField] != DBNull.Value)
{
DateTime dayValue = Convert.ToDateTime(dayRow["date"]);
DateTime dayValue = Convert.ToDateTime(dayRow[dateField]);
string colName = dayValue.ToString("yyyy-MM-dd");
if (dayValue >= startDate && dayValue <= endDate && focusedRow.Table.Columns.Contains(colName))
{
dataMap[key][colName] = Convert.ToDecimal(dayRow["amount"]);
dataMap[key][colName] = Convert.ToDecimal(dayRow[amountField]);
}
}
}
@@ -6388,11 +6371,7 @@ namespace Lskj.PubBill
{
try
{
int[] selectRows = this.gcMain.GridView.GetSelectedRows();
if (selectRows.Count() == 0)
{
return;
}
this.gcMain.GridView.FocusedRowHandle = 0;
DataTable table = this.gcMain.GridControl.DataSource as DataTable;
if (!table.Columns.Contains(guidField))
{
@@ -6418,6 +6397,11 @@ namespace Lskj.PubBill
// 检查数据是否为分配后的行
if (!string.IsNullOrEmpty(rowItem[this.mRecordPrimaryField] + ""))
{
if (this.gcMain.GridView.FocusedRowHandle + 1 <= this.gcMain.GridView.RowCount - 1)
{
this.gcMain.GridView.FocusedRowHandle += 1;
FPNew();
}
return;
}
}
@@ -6470,6 +6454,11 @@ namespace Lskj.PubBill
// 检查数据是否为分配后的行
if (!string.IsNullOrEmpty(rowItem[this.mRecordPrimaryField] + ""))
{
if (this.gcMain.GridView.FocusedRowHandle + 1 <= this.gcMain.GridView.RowCount - 1)
{
this.gcMain.GridView.FocusedRowHandle += 1;
OnAfterFPCallback(sender, e);
}
return;
}
}
@@ -6489,74 +6478,89 @@ namespace Lskj.PubBill
}
frmSelect.InitData(rowItem);
bool success = frmSelect.FP();
if (success && frmSelect.SelectedRows != null && frmSelect.SelectedRows.Length > 0)
if (success)
{
// 增加标识列
if (!table.Columns.Contains(frmSelect.RecordPrimaryField))
if (frmSelect.SelectedRows != null && frmSelect.SelectedRows.Length > 0)
{
this.mRecordPrimaryField = frmSelect.RecordPrimaryField;
table.Columns.Add(this.mRecordPrimaryField, typeof(String));
}
foreach (DataRow item in frmSelect.SelectedRows)
{
DataRow newRow = table.NewRow();
newRow.ItemArray = rowItem.ItemArray;
newRow[guidField] = rowItem[guidField];
DataColumn IsIdentCol = newRow.Table.Columns.Cast<DataColumn>().FirstOrDefault(x => x.ColumnName == BaseImpl.GetResult(string.Format("SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.columns WHERE TABLE_NAME='{0}' AND COLUMNPROPERTY(OBJECT_ID('{0}'),COLUMN_NAME,'IsIdentity')=1", BillModel.DetailTable)) + "");
//自增长列分配按空值取
if (IsIdentCol != null)
// 增加标识列
if (!table.Columns.Contains(frmSelect.RecordPrimaryField))
{
if (IsIdentCol.DataType == typeof(Decimal) ||
IsIdentCol.DataType == typeof(Double) ||
IsIdentCol.DataType == typeof(Int16) ||
IsIdentCol.DataType == typeof(Int32) ||
IsIdentCol.DataType == typeof(Int64))
{
newRow[IsIdentCol.ColumnName] = 0;
}
this.mRecordPrimaryField = frmSelect.RecordPrimaryField;
table.Columns.Add(this.mRecordPrimaryField, typeof(String));
}
foreach (DataColumn col in item.Table.Columns)
foreach (DataRow item in frmSelect.SelectedRows)
{
if (table.Columns.Contains(col.ColumnName))
DataRow newRow = table.NewRow();
newRow.ItemArray = rowItem.ItemArray;
newRow[guidField] = rowItem[guidField];
DataColumn IsIdentCol = newRow.Table.Columns.Cast<DataColumn>().FirstOrDefault(x => x.ColumnName == BaseImpl.GetResult(string.Format("SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.columns WHERE TABLE_NAME='{0}' AND COLUMNPROPERTY(OBJECT_ID('{0}'),COLUMN_NAME,'IsIdentity')=1", BillModel.DetailTable)) + "");
//自增长列分配按空值取
if (IsIdentCol != null)
{
//newRow[col.ColumnName] = item[col.ColumnName];
newRow[col.ColumnName] = item[col.ColumnName];
GridColumn column = this.gcMain.GridView.Columns[col.ColumnName];
if (column != null)
if (IsIdentCol.DataType == typeof(Decimal) ||
IsIdentCol.DataType == typeof(Double) ||
IsIdentCol.DataType == typeof(Int16) ||
IsIdentCol.DataType == typeof(Int32) ||
IsIdentCol.DataType == typeof(Int64))
{
GridColumnModel model = column.Tag as GridColumnModel;
if (!string.IsNullOrEmpty(model.UnionFields))
{
this.SetUnionValue(model, rowItem[column.FieldName] + "", newRow);
}
SetCalcValue(model, rowItem[column.FieldName] + "", newRow);
newRow[IsIdentCol.ColumnName] = 0;
}
}
foreach (DataColumn col in item.Table.Columns)
{
if (table.Columns.Contains(col.ColumnName))
{
//newRow[col.ColumnName] = item[col.ColumnName];
newRow[col.ColumnName] = item[col.ColumnName];
GridColumn column = this.gcMain.GridView.Columns[col.ColumnName];
if (column != null)
{
GridColumnModel model = column.Tag as GridColumnModel;
if (!string.IsNullOrEmpty(model.UnionFields))
{
this.SetUnionValue(model, rowItem[column.FieldName] + "", newRow);
}
SetCalcValue(model, rowItem[column.FieldName] + "", newRow);
}
}
}
newRow[frmSelect.AmountField] = item[frmSelect.AmountField];
newRow[frmSelect.RecordPrimaryField] = item[frmSelect.RecordPrimaryField];
table.Rows.Add(newRow);
}
NumberMc = frmSelect.AmountField;
table.Rows.Remove(rowItem);
// 重排顺序
table.OrderBy(this.BillModel.DetailOrderField);
this.gcMain.GridView.UpdateCurrentRow();
this.gcMain.GridView.ShowEditor();
if (frmSelect.isNextOne)
{
int SourceRowIndex = this.gcMain.GridView.GetFocusedDataSourceRowIndex();
DataRow[] a = table.Rows.Cast<DataRow>().Where(x => string.IsNullOrEmpty(x[guidField].ToString())).ToArray();
if (a.Length != 0)
{
this.gcMain.GridView.FocusedRowHandle = SourceRowIndex;
OnAfterFPCallback(sender, e);
}
else
{
MessageUtil.Show("全部分配完毕");
// frmSelect.SelectRowItem = null;
}
}
newRow[frmSelect.AmountField] = item[frmSelect.AmountField];
newRow[frmSelect.RecordPrimaryField] = item[frmSelect.RecordPrimaryField];
table.Rows.Add(newRow);
}
NumberMc = frmSelect.AmountField;
table.Rows.Remove(rowItem);
// 重排顺序
table.OrderBy(this.BillModel.DetailOrderField);
this.gcMain.GridView.UpdateCurrentRow();
this.gcMain.GridView.ShowEditor();
if (frmSelect.isNextOne)
}
else
{
if (this.gcMain.GridView.FocusedRowHandle + 1 <= this.gcMain.GridView.RowCount - 1)
{
int SourceRowIndex = this.gcMain.GridView.GetFocusedDataSourceRowIndex();
DataRow[] a = table.Rows.Cast<DataRow>().Where(x => string.IsNullOrEmpty(x[guidField].ToString())).ToArray();
if (a.Length != 0)
{
this.gcMain.GridView.FocusedRowHandle = SourceRowIndex;
OnAfterFPCallback(sender, e);
}
else
{
MessageUtil.Show("全部分配完毕");
// frmSelect.SelectRowItem = null;
}
this.gcMain.GridView.FocusedRowHandle += 1;
OnAfterFPCallback(sender, e);
}
else
{
MessageUtil.Show("全部分配完毕");
}
}
}
@@ -7908,4 +7912,4 @@ namespace Lskj.PubBill
/// </summary>
/// <param name="cond">The cond.</param>
/// <param name="dataRow">The data row.</param>
/// <returns><c>true</c> if XXXX, <
/// <returns><c>true</c> if X