SVN r331
SVN-Revision: r331
This commit is contained in:
@@ -4391,7 +4391,7 @@ namespace Lskj.PubBill
|
|||||||
{
|
{
|
||||||
DataTable tvp = new DataTable();//虚构一个保存存储过程
|
DataTable tvp = new DataTable();//虚构一个保存存储过程
|
||||||
//更新前进行数据源筛选
|
//更新前进行数据源筛选
|
||||||
if (DateColumnList.Count > 0 && string.IsNullOrEmpty(BillModel.PrimaryDetailKey))
|
if (DateColumnList.Count > 0)
|
||||||
{
|
{
|
||||||
// 创建临时表
|
// 创建临时表
|
||||||
tvp.Columns.Add("lblOrderNo", typeof(string)); // 固定主键
|
tvp.Columns.Add("lblOrderNo", typeof(string)); // 固定主键
|
||||||
@@ -4401,45 +4401,45 @@ namespace Lskj.PubBill
|
|||||||
|
|
||||||
// 获取主数据源
|
// 获取主数据源
|
||||||
DataTable mainDataSource = gcMain.GridControl.DataSourceTable();
|
DataTable mainDataSource = gcMain.GridControl.DataSourceTable();
|
||||||
|
if (mainDataSource.Columns.Contains(BillModel.DetailUUIDKey))
|
||||||
// 遍历主数据源
|
|
||||||
foreach (DataRow row in mainDataSource.Rows)
|
|
||||||
{
|
{
|
||||||
if (row.RowState == DataRowState.Modified || row.RowState == DataRowState.Added)
|
// 遍历主数据源
|
||||||
|
foreach (DataRow row in mainDataSource.Rows)
|
||||||
{
|
{
|
||||||
// 提取 billdocument_id
|
if (row.RowState == DataRowState.Modified || row.RowState == DataRowState.Added)
|
||||||
string key = row[BillModel.PrimaryDetailKey].ToString();
|
|
||||||
|
|
||||||
// 遍历列并处理虚拟列
|
|
||||||
foreach (DataColumn col in mainDataSource.Columns)
|
|
||||||
{
|
{
|
||||||
if (!Regex.IsMatch(col.ColumnName, @"^\d{4}-\d{2}-\d{2}$"))
|
// 提取 billdocument_id
|
||||||
continue;
|
string key = row[BillModel.DetailUUIDKey].ToString();
|
||||||
|
if (!string.IsNullOrEmpty(key))
|
||||||
// 检查值是否发生变化
|
|
||||||
bool isVerifyupd = true;
|
|
||||||
if (row.RowState == DataRowState.Modified)
|
|
||||||
{
|
{
|
||||||
object originalValue = row[col, DataRowVersion.Original];
|
// 遍历列并处理虚拟列
|
||||||
object currentValue = row[col, DataRowVersion.Current];
|
foreach (GridColumn col in DateColumnList)
|
||||||
isVerifyupd = !object.Equals(originalValue, currentValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isVerifyupd)
|
|
||||||
{
|
|
||||||
// 解析金额
|
|
||||||
decimal newAmount = 0m;
|
|
||||||
if (row[col] != DBNull.Value && !string.IsNullOrWhiteSpace(row[col].ToString()))
|
|
||||||
{
|
{
|
||||||
decimal.TryParse(row[col].ToString(), out newAmount);
|
// 检查值是否发生变化
|
||||||
}
|
bool isVerifyupd = true;
|
||||||
|
if (row.RowState == DataRowState.Modified)
|
||||||
|
{
|
||||||
|
object originalValue = row[col.FieldName, DataRowVersion.Original];
|
||||||
|
object currentValue = row[col.FieldName, DataRowVersion.Current];
|
||||||
|
isVerifyupd = !object.Equals(originalValue, currentValue);
|
||||||
|
}
|
||||||
|
|
||||||
// 插入数据到临时表
|
if (isVerifyupd)
|
||||||
DataRow dr = tvp.NewRow();
|
{
|
||||||
dr["billdocument_id"] = key;
|
// 解析金额
|
||||||
dr["showday"] = col.ColumnName; // 列名如 "2025-03-06"
|
decimal newAmount = 0m;
|
||||||
dr["amount"] = newAmount;
|
if (row[col.FieldName] != DBNull.Value && !string.IsNullOrWhiteSpace(row[col.FieldName].ToString()))
|
||||||
tvp.Rows.Add(dr);
|
{
|
||||||
|
decimal.TryParse(row[col.FieldName].ToString(), out newAmount);
|
||||||
|
}
|
||||||
|
// 插入数据到临时表
|
||||||
|
DataRow dr = tvp.NewRow();
|
||||||
|
dr["billdocument_id"] = key;
|
||||||
|
dr["showday"] = col.FieldName; //列名如 "2025-03-06"
|
||||||
|
dr["amount"] = newAmount;
|
||||||
|
tvp.Rows.Add(dr);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4521,13 +4521,14 @@ namespace Lskj.PubBill
|
|||||||
//保存完成后所有数据源进行拼接执行保存
|
//保存完成后所有数据源进行拼接执行保存
|
||||||
if (tvp != null && tvp.Rows.Count > 0)
|
if (tvp != null && tvp.Rows.Count > 0)
|
||||||
{
|
{
|
||||||
foreach (DataRow dataRow in tvp.Rows)
|
foreach (DataRow item in tvp.Rows)
|
||||||
{
|
{
|
||||||
dataRow["lblOrderNo"] = billNo;
|
item["lblOrderNo"] = billNo;
|
||||||
}
|
}
|
||||||
// 调用存储过程保存变更数据
|
// 调用存储过程保存变更数据
|
||||||
string msg;
|
string msg;
|
||||||
int ret = SaveDayPlanChanges(tvp, out msg);
|
int ret = SaveDayPlanChanges(tvp, out msg);
|
||||||
|
OnGcMainDataSourceChanged(gcMain.GridView, null);//手动刷新日期合计数据源
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
@@ -5046,18 +5047,15 @@ namespace Lskj.PubBill
|
|||||||
if (DateColumnList.Count > 0 && DateColumnList[0].Tag is DateTime dateTime)
|
if (DateColumnList.Count > 0 && DateColumnList[0].Tag is DateTime dateTime)
|
||||||
{
|
{
|
||||||
string billNo = this.lblOrderNo.Text;
|
string billNo = this.lblOrderNo.Text;
|
||||||
if (!string.IsNullOrEmpty(billNo))
|
this.gcMain.GridView.DataSourceChanged -= OnGcMainDataSourceChanged;
|
||||||
{
|
DataTable dataTable = gcMain.GridControl.DataSource as DataTable;
|
||||||
this.gcMain.GridView.DataSourceChanged -= OnGcMainDataSourceChanged;
|
//DataTable dataMain = dataTable.Copy();
|
||||||
DataTable dataTable = gcMain.GridControl.DataSource as DataTable;
|
string sqlValue = "select * from RD_worktimetab where 1 = 1";
|
||||||
//DataTable dataMain = dataTable.Copy();
|
sqlValue = $"{sqlValue} and lblOrderNo = '{billNo}' and showday >= '{dateTime.ToString("yyyy-MM-dd")}'";
|
||||||
string sqlValue = "select * from RD_worktimetab where 1 = 1";
|
DataTable dataDayPlan = BaseImpl.GetDataTableResult(sqlValue);
|
||||||
sqlValue = $"{sqlValue} and lblOrderNo = '{billNo}' and showday >= '{dateTime.ToString("yyyy-MM-dd")}'";
|
MergeMainDataWithDayPlan(dataTable, dataDayPlan, dateTime);
|
||||||
DataTable dataDayPlan = BaseImpl.GetDataTableResult(sqlValue);
|
//gcMain.GridControl.DataSource = dataMain;
|
||||||
MergeMainDataWithDayPlan(dataTable, dataDayPlan, dateTime);
|
this.gcMain.GridView.DataSourceChanged += OnGcMainDataSourceChanged;
|
||||||
//gcMain.GridControl.DataSource = dataMain;
|
|
||||||
this.gcMain.GridView.DataSourceChanged += OnGcMainDataSourceChanged;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5084,7 +5082,7 @@ namespace Lskj.PubBill
|
|||||||
// 创建 TVP 参数,名称必须与存储过程参数一致
|
// 创建 TVP 参数,名称必须与存储过程参数一致
|
||||||
SqlParameter tvpParam = new SqlParameter("@DayPlanChanges", SqlDbType.Structured)
|
SqlParameter tvpParam = new SqlParameter("@DayPlanChanges", SqlDbType.Structured)
|
||||||
{
|
{
|
||||||
TypeName = "dbo.DayPlanChangeType",
|
TypeName = "dbo.DayPlanChangeTVP",
|
||||||
Value = tvp
|
Value = tvp
|
||||||
};
|
};
|
||||||
// 构造参数数组
|
// 构造参数数组
|
||||||
@@ -5111,7 +5109,7 @@ namespace Lskj.PubBill
|
|||||||
string rightPrimaryKey = "billdocument_id";
|
string rightPrimaryKey = "billdocument_id";
|
||||||
string dateField = "showday";
|
string dateField = "showday";
|
||||||
string amountField = "amount";
|
string amountField = "amount";
|
||||||
string topPrimaryKey = this.BillModel.PrimaryDetailKey;
|
string topPrimaryKey = BillModel.DetailUUIDKey;
|
||||||
DateTime endDate = startDate.AddDays(7); // 计算结束日期
|
DateTime endDate = startDate.AddDays(7); // 计算结束日期
|
||||||
// **1. 预索引 dataDayPlan 数据(billdocument_id -> 该 key 相关的所有行)**
|
// **1. 预索引 dataDayPlan 数据(billdocument_id -> 该 key 相关的所有行)**
|
||||||
Dictionary<string, List<DataRow>> dayPlanMap = new Dictionary<string, List<DataRow>>();
|
Dictionary<string, List<DataRow>> dayPlanMap = new Dictionary<string, List<DataRow>>();
|
||||||
@@ -5185,7 +5183,7 @@ namespace Lskj.PubBill
|
|||||||
string rightPrimaryKey = "billdocument_id";
|
string rightPrimaryKey = "billdocument_id";
|
||||||
string dateField = "showday";
|
string dateField = "showday";
|
||||||
string amountField = "amount";
|
string amountField = "amount";
|
||||||
string topPrimaryKey = this.BillModel.PrimaryDetailKey;
|
string topPrimaryKey = BillModel.DetailUUIDKey;
|
||||||
DateTime endDate = startDate.AddDays(7); // 计算结束日期
|
DateTime endDate = startDate.AddDays(7); // 计算结束日期
|
||||||
// **1. 预索引 dataDayPlan 数据(billdocument_id -> 该 key 相关的所有行)**
|
// **1. 预索引 dataDayPlan 数据(billdocument_id -> 该 key 相关的所有行)**
|
||||||
Dictionary<string, List<DataRow>> dayPlanMap = new Dictionary<string, List<DataRow>>();
|
Dictionary<string, List<DataRow>> dayPlanMap = new Dictionary<string, List<DataRow>>();
|
||||||
|
|||||||
Reference in New Issue
Block a user