Ejemplo n.º 1
0
        internal void LoadProperties(string value)
        {
            if (!string.IsNullOrEmpty((string)value))
            {
                var options = ((string)value).Split(',');
                var op = string.Empty;

                foreach (var option in options)
                {
                    if (op.Length > 0)
                    {
                        op += ',';
                    }
                    op += option;
                    if (op.Split('{').Length != op.Split('}').Length)
                    {
                        continue;
                    }
                    if (op.Split('[').Length != op.Split(']').Length)
                    {
                        continue;
                    }
                    var index = op.IndexOf(':');

                    if (index > 0)
                    {
                        var pname = op.Substring(0, index).Trim();
                        var pvalue = op.Substring(index + 1).Trim('\'');
                        if (pname == "panelWidth")
                        {
                            try
                            {
                                this.DialogWidth = int.Parse(pvalue);
                            }
                            catch
                            { }
                        }
                        else if (pname == "remoteName")
                        {
                            this.RemoteName = pvalue;
                        }
                        else if (pname == "valueField")
                        {
                            this.ValueMember = pvalue;
                        }
                        else if (pname == "textField")
                        {
                            this.DisplayMember = pvalue;
                        }
                        else if (pname == "valueFieldCaption")
                        {
                            this.ValueMemberCaption = pvalue;
                        }
                        else if (pname == "textFieldCaption")
                        {
                            this.DisplayMemberCaption = pvalue;
                        }
                        else if (pname == "checkData")
                        {
                            bool b = false;
                            if (Boolean.TryParse(pvalue, out b))
                            {
                                this.CheckData = b;
                            }

                        }
                        else if (pname == "onSelect")
                        {
                            this.OnSelect = pvalue;
                        }
                        else if (pname == "onBeforeLoad")
                        {
                            this.OnBeforeLoad = pvalue;
                        }
                        else if (pname == "selectOnly")
                        {
                            bool b = false;
                            if (Boolean.TryParse(pvalue, out b))
                            {
                                this.SelectOnly = b;
                            }
                        }
                        else if (pname == "multiple")
                        {
                            bool b = false;
                            if (Boolean.TryParse(pvalue, out b))
                            {
                                this.MultiSelect = b;
                            }
                        }
                        else if (pname == "cacheRelationText")
                        {
                            bool vcacheRelationText = true;
                            Boolean.TryParse(pvalue, out vcacheRelationText);
                            this.CacheRelationText = vcacheRelationText;
                        }
                        else if (pname == "columns")
                        {
                            var columns = pvalue.Trim('[', ']');
                            var matches = Regex.Matches(columns, @"(?<=\{).*?(?=\})");
                            if (matches.Count > 0)
                            {
                                foreach (Match match in matches)
                                {
                                    var column = new JQGridColumn();
                                    var columnOptions = match.Value.Split(',');
                                    foreach (var cop in columnOptions)
                                    {
                                        var cparts = cop.Split(':');
                                        if (cparts.Length == 2)
                                        {
                                            var cpname = cparts[0].Trim();
                                            var cpvalue = cparts[1].Trim('\'');
                                            if (cpname == "field")
                                            {
                                                column.FieldName = cpvalue;
                                            }
                                            else if (cpname == "title")
                                            {
                                                column.Caption = cpvalue;
                                            }
                                            else if (cpname == "width")
                                            {
                                                try
                                                {
                                                    column.Width = int.Parse(cpvalue);
                                                }
                                                catch { }
                                            }
                                            else if (cpname == "align")
                                            {
                                                column.Alignment = cpvalue;
                                            }
                                            else if (cpname == "sortable")
                                            {
                                                bool b = false;
                                                if (Boolean.TryParse(cpvalue, out b))
                                                {
                                                    column.Sortable = b;
                                                }

                                            }
                                            else if (cpname == "format")
                                            {
                                                column.Format = cpvalue;
                                            }
                                        }
                                    }
                                    this.Columns.Add(column);
                                }
                            }
                        }
                    }
                    op = string.Empty;
                }
            }
        }
