🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / C# RMOS / XtraReport design kaydetme save buttonunu ovveride etme XRDesignPanel XRDesignForm

1-) C# RMOS - XtraReport design kaydetme save buttonunu ovveride etme XRDesignPanel XRDesignForm

 

kaynak : https://docs.devexpress.com/XtraReports/2211/create-end-user-reporting-applications/winforms-reporting/end-user-report-designer/api-and-customization/override-commands-in-end-user-report-designer-implement-custom-saving

 

 

 static XRDesignMdiController mdiController;

 

        public static void MyRaporDuzenleS(string pFullPath, string pRaporAdi)

        {

            try

            {

                XRDesignForm form = new XRDesignForm();

                string pSQL = dbtolls.DegerGetir(" select top 1 uRapor_sql from uRapor where uRapor_ad='" + pRaporAdi + "'");

                report = new XtraReport();

                if (!pSQL.Equals("-1"))

                {

                    DataTable dt = dbtolls.SelectTable(pSQL);

                    if (dt != null)

                    {

                        report.DataSource = dt;

                        if (File.Exists(pFullPath))

                        {

                            report.LoadLayout(pFullPath);

                            //report.ShowDesigner();

                            report.Tag = pFullPath;

                            // aşağısı sonradan

                            mdiController = form.DesignMdiController;

                            mdiController.DesignPanelLoaded +=

                                new DesignerLoadedEventHandler(mdiController_DesignPanelLoaded);

 

                            mdiController.OpenReport(report);

                            form.ShowDialog();

                            if (mdiController.ActiveDesignPanel != null)

                            {

                                mdiController.ActiveDesignPanel.CloseReport();

                            }

                        }

                        else

                        {

                            RHMesaj.MyMessage(pFullPath + " \n Yolunda Dosya Bulunamıyor!");

                        }

                    }

                }

                else

                {

                    RHMesaj.MyMessageInformation("Raporlanacak Veri Yok! Veya \\Raporlar\\" + pRaporAdi + " Bulunamıyor!");

                }

            }

            catch (Exception ex)

            {

                throw new Exception(ex.Message);

            }

        }

 

     public static  void mdiController_DesignPanelLoaded(object sender, DesignerLoadedEventArgs e)

        {

            XRDesignPanel panel = (XRDesignPanel)sender;

            panel.AddCommandHandler(new SaveCommandHandler(panel));

        }

 

 

        public class SaveCommandHandler : DevExpress.XtraReports.UserDesigner.ICommandHandler

        {

            XRDesignPanel panel;

 

            public SaveCommandHandler(XRDesignPanel panel)

            {

                this.panel = panel;

            }

 

            public void HandleCommand(DevExpress.XtraReports.UserDesigner.ReportCommand command,

            object[] args)

            {

                // Save the report.

                Save();

            }

 

            public bool CanHandleCommand(DevExpress.XtraReports.UserDesigner.ReportCommand command,

            ref bool useNextHandler)

            {

                useNextHandler = !(command == ReportCommand.SaveFile ||

                    command == ReportCommand.SaveFileAs);

                return !useNextHandler;

            }

 

            void Save()

            {

                //panel.Report.SaveLayout("C:\\cc\\report1.repx");

                panel.Report.SaveLayout(panel.Report.Tag.ToString());

                panel.ReportState = ReportState.Saved;

            }

        }

 2021 Ocak 18 Pazartesi
 665