示例#1
0
        protected void InitFilterForm(Form Frm,
                                      XtraScrollableControl xtraScrollableControl1,
                                      SplitContainerControl splitContainerControl1)
        {
            Frm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            Frm.Height          = Frm.ClientSize.Height;
            Frm.TopLevel        = false;
            Frm.Parent          = xtraScrollableControl1;
            Frm.Dock            = DockStyle.Top;
            splitContainerControl1.SplitterPosition = Frm.Height + 7;

            //Find DataSource
            BindingSource bs = BaseWinFramework
                               .FindMainBindingSource(Frm, typeof(ReportEntity));

            if (bs != null && bs.DataSource as ReportEntity == null)
            {
                Type EntityType = ((Type)bs.DataSource).UnderlyingSystemType;
                re         = (ReportEntity)BaseFactory.CreateInstance(EntityType);
                _Evaluator = BaseFactory.CreateInstance <Evaluator>();
                TableDef td = MetaData.GetTableDef(EntityType);
                td.SetDefault((BaseEntity)re);

                re.InitUI();
                re.SetReportRefresh(ReportRefresh);
                re.SetFormChanged(OnFormChanged);
                bs.DataSource = re;
            }
            Frm.Show();
        }
示例#2
0
        public static void FastClone(BaseEntity DestObj, BaseEntity SourceObj)
        {
            if (DestObj == null)
            {
                DestObj = (BusinessEntity)BaseFactory
                          .CreateInstance(SourceObj.GetType());
            }
            TableDef       td = GetTableDef(SourceObj.GetType());
            BusinessEntity be = (BusinessEntity)DestObj;

            be.EntityOnLoad = true;
            try
            {
                foreach (FieldDef fd in td.KeyFields.Values)
                {
                    fd.SetLoadValue(DestObj, fd.GetValue(SourceObj));
                }
                foreach (FieldDef fd in td.NonKeyFields.Values)
                {
                    fd.SetLoadValue(DestObj, fd.GetValue(SourceObj));
                }
            }
            finally
            {
                be.EntityOnLoad = false;
            }
        }
示例#3
0
        void IEntityControl.InitNavigator(IUINavigator Navigator)
        {
            BindingSource MainBs = BaseWinFramework.FindMainBindingSource(
                this, typeof(ParentEntity));

            if (MainBs == null)
            {
                throw new ApplicationException("Main BindingSource not found !");
            }

            if (MainBs.DataSource as ParentEntity == null)
            {
                Type EntityType = ((Type)MainBs.DataSource).UnderlyingSystemType;
                MainBs.DataSource = BaseFactory.CreateInstance(EntityType);
            }

            BaseWinFramework.WinForm.AutoFormat
            .AutoFormatForm(this, false);

            if (Navigator != null)
            {
                Navigator.BindingSource = MainBs;

                InitNavigator(Navigator);
                ((IRuleInitUI)MainBs.DataSource).AfterInitNavigator(Navigator);

                Navigator.SetAutoFormMode();
                if (!ShowNavigator)
                {
                    Navigator.Visible = false;
                }
            }
        }
