lu
2025-04-14 ecb7a60de1639f520712ce95f99414b0dd2c9713
DevApp/Gs.DevApp/UserControl/ShowRptWizard.cs
@@ -1,156 +1,62 @@
using DevExpress.Office.Model;
using DevExpress.XtraEditors;
using DevExpress.XtraLayout.Customization;
using Gs.DevApp.Entity;
using DevExpress.XtraEditors;
using DevExpress.XtraWizard;
using Gs.DevApp.DevFrm.Sys;
using Gs.DevApp.ToolBox;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Data;
using System.Windows.Controls;
using System.ComponentModel;
namespace Gs.DevApp.UserControl
{
    public partial class ShowRptWizard : DevExpress.XtraEditors.XtraForm
    public partial class ShowRptWizard : XtraForm
    {
        private readonly string _rptParameter;
        private readonly string _rptGuid;
        private string _reportType;
        public ShowRptWizard(string reportType)
        public ShowRptWizard(string strGuid, string rptParameter)
        {
            _reportType = reportType;
            _rptParameter = rptParameter;
            _rptGuid = strGuid;
            InitializeComponent();
            wizardControl1.NextClick += WizardControl1_NextClick;
            wizardControl1.FinishClick += WizardControl1_FinishClick;
        }
        private void WizardControl1_FinishClick(object sender, System.ComponentModel.CancelEventArgs e)
        private void WizardControl1_FinishClick(object sender,
            CancelEventArgs e)
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            foreach (DevExpress.XtraEditors.GroupControl ctrl in this.wizardPage2.Controls)
            {
                if (ctrl is GroupControl)
                {
                    GroupControl _grpBox = ctrl as GroupControl;
                    foreach (DevExpress.XtraEditors.CheckedListBoxControl _ckBox in _grpBox.Controls)
                    {
                        CheckedListBoxControl _kk = _ckBox as CheckedListBoxControl;
                        for (int i = 0; i < _ckBox.ItemCount; i++)
                        {
                            if (_ckBox.GetItemChecked(i))
                            {
                                if (sb.Length > 0)
                                    sb.Append(",");
                                sb.Append(_ckBox.GetItemValue(i).ToString());
                            }
                        }
                    }
                }
            }
            var _obj = new
            {
                rptType = _reportType,
                colDec = sb.ToString(),
                rptParameter = _rptParameter
                // rptData = null,初始时不用设计模板
            };
            try
            {
                string strJson = UtilityHelper.HttpPost("", "Report/EdtTemplate", JsonConvert.SerializeObject(_obj));
                ReturnModel<dynamic> _rtn = ToolBox.UtilityHelper.ReturnToDynamic(strJson);
                var strJson = UtilityHelper.HttpPost("", "Report/EdtTemplate",
                    JsonConvert.SerializeObject(_obj));
                var _rtn = UtilityHelper.ReturnToDynamic(strJson);
                if (_rtn.rtnCode > 0)
                {
                    Gs.DevApp.DevFrm.Sys.EasyRptDesign frm = new Gs.DevApp.DevFrm.Sys.EasyRptDesign(this._reportType);
                    var frm = new EasyRptDesign(_rptGuid, _rptParameter);
                    frm.Show();
                }
            }
            catch (Exception ex)
            {
                ToolBox.MsgHelper.Warning("提示:" + ex.Message);
            }
        }
        private void WizardControl1_NextClick(object sender, DevExpress.XtraWizard.WizardCommandButtonClickEventArgs e)
        {
            if (this.wizardControl1.SelectedPage == this.welcomeWizardPage1)
            {
                _getTable();
                return;
            }
            if (this.wizardControl1.SelectedPage == this.wizardPage1)
            {
                _getZiDuan();
                return;
            }
        }
        private void _getTable()
        {
            chkTable.Items.Clear();
            var _obj = new
            {
            };
            string strReturn = "";
            try
            {
                strReturn = UtilityHelper.HttpPost("", "Report/GetTableList", JsonConvert.SerializeObject(_obj));
                ReturnModel<DataTable> dd = UtilityHelper.ReturnToList(strReturn);
                DataTable dt = dd.rtnData;
                chkTable.DisplayMember = "tableDesc";
                chkTable.ValueMember = "tableName";
                chkTable.DataSource = dt;
            }
            catch (Exception ex)
            {
                ToolBox.MsgHelper.Warning("提示:" + ex.Message);
            }
        }
        private void _getZiDuan()
        {
            this.wizardPage2.Controls.Clear();
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            for (int i = 0; i < chkTable.ItemCount; i++)
            {
                if (chkTable.GetItemChecked(i))
                else
                {
                    if (sb.Length > 0)
                        sb.Append(",");
                    sb.Append(chkTable.GetItemValue(i).ToString());
                }
            }
            var _obj = new
            {
                tablesName = sb.ToString(),
            };
            try
            {
                string strReturn = UtilityHelper.HttpPost("", "Report/GetZiDuanList", JsonConvert.SerializeObject(_obj));
                JObject _job = JObject.Parse(strReturn);
                string rtnCode = _job["rtnCode"].ToString();
                if (int.Parse(rtnCode) > 0)
                {
                    var _table = _job["rtnData"];
                    foreach (var _col in _table)
                    {
                        DevExpress.XtraEditors.GroupControl grp = new DevExpress.XtraEditors.GroupControl();
                        grp.Size = new System.Drawing.Size(259, 420);
                        grp.Text = _col["tableName"].ToString();
                        grp.Dock = System.Windows.Forms.DockStyle.Left;
                        // grp.TabIndex = 0;
                        DevExpress.XtraEditors.CheckedListBoxControl chkZiDuan = new DevExpress.XtraEditors.CheckedListBoxControl();
                        chkZiDuan.CheckOnClick = true;
                        chkZiDuan.Dock = System.Windows.Forms.DockStyle.Fill;
                        var _tbCol = _col["colList"];
                        foreach (var _ccccc in _tbCol)
                        {
                            string _t = _ccccc["ziDuanName"].ToString();
                            chkZiDuan.Items.Add(_t);
                        }
                        grp.Controls.Add(chkZiDuan);
                        this.wizardPage2.Controls.Add(grp);
                    }
                    MsgHelper.ShowError("提示:" + _rtn.rtnData["outMsg"].ToString());
                }
            }
            catch (Exception ex)
            {
                ToolBox.MsgHelper.Warning("提示:" + ex.Message);
                MsgHelper.ShowError("提示:" + ex.Message);
            }
        }
        private void WizardControl1_NextClick(object sender,
            WizardCommandButtonClickEventArgs e)
        {
            if (wizardControl1.SelectedPage == welcomeWizardPage1)
            {
                lbParameter.Text = "该报表使用了如下参数:" + _rptParameter;
            }
        }
    }