Ejemplo n.º 2
0
        internal void LoadProperties(string value)
        {
            if (!string.IsNullOrEmpty((string)value))
            {
                var options = ((string)value).Split(',');
                var op = string.Empty;
                foreach (var option in options)
                {
                    if (op.Length > 0)
                    {
                        op += ',';
                    }
                    op += option;
                    if (op.Split('{').Length != op.Split('}').Length)
                    {
                        continue;
                    }
                    if (op.Split('[').Length != op.Split(']').Length)
                    {
                        continue;
                    }
                    var index = op.IndexOf(':');

                    if (index > 0)
                    {
                        var pname = op.Substring(0, index).Trim();
                        var pvalue = op.Substring(index + 1).Trim('\'');
                        if (pname == "title")
                        {
                            this.DialogTitle = pvalue;
                        }
                        else if (pname == "panelWidth")
                        {
                            try
                            {
                                this.DialogWidth = int.Parse(pvalue);
                            }
                            catch
                            { }
                        }
                        else if (pname == "remoteName")
                        {
                            this.RemoteName = pvalue;
                        }
                        else if (pname == "valueField")
                        {
                            this.ValueMember = pvalue;
                        }
                        else if (pname == "textField")
                        {
                            this.DisplayMember = pvalue;
                        }
                        else if (pname == "valueFieldCaption")
                        {
                            this.ValueMemberCaption = pvalue;
                        }
                        else if (pname == "textFieldCaption")
                        {
                            this.DisplayMemberCaption = pvalue;
                        }
                        else if (pname == "onSelect")
                        {
                            this.OnSelect = pvalue;
                        }
                        else if (pname == "onFilter")
                        {
                            this.OnFilter = pvalue;
                        }
                        else if (pname == "selectOnly")
                        {
                            bool vselectonly = false;
                            Boolean.TryParse(pvalue, out vselectonly);
                            this.SelectOnly = vselectonly;
                        }
                        else if (pname == "cacheRelationText")
                        {
                            bool vcacheRelationText = true;
                            Boolean.TryParse(pvalue, out vcacheRelationText);
                            this.CacheRelationText = vcacheRelationText;
                        }
                        else if (pname == "checkData")
                        {
                            bool vcheckdata = true;
                            Boolean.TryParse(pvalue, out vcheckdata);
                            this.CheckData = vcheckdata;
                        }
                        else if (pname == "showValueAndText")
                        {
                            bool vshowValueAndText = true;
                            Boolean.TryParse(pvalue, out vshowValueAndText);
                            this.ShowValueAndText = vshowValueAndText;
                        }
                        else if (pname == "dialogCenter")
                        {
                            bool vsdialogCenter = true;
                            Boolean.TryParse(pvalue, out vsdialogCenter);
                            this.DialogCenter = vsdialogCenter;
                        }
                        if (pname == "capsLock")
                        {
                            this.CapsLock = (CapsLockEnum)Enum.Parse(typeof(CapsLockEnum), pvalue, true);
                        }

                        else if (pname == "columns")
                        {
                            var columns = pvalue.Trim('[', ']');
                            var matches = Regex.Matches(columns, @"(?<=\{).*?(?=\})");
                            if (matches.Count > 0)
                            {
                                foreach (Match match in matches)
                                {
                                    var column = new JQGridColumn();
                                    var columnOptions = match.Value.Split(',');
                                    foreach (var cop in columnOptions)
                                    {
                                        var cparts = cop.Split(':');
                                        if (cparts.Length == 2)
                                        {
                                            var cpname = cparts[0].Trim();
                                            var cpvalue = cparts[1].Trim('\'');
                                            if (cpname == "field")
                                            {
                                                column.FieldName = cpvalue;
                                            }
                                            else if (cpname == "title")
                                            {
                                                column.Caption = cpvalue;
                                            }
                                            else if (cpname == "width")
                                            {
                                                try
                                                {
                                                    column.Width = int.Parse(cpvalue);
                                                }
                                                catch { }
                                            }
                                            else if (cpname == "align")
                                            {
                                                column.Alignment = cpvalue;
                                            }
                                            else if (cpname == "table")
                                            {
                                                column.TableName = cpvalue;
                                            }
                                            else if (cpname == "isNvarChar")
                                            {
                                                column.IsNvarChar = cpvalue == "true";
                                            }
                                            else if (cpname == "format")
                                            {
                                                column.Format = cpvalue;
                                            }
                                            else if (cpname == "queryCondition")
                                            {
                                                column.QueryCondition = cpvalue;
                                            }
                                        }
                                    }
                                    this.Columns.Add(column);
                                }
                            }
                        }
                        else if (pname == "columnMatches")
                        {
                            var columnMatches = pvalue.Trim('[', ']');
                            var matches = Regex.Matches(columnMatches, @"(?<=\{).*?(?=\})");
                            if (matches.Count > 0)
                            {

                                foreach (Match match in matches)
                                {
                                    var columnMatch = new JQColumnMatch();
                                    var columnOptions = match.Value.Split(',');
                                    foreach (var cop in columnOptions)
                                    {
                                        var cparts = cop.Split(':');
                                        if (cparts.Length == 2)
                                        {
                                            var cpname = cparts[0].Trim();
                                            var cpvalue = cparts[1].Trim('\'');
                                            if (cpname == "field")
                                            {
                                                columnMatch.TargetFieldName = cpvalue;
                                            }
                                            else if (cpname == "value")
                                            {
                                                if (cpvalue.StartsWith("remote["))
                                                {
                                                    columnMatch.RemoteMethod = true;
                                                    columnMatch.SourceMethod = cpvalue.Replace("remote[", "").Replace("]", "");
                                                }
                                                else if (cpvalue.StartsWith("client["))
                                                {
                                                    columnMatch.RemoteMethod = false;
                                                    columnMatch.SourceMethod = cpvalue.Replace("client[", "").Replace("]", "");
                                                }
                                                else
                                                {
                                                    columnMatch.SourceFieldName = cpvalue;
                                                }
                                            }
                                        }
                                    }
                                    this.ColumnMatches.Add(columnMatch);
                                }

                            }
                        }
                        else if (pname == "whereItems")
                        {
                            var whereItems = pvalue.Trim('[', ']');
                            var matches = Regex.Matches(whereItems, @"(?<=\{).*?(?=\})");
                            if (matches.Count > 0)
                            {

                                foreach (Match match in matches)
                                {
                                    var whereItem = new JQWhereItem();
                                    var columnOptions = match.Value.Split(',');
                                    var columnOp = "";
                                    foreach (var cop in columnOptions)
                                    {
                                        if (columnOp.Length > 0)
                                        {
                                            columnOp += ',';
                                        }
                                        columnOp += cop;
                                        if (columnOp.Split('\'').Length % 2 == 0)
                                        {
                                            continue;
                                        }

                                        var cparts = columnOp.Split(':');
                                        if (cparts.Length == 2)
                                        {
                                            var cpname = cparts[0].Trim();
                                            var cpvalue = cparts[1].Trim('\'');
                                            if (cpname == "field")
                                            {
                                                whereItem.FieldName = cpvalue;
                                            }
                                            else if (cpname == "value")
                                            {
                                                if (cpvalue.StartsWith("remote["))
                                                {
                                                    whereItem.RemoteMethod = true;
                                                    cpvalue = cpvalue.Replace("remote[", "").Replace("]", "");
                                                    if (cpvalue.StartsWith("_"))
                                                    {
                                                        whereItem.WhereValue = cpvalue;
                                                    }
                                                    else
                                                    {
                                                        whereItem.WhereMethod = cpvalue;
                                                    }
                                                }
                                                else if (cpvalue.StartsWith("client["))
                                                {
                                                    whereItem.RemoteMethod = false;
                                                    whereItem.WhereMethod = cpvalue.Replace("client[", "").Replace("]", "");
                                                }
                                                else if (cpvalue.StartsWith("row["))
                                                {
                                                    whereItem.RemoteMethod = false;
                                                    whereItem.WhereField = cpvalue.Replace("row[", "").Replace("]", "");
                                                }
                                                else
                                                {
                                                    whereItem.WhereValue = cpvalue;
                                                }
                                            }
                                        }
                                        columnOp = string.Empty;
                                    }
                                    this.WhereItems.Add(whereItem);
                                }

                            }
                        }
                    }
                    op = string.Empty;
                }
            }
        }
