SVN r817
SVN-Revision: r817
This commit is contained in:
+560
-184
@@ -1095,13 +1095,13 @@ namespace Lskj.PubBill
|
||||
else if (this.BillModel.DetailTreeTable)
|
||||
{
|
||||
(this.gcMain as TreeGridControlEx).SetGridRightMenus(dtBaseGridRightMenus, this.SysModel, OnGridViewRightCallBack, this.ControlObj, (this.gcMain as TreeGridControlEx).MenuStrip);
|
||||
(this.gcMain as TreeGridControlEx).TreeListObj.DoubleClick += new EventHandler(OnGridViewDoubleClick);
|
||||
//(this.gcMain as TreeGridControlEx).TreeListObj.DoubleClick += new EventHandler(OnGridViewDoubleClick);//和下方行单击事件功能一致(TreeListObj_MouseClick),同样的sql会重复执行。先注释 2025-06-30
|
||||
(this.gcMain as TreeGridControlEx).TreeListObj.ShowingEditor += new CancelEventHandler(OnGridViewShowingEditor);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.gcMain.SetGridRightMenus(dtBaseGridRightMenus, this.SysModel, OnGridViewRightCallBack, this.ControlObj);
|
||||
this.gcMain.GridView.DoubleClick += new EventHandler(OnGridViewDoubleClick);
|
||||
//this.gcMain.GridView.DoubleClick += new EventHandler(OnGridViewDoubleClick);//和下方行单击事件功能一致(OngcMainRowCellClick),同样的sql会重复执行。先注释 2025-06-30
|
||||
this.gcMain.GridView.ShowingEditor += new CancelEventHandler(OnGridViewShowingEditor);
|
||||
}
|
||||
|
||||
@@ -1655,6 +1655,11 @@ namespace Lskj.PubBill
|
||||
{
|
||||
this.tb_buttom.OnDetailSaveGridCallBack += Tab_OnDetailSaveGridCallBack;
|
||||
}
|
||||
if (this.BillModel.RefreshSelectedDetail)
|
||||
{
|
||||
//配置了只刷新当前页签后,切换页签时刷新
|
||||
this.tb_buttom.TabControlObj.SelectedPageChanged += TabControlObj_SelectedPageChanged;
|
||||
}
|
||||
this.tb_buttom.InitTabPages(attachModels);
|
||||
this.tb_buttom.OnRightCallback += new EventHandler(OnButtomRightCallBack);
|
||||
}
|
||||
@@ -1682,6 +1687,8 @@ namespace Lskj.PubBill
|
||||
XtraTabPage tabPage = new XtraTabPage();
|
||||
tabPage.Text = model.UserName;
|
||||
|
||||
|
||||
|
||||
#region 加载快速添加
|
||||
if (!string.IsNullOrWhiteSpace(model.CodeInputSql) && !string.IsNullOrWhiteSpace(model.CodeInputCaption))
|
||||
{
|
||||
@@ -1742,12 +1749,37 @@ namespace Lskj.PubBill
|
||||
{
|
||||
dtBaseGridRightMenus = BaseModuleImpl.GetBaseGridRightMenus("BILLSOURCE_" + model.FormKey);
|
||||
}
|
||||
|
||||
//节点编号
|
||||
if (!string.IsNullOrWhiteSpace(model.SourceKeyFieldName)) (gridControl as TreeGridControlEx).TreeListObj.KeyFieldName = model.SourceKeyFieldName;
|
||||
//父节点编号
|
||||
if (!string.IsNullOrWhiteSpace(model.SourceParentFieldName)) (gridControl as TreeGridControlEx).TreeListObj.ParentFieldName = model.SourceParentFieldName;
|
||||
|
||||
gridControl.SetReadOnlyColumns(dtSourceColumns, GridCustomColumnStruct.BillSourceGridView + model.FormKey);
|
||||
gridControl.SetGridRowColors(dtBaseGridRowColors);
|
||||
gridControl.SetGridRightMenus(dtBaseGridRightMenus, this.SysModel, OnGridControlRightCallback);
|
||||
//gridControl.SetGridRightMenus(dtBaseGridRightMenus, this.SysModel, OnGridControlRightCallback);
|
||||
(gridControl as TreeGridControlEx).SetGridRightMenus(dtBaseGridRightMenus, this.SysModel, OnGridControlRightCallback);
|
||||
unionModel.TreeGridControlObj = gridControl as TreeGridControlEx;
|
||||
unionModel.TreeGridControlObj.TreeListObj.FocusedNodeChanged += new DevExpress.XtraTreeList.FocusedNodeChangedEventHandler(OnTreeListObjFocusedNodeChanged);
|
||||
|
||||
if (model.SourceType == 4)
|
||||
{
|
||||
//来源拖拽到主表
|
||||
if (this.BillModel.DetailTreeTable)
|
||||
{
|
||||
TreeGridDragTree treeGridDragTree = new TreeGridDragTree((gridControl as TreeGridControlEx).TreeListObj, (this.gcMain as TreeGridControlEx).TreeListObj);
|
||||
treeGridDragTree.CanDragParentNode = true;
|
||||
treeGridDragTree.NeglectingNodes = true;
|
||||
treeGridDragTree.OnDragComplete += TreeGridDragTree_OnDragComplete;
|
||||
}
|
||||
else
|
||||
{
|
||||
TreeGridDragGrid treeGridDragGrid = new TreeGridDragGrid((gridControl as TreeGridControlEx).TreeListObj, this.gcMain.GridView);
|
||||
treeGridDragGrid.OnDragComplete += TreeGridDragGrid_OnDragComplete;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
tabPage.Controls.Add(gridControl);
|
||||
}
|
||||
else
|
||||
@@ -1817,6 +1849,13 @@ namespace Lskj.PubBill
|
||||
#region 加载来源明细
|
||||
XtraTabPage tabDetail = new XtraTabPage();
|
||||
|
||||
if (SystemInfo.Instance.GridRowFontSize > 0)
|
||||
{
|
||||
//页签大小
|
||||
FontFamily fontFamily = tabDetail.Appearance.Header.Font.FontFamily;
|
||||
tabDetail.Appearance.Header.Font = new System.Drawing.Font(fontFamily, SystemInfo.Instance.GridRowFontSize);
|
||||
}
|
||||
|
||||
DataRow[] detailColumns = detailTable.Select("sourceId=" + model.Id);
|
||||
|
||||
|
||||
@@ -2075,6 +2114,193 @@ namespace Lskj.PubBill
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 单据来源拖拽到主表明细中(树表格拖拽到树表格)
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void TreeGridDragTree_OnDragComplete(object sender, TreeGridDragTreeGridArgs e)
|
||||
{
|
||||
if (e.GridViewSelectRows == null || e.GridViewSelectRows.Length == 0) return;
|
||||
|
||||
try
|
||||
{
|
||||
if (this.CanAddDetailRow())
|
||||
{
|
||||
if (this.BillModel.DisableDragPrompt || MessageUtil.Show(ResourceKeys.DragSelectRow, MessageBoxButtons.YesNo) == DialogResult.Yes)
|
||||
{
|
||||
XtraTabPage tabPage = this.xtc_left_container.SelectedTabPage;
|
||||
BillSourceUnionModel unionModel = tabPage.Tag as BillSourceUnionModel;
|
||||
TreeListNode focusedNode = e.SourceTreeList.FocusedNode;
|
||||
var selectedNodes = e.SourceTreeList.Selection;
|
||||
int i = 0;
|
||||
foreach (TreeListNode treeNode in e.SourceTreeList.Selection)
|
||||
{
|
||||
// 拖动多行,所以明细数据改为动态查询
|
||||
DataRowView dataRowView = e.SourceTreeList.GetDataRecordByNode(treeNode) as DataRowView;
|
||||
DataRow rowItem = dataRowView != null ? dataRowView.Row : null;
|
||||
this.RefreshSourceDetail(tabPage.Tag as BillSourceUnionModel);
|
||||
DataTable details = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceRowParam(rowItem, unionModel.ModelObj.DetailSql));
|
||||
if (unionModel.ModelObj.sourceDetailType != "1" && unionModel.GridDetailControlObj.GridView != null && focusedNode == treeNode)
|
||||
{
|
||||
//details = unionModel.GridDetailControlObj.GridView.GetGridViewFilteredAndSortedDataToDataTable();
|
||||
details = unionModel.GridDetailControlObj.GridControl.DataSource as DataTable;
|
||||
}
|
||||
else if (unionModel.ModelObj.sourceDetailType == "1" && unionModel.TreeGridDetailControlObj.TreeListObj != null && focusedNode == treeNode)
|
||||
{
|
||||
details = unionModel.TreeGridDetailControlObj.TreeListObj.DataSource as DataTable;
|
||||
}
|
||||
//details = GetGridViewFilteredAndSortedDataToDataTable(unionModel.GridDetailControlObj.GridView);
|
||||
//DataTable details = unionModel.GridDetailControlObj.GridView.DataController.GetAllFilteredAndSortedRows().OfType<DataRow>().CopyToDataTable();
|
||||
this.ControlObj.SetAllControlValue(rowItem, true);
|
||||
|
||||
if (unionModel.ModelObj.CadDragDetail)
|
||||
{
|
||||
this.AddMultiRowToGridView(details, unionModel);
|
||||
|
||||
if (BillModel.drgFinishHide == "1" && unionModel.GridDetailControlObj != null)
|
||||
{
|
||||
var detailRows = details.AsEnumerable().ToList();
|
||||
foreach (var detailRow in detailRows)
|
||||
{
|
||||
if (unionModel.GridDetailControlObj.GridControl.DataSourceTable().Rows.IndexOf(detailRow) >= 0)
|
||||
{
|
||||
unionModel.GridDetailControlObj.GridControl.DataSourceTable().Rows.Remove(detailRow);
|
||||
}
|
||||
if (unionModel.GridDetailDetailControlObj != null && unionModel.GridDetailDetailControlObj.GridControl.DataSourceTable().Rows.IndexOf(detailRow) >= 0)
|
||||
{
|
||||
unionModel.GridDetailDetailControlObj.GridControl.DataSourceTable().Rows.Remove(detailRow);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//单据为新增状态,根据最后一行的内容设置红蓝单据
|
||||
if (!this.BillModel.SaveState && e.SourceTreeList.Selection.Count - 1 == i && rowItem.Table.Columns.Contains(this.BillModel.RtagidKey) && this.BillModel.BillFlag != 0 && this.BillModel.BillFlag != 1)
|
||||
{
|
||||
if ("0".Equals(rowItem[this.BillModel.RtagidKey] + ""))
|
||||
{
|
||||
this.rdBlue.Checked = true;
|
||||
this.OnBlueStateClick(null, null);
|
||||
}
|
||||
if ("1".Equals(rowItem[this.BillModel.RtagidKey] + ""))
|
||||
{
|
||||
this.rdRed.Checked = true;
|
||||
this.OnRedStateClick(null, null);
|
||||
}
|
||||
}
|
||||
i++;
|
||||
}
|
||||
if (unionModel.ModelObj.DragAndSave && e.SourceTreeList.Selection.Count == i && i != 0)
|
||||
{
|
||||
this.OnBillSaveClick(null, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogHelper.Instance.WriteError(ex);
|
||||
LogUtil.WriteError("单据来源表格拖拽完出错!", ex);
|
||||
MessageUtil.Show(ResourceKeys.OperFault);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 单据来源拖拽到主表明细中(树表格拖拽到表格)
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void TreeGridDragGrid_OnDragComplete(object sender, TreeGridDragGridArgs e)
|
||||
{
|
||||
if (e.GridViewSelectRows == null || e.GridViewSelectRows.Length == 0) return;
|
||||
|
||||
try
|
||||
{
|
||||
if (this.CanAddDetailRow())
|
||||
{
|
||||
if (this.BillModel.DisableDragPrompt || MessageUtil.Show(ResourceKeys.DragSelectRow, MessageBoxButtons.YesNo) == DialogResult.Yes)
|
||||
{
|
||||
XtraTabPage tabPage = this.xtc_left_container.SelectedTabPage;
|
||||
BillSourceUnionModel unionModel = tabPage.Tag as BillSourceUnionModel;
|
||||
int i = 0;
|
||||
TreeListNode focusedNode = e.TreeListObj.FocusedNode;
|
||||
var selectedNodes = e.TreeListObj.Selection;
|
||||
foreach (TreeListNode treeNode in e.TreeListObj.Selection)
|
||||
{
|
||||
// 拖动多行,所以明细数据改为动态查询
|
||||
DataRowView dataRowView = e.TreeListObj.GetDataRecordByNode(treeNode) as DataRowView;
|
||||
DataRow rowItem = dataRowView != null ? dataRowView.Row : null;
|
||||
this.RefreshSourceDetail(tabPage.Tag as BillSourceUnionModel);
|
||||
DataTable details = BillImpl.GetDataTableResult(ReplaceHelper.ReplaceRowParam(rowItem, unionModel.ModelObj.DetailSql));
|
||||
if (unionModel.ModelObj.sourceDetailType != "1" && unionModel.GridDetailControlObj.GridView != null && focusedNode == treeNode)
|
||||
{
|
||||
details = unionModel.GridDetailControlObj.GridControl.DataSource as DataTable;
|
||||
}
|
||||
else if (unionModel.ModelObj.sourceDetailType == "1" && unionModel.TreeGridDetailControlObj.TreeListObj != null && focusedNode == treeNode)
|
||||
{
|
||||
details = unionModel.TreeGridDetailControlObj.TreeListObj.DataSource as DataTable;
|
||||
}
|
||||
this.ControlObj.SetAllControlValue(rowItem, true);
|
||||
|
||||
if (unionModel.ModelObj.CadDragDetail)
|
||||
{
|
||||
this.AddMultiRowToGridView(details, unionModel);
|
||||
|
||||
if (BillModel.drgFinishHide == "1" && unionModel.GridDetailControlObj != null)
|
||||
{
|
||||
var detailRows = details.AsEnumerable().ToList();
|
||||
foreach (var detailRow in detailRows)
|
||||
{
|
||||
if (unionModel.GridDetailControlObj.GridControl.DataSourceTable().Rows.IndexOf(detailRow) >= 0)
|
||||
{
|
||||
unionModel.GridDetailControlObj.GridControl.DataSourceTable().Rows.Remove(detailRow);
|
||||
}
|
||||
if (unionModel.GridDetailDetailControlObj != null && unionModel.GridDetailDetailControlObj.GridControl.DataSourceTable().Rows.IndexOf(detailRow) >= 0)
|
||||
{
|
||||
unionModel.GridDetailDetailControlObj.GridControl.DataSourceTable().Rows.Remove(detailRow);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//单据为新增状态,根据最后一行的内容设置红蓝单据
|
||||
if (!this.BillModel.SaveState && e.TreeListObj.Selection.Count - 1 == i && rowItem.Table.Columns.Contains(this.BillModel.RtagidKey) && this.BillModel.BillFlag != 0 && this.BillModel.BillFlag != 1)
|
||||
{
|
||||
if ("0".Equals(rowItem[this.BillModel.RtagidKey] + ""))
|
||||
{
|
||||
this.rdBlue.Checked = true;
|
||||
this.OnBlueStateClick(null, null);
|
||||
}
|
||||
if ("1".Equals(rowItem[this.BillModel.RtagidKey] + ""))
|
||||
{
|
||||
this.rdRed.Checked = true;
|
||||
this.OnRedStateClick(null, null);
|
||||
}
|
||||
}
|
||||
i++;
|
||||
}
|
||||
if (unionModel.ModelObj.DragAndSave && e.TreeListObj.Selection.Count == i && i != 0)
|
||||
{
|
||||
this.OnBillSaveClick(null,null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogHelper.Instance.WriteError(ex);
|
||||
LogUtil.WriteError("单据来源表格拖拽完出错!", ex);
|
||||
MessageUtil.Show(ResourceKeys.OperFault);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
@@ -3330,104 +3556,102 @@ namespace Lskj.PubBill
|
||||
{
|
||||
WaitForm.ShowForm();
|
||||
|
||||
if (unionModel.ModelObj.SourceType == 3)
|
||||
{
|
||||
TreeListNode focusedNode = unionModel.TreeGridControlObj.TreeListObj.FocusedNode;
|
||||
unionModel.GridDetailControlObj.GridControl.DataSource = focusedNode == null
|
||||
? new DataTable() : BillImpl.GetDataTableResult(ReplaceHelper.ReplaceNodeParam(focusedNode, unionModel.ModelObj.DetailSql));
|
||||
|
||||
if (this._isLoadRightControlValue)
|
||||
{
|
||||
string masterSql = focusedNode == null ? BillModel.MasterSql.Replace("{" + BillModel.PrimaryKey + "}", this.lblOrderNo.Text) : ReplaceHelper.ReplaceNodeParam(focusedNode, BillModel.MasterSql);
|
||||
// 加载单据信息
|
||||
this.SetBillStatus(BillImpl.GetDataRowResult(masterSql));
|
||||
}
|
||||
DataRow rowItem = unionModel.GridControlObj.GridView.GetFocusedDataRow();
|
||||
//unionModel.GridDetailControlObj.GridControl.DataSource = rowItem == null
|
||||
// ? new DataTable() : BillImpl.GetDataTableResult(ReplaceHelper.ReplaceRowParam(rowItem, unionModel.ModelObj.DetailSql));
|
||||
if (unionModel.ModelObj.SourceType == 3 || unionModel.ModelObj.SourceType == 4)
|
||||
{
|
||||
rowItem = unionModel.TreeGridControlObj.GetViewFocusedDataRow();
|
||||
}
|
||||
|
||||
|
||||
string DetailSql = unionModel.ModelObj.DetailSql;
|
||||
DetailSql = ReplaceHelper.ReplaceUserInfo(DetailSql);
|
||||
DetailSql = ReplaceHelper.ReplaceWhereCond(DetailSql);
|
||||
DetailSql = ReplaceHelper.ReplaceRowParam(rowItem, DetailSql);
|
||||
if (unionModel.SearchObj != null)
|
||||
DetailSql = unionModel.SearchObj.ReplaceParentControlValue(DetailSql);
|
||||
|
||||
if (unionModel.ModelObj.sourceDetailType == "1")
|
||||
{
|
||||
unionModel.TreeGridDetailControlObj.SetGridViewDataSource(rowItem == null
|
||||
? new DataTable() : BillImpl.GetDataTableResult(DetailSql));
|
||||
}
|
||||
else
|
||||
{
|
||||
DataRow rowItem = unionModel.GridControlObj.GridView.GetFocusedDataRow();
|
||||
//unionModel.GridDetailControlObj.GridControl.DataSource = rowItem == null
|
||||
// ? new DataTable() : BillImpl.GetDataTableResult(ReplaceHelper.ReplaceRowParam(rowItem, unionModel.ModelObj.DetailSql));
|
||||
|
||||
string DetailSql = unionModel.ModelObj.DetailSql;
|
||||
DetailSql = ReplaceHelper.ReplaceUserInfo(DetailSql);
|
||||
DetailSql = ReplaceHelper.ReplaceWhereCond(DetailSql);
|
||||
DetailSql = ReplaceHelper.ReplaceRowParam(rowItem, DetailSql);
|
||||
if (unionModel.SearchObj != null)
|
||||
DetailSql = unionModel.SearchObj.ReplaceParentControlValue(DetailSql);
|
||||
|
||||
if (unionModel.ModelObj.sourceDetailType == "1")
|
||||
//有复选框的页签在刷新前清空选中行,否则合计在刷新数据源后不会自带改变
|
||||
if (unionModel.GridDetailControlObj.GridView.OptionsSelection.MultiSelectMode == GridMultiSelectMode.CheckBoxRowSelect && unionModel.GridDetailControlObj.GridView.OptionsSelection.MultiSelect == true)
|
||||
{
|
||||
unionModel.TreeGridDetailControlObj.SetGridViewDataSource(rowItem == null
|
||||
? new DataTable() : BillImpl.GetDataTableResult(DetailSql));
|
||||
}
|
||||
else
|
||||
{
|
||||
//有复选框的页签在刷新前清空选中行,否则合计在刷新数据源后不会自带改变
|
||||
if (unionModel.GridDetailControlObj.GridView.OptionsSelection.MultiSelectMode == GridMultiSelectMode.CheckBoxRowSelect && unionModel.GridDetailControlObj.GridView.OptionsSelection.MultiSelect == true)
|
||||
{
|
||||
//int[] selectIndexs = unionModel.GridDetailControlObj.GridView.GetSelectedRows();
|
||||
unionModel.GridDetailControlObj.GridView.ClearSelection();
|
||||
}
|
||||
|
||||
unionModel.GridDetailControlObj.GridControl.DataSource = rowItem == null
|
||||
? new DataTable() : BillImpl.GetDataTableResult(DetailSql);
|
||||
//int[] selectIndexs = unionModel.GridDetailControlObj.GridView.GetSelectedRows();
|
||||
unionModel.GridDetailControlObj.GridView.ClearSelection();
|
||||
}
|
||||
|
||||
|
||||
DataTable table = null;
|
||||
if (unionModel.ModelObj.sourceDetailType == "1")
|
||||
{
|
||||
table = unionModel.TreeGridDetailControlObj.TreeListObj.DataSource as DataTable;
|
||||
}
|
||||
else
|
||||
{
|
||||
table = unionModel.GridDetailControlObj.GridControl.DataSource as DataTable;
|
||||
}
|
||||
|
||||
if (table != null && !table.Columns.Contains("_check"))
|
||||
{
|
||||
table.Columns.Add("_check", typeof(bool));
|
||||
foreach (DataRow row in table.Rows)
|
||||
{
|
||||
row["_check"] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (table != null)
|
||||
{
|
||||
UpdateSummaryData(table);
|
||||
}
|
||||
|
||||
if (unionModel.ModelObj.SourceType == 2 && this._isLoadRightControlValue)
|
||||
{
|
||||
string masterSql = rowItem == null ? BillModel.MasterSql.Replace("{" + BillModel.PrimaryKey + "}", this.lblOrderNo.Text) : ReplaceHelper.ReplaceRowParam(rowItem, BillModel.MasterSql);
|
||||
// 加载单据信息
|
||||
this.SetBillStatus(BillImpl.GetDataRowResult(masterSql));
|
||||
}
|
||||
|
||||
if (tb_buttom.TabControlObj.TabPages.Count > 0)
|
||||
{
|
||||
for (int i = 0; i < this.tb_buttom.TabControlObj.TabPages.Count; i++)
|
||||
{
|
||||
XtraTabPage page = this.tb_buttom.TabControlObj.TabPages[i];
|
||||
if (i == 0) continue;
|
||||
if (rowItem != null && page != null)
|
||||
{
|
||||
this.SetTabPageDataSource(page, rowItem);
|
||||
}
|
||||
}
|
||||
//foreach (XtraTabPage AttachPage in this.tb_buttom.TabControlObj.TabPages)
|
||||
//{
|
||||
// GridDetailModel model = tb_buttom.GetGridDetailModel(AttachPage);
|
||||
// if (model == null) continue;
|
||||
// string sqlValue = ReplaceHelper.ReplaceRowParam(rowItem, model.DetailSql);
|
||||
// this.tb_buttom.SetGridDataSource(AttachPage, sqlValue);
|
||||
//}
|
||||
}
|
||||
DataTable gridTable = (this.gcMain.GridControl.DataSource as DataTable).TrimDeleteRows();
|
||||
gridTable.OrderBy(this.BillModel.DetailOrderField);
|
||||
unionModel.GridDetailControlObj.GridControl.DataSource = rowItem == null
|
||||
? new DataTable() : BillImpl.GetDataTableResult(DetailSql);
|
||||
}
|
||||
|
||||
|
||||
DataTable table = null;
|
||||
if (unionModel.ModelObj.sourceDetailType == "1")
|
||||
{
|
||||
table = unionModel.TreeGridDetailControlObj.TreeListObj.DataSource as DataTable;
|
||||
}
|
||||
else
|
||||
{
|
||||
table = unionModel.GridDetailControlObj.GridControl.DataSource as DataTable;
|
||||
}
|
||||
|
||||
if (table != null && !table.Columns.Contains("_check"))
|
||||
{
|
||||
table.Columns.Add("_check", typeof(bool));
|
||||
foreach (DataRow row in table.Rows)
|
||||
{
|
||||
row["_check"] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (table != null)
|
||||
{
|
||||
UpdateSummaryData(table);
|
||||
}
|
||||
|
||||
if (unionModel.ModelObj.SourceType == 2 && this._isLoadRightControlValue)
|
||||
{
|
||||
string masterSql = rowItem == null ? BillModel.MasterSql.Replace("{" + BillModel.PrimaryKey + "}", this.lblOrderNo.Text) : ReplaceHelper.ReplaceRowParam(rowItem, BillModel.MasterSql);
|
||||
// 加载单据信息
|
||||
this.SetBillStatus(BillImpl.GetDataRowResult(masterSql));
|
||||
}
|
||||
else if (unionModel.ModelObj.SourceType == 3 && this._isLoadRightControlValue)
|
||||
{
|
||||
//string masterSql = focusedNode == null ? BillModel.MasterSql.Replace("{" + BillModel.PrimaryKey + "}", this.lblOrderNo.Text) : ReplaceHelper.ReplaceNodeParam(focusedNode, BillModel.MasterSql);
|
||||
string masterSql = rowItem == null ? BillModel.MasterSql.Replace("{" + BillModel.PrimaryKey + "}", this.lblOrderNo.Text) : ReplaceHelper.ReplaceRowParam(rowItem, BillModel.MasterSql);
|
||||
// 加载单据信息
|
||||
this.SetBillStatus(BillImpl.GetDataRowResult(masterSql));
|
||||
}
|
||||
|
||||
if (tb_buttom.TabControlObj.TabPages.Count > 0)
|
||||
{
|
||||
for (int i = 0; i < this.tb_buttom.TabControlObj.TabPages.Count; i++)
|
||||
{
|
||||
XtraTabPage page = this.tb_buttom.TabControlObj.TabPages[i];
|
||||
if (i == 0) continue;
|
||||
if (rowItem != null && page != null)
|
||||
{
|
||||
this.SetTabPageDataSource(page, rowItem);
|
||||
}
|
||||
}
|
||||
//foreach (XtraTabPage AttachPage in this.tb_buttom.TabControlObj.TabPages)
|
||||
//{
|
||||
// GridDetailModel model = tb_buttom.GetGridDetailModel(AttachPage);
|
||||
// if (model == null) continue;
|
||||
// string sqlValue = ReplaceHelper.ReplaceRowParam(rowItem, model.DetailSql);
|
||||
// this.tb_buttom.SetGridDataSource(AttachPage, sqlValue);
|
||||
//}
|
||||
}
|
||||
DataTable gridTable = (this.gcMain.GridControl.DataSource as DataTable).TrimDeleteRows();
|
||||
gridTable.OrderBy(this.BillModel.DetailOrderField);
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -4480,6 +4704,21 @@ namespace Lskj.PubBill
|
||||
this.ControlObj.ResetControlValue();
|
||||
}
|
||||
}
|
||||
if (model.ModelObj.SourceType == 3 && this._isLoadRightControlValue)
|
||||
{
|
||||
DataRow rowItem = null;
|
||||
if (model.GridControlObj.DataRowCount() > 0)
|
||||
{
|
||||
DataRow selectRow = model.TreeGridControlObj.GetViewFocusedDataRow(); ;
|
||||
rowItem = BillImpl.GetDataRowResult(ReplaceHelper.ReplaceRowParam(selectRow, BillModel.MasterSql));
|
||||
}
|
||||
// 加载单据信息
|
||||
this.SetBillStatus(rowItem);
|
||||
if (rowItem == null)
|
||||
{
|
||||
this.ControlObj.ResetControlValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// <para>说明:获取单据管理的单据来源标签</para>
|
||||
@@ -5847,6 +6086,18 @@ namespace Lskj.PubBill
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 切换下方附加模块页签时,刷新当前页签
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void TabControlObj_SelectedPageChanged(object sender, TabPageChangedEventArgs e)
|
||||
{
|
||||
if (this.tb_buttom.TabControlObj.TabPages.Count > 1)
|
||||
{
|
||||
SetDetailGridDataSource();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>说明:获取底部多标签数据</para>
|
||||
@@ -5873,12 +6124,20 @@ namespace Lskj.PubBill
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
if (this.BillModel.RefreshSelectedDetail && page != tb_buttom.TabControlObj.SelectedTabPage)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (rowItem != null && page != null)
|
||||
{
|
||||
this.SetTabPageDataSource(page, rowItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// <para>说明:设置表格数据</para>
|
||||
/// <para>创建人:龚宇超</para>
|
||||
@@ -6491,12 +6750,10 @@ namespace Lskj.PubBill
|
||||
if (unionModel.GridDetailControlObj.GridControl.DataSourceTable().Rows.IndexOf(detailRow) >= 0)
|
||||
{
|
||||
unionModel.GridDetailControlObj.GridControl.DataSourceTable().Rows.Remove(detailRow);
|
||||
//RemoveRowitem.Add(rowItem);
|
||||
}
|
||||
if (unionModel.GridDetailDetailControlObj != null && unionModel.GridDetailDetailControlObj.GridControl.DataSourceTable().Rows.IndexOf(detailRow) >= 0)
|
||||
{
|
||||
unionModel.GridDetailDetailControlObj.GridControl.DataSourceTable().Rows.Remove(detailRow);
|
||||
//RemoveRowitem.Add(rowItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6520,6 +6777,10 @@ namespace Lskj.PubBill
|
||||
}
|
||||
i++;
|
||||
}
|
||||
if (unionModel.ModelObj.DragAndSave && rows.Length == i && i != 0)
|
||||
{
|
||||
this.OnBillSaveClick(null, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8472,7 +8733,7 @@ namespace Lskj.PubBill
|
||||
if (unionModel.ModelObj.CadDragDetail)
|
||||
{
|
||||
//清空当前主单明细表数据
|
||||
((this.gcMain as TreeGridControlEx).TreeListObj.DataSource as DataTable).Clear();
|
||||
//((this.gcMain as TreeGridControlEx).TreeListObj.DataSource as DataTable).Clear();
|
||||
(this.gcMain as TreeGridControlEx).TreeListObj.OptionsBehavior.Editable = true;
|
||||
this.AddMultiRowToGridView(details, unionModel);
|
||||
}
|
||||
@@ -8493,6 +8754,10 @@ namespace Lskj.PubBill
|
||||
}
|
||||
i++;
|
||||
}
|
||||
if (unionModel.ModelObj.DragAndSave && rows.Length == i && i != 0)
|
||||
{
|
||||
this.OnBillSaveClick(null, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8622,21 +8887,6 @@ namespace Lskj.PubBill
|
||||
MessageUtil.Show("扫码长度过长,请重新扫码");
|
||||
return;
|
||||
}
|
||||
int Quantity = 0;
|
||||
|
||||
FrmAdd frmAdd = new FrmAdd();
|
||||
if (frmAdd.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
Quantity = frmAdd.Quantity;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
textEdit.EditValue = "";
|
||||
textEdit.Focus();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
//获取选中行
|
||||
DataRow MainRowItem = gcMain.GridView.GetFocusedDataRow();
|
||||
@@ -8644,88 +8894,214 @@ namespace Lskj.PubBill
|
||||
{
|
||||
MainRowItem = gcMain.GridControl.DataSourceTable().NewRow();
|
||||
}
|
||||
//获取红蓝单据
|
||||
string DocumentColor = this.rdBlue.Checked ? "0" : this.rdRed.Checked ? "1" : "";
|
||||
//数量,默认为1
|
||||
int Quantity = 1;
|
||||
/*
|
||||
A:弹框输入数量
|
||||
B;不弹框,默认数量为1
|
||||
C:配置了扫码关联模块,根据数量sql结果。判断是否弹窗。数量默认为1
|
||||
|
||||
|
||||
|
||||
List<string> Parameter = this.BillModel.CodeExecuteParameter.Split(',').ToList();
|
||||
for (int i = 0; i < Parameter.Count; i++)
|
||||
this.BillModel.ScanCodeFixedPrefix为条码前缀,扫码内容前缀和配置相同,默认为B
|
||||
*/
|
||||
string Type = string.Empty;
|
||||
if (!string.IsNullOrWhiteSpace(this.BillModel.ScanCodeFixedPrefix) && inputText.StartsWith(this.BillModel.ScanCodeFixedPrefix))
|
||||
{
|
||||
string item = Parameter[i];
|
||||
if (item.Contains("{DocumentColor}"))
|
||||
{
|
||||
string DocumentColor = this.rdBlue.Checked ? "0" : this.rdRed.Checked ? "1" : "";
|
||||
item = ReplaceHelper.ReplaceParamToValue(item, "{DocumentColor}", DocumentColor);
|
||||
}
|
||||
if (item.Contains("{amount}"))
|
||||
{
|
||||
item = Quantity + "";
|
||||
}
|
||||
//替换单据号
|
||||
item = ReplaceHelper.ReplaceParamToValue(item, "{" + this.BillModel.PrimaryKey + "}", this.lblOrderNo.Text);
|
||||
//替换选中行(没有就传空)
|
||||
item = ReplaceHelper.ReplaceRowParam(MainRowItem, item);
|
||||
//替换扫码内容
|
||||
item = ReplaceHelper.ReplaceParamToValue(item, "{value}", inputText);
|
||||
Parameter[i] = item;
|
||||
Type = "B";
|
||||
}
|
||||
|
||||
|
||||
List<string> procParams = ReplaceHelper.GetParamFields(this.BillModel.CodeExecuteSql);
|
||||
List<SqlParameter> sqlParamList = new List<SqlParameter>();
|
||||
string[] paramStr = procParams[0].Replace("{", "").Replace("}", "").Split(',');
|
||||
SqlParameter pMsg = new SqlParameter("@msg", SqlDbType.VarChar, 2000);
|
||||
//SqlParameter pMaount = new SqlParameter("@maount", SqlDbType.Int);
|
||||
|
||||
for (int i = 0; i < paramStr.Length; i++)
|
||||
else
|
||||
{
|
||||
string item = paramStr[i];
|
||||
if (paramStr[i].Equals("@msg", StringComparison.OrdinalIgnoreCase))
|
||||
string Sql = string.Format("select line_str from wms_ScanCodeLinetab a where modid='{0}' and hl_tig='{1}'", this.SysModel.ModuleCode, DocumentColor);
|
||||
Type = SqlHelper.ExecuteScalar(Sql) + "";
|
||||
if (string.IsNullOrWhiteSpace(Type))
|
||||
{
|
||||
pMsg.Direction = ParameterDirection.InputOutput;
|
||||
pMsg.Value = Parameter.Count > i ? string.IsNullOrEmpty(Parameter[i]) ? "" : Parameter[i] : "";
|
||||
sqlParamList.Add(pMsg);
|
||||
}
|
||||
else
|
||||
{
|
||||
string paramStr1 = paramStr[i];
|
||||
SqlParameter param = new SqlParameter(string.Format("{0}", paramStr1), SqlDbType.VarChar);
|
||||
param.Value = Parameter[i];
|
||||
sqlParamList.Add(param);
|
||||
MessageUtil.Show("扫码配置错误,请联系朗速服务人员");
|
||||
return;
|
||||
}
|
||||
}
|
||||
SqlParameter returnValue = new SqlParameter("@return", SqlDbType.Int, 4);
|
||||
returnValue.Direction = ParameterDirection.ReturnValue;
|
||||
int result;
|
||||
sqlParamList.Add(returnValue);
|
||||
switch (Type.ToUpper())
|
||||
{
|
||||
case "A":
|
||||
|
||||
try
|
||||
{
|
||||
result = MainImpl.ExecProcedure(this.BillModel.CodeExecuteSql.Replace(procParams[0], "").Trim(), sqlParamList.ToArray());
|
||||
}
|
||||
catch (SqlException sex)
|
||||
{
|
||||
string Message = ErrorMessage.PromptErrorMessage(sex);
|
||||
MessageUtil.Show(Message, sex.Message);
|
||||
return;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
string Message = ErrorMessage.PromptErrorMessage(ex);
|
||||
MessageUtil.Show(Message, ex.Message);
|
||||
return;
|
||||
}
|
||||
int rValue = Convert.ToInt32(returnValue.Value);
|
||||
string varchar = pMsg.Value + "";
|
||||
switch (rValue)
|
||||
{
|
||||
case 1:
|
||||
if (string.IsNullOrWhiteSpace(varchar))
|
||||
FrmAdd frmAdd = new FrmAdd();
|
||||
if (frmAdd.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
//刷新当前单据
|
||||
this.SetBillStatus(BillImpl.GetDataRowResult(string.Format("select * from {0} where {1}='{2}'", BillModel.MasterTable, BillModel.PrimaryKey, this.lblOrderNo.Text)));
|
||||
Quantity = frmAdd.Quantity;
|
||||
}
|
||||
else
|
||||
{
|
||||
//刷新返回的单据号
|
||||
this.lblOrderNo.Text = varchar;
|
||||
this.SetBillStatus(BillImpl.GetDataRowResult(string.Format("select * from {0} where {1}='{2}
|
||||
textEdit.EditValue = "";
|
||||
textEdit.Focus();
|
||||
return;
|
||||
}
|
||||
this.ExecuteWcanningSQL(MainRowItem, Quantity + "", DocumentColor, inputText);
|
||||
break;
|
||||
case "B":
|
||||
this.ExecuteWcanningSQL(MainRowItem, Quantity + "", DocumentColor, inputText);
|
||||
break;
|
||||
case "C":
|
||||
if (!string.IsNullOrWhiteSpace(this.BillModel.ScanCodeModuleCode))
|
||||
{
|
||||
//根据传入的模块号获取模块信息
|
||||
DataRow modelRow = MainImpl.GetSystemdllTab(this.BillModel.ScanCodeModuleCode);//获取模块信息
|
||||
if (modelRow == null)
|
||||
{
|
||||
MessageUtil.Show("模块编号[" + this.BillModel.ScanCodeModuleCode + "],配置错误!\r\n该模块信息未找到!");
|
||||
return;
|
||||
}
|
||||
if (modelRow.Table.Columns.Contains("countSql") && !string.IsNullOrWhiteSpace(modelRow["countSql"] + ""))
|
||||
{
|
||||
string sql = modelRow["countSql"] + "";
|
||||
sql = ReplaceHelper.ReplaceUserInfo(sql);
|
||||
sql = ReplaceHelper.ReplaceParamToValue(sql, "{value}", inputText);
|
||||
string num = SqlHelper.ExecuteScalar(sql) + "";
|
||||
num = this.IsNumberic(num) ? num : "0";
|
||||
if (int.Parse(num) == 0)
|
||||
{
|
||||
MessageUtil.Show("未检测到扫码信息存在,请检查相应前序业务!");
|
||||
}
|
||||
else if (int.Parse(num) == 1)
|
||||
{
|
||||
this.ExecuteWcanningSQL(MainRowItem, Quantity + "", DocumentColor, inputText);
|
||||
}
|
||||
else if (int.Parse(num) > 1)
|
||||
{
|
||||
FrmScanCodeAssociation frmScanCodeAssociation = new FrmScanCodeAssociation(modelRow, inputText);
|
||||
if (frmScanCodeAssociation.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
string Codes = frmScanCodeAssociation.StringCodes;
|
||||
this.ExecuteWcanningSQL(MainRowItem, Quantity + "", DocumentColor, Codes);
|
||||
}
|
||||
else
|
||||
{
|
||||
textEdit.EditValue = "";
|
||||
textEdit.Focus();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageUtil.Show("扫码配置错误");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//刷新单据管理(sourceType=2)
|
||||
foreach (XtraTabPage tabPage in this.xtc_left_container.TabPages)
|
||||
{
|
||||
BillSourceUnionModel model = tabPage.Tag as BillSourceUnionModel;
|
||||
if (model != null && model.GridControlObj != null && model.ModelObj.SourceType == 2)
|
||||
{
|
||||
this.RefreshSource(model);
|
||||
}
|
||||
}
|
||||
//刷新下方配置的附件模块
|
||||
this.OngcMainRowCellClick(null, null);
|
||||
|
||||
textEdit.EditValue = "";
|
||||
textEdit.Focus();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 执行扫码的存储过程
|
||||
/// </summary>
|
||||
/// <param name="MainRowItem">明细选中行</param>
|
||||
///<param name="Quantity">数量</param>
|
||||
///<param name="DocumentColor">红蓝单据字段</param>
|
||||
///<param name="Codes">串码,多个用;隔开</param>
|
||||
public void ExecuteWcanningSQL(DataRow MainRowItem, string Quantity, string DocumentColor, string Codes)
|
||||
{
|
||||
int j = 0;
|
||||
foreach (string code in Codes.TrimEnd(';').Split(';'))
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(code)) continue;
|
||||
List<string> Parameter = this.BillModel.CodeExecuteParameter.Split(',').ToList();
|
||||
for (int i = 0; i < Parameter.Count; i++)
|
||||
{
|
||||
string item = Parameter[i];
|
||||
if (item.Contains("{DocumentColor}"))
|
||||
{
|
||||
item = ReplaceHelper.ReplaceParamToValue(item, "{DocumentColor}", DocumentColor);
|
||||
}
|
||||
if (item.Contains("{amount}"))
|
||||
{
|
||||
item = Quantity + "";
|
||||
}
|
||||
//替换单据号
|
||||
item = ReplaceHelper.ReplaceParamToValue(item, "{" + this.BillModel.PrimaryKey + "}", this.lblOrderNo.Text);
|
||||
//替换选中行(没有就传空)
|
||||
item = ReplaceHelper.ReplaceRowParam(MainRowItem, item);
|
||||
//替换扫码内容
|
||||
item = ReplaceHelper.ReplaceParamToValue(item, "{value}", code);
|
||||
Parameter[i] = item;
|
||||
}
|
||||
|
||||
|
||||
List<string> procParams = ReplaceHelper.GetParamFields(this.BillModel.CodeExecuteSql);
|
||||
List<SqlParameter> sqlParamList = new List<SqlParameter>();
|
||||
string[] paramStr = procParams[0].Replace("{", "").Replace("}", "").Split(',');
|
||||
SqlParameter pMsg = new SqlParameter("@msg", SqlDbType.VarChar, 2000);
|
||||
|
||||
for (int i = 0; i < paramStr.Length; i++)
|
||||
{
|
||||
string item = paramStr[i];
|
||||
if (paramStr[i].Equals("@msg", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
pMsg.Direction = ParameterDirection.InputOutput;
|
||||
pMsg.Value = Parameter.Count > i ? string.IsNullOrEmpty(Parameter[i]) ? "" : Parameter[i] : "";
|
||||
sqlParamList.Add(pMsg);
|
||||
}
|
||||
else
|
||||
{
|
||||
string paramStr1 = paramStr[i];
|
||||
SqlParameter param = new SqlParameter(string.Format("{0}", paramStr1), SqlDbType.VarChar);
|
||||
param.Value = Parameter[i];
|
||||
sqlParamList.Add(param);
|
||||
}
|
||||
}
|
||||
SqlParameter returnValue = new SqlParameter("@return", SqlDbType.Int, 4);
|
||||
returnValue.Direction = ParameterDirection.ReturnValue;
|
||||
int result;
|
||||
sqlParamList.Add(returnValue);
|
||||
|
||||
try
|
||||
{
|
||||
result = MainImpl.ExecProcedure(this.BillModel.CodeExecuteSql.Replace(procParams[0], "").Trim(), sqlParamList.ToArray());
|
||||
}
|
||||
catch (SqlException sex)
|
||||
{
|
||||
string Message = ErrorMessage.PromptErrorMessage(sex);
|
||||
MessageUtil.Show(Message, sex.Message);
|
||||
return;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
string Message = ErrorMessage.PromptErrorMessage(ex);
|
||||
MessageUtil.Show(Message, ex.Message);
|
||||
return;
|
||||
}
|
||||
int rValue = Convert.ToInt32(returnValue.Value);
|
||||
string varchar = pMsg.Value + "";
|
||||
switch (rValue)
|
||||
{
|
||||
case 1:
|
||||
if (string.IsNullOrWhiteSpace(varchar))
|
||||
{
|
||||
//刷新当前单据
|
||||
if (j == Codes.TrimEnd(';').Split(';').Length - 1)
|
||||
{
|
||||
this.SetBillStatus(BillImpl.GetDataRowResult(string.Format("select * from {0} where {1}='{2}'", BillModel.MasterTable, BillModel.PrimaryKey, this.lblOrderNo.Text)));
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user