예제 #1
0
        private void renderTopCriteriaEntries()
        {
            int left  = 10;
            int width = 200;

            ArrayList entries = criteria.TopCriteriaEntries;

            foreach (CCriteriaEntry en in entries)
            {
                if (en.Type == CriteriaEntryType.ENTRY_LABEL)
                {
                    Label label = new Label();

                    Binding myBinding = new Binding();
                    myBinding.Source = CTextLabel.Instance;
                    myBinding.Path   = new PropertyPath(en.CaptionKey);
                    BindingOperations.SetBinding(label, Label.ContentProperty, myBinding);

                    label.VerticalAlignment          = VerticalAlignment.Center;
                    label.VerticalContentAlignment   = VerticalAlignment.Center;
                    label.HorizontalContentAlignment = HorizontalAlignment.Left;
                    label.Margin = new Thickness(left, 0, 0, 0);
                    pnlCriteriaTop.Children.Add(label);
                }
                else if ((en.Type == CriteriaEntryType.ENTRY_DATE_MIN) || (en.Type == CriteriaEntryType.ENTRY_DATE_MAX))
                {
                    UDatePicker dt = new UDatePicker();

                    Binding myBinding = new Binding();
                    myBinding.Source = DataContext;
                    myBinding.Path   = new PropertyPath(en.FieldName);
                    myBinding.Mode   = BindingMode.TwoWay;
                    myBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
                    BindingOperations.SetBinding(dt, UDatePicker.SelectedDateProperty, myBinding);

                    dt.HorizontalAlignment      = HorizontalAlignment.Left;
                    dt.VerticalAlignment        = VerticalAlignment.Center;
                    dt.VerticalContentAlignment = VerticalAlignment.Center;
                    dt.Margin = new Thickness(left, 0, 0, 0);
                    dt.Width  = width;

                    pnlCriteriaTop.Children.Add(dt);
                }
            }
        }
        private UDatePicker createDatePicker(CCriteriaEntry en, double l, double t, double r, double b, double w)
        {
            UDatePicker dt = new UDatePicker();

            Binding myBinding = new Binding();

            myBinding.Source = DataContext;
            myBinding.Path   = new PropertyPath(en.FieldName);
            myBinding.Mode   = BindingMode.TwoWay;
            myBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
            BindingOperations.SetBinding(dt, UDatePicker.SelectedDateProperty, myBinding);

            dt.HorizontalAlignment      = HorizontalAlignment.Left;
            dt.VerticalAlignment        = VerticalAlignment.Center;
            dt.VerticalContentAlignment = VerticalAlignment.Center;
            dt.Margin    = new Thickness(l, 0, 0, 0);
            dt.Width     = w;
            dt.IsEnabled = en.IsEnable;

            return(dt);
        }
        private void renderCriteriaEntries()
        {
            //pnlCriteria
            int left  = 5;
            int width = 200;

            ArrayList entries = criteria.CriteriaEntries;

            foreach (CCriteriaEntry en in entries)
            {
                if (en.Type == CriteriaEntryType.ENTRY_LABEL)
                {
                    Label label = createLabel(en, left, 0, 0, 0);
                    pnlCriteria.Children.Add(label);
                }
                else if (en.Type == CriteriaEntryType.ENTRY_TEXT_BOX)
                {
                    TextBox tbx = createTextBox(en, left, 0, 0, 0, width);
                    pnlCriteria.Children.Add(tbx);
                }
                else if ((en.Type == CriteriaEntryType.ENTRY_DATE_MIN) || (en.Type == CriteriaEntryType.ENTRY_DATE_MAX))
                {
                    UDatePicker dt = createDatePicker(en, left, 0, 0, 0, width);
                    pnlCriteria.Children.Add(dt);
                }
                else if (en.Type == CriteriaEntryType.ENTRY_CHECK_BOX)
                {
                    CheckBox cbx = createCheckBox(en, left + 10, 0, 0, 0, width);
                    pnlCriteria.Children.Add(cbx);
                }
                else if (en.Type == CriteriaEntryType.ENTRY_COMBO_BOX)
                {
                    ComboBox cbo = createComboBox(en, left, 0, 0, 0, width);
                    pnlCriteria.Children.Add(cbo);
                }
            }
        }
        private void renderInfoEntries()
        {
            ColumnDefinition cd1 = new ColumnDefinition();

            cd1.Width = new GridLength(15, GridUnitType.Auto);
            grdInfo.ColumnDefinitions.Add(cd1);

            ColumnDefinition cd2 = new ColumnDefinition();

            cd2.Width = new GridLength(65, GridUnitType.Star);
            grdInfo.ColumnDefinitions.Add(cd2);

            ColumnDefinition cd3 = new ColumnDefinition();

            cd3.Width = new GridLength(20, GridUnitType.Star);
            grdInfo.ColumnDefinitions.Add(cd3);

            int left  = 10;
            int width = 300;
            int row   = 0; //Count row by label

            Boolean labelCreated = false;

            ArrayList entries = criteria.InfoEntries;

            foreach (CCriteriaEntry en in entries)
            {
                if (en.Type == CriteriaEntryType.ENTRY_LABEL)
                {
                    RowDefinition rd = new RowDefinition();
                    rd.Height = new GridLength(45, GridUnitType.Auto);
                    grdInfo.RowDefinitions.Add(rd);

                    Label label = createLabel(en, left, 0, 0, 5);

                    Grid.SetColumn(label, 0);
                    Grid.SetRow(label, row);
                    grdInfo.Children.Add(label);

                    labelCreated = true;
                }
                else if (en.Type == CriteriaEntryType.ENTRY_TEXT_BOX)
                {
                    TextBox tbx = createTextBox(en, left, 0, 0, 5, width);

                    Grid.SetColumn(tbx, 1);
                    Grid.SetRow(tbx, row);
                    grdInfo.Children.Add(tbx);
                }
                else if ((en.Type == CriteriaEntryType.ENTRY_DATE_MIN) || (en.Type == CriteriaEntryType.ENTRY_DATE_MAX))
                {
                    UDatePicker dt = createDatePicker(en, left, 0, 0, 5, width);

                    Grid.SetColumn(dt, 1);
                    Grid.SetRow(dt, row);
                    grdInfo.Children.Add(dt);
                }
                else if (en.Type == CriteriaEntryType.ENTRY_CHECK_BOX)
                {
                    if (!labelCreated)
                    {
                        //Create grid row, Check box has no associate label
                        RowDefinition rd = new RowDefinition();
                        rd.Height = new GridLength(45, GridUnitType.Auto);
                        grdInfo.RowDefinitions.Add(rd);
                    }

                    CheckBox cbx = createCheckBox(en, left, 5, 0, 5, width);

                    Grid.SetColumn(cbx, 1);
                    Grid.SetRow(cbx, row);
                    grdInfo.Children.Add(cbx);
                }
                else if (en.Type == CriteriaEntryType.ENTRY_COMBO_BOX)
                {
                    ComboBox cbo = createComboBox(en, left, 0, 0, 5, width);

                    Grid.SetColumn(cbo, 1);
                    Grid.SetRow(cbo, row);
                    grdInfo.Children.Add(cbo);
                }

                if (en.Type != CriteriaEntryType.ENTRY_LABEL)
                {
                    row++;
                    labelCreated = false;
                }
            }
        }