示例#4
0
        public static BaseEntity CloneAll(BaseEntity SourceObj)
        {
            TableDef   td      = GetTableDef(SourceObj.GetType());
            BaseEntity DestObj = (BaseEntity)BaseFactory
                                 .CreateInstance(td._ClassType);

            IRuleInitUI px = DestObj as IRuleInitUI;

            //CallLoadRule = CallLoadRule && px != null;

            DestObj.EntityOnLoad = true;
            try
            {
                DestObj = SourceObj.ShallowClone();

                if (td.ChildEntities.Count > 0)
                {
                    foreach (EntityCollDef ecd in td.ChildEntities)
                    {
                        //IEntityCollection cols = (IEntityCollection)
                        //    Activator.CreateInstance(ecd.ConstructionType);
                        //if (ecd.mi.MemberType == MemberTypes.Field)
                        //    ((FieldInfo)ecd.mi).SetValue(DestObj, cols);
                        //else
                        //    ((PropertyInfo)ecd.mi).SetValue(DestObj, cols, null);

                        IList SrcCols  = ecd.GetValue(SourceObj);
                        IList DestCols = (IList)ecd.CreateNew((BusinessEntity)DestObj);

                        ((IEntityCollection)DestCols).OnLoad = true;
                        foreach (BusinessEntity obj in SrcCols)
                        {
                            DestCols.Add(CloneAll(obj));
                        }
                        ((IEntityCollection)DestCols).OnLoad = false;
                    }
                }

                //if (CallLoadRule)
                //{
                //    px.AfterLoadFound();
                //    BaseFramework.DoEntityAction(DestObj, enEntityActionMode.AfterLoadFound);
                //}
                ParentEntity pe = DestObj as ParentEntity;
                if (pe != null)
                {
                    pe.AfterClone((ParentEntity)SourceObj);
                }
            }
            finally
            {
                DestObj.EntityOnLoad = false;
                DestObj.DataChanged();
            }
            return(DestObj);
        }
        private void CheckEntityType()
        {
            if (FormType == null)
            {
                TypeChecked = true;
                return;
            }
            if (_Form == null || _Form.IsDisposed)
            {
                if (FormType.GetInterface("IEntityControl") != null)
                {
                    _Form = new frmDocument(FormType);
                }
                else if (FormType.IsSubclassOf(typeof(Form)))
                {
                    _Form = BaseFactory.CreateInstance(FormType) as Form;
                }
                else
                {
                    throw new ApplicationException("FormType harus Form, IEntityControl");
                }

                _Ief = _Form as IEntityForm;
                if (_Ief == null)
                {
                    foreach (Control Ctrl in _Form.Controls)
                    {
                        if (object.ReferenceEquals(Ctrl.GetType(), UINType))
                        {
                            _UIN            = (UINavigator)Ctrl;
                            _UIN.EntityForm = this;
                            break;
                        }
                    }
                }
                else
                {
                    _Ief.SetOwner(this);
                }

                _Form.MdiParent = BaseWinFramework._MdiParent;
            }
            if (!TypeChecked)
            {
                EntityType = _UIN != null?_UIN.GetEntity().GetType() :
                                 _Ief != null?_Ief.GetEntityType() : null;

                TypeChecked = true;
            }
        }
