Constancia

VB_CLS_GRID

Jul 1st, 2014
343
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 10.21 KB | None | 0 0
  1. Public Class GRID
  2.  
  3.  
  4. #Region "COLORES"
  5.     Private BLANCO As Color = Color.White
  6.     Private NEGRO As Color = Color.Black
  7.     Private VERDE As Color = Color.LimeGreen
  8.     Private ROJO As Color = Color.Red
  9.     Private TOMATE As Color = Color.Tomato
  10.     Private ROJO_OSCURO As Color = Color.DarkRed
  11.     Private NARANJA As Color = Color.Orange
  12.     Private AZUL As Color = Color.Navy
  13.     Private AZUL_MENU As Color = Color.DodgerBlue
  14.     Private GRIS As Color = Color.DarkGray
  15.     Private AMARILLO As Color = Color.Yellow
  16.     Private GOLD As Color = Color.Gold
  17.     Private LEMON As Color = Color.LemonChiffon
  18.  
  19. #End Region
  20.  
  21.  
  22. #Region "ALINEACIONES"
  23.  
  24.     Public CENTRO As DataGridViewContentAlignment = DataGridViewContentAlignment.MiddleCenter
  25.     Public IZQUIERDA As DataGridViewContentAlignment = DataGridViewContentAlignment.MiddleLeft
  26.     Public DERECHA As DataGridViewContentAlignment = DataGridViewContentAlignment.MiddleRight
  27.  
  28. #End Region
  29.  
  30.  
  31. #Region "FUENTES"
  32.  
  33.     Public ARIAL As Integer
  34.     Public ARIAL_BLACK As Integer
  35.     Public VERDANA As Integer
  36.     Public COMIC_SANS As Integer
  37.  
  38. #End Region
  39.  
  40.     Public Grid As DataGridView
  41.     Public L_Columnas As List(Of GRID_COLUMNA)
  42.  
  43.     Public Sub New(ObjGrid As DataGridView)
  44.  
  45.         Grid = ObjGrid
  46.         L_Columnas = New List(Of GRID_COLUMNA)
  47.         ' L_Columnas.Clear()
  48.         Call CargaFuentes()
  49.  
  50.     End Sub
  51.  
  52. #Region "PROPIEDADES"
  53.  
  54.     Private _Grid As DataGridView
  55.     'Public Property Grid() As DataGridView
  56.     '    Get
  57.     '        Return _Grid
  58.     '    End Get
  59.     '    Set(value As DataGridView)
  60.     '        _Grid = value
  61.     '    End Set
  62.     'End Property
  63.  
  64.     Private _nColumnas As Integer
  65.     Public Property nColumnas() As Integer
  66.         Get
  67.             Return _nColumnas
  68.         End Get
  69.         Set(ByVal value As Integer)
  70.             _nColumnas = value
  71.         End Set
  72.     End Property
  73.  
  74.     Private _Titulo As String
  75.     Public Property Titulo() As String
  76.         Get
  77.             Return _Titulo
  78.         End Get
  79.         Set(ByVal value As String)
  80.             _Titulo = value
  81.         End Set
  82.     End Property
  83.  
  84. #End Region
  85.  
  86.  
  87. #Region "MÉTODOS PÚBLICOS"
  88.  
  89.     Public Sub Vaciar()
  90.         Grid.Rows.Clear()
  91.     End Sub
  92.  
  93.     Public Sub Refresca()
  94.         Grid.Refresh()
  95.     End Sub
  96.  
  97.     Public Sub Cabeceras()
  98.  
  99.         For i As Integer = 0 To Grid.Columns.Count - 1
  100.             Grid.Columns.Remove(Grid.Columns(0))
  101.         Next
  102.  
  103.         _nColumnas = L_Columnas.Count
  104.  
  105.         For i = 0 To L_Columnas.Count - 1
  106.             With L_Columnas(i)
  107.                 Grid.Columns.Add(.Nombre, .Texto)
  108.                 'Grid.Columns(i).Width = .Ancho
  109.                 Grid.Columns(i).Width = DameAnchoCol(.Ancho)
  110.                 Grid.Columns(i).DefaultCellStyle.Alignment = .Alineacion
  111.                 Grid.Columns(i).Visible = .bVisible ' 1= True:0= False
  112.                 Grid.Columns(i).SortMode = .bOrdenable
  113.  
  114.  
  115.             End With
  116.         Next
  117.  
  118.         'For i = 0 To Grid.Columns.Count - 1
  119.         '    MsgBox(i & " : " & Grid.Columns(i).Name)
  120.         'Next
  121.  
  122.  
  123.     End Sub
  124.  
  125.     Public Sub FilaSelecciona(iFila As Integer, bUnica As Boolean)
  126.  
  127.         With Grid
  128.             If bUnica Then .ClearSelection() : .CurrentCell = Nothing
  129.             If iFila < 0 Then Exit Sub
  130.             .Rows(iFila).Selected = True
  131.         End With
  132.  
  133.     End Sub
  134.  
  135.     Public Sub FilaAgregar(Arr_Fila() As String)
  136.  
  137.         Grid.Rows.Add(Arr_Fila)
  138.  
  139.     End Sub
  140.  
  141.  
  142.     Public Sub CeldaValor(iFila As Integer, iCol As Integer, Valor As String)
  143.  
  144.         Grid.Rows(iFila).Cells(iCol).Value = Valor
  145.  
  146.     End Sub
  147.  
  148.     Public Sub EstiloCabecera(Estilo As String)
  149.  
  150.         Dim COLOR_FONDO As Color, COLOR_FUENTE As Color
  151.  
  152.         Select Case Estilo
  153.             Case "BLANCO"
  154.                 COLOR_FONDO = BLANCO : COLOR_FUENTE = NEGRO
  155.             Case "VERDE"
  156.                 COLOR_FONDO = VERDE : COLOR_FUENTE = BLANCO
  157.             Case "ROJO"
  158.                 COLOR_FONDO = ROJO : COLOR_FUENTE = BLANCO
  159.             Case "NARANJA"
  160.                 COLOR_FONDO = NARANJA : COLOR_FUENTE = BLANCO
  161.             Case "NEGRO"
  162.                 COLOR_FONDO = NEGRO : COLOR_FUENTE = BLANCO
  163.             Case Else
  164.                 COLOR_FONDO = BLANCO : COLOR_FUENTE = NEGRO
  165.         End Select
  166.  
  167.         With Grid
  168.             .ColumnHeadersDefaultCellStyle.BackColor = COLOR_FONDO
  169.             .ColumnHeadersDefaultCellStyle.ForeColor = COLOR_FUENTE
  170.             .ColumnHeadersDefaultCellStyle.Font = New Font(FontFamily.Families(ARIAL_BLACK), 10, FontStyle.Bold, GraphicsUnit.Point)
  171.             .ColumnHeadersHeight = 30
  172.             .RowHeadersDefaultCellStyle.SelectionBackColor = AZUL_MENU
  173.             .EnableHeadersVisualStyles = False
  174.         End With
  175.  
  176.     End Sub
  177.  
  178.     Public Sub EstiloGrid(Estilo As String)
  179.  
  180.         Dim COLOR_FONDO As Color, COLOR_FUENTE As Color
  181.  
  182.         Select Case Estilo
  183.             Case "BLANCO"
  184.                 COLOR_FONDO = BLANCO : COLOR_FUENTE = NEGRO
  185.             Case "VERDE"
  186.                 COLOR_FONDO = VERDE : COLOR_FUENTE = BLANCO
  187.             Case "ROJO"
  188.                 COLOR_FONDO = ROJO : COLOR_FUENTE = BLANCO
  189.             Case "NARANJA"
  190.                 COLOR_FONDO = NARANJA : COLOR_FUENTE = BLANCO
  191.             Case "NEGRO"
  192.                 COLOR_FONDO = NEGRO : COLOR_FUENTE = BLANCO
  193.             Case Else
  194.                 COLOR_FONDO = BLANCO : COLOR_FUENTE = NEGRO
  195.         End Select
  196.  
  197.         With Grid
  198.             .DefaultCellStyle.BackColor = COLOR_FONDO
  199.             .DefaultCellStyle.ForeColor = COLOR_FUENTE
  200.             .DefaultCellStyle.Font = New Font(FontFamily.Families(VERDANA), 8, FontStyle.Bold, GraphicsUnit.Point)
  201.             .DefaultCellStyle.SelectionBackColor = AZUL_MENU
  202.             .EnableHeadersVisualStyles = False
  203.             .RowTemplate.Height = 12
  204.             ' .RowTemplate.Height = DameAnchoFilas(.Rows.Count)
  205.  
  206.         End With
  207.  
  208.     End Sub
  209.  
  210.     Public Sub EstiloFila(iFila As Integer, sEstilo As String)
  211.  
  212.         Dim COLOR_FONDO As Color, COLOR_FUENTE As Color
  213.  
  214.         Select Case sEstilo
  215.             Case "BLANCO"
  216.                 COLOR_FONDO = BLANCO : COLOR_FUENTE = NEGRO
  217.             Case "AMARILLO"
  218.                 COLOR_FONDO = AMARILLO : COLOR_FUENTE = NEGRO
  219.             Case "GOLD"
  220.                 COLOR_FONDO = GOLD : COLOR_FUENTE = NEGRO
  221.             Case "LEMON"
  222.                 COLOR_FONDO = LEMON : COLOR_FUENTE = NEGRO
  223.             Case "VERDE"
  224.                 COLOR_FONDO = VERDE : COLOR_FUENTE = BLANCO
  225.             Case "ROJO"
  226.                 COLOR_FONDO = ROJO : COLOR_FUENTE = BLANCO
  227.             Case "TOMATE"
  228.                 COLOR_FONDO = TOMATE : COLOR_FUENTE = BLANCO
  229.             Case "NARANJA"
  230.                 COLOR_FONDO = NARANJA : COLOR_FUENTE = BLANCO
  231.             Case "NEGRO"
  232.                 COLOR_FONDO = NEGRO : COLOR_FUENTE = BLANCO
  233.             Case Else
  234.                 COLOR_FONDO = BLANCO : COLOR_FUENTE = NEGRO
  235.         End Select
  236.  
  237.         With Grid
  238.             .Rows(iFila).DefaultCellStyle.BackColor = COLOR_FONDO
  239.             .Rows(iFila).DefaultCellStyle.ForeColor = COLOR_FUENTE
  240.             .Font = New Font(.Font, FontStyle.Bold)
  241.         End With
  242.  
  243.  
  244.     End Sub
  245.  
  246.  
  247. #End Region
  248.  
  249. #Region "MÉTODOS PRIVADOS"
  250.  
  251.     Private Sub CargaFuentes()
  252.  
  253.         For i = 0 To FontFamily.Families.Count - 1
  254.             'Debug.Print(i & "  " & FontFamily.Families(i).Name)
  255.             'Console.Write(FontFamily.Families(i).Name)
  256.  
  257.             Select Case FontFamily.Families(i).Name
  258.                 Case "Arial" : ARIAL = i
  259.                 Case "Arial Black" : ARIAL_BLACK = i
  260.                 Case "Verdana" : VERDANA = i
  261.                 Case "Comic Sans MS" : COMIC_SANS = i
  262.             End Select
  263.  
  264.         Next
  265.  
  266.     End Sub
  267.  
  268.     Private Function DameAnchoCol(Porcentaje As Integer) As Integer
  269.         DameAnchoCol = 10
  270.  
  271.         If Porcentaje = 0 Then DameAnchoCol = 0 : Exit Function
  272.  
  273.         Dim AnchoGrid As Integer = Grid.Width - 44.8
  274.  
  275.  
  276.         DameAnchoCol = (Porcentaje * AnchoGrid) / 100
  277.  
  278.     End Function
  279.  
  280.     Private Function DameAnchoFilas(nFilas As Integer) As Integer
  281.  
  282.         DameAnchoFilas = 10
  283.  
  284.         If nFilas < 1 Then Exit Function
  285.  
  286.         Dim AltoGrid As Integer = Grid.Height - Grid.ColumnHeadersHeight
  287.  
  288.  
  289.         DameAnchoFilas = AltoGrid / nFilas
  290.  
  291.     End Function
  292.  
  293. #End Region
  294.  
  295. End Class
  296.  
  297.  
  298. Public Class GRID_COLUMNA
  299.  
  300.     Public Sub New(sNombre As String, sTexto As String, iAncho As Integer, Alinea As DataGridViewContentAlignment, Optional bEsVisible As Boolean = True, Optional bOrdena As Integer = 1)
  301.         _Nombre = sNombre : _Texto = sTexto : _Ancho = iAncho : _Alineacion = Alinea : _bVisible = bEsVisible : _bOrdenable = bOrdena
  302.     End Sub
  303.  
  304. #Region "PROPIEDADES"
  305.  
  306.  
  307.     Private _Nombre As String
  308.     Public Property Nombre() As String
  309.         Get
  310.             Return _Nombre
  311.         End Get
  312.         Private Set(ByVal value As String)
  313.             _Nombre = value
  314.         End Set
  315.     End Property
  316.  
  317.     Private _Texto As String
  318.     Public Property Texto() As String
  319.         Get
  320.             Return _Texto
  321.         End Get
  322.         Private Set(ByVal value As String)
  323.             _Texto = value
  324.         End Set
  325.     End Property
  326.  
  327.     Private _Ancho As String
  328.     Public Property Ancho() As String
  329.         Get
  330.             Return _Ancho
  331.         End Get
  332.         Private Set(ByVal value As String)
  333.             _Ancho = value
  334.         End Set
  335.     End Property
  336.  
  337.     Private _Alineacion As DataGridViewContentAlignment
  338.     Public Property Alineacion() As DataGridViewContentAlignment
  339.         Get
  340.             Return _Alineacion
  341.         End Get
  342.         Private Set(ByVal value As DataGridViewContentAlignment)
  343.             _Alineacion = value
  344.         End Set
  345.     End Property
  346.  
  347.     Private _bOrdenable As Integer
  348.     Public Property bOrdenable() As Integer
  349.         Get
  350.             Return _bOrdenable
  351.         End Get
  352.         Private Set(ByVal value As Integer)
  353.             _bOrdenable = value
  354.         End Set
  355.     End Property
  356.  
  357.     Private _bVisible As Boolean
  358.     Public Property bVisible As Boolean
  359.         Get
  360.             Return _bVisible
  361.         End Get
  362.         Private Set(ByVal value As Boolean)
  363.             _bVisible = value
  364.         End Set
  365.     End Property
  366.  
  367. #End Region
  368.  
  369.  
  370. End Class
Advertisement
Add Comment
Please, Sign In to add comment