예제 #5
0
        private void renderCriteriaEntries()
        {
            ColumnDefinition cd1 = new ColumnDefinition();

            cd1.Width = new GridLength(15, GridUnitType.Auto);
            grdMain.ColumnDefinitions.Add(cd1);

            ColumnDefinition cd2 = new ColumnDefinition();

            cd2.Width = new GridLength(65, GridUnitType.Star);
            grdMain.ColumnDefinitions.Add(cd2);

            ColumnDefinition cd3 = new ColumnDefinition();

            cd3.Width = new GridLength(20, GridUnitType.Star);
            grdMain.ColumnDefinitions.Add(cd3);

            int left  = 10;
            int width = 300;
            int row   = 0; //Count row by label

            Boolean labelCreated = false;

            ArrayList entries = criteria.CriteriaEntries;

            foreach (CCriteriaEntry en in entries)
            {
                if (en.Type == CriteriaEntryType.ENTRY_LABEL)
                {
                    RowDefinition rd = new RowDefinition();
                    rd.Height = new GridLength(45, GridUnitType.Auto);
                    grdMain.RowDefinitions.Add(rd);

                    Label label = new Label();

                    Binding myBinding = new Binding();
                    myBinding.Source = CTextLabel.Instance;
                    myBinding.Path   = new PropertyPath(en.CaptionKey);
                    BindingOperations.SetBinding(label, Label.ContentProperty, myBinding);

                    label.VerticalAlignment          = VerticalAlignment.Center;
                    label.VerticalContentAlignment   = VerticalAlignment.Center;
                    label.HorizontalContentAlignment = HorizontalAlignment.Right;
                    label.Margin = new Thickness(left, 0, 0, 5);

                    Grid.SetColumn(label, 0);
                    Grid.SetRow(label, row);
                    grdMain.Children.Add(label);

                    labelCreated = true;
                }
                else if (en.Type == CriteriaEntryType.ENTRY_TEXT_BOX)
                {
                    TextBox tbx = new TextBox();

                    Binding myBinding = new Binding();
                    myBinding.Source = DataContext;
                    myBinding.Path   = new PropertyPath(en.FieldName);
                    myBinding.Mode   = BindingMode.TwoWay;
                    myBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
                    BindingOperations.SetBinding(tbx, TextBox.TextProperty, myBinding);

                    tbx.HorizontalAlignment      = HorizontalAlignment.Left;
                    tbx.VerticalAlignment        = VerticalAlignment.Center;
                    tbx.VerticalContentAlignment = VerticalAlignment.Center;
                    tbx.Margin = new Thickness(left, 0, 0, 5);
                    tbx.Width  = width;

                    Grid.SetColumn(tbx, 1);
                    Grid.SetRow(tbx, row);
                    grdMain.Children.Add(tbx);
                }
                else if ((en.Type == CriteriaEntryType.ENTRY_DATE_MIN) || (en.Type == CriteriaEntryType.ENTRY_DATE_MAX))
                {
                    UDatePicker dt = new UDatePicker();

                    Binding myBinding = new Binding();
                    myBinding.Source = DataContext;
                    myBinding.Path   = new PropertyPath(en.FieldName);
                    myBinding.Mode   = BindingMode.TwoWay;
                    myBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
                    BindingOperations.SetBinding(dt, UDatePicker.SelectedDateProperty, myBinding);

                    dt.HorizontalAlignment      = HorizontalAlignment.Left;
                    dt.VerticalAlignment        = VerticalAlignment.Center;
                    dt.VerticalContentAlignment = VerticalAlignment.Center;
                    dt.Margin = new Thickness(left, 0, 0, 5);
                    dt.Width  = width;

                    Grid.SetColumn(dt, 1);
                    Grid.SetRow(dt, row);
                    grdMain.Children.Add(dt);
                }
                else if (en.Type == CriteriaEntryType.ENTRY_CHECK_BOX)
                {
                    if (!labelCreated)
                    {
                        //Create grid row, Check box has no associate label
                        RowDefinition rd = new RowDefinition();
                        rd.Height = new GridLength(45, GridUnitType.Auto);
                        grdMain.RowDefinitions.Add(rd);
                    }

                    CheckBox cbx = new CheckBox();
                    cbx.IsThreeState = true;

                    Binding ctntBinding = new Binding();
                    ctntBinding.Source = CTextLabel.Instance;
                    ctntBinding.Path   = new PropertyPath(en.CaptionKey);
                    BindingOperations.SetBinding(cbx, CheckBox.ContentProperty, ctntBinding);

                    Binding valueBinding = new Binding();
                    valueBinding.Source = DataContext;
                    valueBinding.Path   = new PropertyPath(en.FieldName);
                    BindingOperations.SetBinding(cbx, CheckBox.IsCheckedProperty, valueBinding);

                    cbx.HorizontalAlignment      = HorizontalAlignment.Left;
                    cbx.VerticalAlignment        = VerticalAlignment.Center;
                    cbx.VerticalContentAlignment = VerticalAlignment.Center;
                    cbx.Margin = new Thickness(left, 5, 0, 5);

                    Grid.SetColumn(cbx, 1);
                    Grid.SetRow(cbx, row);
                    grdMain.Children.Add(cbx);
                }
                else if (en.Type == CriteriaEntryType.ENTRY_COMBO_BOX)
                {
                    ComboBox cbo = new ComboBox();

                    Binding ctntBinding = new Binding();
                    ctntBinding.Source = CMasterReference.Instance;
                    ctntBinding.Path   = new PropertyPath(en.ComboCollectionName);
                    BindingOperations.SetBinding(cbo, ComboBox.ItemsSourceProperty, ctntBinding);

                    cbo.DisplayMemberPath = en.ComboDisplayItem;
                    cbo.SelectedValuePath = "ObjSelf";

                    Binding selectedValueBinding = new Binding();
                    selectedValueBinding.Path = new PropertyPath(en.FieldName);
                    BindingOperations.SetBinding(cbo, ComboBox.SelectedValueProperty, selectedValueBinding);

                    cbo.HorizontalAlignment      = HorizontalAlignment.Left;
                    cbo.VerticalAlignment        = VerticalAlignment.Center;
                    cbo.VerticalContentAlignment = VerticalAlignment.Center;
                    cbo.Margin = new Thickness(left, 0, 0, 5);
                    cbo.Width  = width;

                    Grid.SetColumn(cbo, 1);
                    Grid.SetRow(cbo, row);
                    grdMain.Children.Add(cbo);
                }

                if (en.Type != CriteriaEntryType.ENTRY_LABEL)
                {
                    row++;
                    labelCreated = false;
                }
            }
        }
