Files
lserp_cs_6.0/插件库/Lskj.PubVoucherPush/FrmMain.cs
T
cyf ab56a9bcf7 基线 SVN r240
SVN-Revision: r240
2025-02-06 06:46:06 +00:00

736 lines
39 KiB
C#

using DevExpress.Utils;
using DevExpress.XtraEditors;
using DevExpress.XtraTab;
using Lskj.Business;
using Lskj.Business.Impl;
using Lskj.Control;
using Lskj.Control.Model;
using Lskj.Core;
using Lskj.Data;
using Lskj.Model;
using Lskj.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Lskj.PubVoucherPush
{
public partial class FrmMain : BaseForm
{
/// <summary>
/// 模块类
/// </summary>
public DynamicVoucher SysModel;
/// <summary>
/// 主程序的基础模型
/// </summary>
public ModuleModel MoudleMainObj;
/// <summary>
/// 右键参数
/// </summary>
public MyControl rightControl;
/// <summary>
/// 右侧表格行中的模块号,和对应的左侧页签号
/// </summary>
public Dictionary<string, int> TabInformation = new Dictionary<string, int>();
/// <summary>
/// 主键
/// </summary>
public string ParmaryKey;
/// <summary>
/// 开始日期
/// </summary>
public DateTime StartDate
{
get
{
return new DateTime(zdrq.TextEdit.DateTime.Year, zdrq.TextEdit.DateTime.Month, 1);
}
}
/// <summary>
/// 结束日期
/// </summary>
public DateTime EndDate
{
get
{
return new DateTime(zdrq.TextEdit.DateTime.Year, zdrq.TextEdit.DateTime.Month, 1).AddMonths(1).AddDays(-1);
}
}
public FrmMain()
{
InitializeComponent();
}
/// <summary>
/// <para>说明:窗口初始化</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-11-21 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
protected override void OnLoad(EventArgs e)
{
WaitForm.ShowForm();
try
{
if (SysModel != null)
{
//隐藏标签
this.xtc_container.ShowTabHeader = DefaultBoolean.False;
this.InitializationConditions();
this.InitializeLeftTable();
this.InitSpliterPosition();
this.splitMain.SplitterPositionChanged += SplitMain_SplitterPositionChanged;
this.btnCondSearch.Click += BtnCondSearch_Click;
this.OnGridLeftRowClick(null, null);
}
}
catch (Exception ex)
{
//MessageUtil.Show(ex.Message + "\r\n" + ex.StackTrace);
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
finally
{
Lskj.Control.Model.AutoSizeChange.ControllInitializeSize(this);
}
WaitForm.HideForm();
}
/// <summary>
/// 初始化上方条件
/// </summary>
private void InitializationConditions()
{
DateTime now = DateTime.Now;
zdrq.EditText = new DateTime(now.Year, now.Month, 1) + "";
zdrq.TextEdit.Properties.DisplayFormat.FormatString = "yyyy年MM月";
zdrq.TextEdit.Properties.DisplayFormat.FormatType = FormatType.Custom;
zdrq.TextEdit.Properties.EditFormat.FormatString = "yyyy年MM月";
zdrq.TextEdit.Properties.EditFormat.FormatType = FormatType.Custom;
zdrq.TextEdit.Properties.Mask.EditMask = "yyyy年MM月";
zdrq.TextEdit.Properties.Mask.UseMaskAsDisplayFormat = true;
zdrq.TextEdit.Properties.VistaCalendarViewStyle = DevExpress.XtraEditors.VistaCalendarViewStyle.YearView;
//右键条件参数
pzz.TextField = "ctext";
pzz.ValueField = "csign";
pzz.ValueMember = "csign";
try
{
pzz.SetDataSource(SqlHelper.ExecuteDataTable("select * from UFDATA_001_2024.dbo.dsign"));
pzz.TextEdit.SelectedIndex = 0;
}
catch (Exception ex)
{
}
fjs.EditText = "0";
jfkmhb.EditText = "1";
dfkmhb.EditText = "1";
jffmhb.EditText = "1";
dffmhb.EditText = "1";
tbhxls.EditText = "1";
sfxjhd.EditText = "1";
this.rightControl = new MyControl();
rightControl.ParentPanel = pl_top;
}
/// <summary>
/// 初始化左侧表
/// </summary>
private void InitializeLeftTable()
{
//获得模块属性
this.MoudleMainObj = new ModuleModel(MainImpl.GetSystemdllTab(this.SysModel.ModuleCode));//获取主模块构建类
//获取主键
this.ParmaryKey = BaseImpl.GetBasePrimaryKey(this.SysModel.ModuleCode);
//获取设置左侧表列数据
DataTable LeftGridColumns = BaseModuleImpl.GetBaseGridColumns(this.SysModel.ModuleCode);
this.gridLeft.SetReadOnlyColumns(LeftGridColumns);
DataTable rightMenus = BaseModuleImpl.GetBaseGridRightMenus(this.SysModel.ModuleCode);
this.gridLeft.SetGridRightMenus(rightMenus, this.SysModel, OnGridViewRightCallBack, rightControl);
this.gridLeft.gridViewRightMenu.AllowRightCallback = true;
this.gridLeft.gridViewRightMenu.OnBeforeHandleParamsCallback += OnBeforeHandleParamsCallback;
//设置左侧数据源
string menuSql = this.MoudleMainObj.MenuSql.Replace("{year}", StartDate.Year.ToString()).Replace("{month}", StartDate.Month.ToString());
this.gridLeft.gridControl.DataSource = BaseImpl.GetDataTableResult(menuSql);
//左侧表格行改变,刷新右侧表格列
this.gridLeft.GridView.RowClick += OnGridLeftRowClick;
}
/// <summary>
/// <para>说明:初始化分割条位置</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-12-15</para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
private void InitSpliterPosition()
{
string spliterPosition = IniHelper.Read(string.Format("PubVoucherPush__splitMain{0}", this.SysModel.ModuleCode));
if (!string.IsNullOrEmpty(spliterPosition)) this.splitMain.SplitterPosition = Convert.ToInt32(spliterPosition);
}
/// <summary>
/// <para>说明:拿到底部表格数据</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-11-21 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <returns>List&lt;GridDetailModel&gt;.</returns>
private List<GridDetailModel> GetDetails(string mainModuleCode)
{
List<GridDetailModel> details = new List<GridDetailModel>();//表格明细对象的集合
DataTable table = BaseModuleImpl.GetBaseDetailPages(mainModuleCode);// 根据传入的模块编号获得基础档案底部标签的数据
foreach (DataRow item in table.Rows)
{
DataTable gridColumns = ReportImpl.GetReportDetailColumns(mainModuleCode, item["id"] + "");//获取报表明细列
details.Add(new GridDetailModel(item, gridColumns, GridCustomColumnStruct.BaseDetailGridView));
}
return details;
}
/// <summary>
/// 左侧表点击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void OnGridLeftRowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
{
try
{
DataRow rowItem = this.gridLeft.GetViewFocusedDataRow();
//刷新右侧上方表格列
if (rowItem != null && !string.IsNullOrEmpty(MoudleMainObj.MainModuleCodeField) && this.gridLeft.GridView.Columns.ColumnByFieldName(MoudleMainObj.MainModuleCodeField) != null)
{
string mainModuleCode = rowItem[MoudleMainObj.MainModuleCodeField] + "";
int value = 0;
if (TabInformation.TryGetValue(mainModuleCode, out value))
{
//页签中已经存在,直接切换页签
this.xtc_container.SelectedTabPageIndex = value;
}
else
{
//添加新页签
GridControlEx sendGridEx = new GridControlEx();
sendGridEx.Dock = DockStyle.Fill;
//创建新的XtraTabControl
XtraTabControl innerTabControl = new XtraTabControl();
innerTabControl.Dock = DockStyle.Fill;
//创建"待推送"页签
XtraTabPage tabPageFailed = new XtraTabPage();
tabPageFailed.Text = "待推送";
ModuleGridDetailEx failedGridControlEx = new ModuleGridDetailEx(); // 创建新的GridControlEx实例
failedGridControlEx.Dock = DockStyle.Fill;
ModuleModel SysModel = new ModuleModel(MainImpl.GetSystemdllTab(mainModuleCode));
DynamicModel dyncModel = new DynamicModuleModel(new string[] { "待推送", ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, "2", mainModuleCode, "0" });
failedGridControlEx.GridDetailList = GetDetails(mainModuleCode);// 底部多标签表格数据
SysModel.CsHasDefultSearch = false;
//failedGridControlEx.ModuleGridObj.SearchObj = rightControl;
failedGridControlEx.InitializeControl(SysModel, dyncModel);
failedGridControlEx.ModuleGridObj.GridControlObj.gridViewRightMenu.OnBeforeHandleParamsCallback += OnBeforeHandleParamsCallback;
failedGridControlEx.ModuleGridObj.VisibleSearchPanel = false;
failedGridControlEx.ModuleGridObj.GridControlObj.ParentControl = rightControl;
failedGridControlEx.ModuleGridObj.GridControlObj.gridViewRightMenu.SetRightCallback(OnGridViewRightCallBack);
failedGridControlEx.ModuleGridObj.GridControlObj.gridViewRightMenu.AllowRightCallback = true;
tabPageFailed.Controls.Add(failedGridControlEx);
innerTabControl.TabPages.Add(tabPageFailed);
tabPageFailed.Tag = failedGridControlEx;
//创建"推送成功"页签
XtraTabPage tabPageSuccess = new XtraTabPage();
tabPageSuccess.Text = "推送成功";
DynamicModel dyncModelnew = new DynamicModuleModel(new string[] { "推送成功", ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, "2", mainModuleCode, "0" });
sendGridEx.Model = dyncModelnew;
sendGridEx.SetReadOnlyColumns(BaseModuleImpl.GetBaseGridColumns(mainModuleCode));
ModuleModel sendModel = new ModuleModel(MainImpl.GetSystemdllTab(mainModuleCode));
sendGridEx.Tag = sendModel;
tabPageSuccess.Controls.Add(sendGridEx);
innerTabControl.TabPages.Add(tabPageSuccess);
tabPageSuccess.Tag = sendGridEx;
//设置上方右键菜单
sendGridEx.ParentControl = rightControl;
DataTable rightMenus = BaseModuleImpl.GetBaseGridRightMenus(mainModuleCode);
sendGridEx.SetGridRightMenus(rightMenus, this.SysModel, OnGridViewRightCallBack, rightControl);
sendGridEx.gridViewRightMenu.AllowRightCallback = true;
sendGridEx.gridViewRightMenu.OnBeforeHandleParamsCallback += OnBeforeHandleParamsCallback;
//将innerTabControl添加到新的页签中
XtraTabPage page = new XtraTabPage();
page.Tag = innerTabControl; // 将innerTabControl作为Tag
page.Dock = DockStyle.Fill;
page.Controls.Add(innerTabControl);
this.xtc_container.TabPages.Add(page);
this.TabInformation.Add(mainModuleCode, this.xtc_container.TabPages.Count - 1);
this.xtc_container.SelectedTabPageIndex = this.xtc_container.TabPages.Count - 1;
}
//刷新右侧
BtnCondSearch();
//this.BtnCondSearch_Click(null, null);
}
}
catch (Exception ex)
{
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
}
/// <summary>
/// 右键执行后刷新数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void OnGridViewRightCallBack(object sender, EventArgs e)
{
//BtnCondSearch();
this.BtnCondSearch_Click(null, null);
}
/// <summary>
/// 分割条改变时
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void SplitMain_SplitterPositionChanged(object sender, EventArgs e)
{
IniHelper.Write(string.Format("PubVoucherPush__splitMain{0}", this.SysModel.ModuleCode), this.splitMain.SplitterPosition + "");
}
/// <summary>
/// 搜索按钮点击后刷新当前选中页签的数据源
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BtnCondSearch_Click(object sender, EventArgs e)
{
int selectIndex = this.gridLeft.GridView.FocusedRowHandle;
string menuSql = this.MoudleMainObj.MenuSql.Replace("{year}", StartDate.Year.ToString()).Replace("{month}", StartDate.Month.ToString());
this.gridLeft.gridControl.DataSource = BaseImpl.GetDataTableResult(menuSql);
this.gridLeft.GridView.FocusedRowHandle = selectIndex;
BtnCondSearch();
}
/// <summary>
/// 右键参数替换前执行
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void OnBeforeHandleParamsCallback(object sender, HandleParamsArgs e)
{
string fieldValue = e.FieldValue;
string item = e.ParamItem;
DataRow detailRow = null;
DataRow focusedRow = e.FocusedRow;
DataRow leftFocusedRow = this.gridLeft.GridView.GetFocusedDataRow();
DataTable sourceTable = this.gridLeft.GridControl.DataSourceTable();
DataRow[] rowDatas = null;
string mainModuleCode = "";
string insertType = "";
string billdocumentField = "";
string operateDateField = "";
if (sourceTable.Rows.IndexOf(e.FocusedRow) >= 0)
{
leftFocusedRow = e.FocusedRow;
mainModuleCode = leftFocusedRow.Table.Columns.Contains("DllCoid") ? leftFocusedRow["DllCoid"] + "" : "";
insertType = leftFocusedRow.Table.Columns.Contains("insertType") ? leftFocusedRow["insertType"] + "" : "";
billdocumentField = leftFocusedRow.Table.Columns.Contains("billdocument_id") ? leftFocusedRow["billdocument_id"] + "" : "";
operateDateField = leftFocusedRow.Table.Columns.Contains("operateDate") ? leftFocusedRow["operateDate"] + "" : "";
if (!string.IsNullOrEmpty(mainModuleCode))
{
ModuleModel moduleModel = new ModuleModel(MainImpl.GetSystemdllTab(mainModuleCode));
string TopSql = moduleModel.MenuSql;
if (e.paramList[5].Equals("{Operateway}", StringComparison.OrdinalIgnoreCase))
{
TopSql = TopSql.Replace("{sdate}", StartDate.ToString("yyyy-MM-dd")).Replace("{edate}", EndDate.ToString("yyyy-MM-dd"));
TopSql = ReplaceHelper.ReplaceWhereCond(TopSql) + string.Format(" and (convert(date,convert(varchar(10),pzdate,120))>=convert(date,'{0}')) and (convert(date,convert(varchar(10),pzdate,120))<=convert(date,'{1}') and(ISNULL(issendvoucher,0) = '0' OR (ISNULL(issendvoucher,0) = '1' AND ISNULL(issendsuccess,0) = '0'))) ", StartDate.ToString("yyyy-MM-dd"), EndDate.ToString("yyyy-MM-dd"));
DataTable detailTable = BaseImpl.GetDataTableResult(TopSql);
rowDatas = detailTable.Select();
}
else if (e.paramList[5].Equals("{Operateways}", StringComparison.OrdinalIgnoreCase))
{
TopSql = TopSql.Replace("{sdate}", StartDate.ToString("yyyy-MM-dd")).Replace("{edate}", EndDate.ToString("yyyy-MM-dd"));
TopSql = ReplaceHelper.ReplaceWhereCond(TopSql) + string.Format(" and (convert(date,convert(varchar(10),pzdate,120))>=convert(date,'{0}')) and (convert(date,convert(varchar(10),pzdate,120))<=convert(date,'{1}') and ISNULL(issendvoucher,0) = '1' and ISNULL(issendsuccess,0) = '1') ", StartDate.ToString("yyyy-MM-dd"), EndDate.ToString("yyyy-MM-dd"));
DataTable detailTable = BaseImpl.GetDataTableResult(TopSql);
rowDatas = detailTable.Select();
}
}
}
if (rowDatas == null)
{
rowDatas = e.Rows;
}
if (rowDatas != null && rowDatas.Length > 0)
{
detailRow = rowDatas[0];
}
if (!string.IsNullOrWhiteSpace(item) && item.Equals("MergeExec_{billdocument_Id}", StringComparison.OrdinalIgnoreCase))
{
if (string.IsNullOrEmpty(insertType) || !insertType.Equals("0") || rowDatas == null || rowDatas.Length == 0 || string.IsNullOrEmpty(billdocumentField))
{
if (!string.IsNullOrEmpty(insertType) && !insertType.Equals("0"))
{
fieldValue = "";
}
else
{
fieldValue = item;
}
}
else
{
fieldValue = ReplaceHelper.ReplaceRowParam(rowDatas, "{" + billdocumentField + "}");
}
}
else if (!string.IsNullOrWhiteSpace(item) && item.Equals("MergeExec_{operateDate}", StringComparison.OrdinalIgnoreCase))
{
if (string.IsNullOrEmpty(insertType) || !insertType.Equals("0") || rowDatas == null || rowDatas.Length == 0 || string.IsNullOrEmpty(operateDateField))
{
if (!string.IsNullOrEmpty(insertType) && !insertType.Equals("0"))
{
fieldValue = "";
}
else
{
fieldValue = item;
}
}
else
{
fieldValue = ReplaceHelper.ReplaceRowParam(rowDatas, "{" + operateDateField + "}");
}
}
if (!string.IsNullOrWhiteSpace(item) && item.TrimStart().StartsWith("MergeExec_", StringComparison.OrdinalIgnoreCase))
{
fieldValue = ReplaceHelper.ReplaceRowParam(rowDatas, fieldValue.Replace("MergeExec_", "", true));
}
else if (item.TrimStart().StartsWith("{vouvher_submitCond}", StringComparison.OrdinalIgnoreCase) && rightControl != null)
{
string text = "";
if (item.TrimStart().StartsWith("{vouvher_submitCond}_", StringComparison.OrdinalIgnoreCase))
{
text = "{StartDate};{EndDate};{pzz};{fjs};{jfkmhb};{jffmhb};{tbhxls};{dfkmhb};{dffmhb};{sfxjhd};{zdrq};{billdocument_id};{issendsuccess};{tabName};1";
}
else if (item.TrimStart().StartsWith("{vouvher_submitCond}", StringComparison.OrdinalIgnoreCase))
{
if (string.IsNullOrEmpty(insertType) || insertType.Equals("0"))
{
text = "{StartDate};{EndDate};{pzz};{fjs};{jfkmhb};{jffmhb};{tbhxls};{dfkmhb};{dffmhb};{sfxjhd};{zdrq};{billdocument_id};{issendsuccess};{tabName};0";
}
else
{
text = "{StartDate};{EndDate};{pzz};{fjs};{jfkmhb};{jffmhb};{tbhxls};{dfkmhb};{dffmhb};{sfxjhd};{zdrq};{billdocument_id};{issendsuccess};{tabName};1";
}
}
System.Windows.Forms.Control controlObj = null;
System.Windows.Forms.Control controlGroupBox = rightControl.ParentPanel.Controls.Cast<System.Windows.Forms.Control>().FirstOrDefault(x => x.Name.Equals("GroupRightData", StringComparison.OrdinalIgnoreCase));
if (controlGroupBox != null)
{
if (controlGroupBox is GroupBox && controlObj == null)
{
controlObj = controlGroupBox.Controls.Cast<System.Windows.Forms.Control>().FirstOrDefault(x => x.Name.Equals("zdrq", StringComparison.OrdinalIgnoreCase));
}
}
if (controlObj != null && controlObj is LabelDateEdit)
{
LabelDateEdit zdrqControl = controlObj as LabelDateEdit;
DateTime startDateTime = new DateTime(zdrqControl.TextEdit.DateTime.Year, zdrqControl.TextEdit.DateTime.Month, 1);
DateTime endDateTime = new DateTime(zdrqControl.TextEdit.DateTime.Year, zdrqControl.TextEdit.DateTime.Month, 1).AddMonths(1).AddDays(-1);
fieldValue = text.Replace("{StartDate}", startDateTime.ToString("yyyy-MM-dd")).Replace("{EndDate}", endDateTime.ToString("yyyy-MM-dd"));
}
fieldValue = rightControl.ReplaceFixedControlValue(fieldValue);
}
if (leftFocusedRow != null)
{
fieldValue = ReplaceHelper.ReplaceRowParam(leftFocusedRow, fieldValue);
}
if (focusedRow != null)
{
fieldValue = ReplaceHelper.ReplaceRowParam(focusedRow, fieldValue);
}
if (detailRow != null)
{
fieldValue = ReplaceHelper.ReplaceRowParam(detailRow, fieldValue);
}
e.FieldValue = fieldValue;
}
/// <summary>
/// 搜索方法
/// </summary>
/// <param name="isClick"></param>
private void BtnCondSearch()
{
try
{
WaitForm.ShowForm(ResourceKeys.Handing);
DataRow rowItem = this.gridLeft.GetViewFocusedDataRow();
if (rowItem != null)
{
//上方
XtraTabPage tabPage = this.xtc_container.SelectedTabPage;
if (tabPage.Tag is XtraTabControl)
{
XtraTabControl innerTabControl = tabPage.Tag as XtraTabControl;
foreach (XtraTabPage SelectPage in innerTabControl.TabPages)
{
if (SelectPage.Tag is GridControlEx)
{
GridControlEx frmMainModule = SelectPage.Tag as GridControlEx;
string TopSql = (frmMainModule.Tag as ModuleModel).MenuSql;
TopSql = TopSql.Replace("{sdate}", StartDate.ToString("yyyy-MM-dd")).Replace("{edate}", StartDate.ToString("yyyy-MM-dd"));
TopSql = ReplaceHelper.ReplaceWhereCond(TopSql) + string.Format(" and (convert(date,convert(varchar(10),pzdate,120))>=convert(date,'{0}')) and (convert(date,convert(varchar(10),pzdate,120))<=convert(date,'{1}') and ISNULL(issendvoucher,0) = '1' and ISNULL(issendsuccess,0) = '1') ", StartDate.ToString("yyyy-MM-dd"), EndDate.ToString("yyyy-MM-dd"));
//TopSql = ReplaceHelper.ReplaceWhereCond(TopSql) + string.Format(" and (convert(date,convert(varchar(10),pzdate,120))>=convert(date,'{0}')) and (convert(date,convert(varchar(10),pzdate,120))<=convert(date,'{1}')) ", StartDate.EditText, EndDate.EditText);
frmMainModule.SetGridViewDataSource(SqlHelper.ExecuteDataTable(TopSql));
string CountText = "(" + frmMainModule.DataRowCount() + "条)";
SelectPage.Text = "推送成功" + CountText;
}
else if (SelectPage.Tag is ModuleGridDetailEx)
{
ModuleGridDetailEx moduleGridDetailEx = SelectPage.Tag as ModuleGridDetailEx;
string TopSql = moduleGridDetailEx.SysModel.MenuSql;
TopSql = TopSql.Replace("{sdate}", StartDate.ToString("yyyy-MM-dd")).Replace("{edate}", EndDate.ToString("yyyy-MM-dd"));
TopSql = ReplaceHelper.ReplaceWhereCond(TopSql) + string.Format(" and (convert(date,convert(varchar(10),pzdate,120))>=convert(date,'{0}')) and (convert(date,convert(varchar(10),pzdate,120))<=convert(date,'{1}') and(ISNULL(issendvoucher,0) = '0' OR (ISNULL(issendvoucher,0) = '1' AND ISNULL(issendsuccess,0) = '0'))) ", StartDate.ToString("yyyy-MM-dd"), EndDate.ToString("yyyy-MM-dd"));
//TopSql = ReplaceHelper.ReplaceWhereCond(TopSql) + string.Format(" and (convert(date,convert(varchar(10),pzdate,120))>=convert(date,'{0}')) and (convert(date,convert(varchar(10),pzdate,120))<=convert(date,'{1}')) ", StartDate.EditText, EndDate.EditText);
moduleGridDetailEx.ModuleGridObj.GridControlObj.SetGridViewDataSource(SqlHelper.ExecuteDataTable(TopSql));
string CountText = "(" + moduleGridDetailEx.ModuleGridObj.GridControlObj.DataRowCount() + "条)";
SelectPage.Text = "待推送" + CountText;
}
}
//下方
//frmMainModule.BottomGridControlEx.SetGridViewDataSource(SqlHelper.ExecuteDataTable(BottomSql));
}
}
}
catch (Exception ex)
{
string Message = ErrorMessage.PromptErrorMessage(ex);
MessageUtil.Show(Message, ex.Message);
}
finally
{
WaitForm.HideForm();
}
}
/// <summary>
/// <para>说明:获取查询条件</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-11-22 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="model">The model.</param>
/// <param name="rowItem">The row item.</param>
/// <returns>System.String.</returns>
protected string GetSearchSql(GridDetailModel model, DataRow rowItem, bool isLeft = false)
{
string fieldName = !string.IsNullOrEmpty(model.UnionParentField) && rowItem.Table.Columns.Contains(model.UnionParentField) ? model.UnionParentField : this.ParmaryKey;
string sqlValue = model.IsReadOnly || model.IsChart ? model.DetailSql : model.SystemModel.MenuSql;
sqlValue = ReplaceHelper.ReplaceRowParam(rowItem, sqlValue);
if (ReplaceHelper.IsSelect(sqlValue) && !string.IsNullOrEmpty(model.UnionValue))
{
string Conditions = string.Empty;
//是左侧选中行,并且没有替换字段,则使用主表选中行
Conditions = rowItem[fieldName] + "";
sqlValue = ReplaceHelper.ReplaceWhereCond(sqlValue) + string.Format(" and {0}='{1}'", model.UnionValue, Conditions);
sqlValue += string.Format(" and dDate >= '{0}' and dDate <= '{1}' ", StartDate.ToString("yyyy-MM-dd"), EndDate.ToString("yyyy-MM-dd"));
}
if (!string.IsNullOrEmpty(model.UnionCond))
{
string UnionCond = ReplaceHelper.ReplaceRowParam(rowItem, model.UnionCond);
sqlValue += UnionCond;
}
return sqlValue;
}
/// <summary>
/// 一键推送
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_AllStep_Click(object sender, EventArgs e)
{
try
{
if (this.xtc_container.SelectedTabPage != null && this.xtc_container.SelectedTabPage.Controls.Count > 0 && this.xtc_container.SelectedTabPage.Controls[0] is GridControlEx)
{
GridControlEx frmMainModule = this.xtc_container.SelectedTabPage.Controls[0] as GridControlEx;
if (frmMainModule != null && frmMainModule.GridControl.ContextMenuStrip != null)
{
ToolStripMenuItem toolStripMenu = frmMainModule.GridControl.ContextMenuStrip.Items.Cast<ToolStripMenuItem>().Where(n => n.Text.Equals("推送凭证")).FirstOrDefault();
if (toolStripMenu != null && toolStripMenu.Tag != null && toolStripMenu.Tag is GridRightMenuModel)
{
GridRightMenuModel gridRightMenu = toolStripMenu.Tag as GridRightMenuModel;
if ((gridRightMenu.ActionType + "").Equals("1") && !string.IsNullOrEmpty(gridRightMenu.Action) && gridRightMenu.Action.Equals("Data_InsertU8WithBillNoAPI{@OperatorId,@Operateway,@operatedate,@billNo,@msg}"))
{
string operatorId = ERPInfo.Instance.UserId;
string operateWay = gridRightMenu.DllParam2;
string operateDateField = gridRightMenu.DllParam3.Replace("{", "").Replace("}", "");
string billNoField = gridRightMenu.DllParam4.Replace("{", "").Replace("}", "");
string operateDate = "";
string billNo = "";
DataTable sourceTab = frmMainModule.GridControl.DataSourceTable();
int[] selectIndexs = frmMainModule.GridView.GetSelectedRows();
foreach (int selectIndex in selectIndexs)
{
DataRow item = frmMainModule.GridView.GetDataRow(selectIndex);
if (item.Table.Columns.Contains(operateDateField) && item.Table.Columns.Contains(billNoField))
{
operateDate += string.Format("{0},", item[operateDateField] + "");
billNo += string.Format("{0},", item[billNoField] + "");
}
else
{
MessageUtil.Show("数据异常,单据号或操作日期不存在");
return;
}
}
if (!string.IsNullOrEmpty(billNo) && !string.IsNullOrEmpty(operateDate))
{
int insertValue = ExecuteInsertU8(operatorId, operateWay, operateDate.TrimEnd(','), billNo.TrimEnd(','), out string insertMsg);
if (insertValue != 1)
{
MessageUtil.Show("凭证推送失败" + "\r\n" + insertMsg);
}
else
{
DataRow dataRow = this.gridLeft.GridView.GetFocusedDataRow();
if (dataRow != null)
{
string userName = ERPInfo.Instance.UserName;
string startDate = StartDate.ToString("yyyyMMdd");
string endDate = EndDate.ToString("yyyyMMdd");
string pzz = this.pzz.EditValue;
int fjs = int.TryParse(this.fjs.TextEdit.EditValue + "", out int fjsNum) ? fjsNum : 0;
string jfkmhb = this.jfkmhb.TextEdit.Checked ? "1" : "0";
string jffmhb = this.jffmhb.TextEdit.Checked ? "1" : "0";
string tbhxls = this.tbhxls.TextEdit.Checked ? "1" : "0";
string dfkmhb = this.dfkmhb.TextEdit.Checked ? "1" : "0";
string dffmhb = this.dffmhb.TextEdit.Checked ? "1" : "0";
string sfxjhd = this.sfxjhd.TextEdit.Checked ? "1" : "0";
string zdrq = this.zdrq.TextEdit.DateTime.ToString("yyyyMMdd");
string strCollected = "'" + dataRow["cVouchType"] + "'";
string globalBatch = DateTime.Now.ToString("yyyyMMddHHmmss");
string submitCond = $"{startDate};{endDate};{pzz};{fjs};{jfkmhb};{jffmhb};{tbhxls};{dfkmhb};{dffmhb};{sfxjhd};{zdrq}";
int returnValue = ExecuteVoucherAllStep(userName, globalBatch, strCollected, submitCond, out string msg);
if (returnValue == -1)
{
MessageUtil.Show("凭证推送失败" + "\r\n" + msg);
}
else
{
MessageUtil.Show("凭证推送成功");
}
}
}
}
else
{
MessageUtil.Show("未找到符合推送要求的数据");
}
}
}
}
}
}
catch (Exception ex)
{
MessageUtil.Show(ex.Message);
}
finally
{
BtnCondSearch();
//this.BtnCondSearch_Click(null, null);
}
}
/// <summary>
/// 凭证新增
/// </summary>
/// <param name="operatorName"></param>
/// <param name="globalBatch"></param>
/// <param name="strCollected"></param>
/// <param name="submitCond"></param>
/// <param name="tipMsg"></param>
/// <returns></returns>
public static int ExecuteVoucherAllStep(string operatorName, string globalBatch, string strCollected, string submitCond, out string tipMsg)
{
SqlParameter pMsg = new SqlParameter("@msg", SqlDbType.VarChar, -1);
pMsg.Direction = ParameterDirection.Output;
SqlParameter returnValue = new SqlParameter("@return", SqlDbType.Int, 4);
returnValue.Direction = ParameterDirection.ReturnValue;
SqlParameter[] param = {
new SqlParameter("@operator", SqlDbType.NVarChar, 50),
new SqlParameter("@globalBatch", SqlDbType.NVarChar, 50),
new SqlParameter("@strCollected", SqlDbType.NVarChar, 200),
new SqlParameter("@submitCond", SqlDbType.NVarChar, -1),
pMsg,
returnValue
};
param[0].Value = operatorName;
param[1].Value = globalBatch;
param[2].Value = strCollected;
param[3].Value = submitCond;
SqlHelper.ExecuteDataSet(CommandType.StoredProcedure, "DataU8_VoucherAllStep", "result", param);
tipMsg = pMsg.Value.ToString();
return Convert.ToInt32(returnValue.Value);
}
/// <summary>
/// 凭证推送
/// </summary>
/// <param name="operatorId"></param>
/// <param name="globalBatch"></param>
/// <param name="strCollected"></param>
/// <param name="submitCond"></param>
/// <param name="tipMsg"></param>
/// <returns></returns>
public static int ExecuteInsertU8(string operatorId, string operateWay, string operateDate, string billNo, out string tipMsg)
{
SqlParameter pMsg = new SqlParameter("@msg", SqlDbType.VarChar, -1);
pMsg.Direction = ParameterDirection.Output;
SqlParameter returnValue = new SqlParameter("@return", SqlDbType.Int, 4);
returnValue.Direction = ParameterDirection.ReturnValue;
SqlParameter[] param = {
new SqlParameter("@OperatorId", SqlDbType.Int,4),
new SqlParameter("@Operateway", SqlDbType.Int, 4),
new SqlParameter("@operatedate", SqlDbType.VarChar, -1),
new SqlParameter("@billNo", SqlDbType.VarChar, -1),
pMsg,
returnValue
};
param[0].Value = operatorId;
param[1].Value = operateWay;
param[2].Value = operateDate;
param[3].Value = billNo;
SqlHelper.ExecuteDataSet(CommandType.StoredProcedure, "Data_InsertU8WithBillNoAPI", "result", param);
tipMsg = pMsg.Value.ToString();
return Convert.ToInt32(returnValue.Value);
}
}
}