示例#6
0
        // Dari Dokumen
        public void ShowForm(Form MdiParent, string ReportName,
                             BusinessEntity DataSource, Evaluator Evaluator)
        {
            SaveEval = false;
            try
            {
                xrDesignPanel1.SetCommandVisibility(ReportCommand.AddNewDataSource, CommandVisibility.None);

                _Evaluator = Evaluator ?? BaseFactory
                             .CreateInstance <Evaluator>();
                LayoutHeader = "D_";
                IDataDictionary ds = new ReportSingleEntity(DataSource);

                Text = "Desain Cetak " + ReportName;
                xReport rpt = new xReport(_Evaluator);
                rpt.PaperKind  = PaperKind.A4;
                rpt.DataSource = ds;

                RptName = ReportName;
                NewDesign(rpt);
                msTanpaLayout = new MemoryStream();
                rpt.SaveLayout(msTanpaLayout);

                if (MdiParent != null)
                {
                    this.MdiParent = MdiParent;
                }

                List <string> ListLayout = DocPrintBrowseLayout
                                           .GetListLayout(LayoutHeader + RptName);
                ((RepositoryItemComboBox)barEditItem3.Edit)
                .Items.AddRange(ListLayout);
                barEditItem3.EditValue = strTanpaLayout;
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.Message, "Error Baca Layout Laporan",
                                    MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            finally
            {
                Show();
            }
        }
示例#7
0
        // Dari Laporan Bebas
        public void ShowForm3(Form MdiParent, string ReportName,
                              Evaluator Evaluator)
        {
            SaveEval = true;
            try
            {
                fieldListDockPanel1.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
                xrDesignPanel1.SetCommandVisibility(ReportCommand.AddNewDataSource, CommandVisibility.None);
                _Evaluator   = Evaluator ?? BaseFactory.CreateInstance <Evaluator>();
                LayoutHeader = "F_";
                Text         = "Desain Cetak " + ReportName;
                xReport rpt = new xReport(Evaluator);
                rpt.PaperKind = PaperKind.A4;
                RptName       = ReportName;
                NewDesign(rpt);
                msTanpaLayout = new MemoryStream();
                rpt.SaveLayout(msTanpaLayout);
                if (MdiParent != null)
                {
                    this.MdiParent = MdiParent;
                }

                List <string> ListLayout = DocPrintBrowseLayout
                                           .GetListLayout(LayoutHeader + ReportName);
                ((RepositoryItemComboBox)barEditItem3.Edit)
                .Items.AddRange(ListLayout);
                barEditItem3.EditValue = strTanpaLayout;
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.Message, "Error Baca Layout Laporan",
                                    MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            finally
            {
                Show();
            }
        }
示例#8
0
        public static BaseEntity FastClone(BaseEntity SourceObj)
        {
            TableDef       td      = GetTableDef(SourceObj.GetType());
            BusinessEntity DestObj = (BusinessEntity)BaseFactory
                                     .CreateInstance(td._ClassType);

            DestObj.EntityOnLoad = true;
            try
            {
                foreach (FieldDef fd in td.KeyFields.Values)
                {
                    fd.SetLoadValue(DestObj, fd.GetValue(SourceObj));
                }
                foreach (FieldDef fd in td.NonKeyFields.Values)
                {
                    fd.SetLoadValue(DestObj, fd.GetValue(SourceObj));
                }
            }
            finally
            {
                DestObj.EntityOnLoad = false;
            }
            return(DestObj);
        }
示例#9
0
        public frmDocument(Type EntityControlType)
        {
            InitializeComponent();

            EntityCtrl = (Control)BaseFactory
                         .CreateInstance(EntityControlType);

            XtraForm Frm = EntityCtrl as XtraForm;

            if (Frm != null)
            {
                Frm.Dock            = DockStyle.Fill;
                Frm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
                Frm.TopLevel        = false;
                Frm.Parent          = panelControl1;
                if (Frm.WindowState == FormWindowState.Maximized)
                {
                    Frm.WindowState = FormWindowState.Normal;
                    WindowState     = FormWindowState.Maximized;
                }
                Frm.Show();
            }
            else
            {
                panelControl1.Controls.Add(EntityCtrl);
            }

            EntityCtrl.Dock     = DockStyle.Fill;
            EntityCtrl.TabIndex = 0;

            ((IEntityControl)EntityCtrl).InitNavigator(uiNavigator1);

            Type EntityType = uiNavigator1.BindingSource.DataSource.GetType();

            if (!EntityType.IsSubclassOf(typeof(ParentEntity)))
            {
                EntityType = ((Type)uiNavigator1.BindingSource.DataSource)
                             .UnderlyingSystemType;
                object DataSource = BaseFactory.CreateInstance(EntityType);
                uiNavigator1.BindingSource.DataSource = DataSource;
            }

            if (Frm != null && Frm.Text.Length > 0)
            {
                Text = Frm.Text;
            }
            else
            {
                Text = BaseWinFramework.GetModuleName(EntityControlType);
            }
            if (Text.Length == 0 && EntityType != null)
            {
                Text = BaseUtility.SplitName(EntityType.Name);
            }

            if (BaseWinFramework.MdiParent == null && ActiveForm != null &&
                !ActiveForm.Modal)
            {
                PrevForm = ActiveForm;
                PrevForm.Hide();
            }
        }
        public void ShowForm2(EntityForm EntityForm,
                              string ReportName, string FreeFilter,
                              object TransStartDate, object TransEndDate,
                              object[] Parameters)
        {
            _ReportName = ReportName;
            _EntityForm = EntityForm;

            if (EntityForm.ModuleName.Length > 0 && BaseSecurity.CurrentLogin
                .CurrentRole.Length > 0)
            {
                ModuleAccess ma = BaseSecurity.GetModuleAccess(EntityForm.ModuleName);

                if (!ma.GetVariable <bool>(SecurityVarName.ReportDesignPrint, false))
                {
                    comboBoxEdit1.Properties.Buttons[2].Enabled = false;
                }
            }

            _Evaluator = BaseFactory.CreateInstance <Evaluator>();
            if (_ReportName.Contains("Laporan"))
            {
                Text = _ReportName;
            }
            else
            {
                Text = "Laporan " + _ReportName;
            }

            _FilterForm = BaseFactory.CreateInstance(
                _EntityForm.FilterFormType) as IFilterForm;
            if (_FilterForm == null)
            {
                XtraMessageBox.Show("Form Filter harus implement Interface IFilterForm !",
                                    "Error Filter", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Close();
                return;
            }
            _ShowViewForm = _FilterForm as IShowView;
            if (_ShowViewForm == null)
            {
                XtraMessageBox.Show("Form Filter harus implement Interface IShowView !",
                                    "Error Filter", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Close();
                return;
            }

            if (_EntityForm.FilterFormType == null || _FilterForm as ReportEntity != null)
            {
                splitContainerControl1.PanelVisibility = SplitPanelVisibility.Panel2;
            }
            else
            {
                XtraForm Frm = _FilterForm as XtraForm;
                if (Frm != null)
                {
                    InitFilterForm(Frm, xtraScrollableControl1,
                                   splitContainerControl1);
                }
                else
                {
                    QueryReportEntity(xtraScrollableControl1,
                                      splitContainerControl1);
                }
            }

            List <string> ListItems = DocPrintBrowseLayout
                                      .GetListLayout("F_" + _ReportName);

            if (ListItems.Count == 0)
            {
                if (re != null)
                {
                    Dictionary <string, object> Vars = new Dictionary <string, object>();
                    re.GetVariables(Vars);
                    SaveReportFromTemplateFolder("F_", ReportName,
                                                 ListItems, Vars);
                }
                else
                {
                    SaveReportFromTemplateFolder("F_", ReportName,
                                                 ListItems, _FilterForm != null ?
                                                 _FilterForm.FilterList : null);
                }
            }
            comboBoxEdit1.Properties.Items.AddRange(ListItems);

            string CurrBrowseLayoutId = string.Empty;
            bool   Tmp;

            DocDefault.GetDefaultLayout(_ReportName,
                                        out CurrBrowseLayoutId, out CurrPrintLayoutId, out Tmp);

            if (re != null)
            {
                ((IShowView)re).ShowView(Parameters);
            }
            else if (_ShowViewForm != null)
            {
                _ShowViewForm.ShowView(Parameters);
            }

            comboBoxEdit1.SelectedItem = CurrBrowseLayoutId;
            if (comboBoxEdit1.SelectedIndex < 0 && comboBoxEdit1.Properties.Items.Count > 0)
            {
                comboBoxEdit1.SelectedIndex = 0;
            }
            else
            {
                comboBoxEdit1_SelectedIndexChanged(null, null);
            }
            sbTotal.Caption = "Total Halaman: " +
                              printControl1.PrintingSystem.Pages.Count;
            ribbonStatusBar1.Refresh();
            printControl1.PrintingSystem.AfterChange += new DevExpress.XtraPrinting.ChangeEventHandler(PrintingSystem_AfterChange);
            Show();
            printControl1.Focus();
        }
示例#11
0
 public xReport(Evaluator Evaluator)
 {
     this.Evaluator = Evaluator ?? BaseFactory
                      .CreateInstance <Evaluator>();
     PrintingSystem.StartPrint += new PrintDocumentEventHandler(PrintingSystem_StartPrint);
 }
示例#12
0
        ShowDialog(Type ControlType, string ModuleName)
        {
            using (new WaitCursor(true))
            {
                if (ControlType.IsSubclassOf(typeof(DocumentForm)))
                {
                    ParentEntity orig;

                    frmSingletonEntity frm = new frmSingletonEntity();

                    Control FormCtrl = (Control)BaseFactory
                                       .CreateInstance(ControlType);
                    BindingSource bnd = BaseWinFramework.FindMainBindingSource(
                        (Form)FormCtrl, typeof(ParentEntity));

                    orig = bnd.DataSource as ParentEntity;

                    if (orig == null)
                    {
                        orig = (ParentEntity)
                               BaseFactory.CreateInstance((Type)bnd.DataSource);
                    }

                    if (!orig.LoadEntity())
                    {
                        orig.SetDefaultValue();
                    }

                    frm.pe = (ParentEntity)MetaData.CloneAll(orig);
                    frm.pe.SetOriginal(orig);

                    ((IRuleInitUI)frm.pe).InitUI();

                    DocumentForm frmc = (DocumentForm)FormCtrl;
                    frm.frmc = frmc;

                    bnd.DataSource = frm.pe;
                    IEntityControl df = FormCtrl as IEntityControl;
                    if (df != null)
                    {
                        df.InitNavigator(null);
                    }
                    ((IRuleInitUI)frm.pe).AfterInitNavigator(null);

                    BaseWinFramework.WinForm.AutoFormat
                    .AutoFormatForm(FormCtrl, false);
                    BaseWinFramework.WinForm.AutoLockEntity.LockForm(frm.pe,
                                                                     MetaData.GetTableDef(frm.pe.GetType()), FormCtrl);

                    frm.ep            = new DXErrorProvider(frm);
                    frm.ep.DataSource = bnd;

                    if (frmc != null)
                    {
                        frmc.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
                        frmc.FormClosed     += new FormClosedEventHandler(frmc_FormClosed);
                        frmc.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
                        frmc.TopLevel        = false;
                        frmc.Parent          = frm;
                        frm.Width            = frmc.Width + frm.Width -
                                               frm.DisplayRectangle.Width;

                        if (frmc.ShowConfirmButton)
                        {
                            frm.Height = frmc.Height + 70;
                        }
                        else
                        {
                            frm.Height = frmc.Height + frm.Height -
                                         frm.DisplayRectangle.Height;
                            frm.simpleButton1.Visible = false;
                            frm.simpleButton2.Visible = false;
                        }
                        frmc.Show();
                    }
                    else
                    {
                        frm.Width  = FormCtrl.Width + frm.Width - frm.DisplayRectangle.Width;
                        frm.Height = FormCtrl.Height + 70;
                        frm.Controls.Add(FormCtrl);
                    }
                    if (frmc != null && frmc.Text.Length > 0)
                    {
                        frm.Text = frmc.Text;
                    }
                    else
                    {
                        frm.Text = BaseUtility.SplitName(ModuleName.Length == 0 ?
                                                         orig.GetType().Name : ModuleName);
                    }

                    ((Control)frmc).TabIndex = 0;
                    return(frm.ShowForm(BaseWinFramework.MdiParent));
                }
                else
                {
                    XtraForm frm = (XtraForm)BaseFactory.CreateInstance(ControlType);
                    return(frm.ShowDialog(BaseWinFramework.MdiParent));
                }
            }
        }
示例#13
0
        public void ShowForm(XtraForm MdiParent, Type FormType,
                             Type EntityType, DataPersistance dp,
                             Type FilterFormType, string DataFilter)
        {
            _Evaluator      = new Evaluator();
            Dp              = dp;
            this.DataFilter = DataFilter;
            comboBoxEdit1.Properties.Items.Add("(Layout Default)");

            if (EntityType != null)
            {
                _FormType   = FormType;
                _EntityType = EntityType;

                td = MetaData.GetTableDef(EntityType);
                Dp.ValidateTableDef(td);
                if (td.fldTransactionDate != null)
                {
                    dateEdit1.DateTime = DateTime.Today;
                    dateEdit2.DateTime = DateTime.Today;
                }
                else
                {
                    label3.Visible    = false;
                    label4.Visible    = false;
                    dateEdit1.Visible = false;
                    dateEdit2.Visible = false;
                }
                _ReportName = BaseUtility.SplitName(_EntityType.Name);
            }
            else
            {
                label3.Visible    = false;
                label4.Visible    = false;
                dateEdit1.Visible = false;
                dateEdit2.Visible = false;
                if (FilterFormType != null)
                {
                    _ReportName = FilterFormType.Name.Substring(0, 3).ToLower();
                    if (_ReportName == "frm" || _ReportName == "rpt")
                    {
                        _ReportName = BaseUtility.SplitName(
                            FilterFormType.Name.Substring(3));
                    }
                    else
                    {
                        _ReportName = BaseUtility.SplitName(FilterFormType.Name);
                    }
                }
                else
                {
                    _ReportName = "Bebas";
                }
            }
            Text = "Laporan " + _ReportName;

            comboBoxEdit1.Properties.Items.AddRange(
                DocBrowseLayout.GetListLayout(_ReportName));

            this.MdiParent = MdiParent;

            if (FilterFormType == null)
            {
                splitContainerControl1.PanelVisibility = SplitPanelVisibility.Panel2;
            }
            else
            {
                _FilterForm = BaseFactory.CreateInstance(FilterFormType) as IFilterForm;
                if (_FilterForm == null)
                {
                    XtraMessageBox.Show("Form Filter harus implement Interface IFilterForm !",
                                        "Error Filter", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    Close();
                    return;
                }
                XtraForm Frm = _FilterForm as XtraForm;
                if (Frm != null)
                {
                    Frm.FormBorderStyle = FormBorderStyle.None;
                    Frm.TopLevel        = false;
                    Frm.Parent          = xtraScrollableControl1;
                    splitContainerControl1.SplitterPosition = Frm.Height + 5;
                    Frm.KeyPreview = true;
                    Frm.KeyDown   += new KeyEventHandler(frmGridReport_KeyDown);
                    xtraScrollableControl1.BackColor = Frm.BackColor;
                    Frm.Show();
                }
                else
                {
                    splitContainerControl1.PanelVisibility = SplitPanelVisibility.Panel2;
                }
            }
            barButtonItem8_ItemClick(null, null);

            DefaultLayout = new MemoryStream();
            pivotGridControl1.SaveLayoutToStream(DefaultLayout);

            string CurrBrowseLayoutId = string.Empty;
            bool   Tmp;

            DocDefault.GetDefaultLayout(_ReportName,
                                        out CurrBrowseLayoutId, out CurrPrintLayoutId, out Tmp);
            Show();
            comboBoxEdit1.SelectedItem = CurrBrowseLayoutId;
            if (comboBoxEdit1.SelectedIndex < 0)
            {
                comboBoxEdit1.SelectedIndex = 0;
            }
            textEdit1.Focus();
        }
示例#14
0
        public static BaseEntity Clone(BaseEntity SourceObj)
        {
            TableDef       td      = GetTableDef(SourceObj.GetType());
            BusinessEntity DestObj = (BusinessEntity)BaseFactory
                                     .CreateInstance(td._ClassType);
            IRuleInitUI px = DestObj as IRuleInitUI;

            //CallLoadRule = CallLoadRule && px != null;

            DestObj.EntityOnLoad = true;
            try
            {
                foreach (FieldDef fd in td.KeyFields.Values)
                {
                    fd.SetLoadValue(DestObj, fd.GetValue(SourceObj));
                }
                foreach (FieldDef fd in td.NonKeyFields.Values)
                {
                    fd.SetLoadValue(DestObj, fd.GetValue(SourceObj));
                }

                if (td.ChildEntities.Count > 0)
                {
                    foreach (EntityCollDef ecd in td.ChildEntities)
                    {
                        IList SrcCols  = ecd.GetValue(SourceObj);
                        IList DestCols = ecd.GetValue(DestObj);
                        int   NumDest  = DestCols.Count;
                        ((IEntityCollection)DestCols).OnLoad = true;
                        int i = 0;
                        foreach (BaseEntity obj in SrcCols)
                        {
                            if (i < NumDest)
                            {
                                Clone((BaseEntity)DestCols[i++], obj);
                            }
                            else
                            {
                                DestCols.Add(Clone(obj));
                            }
                        }
                        ((IEntityCollection)DestCols).OnLoad = false;
                    }
                }

                //if (CallLoadRule)
                //{
                //px.AfterLoadFound();
                //BaseFramework.DoEntityAction(DestObj, enEntityActionMode.AfterLoadFound);
                //}
                BusinessEntity be = DestObj as BusinessEntity;
                if (be != null)
                {
                    be.AfterClone((BusinessEntity)SourceObj);
                }
            }
            finally
            {
                DestObj.EntityOnLoad = false;
                DestObj.DataChanged();
            }
            return(DestObj);
        }
 public EntityNavigator(Type ObjType, DataPersistance Dp,
                        bool CallSetDefault) : this((ParentEntity)BaseFactory
                                                    .CreateInstance(ObjType), Dp, CallSetDefault)
 {
 }
示例#16
0
        bool IUIEntity.TryGetFocusedRowValue <TType>(string TableName,
                                                     string FieldName, out TType Value)
        {
            if (DictGrid.Count == 0)
            {
                Value = default(TType);
                return(false);
            }
            bool RetVal = false;

            try
            {
                GridView gv = TableName.Length > 0 ?
                              ListGrid[DictGrid[TableName]].gv :
                              (GridView)((GridControl)
                                         ((Form)ParentForm.ActiveControl).ActiveControl)
                              .FocusedView;

                if (typeof(TType).IsSubclassOf(typeof(BaseEntity)))
                {
                    object TmpVal = BaseFactory.CreateInstance <TType>();
                    Type   tp     = typeof(TType);

                    PropertyInfo pi;
                    FieldInfo    fi;
                    bool         AllNull = true;
                    foreach (GridColumn gc in gv.Columns)
                    {
                        object TmpRowVal = gv.GetFocusedRowCellValue(gc);
                        if (TmpRowVal == null)
                        {
                            continue;
                        }
                        AllNull = false;
                        fi      = tp.GetField("_" + gc.FieldName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
                        if (fi != null)
                        {
                            fi.SetValue(TmpVal, TmpRowVal);
                            continue;
                        }

                        pi = tp.GetProperty(gc.FieldName);
                        if (pi != null)
                        {
                            if (pi.CanWrite)
                            {
                                pi.SetValue(TmpVal, TmpRowVal, null);
                            }
                        }
                        else
                        {
                            fi = tp.GetField(gc.FieldName);
                            if (fi != null)
                            {
                                fi.SetValue(TmpVal, TmpRowVal);
                            }
                        }
                    }
                    Value  = (TType)TmpVal;
                    RetVal = !AllNull;
                }
                else
                {
                    object TmpVal = gv.GetFocusedRowCellValue(FieldName);
                    RetVal = TmpVal != null;
                    Value  = (TType)TmpVal;
                }
            }
            catch
            {
                Value = default(TType);
            }
            return(RetVal);
        }
 protected override void OnAddingNew(AddingNewEventArgs e)
 {
     e.NewObject = BaseFactory.CreateInstance <TChild>();
     base.OnAddingNew(e);
 }