예제 #6
0
        private void constructUI()
        {
            String value = "";

            foreach (CEntry en in entries)
            {
                Label label = new Label();
                label.Height                     = en.EntryHeight;
                label.Content                    = CLanguage.getValue(en.LabelContentKey);
                label.VerticalAlignment          = VerticalAlignment.Center;
                label.VerticalContentAlignment   = VerticalAlignment.Center;
                label.HorizontalContentAlignment = HorizontalAlignment.Right;
                label.Margin                     = new Thickness(20, 0, 0, 5);

                pnlLabel.Children.Add(label);

                FrameworkElement ctrl = new TextBlock();
                if ((en.EntryType == EntryType.ENTRY_DATE_MIN) || (en.EntryType == EntryType.ENTRY_DATE_MAX))
                {
                    ctrl = new UDatePicker();
                    ctrl.HorizontalAlignment = HorizontalAlignment.Left;
                    ctrl.VerticalAlignment   = VerticalAlignment.Center;

                    value = rptCfg.GetConfigValue(en.FieldName, "");
                    if (!value.Equals(""))
                    {
                        (ctrl as UDatePicker).SelectedDate = CUtil.InternalDateToDate(value);
                    }
                }
                else if (en.EntryType == EntryType.ENTRY_MONTH_YEAR)
                {
                    ctrl = new UDateEntry();
                    (ctrl as UDateEntry).ButtonVisible = true;
                    (ctrl as UDateEntry).OnlyMonth     = true;
                    ctrl.HorizontalAlignment           = HorizontalAlignment.Left;
                    ctrl.VerticalAlignment             = VerticalAlignment.Center;

                    value = rptCfg.GetConfigValue(en.FieldName, "");
                    if (!value.Equals(""))
                    {
                        (ctrl as UDateEntry).SelectedDate = CUtil.InternalDateToDate(value);
                    }
                    else
                    {
                        (ctrl as UDateEntry).SelectedDate = DateTime.Now;
                    }
                }
                else if (en.EntryType == EntryType.ENTRY_TEXT_BOX)
                {
                    ctrl = new TextBox();
                    ctrl.HorizontalAlignment = HorizontalAlignment.Left;
                    ctrl.VerticalAlignment   = VerticalAlignment.Center;
                    (ctrl as TextBox).VerticalContentAlignment = VerticalAlignment.Center;

                    value = rptCfg.GetConfigValue(en.FieldName, "");
                    (ctrl as TextBox).Text = value;
                }
                else if (en.EntryType == EntryType.ENTRY_CHECK_BOX)
                {
                    ctrl = new CheckBox();
                    ctrl.HorizontalAlignment = HorizontalAlignment.Left;
                    ctrl.VerticalAlignment   = VerticalAlignment.Center;
                    (ctrl as CheckBox).VerticalContentAlignment = VerticalAlignment.Top;
                    (ctrl as CheckBox).Content = label.Content; //เอาค่าจาก label มาแสดงที่ checkbox แทน

                    label.Content = "";
                    value         = rptCfg.GetConfigValue(en.FieldName, "");
                    (ctrl as CheckBox).IsChecked = flagToBoolean(value);
                }
                else if (en.EntryType == EntryType.ENTRY_COMBO_BOX)
                {
                    ctrl = new ComboBox();
                    ctrl.HorizontalAlignment = HorizontalAlignment.Left;
                    ctrl.VerticalAlignment   = VerticalAlignment.Center;
                    (ctrl as ComboBox).VerticalContentAlignment = VerticalAlignment.Center;

                    value = rptCfg.GetConfigValue(en.FieldName, "");

                    en.ComboSetupFunction((ctrl as ComboBox));
                    en.ComboLoaderFunction((ctrl as ComboBox), value);
                }

                ctrl.Margin = new Thickness(5, 0, 0, 5);
                ctrl.Width  = en.EntryWidth;
                ctrl.Height = en.EntryHeight;

                en.ActualUI    = ctrl;
                en.ActualLabel = label;

                pnlEntry.Children.Add(ctrl);

                value            = rptCfg.GetConfigValue((String)txtFromPage.Tag, "");
                txtFromPage.Text = value;

                value          = rptCfg.GetConfigValue((String)txtToPage.Tag, "");
                txtToPage.Text = value;

                value        = rptCfg.GetConfigValue((String)txtLeft.Tag, "");
                txtLeft.Text = value;

                value       = rptCfg.GetConfigValue((String)txtTop.Tag, "");
                txtTop.Text = value;

                value          = rptCfg.GetConfigValue((String)txtBottom.Tag, "");
                txtBottom.Text = value;

                value         = rptCfg.GetConfigValue((String)txtRight.Tag, "");
                txtRight.Text = value;

                cbxPageRange.IsEnabled = paginator.IsNewVersion();
            }
        }
