//Cristian Tarea 921
        /// <summary>
        /// Retorna la vista actual de la grilla
        /// </summary>
        /// <returns>vista</returns>
        private DataView updateView()
        {
            DataTable tabla = new DataTable();

            /* se realiza esta comparacion porque Datasource puede contener un Datable, un DataView o un DataSet */
            /* Silvina 20101213 - Tarea 921 */
            if (_grillaActual.DataSource != null)
            /* Fin Silvina */
            {
                /* Cristian Tarea 1054 20110207 */
                string datasource = _grillaActual.DataSource.GetType().Name.ToString();
                switch (datasource)
                {
                case "DataTable":
                    tabla = (DataTable)_grillaActual.DataSource;
                    break;

                case "DataView":
                    tabla = (DataTable)((DataView)_grillaActual.DataSource).Table;
                    break;

                case "DataSet":
                    tabla = (DataTable)((DataSet)_grillaActual.DataSource).Tables[0];
                    break;

                default:
                    break;
                }
                /* Fin Cristian */
            }

            DataView vista = new DataView(tabla);

            /* Silvina 20101213 - Tarea 921 */
            if ((_grillaActual.RootTable != null) && _grillaActual.RootTable.SortKeys.Count > 0 && (vista.Count > 0))
            {
                /* Fin Silvina */
                Janus.Windows.GridEX.GridEXSortKey orden = _grillaActual.RootTable.SortKeys[0];
                if (orden.SortOrder.Equals(Janus.Windows.GridEX.SortOrder.Ascending))
                {
                    vista.Sort = orden.Column.DataMember + " ASC";
                }
                else
                {
                    if (orden.SortOrder.Equals(Janus.Windows.GridEX.SortOrder.Descending))
                    {
                        vista.Sort = orden.Column.DataMember + " DESC";
                    }
                }    //end else
            }
            return(vista);
        }