Ejemplo n.º 3
0
        public void RefreshSchema()
        {
            if (this.Component is JQDataGrid)
            {
                if (string.IsNullOrEmpty(RemoteName) || string.IsNullOrEmpty(DataMember))
                {
                    return;
                }

                var dataGrid = this.Component as JQDataGrid;
                if (dataGrid.Columns.Count > 0)
                {
                    if (System.Windows.Forms.MessageBox.Show("Would you like to regenerate the gridview column fields and toolitems? Warning: this will delete all existing column fields"
                        , "Confirm", System.Windows.Forms.MessageBoxButtons.YesNo
                        , System.Windows.Forms.MessageBoxIcon.Warning) == System.Windows.Forms.DialogResult.No)
                    {
                        return;
                    }
                }
                var clientInfo = EFClientTools.DesignClientUtility.ClientInfo;
                clientInfo.UseDataSet = true;
                try
                {
                    var assemblyName = RemoteName.Split('.')[0];
                    var commandName = RemoteName.Split('.')[1];
                    var columnsLength = EFClientTools.DesignClientUtility.Client.GetEntityFieldsLength(clientInfo, assemblyName, DataMember, null);
                    var columnsType = EFClientTools.DesignClientUtility.Client.GetEntityFieldTypes(clientInfo, assemblyName, DataMember, null);
                    var columns = EFClientTools.DesignClientUtility.Client.GetEntityFields(clientInfo, assemblyName, DataMember, null);
                    var componentChangeService = (IComponentChangeService)this.GetService(typeof(IComponentChangeService));
                    componentChangeService.OnComponentChanging(dataGrid, null);
                    dataGrid.Columns.Clear();
                    var columnDefinations = EFClientTools.DesignClientUtility.Client.GetColumnDefination(clientInfo, assemblyName, DataMember, null)
                        .OfType<EFClientTools.EFServerReference.COLDEF>();
                    foreach (var column in columns)
                    {
                        JQGridColumn aJQGridColumn = new JQGridColumn();
                        aJQGridColumn.FieldName = column;
                        aJQGridColumn.Caption = column;
                        aJQGridColumn.Width = 90;
                        var coldef = columnDefinations.Where(c => c.FIELD_NAME == column).FirstOrDefault();
                        if (coldef != null)
                        {
                            if (!String.IsNullOrEmpty(coldef.CAPTION))
                                aJQGridColumn.Caption = coldef.CAPTION;
                            if (coldef.FIELD_LENGTH.HasValue)
                            {
                                aJQGridColumn.MaxLength = (int)coldef.FIELD_LENGTH;
                            }
                            switch (columnsType[column])
                            {
                                case "String":
                                    if (aJQGridColumn.MaxLength > 0)
                                    {
                                        aJQGridColumn.Width = aJQGridColumn.MaxLength * 2;
                                    }
                                    else if (columnsLength[column] > 0)
                                    {
                                        aJQGridColumn.Width = columnsLength[column] * 2;
                                    }
                                    break;
                            }

                            //aJQGridColumn.Width = 90;
                            switch (coldef.NEEDBOX)
                            {
                                case "ComboBox":
                                    aJQGridColumn.Editor = "infocombobox";
                                    break;
                                case "ComboGrid":
                                    aJQGridColumn.Editor = "infocombogrid";
                                    break;
                                case "RefValBox":
                                    aJQGridColumn.Editor = "inforefval";
                                    break;
                                case "CheckBox":
                                    aJQGridColumn.Editor = "checkbox";
                                    break;
                                case "DateTimeBox":
                                    aJQGridColumn.Editor = "datebox";
                                    break;
                                case "NumberBox":
                                    aJQGridColumn.Editor = "numberbox";
                                    break;
                                default:
                                    aJQGridColumn.Editor = "text";
                                    break;
                            }
                        }
                        dataGrid.Columns.Add(aJQGridColumn);
                    }

                    dataGrid.TooItems.Clear();
                    dataGrid.TooItems.Add(JQToolItem.InsertItem);
                    dataGrid.TooItems.Add(JQToolItem.UpdateItem);
                    dataGrid.TooItems.Add(JQToolItem.DeleteItem);
                    if (commandName == DataMember)
                    {
                        dataGrid.TooItems.Add(JQToolItem.ApplyItem);
                        dataGrid.TooItems.Add(JQToolItem.CancelItem);
                        dataGrid.TooItems.Add(JQToolItem.QueryItem);
                        dataGrid.TooItems.Add(JQToolItem.ExportItem);
                    }
                    else
                    {
                        dataGrid.AutoApply = false;
                        dataGrid.Pagination = false;
                    }
                    componentChangeService.OnComponentChanged(dataGrid, null, null, null);
                    System.Windows.Forms.MessageBox.Show("Refresh schema succeed.", "Info", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information);
                }
                catch (Exception e)
                {
                    System.Windows.Forms.MessageBox.Show(e.Message, "Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
                }
            }
        }