예제 #7
0
        private CTable verifyAndConstructObject()
        {
            foreach (CEntry en in entries)
            {
                UIElement elm   = en.ActualUI;
                String    value = "";

                if (en.EntryType == EntryType.ENTRY_DATE_MIN)
                {
                    UDatePicker dt = (UDatePicker)elm;
                    if (dt.SelectedDate == null)
                    {
                        value = "";
                    }
                    else
                    {
                        value = CUtil.DateTimeToDateStringInternalMin((DateTime)dt.SelectedDate);
                    }
                }
                else if (en.EntryType == EntryType.ENTRY_DATE_MAX)
                {
                    UDatePicker dt = (UDatePicker)elm;
                    if (dt.SelectedDate == null)
                    {
                        value = "";
                    }
                    else
                    {
                        value = CUtil.DateTimeToDateStringInternalMax((DateTime)dt.SelectedDate);
                    }
                }
                else if (en.EntryType == EntryType.ENTRY_MONTH_YEAR)
                {
                    UDateEntry dt = (UDateEntry)elm;
                    if (dt.SelectedDate == null)
                    {
                        value = "";
                    }
                    else
                    {
                        value = CUtil.DateTimeToDateStringInternal((DateTime)dt.SelectedDate);
                    }
                }
                else if (en.EntryType == EntryType.ENTRY_TEXT_BOX)
                {
                    TextBox txt = (TextBox)elm;

                    if (!CHelper.ValidateTextBox((Label)en.ActualLabel, txt, en.NullAllowed))
                    {
                        return(null);
                    }

                    value = txt.Text;
                }
                else if (en.EntryType == EntryType.ENTRY_CHECK_BOX)
                {
                    CheckBox cbx = (CheckBox)elm;

                    value = booleanToFlag((Boolean)cbx.IsChecked);
                }
                else if (en.EntryType == EntryType.ENTRY_COMBO_BOX)
                {
                    ComboBox cbo = (ComboBox)elm;

                    if (!CHelper.ValidateComboBox((Label)en.ActualLabel, cbo, en.NullAllowed))
                    {
                        return(null);
                    }

                    MBaseModel v = (MBaseModel)cbo.SelectedItem;
                    value = en.ObjectToIndexFunction(v);
                }

                String fld = en.FieldName;
                rptCfg.SetConfigValue(fld, value, "String", "");
            }

            if (!CHelper.ValidateComboBox(lblPaperType, cboPaperType, false))
            {
                return(null);
            }

            MMasterRef mr = (MMasterRef)cboPaperType.SelectedItem;

            rptCfg.SetConfigValue((String)cboPaperType.Tag, mr.MasterID, "Integer", "");


            if (radPotrait.IsChecked == true)
            {
                rptCfg.SetConfigValue((String)lblPaperType.Tag, (String)radPotrait.Tag, "String", "");
            }
            else if (radLandScape.IsChecked == true)
            {
                rptCfg.SetConfigValue((String)lblPaperType.Tag, (String)radLandScape.Tag, "String", "");
            }

            if (cbxPageRange.IsChecked == true)
            {
                paginator.isPageRange = true;

                if (!CHelper.ValidateTextBox(lblFromPage, txtFromPage, false, InputDataType.InputTypeZeroPossitiveInt))
                {
                    return(null);
                }
                paginator.fromPage = CUtil.StringToInt(txtFromPage.Text);

                if (!CHelper.ValidateTextBox(lblToPage, txtToPage, false, InputDataType.InputTypeZeroPossitiveInt))
                {
                    return(null);
                }
                paginator.toPage = CUtil.StringToInt(txtToPage.Text);

                if (paginator.toPage < paginator.fromPage)
                {
                    CHelper.ShowErorMessage("", "ERROR_PAGE_RANGE", null);
                    txtFromPage.Focus();

                    return(null);
                }
            }

            if (!CHelper.ValidateTextBox(lblMarginLeft, txtLeft, false, InputDataType.InputTypeZeroPossitiveDecimal))
            {
                return(null);
            }
            if (!CHelper.ValidateTextBox(lblMarginTop, txtTop, false, InputDataType.InputTypeZeroPossitiveDecimal))
            {
                return(null);
            }
            if (!CHelper.ValidateTextBox(lblMarginRight, txtRight, false, InputDataType.InputTypeZeroPossitiveDecimal))
            {
                return(null);
            }
            if (!CHelper.ValidateTextBox(lblMarginBottom, txtBottom, false, InputDataType.InputTypeZeroPossitiveDecimal))
            {
                return(null);
            }

            rptCfg.SetConfigValue((String)txtFromPage.Tag, txtFromPage.Text, "String", "");
            rptCfg.SetConfigValue((String)txtToPage.Tag, txtToPage.Text, "String", "");
            rptCfg.SetConfigValue((String)txtLeft.Tag, txtLeft.Text, "String", "");
            rptCfg.SetConfigValue((String)txtTop.Tag, txtTop.Text, "String", "");
            rptCfg.SetConfigValue((String)txtRight.Tag, txtRight.Text, "String", "");
            rptCfg.SetConfigValue((String)txtBottom.Tag, txtBottom.Text, "String", "");
            CUtil.EnableForm(false, this);
            CReportConfigs.SaveReportConfig(null, rptCfg);
            CUtil.EnableForm(true, this);

            CTable tb = rptCfg.GetParamObject();

            return(tb);
        }