Exemple #2
0
 private void BuildUI()
 {
     tbbAnterior.Enabled  = !_uiController.IsFirstTask() && !_uiController.IsFlushedState();
     tbbSeparator.Enabled = !_uiController.IsFirstTask() && !_uiController.IsFlushedState();
     tbbAnterior.Text     = _uiController.TextoBotonAnterior;
     tbbSiguiente.Text    = _uiController.TextoBotonSiguiente;
     //gridEX1.LayoutData = _uiController.Layout;
     gridManagerView1.Visible = false;
     gridManagerView1.Configure(_uiController.GetProcessName(), _uiController.GetTaskName(), "FrmComprobanteDeCompraSelectN", gridEX1, "FrmComprobanteDeCompraSelectN");
     this.Text = _uiController.LeyendaFormulario;
     if (_uiController.GetProcessName().Equals("ProcesoOrdenDeCompraIngresarMercaderia"))
     {
         gridEX1.RootTable.SortKeys.Clear();
         Janus.Windows.GridEX.GridEXSortKey sort = new Janus.Windows.GridEX.GridEXSortKey(gridEX1.RootTable.Columns["FechaRecepcionMercaderia"]);
         gridEX1.RootTable.SortKeys.Add(sort);
     }
     KeyPreview = true;
 }
        //Matias 20100727 - Tarea 21
        private void grilla_SortKeysChanged(object sender, EventArgs e)
        {
            //Cristian Tarea 921 20101216
            Janus.Windows.GridEX.GridEX grilla = (Janus.Windows.GridEX.GridEX)sender;

            //Fin Tarea 921
            if (_orderCodigoNumerico)
            {
                //Janus.Windows.GridEX.GridEX grilla = (Janus.Windows.GridEX.GridEX)sender;
                Janus.Windows.GridEX.GridEXSortKeyCollection collec = grilla.RootTable.SortKeys;
                ArrayList keys = new ArrayList();
                foreach (Janus.Windows.GridEX.GridEXSortKey elem in collec)
                {
                    if (elem.Column.Key.ToUpper().Equals("CODIGO"))
                    {
                        // Grilla ordenada por codigo (bajo nivel).
                        try
                        {
                            // grilla.DataSource podria contener un DataTable o un DataView.
                            DataTable tabla = new DataTable();
                            if (grilla.DataSource.GetType().Equals(typeof(System.Data.DataTable)))
                            {
                                tabla = (DataTable)grilla.DataSource;
                            }
                            else
                            {
                                if (grilla.DataSource.GetType().Equals(typeof(System.Data.DataView)))
                                {
                                    tabla = (DataTable)((DataView)grilla.DataSource).Table;
                                }
                            }
                            // Agregar a la tabla vinculada a la Grilla, si no existe, la nueva columna "CodigoNumericoInterno".
                            if (!tabla.Columns.Contains("CodigoNumericoInterno"))
                            {
                                DataColumn dc = new DataColumn("CodigoNumericoInterno", System.Type.GetType("System.Int32"));
                                tabla.Columns.Add(dc);
                            }
                            foreach (DataRow row in tabla.Rows)
                            {
                                row["CodigoNumericoInterno"] = Convert.ToInt32(row["Codigo"]);
                            }
                            grilla.SetDataBinding(tabla, null);
                            grilla.RootTable.SortKeys.Clear();
                            Janus.Windows.GridEX.GridEXSortKey sortKey = new Janus.Windows.GridEX.GridEXSortKey(grilla.RootTable.Columns["CodigoNumericoInterno"]);
                            if (_ascendente)//Alterna entre Asc y Desc.
                            {
                                sortKey.SortOrder = Janus.Windows.GridEX.SortOrder.Ascending;
                                _ascendente       = false;
                            }
                            else
                            {
                                sortKey.SortOrder = Janus.Windows.GridEX.SortOrder.Descending;
                                _ascendente       = true;
                            }
                            grilla.RootTable.SortKeys.Add(sortKey);
                            grilla.MoveFirst();
                            break;
                        }
                        catch (Exception errorDeConversion)
                        {
                        }
                    }
                }
            }

            //Cristian 20101206 Tarea 921
            _grillaActual = grilla;
            this.SetView(this.updateView());
            //Fin Tarea 921
        }
        private void PersonalizarGrillaDs(DataSet Datos)
        {
            //Columnas
            BrowserGridEX.RootTable.Columns.Clear();
            if (BrowserGridEX.RootTable.ChildTables.Count != 0)
            {
                BrowserGridEX.RootTable.ChildTables.Clear();
            }
            BrowserGridEX.Hierarchical = true;
            BrowserGridEX.RowHeaders = Janus.Windows.GridEX.InheritableBoolean.True;
            BrowserGridEX.RootTable.GroupTotals = Janus.Windows.GridEX.GroupTotals.Always;
            for (int t = 0; t < Datos.Tables.Count; t++)
            {
                if (t == 1)
                {
                    Janus.Windows.GridEX.GridEXTable table = new Janus.Windows.GridEX.GridEXTable();
                    BrowserGridEX.RootTable.ChildTables.Add(table);
                    BrowserGridEX.RootTable.ChildTables[t - 1].Key = "Nivel" + Convert.ToString(t + 1);
                    BrowserGridEX.RootTable.ChildTables[t - 1].Caption = "Nivel" + Convert.ToString(t + 1);
                }
                else if (t > 1)
                {
                    Janus.Windows.GridEX.GridEXTable table = new Janus.Windows.GridEX.GridEXTable();
                    BrowserGridEX.RootTable.ChildTables[0].ChildTables.Add(table);
                    BrowserGridEX.RootTable.ChildTables[0].ChildTables[t - 2].Key = "Nivel" + Convert.ToString(t + 1);
                    BrowserGridEX.RootTable.ChildTables[0].ChildTables[t - 2].Caption = "Nivel" + Convert.ToString(t + 1);
                }
                for (int i = 0; i < Datos.Tables[t].Columns.Count; i++)
                {
                    string nombre = Datos.Tables[t].Columns[i].ColumnName;
                    if (t == 1)
                    {
                        BrowserGridEX.RootTable.ChildTables[t - 1].Columns.Add(nombre, Janus.Windows.GridEX.ColumnType.Text);
                        int elemento = BrowserGridEX.RootTable.ChildTables[t - 1].Columns.Count - 1;
                        BrowserGridEX.RootTable.ChildTables[t - 1].Columns[elemento].Caption = Datos.Tables[t].Columns[i].Caption;
                        if (elemento == 2)
                        {
                            BrowserGridEX.RootTable.ChildTables[0].Columns[elemento].Width = 300;
                        }
                    }
                    else if (t > 1)
                    {
                        BrowserGridEX.RootTable.ChildTables[0].ChildTables[t - 2].Columns.Add(nombre, Janus.Windows.GridEX.ColumnType.Text);
                        int elemento = BrowserGridEX.RootTable.ChildTables[0].ChildTables[t - 2].Columns.Count - 1;
                        BrowserGridEX.RootTable.ChildTables[0].ChildTables[t - 2].Columns[elemento].Caption = Datos.Tables[t].Columns[i].Caption;
                        string tipo = Datos.Tables[t].Columns[i].DataType.Name;
                        switch (tipo)
                        {
                            case "String":
                                switch (nombre)
                                {
                                    case "Descr":
                                        BrowserGridEX.RootTable.ChildTables[0].ChildTables[t - 2].Columns[elemento].Width = 350;
                                        break;
                                }
                                break;
                            case "Double":
                            case "Decimal":
                                BrowserGridEX.RootTable.ChildTables[0].ChildTables[t - 2].Columns[elemento].FormatMode = Janus.Windows.GridEX.FormatMode.UseIFormattable;
                                BrowserGridEX.RootTable.ChildTables[0].ChildTables[t - 2].Columns[elemento].FormatString = "######,##0.00;(-######,##0.00)";
                                BrowserGridEX.RootTable.ChildTables[0].ChildTables[t - 2].Columns[elemento].DefaultGroupFormatString = "######,##0.00;(-######,##0.00)";
                                BrowserGridEX.RootTable.ChildTables[0].ChildTables[t - 2].Columns[elemento].TotalFormatString = "######,##0.00;(-######,##0.00)";
                                BrowserGridEX.RootTable.ChildTables[0].ChildTables[t - 2].Columns[elemento].TextAlignment = Janus.Windows.GridEX.TextAlignment.Far;
                                BrowserGridEX.RootTable.ChildTables[0].ChildTables[t - 2].Columns[elemento].AggregateFunction = Janus.Windows.GridEX.AggregateFunction.Sum;
                                switch (nombre)
                                {
                                    case "Total Saldo":
                                        BrowserGridEX.RootTable.ChildTables[0].ChildTables[t - 2].Columns[elemento].Width = 95;
                                        break;
                                    default:
                                        BrowserGridEX.RootTable.ChildTables[0].ChildTables[t - 2].Columns[elemento].Width = 75;
                                        break;
                                }
                                break;
                            case "DateTime":
                                BrowserGridEX.RootTable.ChildTables[0].ChildTables[t - 2].Columns[elemento].FormatMode = Janus.Windows.GridEX.FormatMode.UseIFormattable;
                                BrowserGridEX.RootTable.ChildTables[0].ChildTables[t - 2].Columns[elemento].FormatString = "dd/MM/yyyy";
                                BrowserGridEX.RootTable.ChildTables[0].ChildTables[t - 2].Columns[elemento].TextAlignment = Janus.Windows.GridEX.TextAlignment.Center;
                                BrowserGridEX.RootTable.ChildTables[0].ChildTables[t - 2].Columns[elemento].Width = 75;
                                BrowserGridEX.RootTable.ChildTables[0].ChildTables[t - 2].Columns[elemento].Visible = true;
                                break;
                        }
                    }
                    else
                    {
                        BrowserGridEX.RootTable.Columns.Add(nombre, Janus.Windows.GridEX.ColumnType.Text);
                        int elemento = BrowserGridEX.RootTable.Columns.Count - 1;
                        BrowserGridEX.RootTable.Key = "Nivel1";
                        BrowserGridEX.RootTable.Caption = "Nivel1";
                        BrowserGridEX.RootTable.Columns[elemento].Width = 100;
                        BrowserGridEX.RootTable.Columns[elemento].Caption = Datos.Tables[t].Columns[i].Caption;
                    }
                }
            }
            BrowserGridEX.BindingContext = new BindingContext();
            BrowserGridEX.RootTable.ChildTables["Nivel2"].DataMember = "Nivel1_Nivel2";
            BrowserGridEX.RootTable.ChildTables["Nivel2"].ChildTables["Nivel3"].DataMember = "Nivel2_Nivel3";
            BrowserGridEX.RootTable.ChildTables["Nivel2"].ChildTables["Nivel4"].DataMember = "Nivel2_Nivel4";

            BrowserGridEX.RootTable.ChildTables[0].Columns[0].Visible = false;
            BrowserGridEX.RootTable.Groups.Clear();
            Janus.Windows.GridEX.GridEXGroup grupo1 = new Janus.Windows.GridEX.GridEXGroup(BrowserGridEX.RootTable.ChildTables[0].ChildTables[0].Columns[4]);
            grupo1.GroupInterval = Janus.Windows.GridEX.GroupInterval.Value;
            BrowserGridEX.RootTable.ChildTables[0].ChildTables[0].Columns[0].Visible = false;
            BrowserGridEX.RootTable.ChildTables[0].ChildTables[0].Columns[1].Visible = false;
            BrowserGridEX.RootTable.ChildTables[0].ChildTables[0].Columns[3].Visible = false;
            BrowserGridEX.RootTable.ChildTables[0].ChildTables[0].Columns[4].Visible = false;
            BrowserGridEX.RootTable.ChildTables[0].ChildTables[0].Columns[5].Visible = false;
            BrowserGridEX.RootTable.ChildTables[0].ChildTables[0].Groups.Add(grupo1);
            BrowserGridEX.RootTable.ChildTables[0].ChildTables[0].Groups[0].GroupPrefix = "";
            BrowserGridEX.RootTable.ChildTables[0].ChildTables[0].Groups[0].HeaderCaption = "";
            
            Janus.Windows.GridEX.GridEXSortKey s = new Janus.Windows.GridEX.GridEXSortKey();
            s.Column = BrowserGridEX.RootTable.ChildTables[0].ChildTables[0].Columns[2];
            BrowserGridEX.RootTable.ChildTables[0].ChildTables[0].SortKeys.Add(s);

            Janus.Windows.GridEX.GridEXGroup grupo2 = new Janus.Windows.GridEX.GridEXGroup(BrowserGridEX.RootTable.ChildTables[0].ChildTables[0].Columns[1]);
            grupo2.GroupInterval = Janus.Windows.GridEX.GroupInterval.Value;
            BrowserGridEX.RootTable.ChildTables[0].ChildTables[0].Groups.Add(grupo2);
            BrowserGridEX.RootTable.ChildTables[0].ChildTables[0].Groups[1].GroupPrefix = "";
            grupo2.SortOrder = Janus.Windows.GridEX.SortOrder.Descending;

            Janus.Windows.GridEX.GridEXGroup grupo3 = new Janus.Windows.GridEX.GridEXGroup(BrowserGridEX.RootTable.ChildTables[0].ChildTables[1].Columns[3]);
            grupo3.GroupInterval = Janus.Windows.GridEX.GroupInterval.Value;
            BrowserGridEX.RootTable.ChildTables[0].ChildTables[1].Groups.Add(grupo3);
            BrowserGridEX.RootTable.ChildTables[0].ChildTables[1].Groups[0].GroupPrefix = "";
            BrowserGridEX.RootTable.ChildTables[0].ChildTables[1].Columns[0].Visible = false;
            BrowserGridEX.RootTable.ChildTables[0].ChildTables[1].Columns[3].Visible = false;
        }