Create Catalog Form

PHOTO EMBED

Tue Aug 30 2022 05:50:25 GMT+0000 (Coordinated Universal Time)

Saved by @HristoT #c#

 public void ShowFormXXXCatalog()
        {
            new FormEx<XF_CatalogMain>()
                .LoadForm(form =>
                {
                    form.Text = "ТЕКСТ НА ФОРМАТА";

                    // Слагаме го, ако искаме формата да се визуализира на цял екран
                    form.WindowState = FormWindowState.Maximized;

                    // Ако имаме търсене по дата, оставяме тези променливи и ги използваме после във (void refresh()) за да филтрираме

                    //form.layFromDate.Text = "От:";
                    //form.layToDate.Text = "До:";
                    //form.FromDate.DateTime = new DateTime(2000, 1, 1);
                    //form.ToDate.DateTime = DateTime.Now.Date;

                    // В противен случай премахваме датите
                    form.layFromDate.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
                    form.layToDate.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;

                    // Заменяме XXXName с името по което ще търсим
                    var XXXName = form.AddTextEditToFilter("Наименование:");

                    // Премахване на бутоните за изтриване, преглед и експорт
                    form.gridViewOrders.Columns.Remove(form.col_Delete);
                    form.gridViewOrders.Columns.Remove(form.col_Preview);
                    form.btnExport.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;

                    // Добавяме модела към грида и байндваме пропъртитата
                    var model = new CatalogCM();
                    form.AddColumnToGridView("ID", nameof(model.ID));
                    form.AddColumnToGridView("Описание", nameof(model.Description));

                    void refresh()
                    {
                        // Заменяме CatalogCM с истинския поко модел
                        var predicate = PredicateBuilder.True<CatalogCM>();
                        if (!string.IsNullOrWhiteSpace(XXXName.Text))
                        {
                            predicate = predicate.And(p => p.Description.ToLower().Contains(XXXName.Text.ToLower()));
                        }

                        // Разкоментираме ако имаме търсене по дата

                        //var fromDate = form.FromDate.DateTime;
                        //var toDate = form.ToDate.DateTime;
                        //predicate = predicate.And(x => x.From > fromDate && x.To <= toDate);

                        // Заменяме list с извикване на сървиса и взимане на реалните данни
                        var list = new List<CatalogCM>()
                        { new CatalogCM { ID = 1, Description = "Описание" },
                          new CatalogCM { ID = 2, Description = "Тест" }
                        }.AsQueryable().Where(predicate).ToList();

                        form.gridControlOrders.SetDataSource(list);
                    }
                    void clear()
                    {
                        XXXName.EditValue = string.Empty;
                    }

                    clear();
                    refresh();

                    form.btnClear.Click += (s, e) => clear();
                    form.btnSearch.Click += (s, e) => refresh();

                    form.AddBarButton("Нов XXX", JResources.Nov).ItemClick += (s, e) =>
                    {
                        if (this.ShowFormXXXNew() == DialogResult.Yes)
                        {
                            refresh();
                        }
                    };

                    form.gridViewOrders.RowCellClick += (s, e) =>
                    {
                        var row = form.gridViewOrders.GetRow(e.RowHandle) as CatalogCM;
                        if (row == null)
                        {
                            return;
                        }

                        if (e.Clicks == 2 || e.Column == form.col_Edit)
                        {
                            if (this.ShowFormXXXEdit(row.ID) == DialogResult.Yes)
                            {
                                refresh();
                            }
                        }
                    };
                })
                .ShowDialog();
        }
content_copyCOPY