예제 #8
0
        private void renderCriteriaEntries()
        {
            int left  = 10;
            int width = 200;

            ArrayList entries = criteria.CriteriaEntries;

            foreach (CCriteriaEntry en in entries)
            {
                if (en.Type == CriteriaEntryType.ENTRY_LABEL)
                {
                    Label label = new Label();

                    Binding myBinding = new Binding();
                    myBinding.Source = CTextLabel.Instance;
                    myBinding.Path   = new PropertyPath(en.CaptionKey);
                    BindingOperations.SetBinding(label, Label.ContentProperty, myBinding);

                    label.VerticalAlignment          = VerticalAlignment.Center;
                    label.VerticalContentAlignment   = VerticalAlignment.Center;
                    label.HorizontalContentAlignment = HorizontalAlignment.Left;
                    label.Margin = new Thickness(left, 0, 0, 5);
                    pnlCriteria.Children.Add(label);
                }
                else if (en.Type == CriteriaEntryType.ENTRY_TEXT_BOX)
                {
                    TextBox tbx = new TextBox();

                    Binding myBinding = new Binding();
                    myBinding.Source = DataContext;
                    myBinding.Path   = new PropertyPath(en.FieldName);
                    myBinding.Mode   = BindingMode.TwoWay;
                    myBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
                    BindingOperations.SetBinding(tbx, TextBox.TextProperty, myBinding);

                    tbx.HorizontalAlignment      = HorizontalAlignment.Left;
                    tbx.VerticalAlignment        = VerticalAlignment.Center;
                    tbx.VerticalContentAlignment = VerticalAlignment.Center;
                    tbx.Margin = new Thickness(left, 0, 0, 5);
                    tbx.Width  = width;

                    if (elm == null)
                    {
                        elm = tbx;
                    }

                    pnlCriteria.Children.Add(tbx);
                }
                else if ((en.Type == CriteriaEntryType.ENTRY_DATE_MIN) || (en.Type == CriteriaEntryType.ENTRY_DATE_MAX))
                {
                    UDatePicker dt = new UDatePicker();

                    Binding myBinding = new Binding();
                    myBinding.Source = DataContext;
                    myBinding.Path   = new PropertyPath(en.FieldName);
                    myBinding.Mode   = BindingMode.TwoWay;
                    myBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
                    BindingOperations.SetBinding(dt, UDatePicker.SelectedDateProperty, myBinding);

                    dt.HorizontalAlignment      = HorizontalAlignment.Left;
                    dt.VerticalAlignment        = VerticalAlignment.Center;
                    dt.VerticalContentAlignment = VerticalAlignment.Center;
                    dt.Margin = new Thickness(left, 0, 0, 5);
                    dt.Width  = width;

                    if (elm == null)
                    {
                        elm = dt;
                    }

                    pnlCriteria.Children.Add(dt);
                }
                else if (en.Type == CriteriaEntryType.ENTRY_CHECK_BOX)
                {
                    CheckBox cbx = new CheckBox();
                    cbx.IsThreeState = true;

                    Binding ctntBinding = new Binding();
                    ctntBinding.Source = CTextLabel.Instance;
                    ctntBinding.Path   = new PropertyPath(en.CaptionKey);
                    BindingOperations.SetBinding(cbx, CheckBox.ContentProperty, ctntBinding);

                    Binding valueBinding = new Binding();
                    valueBinding.Source = DataContext;
                    valueBinding.Path   = new PropertyPath(en.FieldName);
                    BindingOperations.SetBinding(cbx, CheckBox.IsCheckedProperty, valueBinding);

                    cbx.HorizontalAlignment      = HorizontalAlignment.Left;
                    cbx.VerticalAlignment        = VerticalAlignment.Center;
                    cbx.VerticalContentAlignment = VerticalAlignment.Center;
                    cbx.Margin = new Thickness(left, 5, 0, 5);

                    if (elm == null)
                    {
                        elm = cbx;
                    }

                    pnlCriteria.Children.Add(cbx);
                }
                else if (en.Type == CriteriaEntryType.ENTRY_COMBO_BOX)
                {
                    ComboBox cbo = new ComboBox();

                    Binding ctntBinding = new Binding();
                    ctntBinding.Source = CMasterReference.Instance;
                    ctntBinding.Path   = new PropertyPath(en.ComboCollectionName);
                    BindingOperations.SetBinding(cbo, ComboBox.ItemsSourceProperty, ctntBinding);

                    cbo.DisplayMemberPath = en.ComboDisplayItem;
                    cbo.SelectedValuePath = "ObjSelf";

                    Binding selectedValueBinding = new Binding();
                    selectedValueBinding.Path = new PropertyPath(en.FieldName);
                    BindingOperations.SetBinding(cbo, ComboBox.SelectedValueProperty, selectedValueBinding);

                    cbo.HorizontalAlignment      = HorizontalAlignment.Left;
                    cbo.VerticalAlignment        = VerticalAlignment.Center;
                    cbo.VerticalContentAlignment = VerticalAlignment.Center;
                    cbo.Margin = new Thickness(left, 0, 0, 5);
                    cbo.Width  = width;

                    if (elm == null)
                    {
                        elm = cbo;
                    }

                    pnlCriteria.Children.Add(cbo);
                }
            }
        }