Sección de códigos, trucos y ejemplos para visual basic


Clic para descargar Velneo Open source Software - Plataforma para el desarrollo de aplicaciones sobre base de datos

 

 

176 - Exportar Flexgrid a Html

<Volver> - Anterior - Siguiente

 

 

 



 

Ejemplo que exporta el contenido de un control Microsoft Hierarchical Flexgrid a un archivo html

 

El ejemplo tiene dos procedimientos , uno llamado Cargar_FlexGrid, en el cual se le debe enviar como parámetro, el path de la base de datos, la sentencia sql para llenar el recordset y el control Flexgrid para llenar los datos en la grilla.

El otro procedimiento se llama Exportar_Flex_Html. Este tiene dos parámetros, el path donde generar y guardar el archivo html, y el otro es el control Flexgrid que ya tiene cargados los datos

Colocar en un formulario Form1 los siguientes controles:

 

Nota: Agregar también la referencia a Microsoft Activex Data Objects para poder utilizar ADO

 

Vista del Form1

vista del formulario de ejemplo Form1 con los controles Flexgrid y los command para cargar los datos y exportar

 

 

Vista del Form2 con el control WebBrowser y el Html cargado

 

Vista del Form2 con el control WebBrowser cargado con el archivo html

 

 

Código fuente en el Form1

Option Explicit

'***************************************************************************
'*  Controles: tres CommandButton, un commonDialog, un WebBrowser en Form2, _
    un MsHierarchical Flex Grid y un textBox llamado txt_sql
'***************************************************************************

Private Sub Command1_Click()
Dim Ruta As String
    With CommonDialog1
         
         .CancelError = True
         .Filter = "Archivos Html|*.Html|Archivos Htm|*.htm"
         .FileName = vbNullString
         On Error Resume Next
         .ShowSave
         
         If Err.Number = 32755 Then
            Exit Sub
         End If
         
         On Error GoTo 0
         
         If .FileName = "" Then Exit Sub
         
         'Path para el archivo html que se carga en el WebBrowser del Form2
         Form2.Path_Html = .FileName
         
         'Se le pasa el path de la base de datos y el control _
          Hierarchical flexGrid
         Call Exportar_FlexGrid_Html(.FileName, MSHFlexGrid1)
    End With

End Sub

Private Sub Command2_Click()
Dim sql As String

    ' Consulta SQL
    sql = txt_SQL

    If txt_SQL = vbNullString Then
        MsgBox "Falta escribir la consulta sql en el textBox", vbCritical
        Exit Sub
    End If
    
    With CommonDialog1
    
        .Filter = "MDB|*.mdb"
        .ShowOpen
    
        If .FileName = "" Then Exit Sub
       
        ' Carga los datos en el flexgrid
        Call Cargar_FlexGrid(.FileName, sql, MSHFlexGrid1)
       

    End With
End Sub


'sub que carga los datos en el control Flexgrid
Sub Cargar_FlexGrid(Path As String, sql As String, FlexGrid As MSHFlexGrid)

Dim cn As Connection
Dim rst As Recordset

'Nueva conexión ADO
Set cn = New Connection
    cn.CursorLocation = adUseClient
  
  'Abre la conexión
  cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Path & ";"
  
  Set rst = New Recordset
      'Abre el recordset
      rst.Open sql, cn, adOpenDynamic, adLockOptimistic

   ' Llena el FlexGrid
   Set FlexGrid.DataSource = rst
    FlexGrid.Col = 1
    FlexGrid.FixedRows = 1
    FlexGrid.FixedCols = 0
    ' Para poder ajustar las columnas
    FlexGrid.AllowUserResizing = flexResizeColumns

End Sub

Private Sub Command3_Click()
    'Abre el Formulario que tiene el control _
     WebBrowser para ver la página con los datos
    Form2.Show 1
End Sub

Private Sub Form_Load()
    
    'Caption de los CommandButton y otros
    Command1.Caption = " Exportar a Html "
    Command2.Caption = " Abrir base de dato "
    Command3.Caption = " Ver en WebBrowser "
    Me.Caption = " Ejemplo para exportar un FlexGrid a Html "
    txt_SQL = ""

End Sub 

 

Código fuente en el Form2

Option Explicit

Public Path_Html As String

'***************************************************************************
'*  Name         : Código fuente del form2
'*  Controles         : Un Control webBrowser llamado webBrowser1
'***************************************************************************

Private Sub Form_Load()

    Me.Caption = Path_Html

    'Carga el archivo html en el contol webbrowser
    WebBrowser1.Navigate Path_Html

End Sub

Private Sub Form_Resize()
'Redimensiona y posiciona el Control WebBrowser
WebBrowser1.Move 10, 10, ScaleWidth, ScaleHeight
End Sub


 

 

Código en un módulo bas:


'***************************************************************************
'* Código del módulo bas para exportar el control MsFlexGrid a un Html
'***************************************************************************

Sub Exportar_FlexGrid_Html(Path As String, FlexGrid As Object)

Dim codigo_Html As String
Dim Fila As Integer
Dim Columna As Integer
Dim fname As String
Dim f As Integer

Screen.MousePointer = vbHourglass

'Color de la Tabla y el borde
codigo_Html = "<TABLE width=100% BORDER=0>" & vbCrLf

'Encabezados
codigo_Html = codigo_Html & "<TR bgcolor=#000000> " & vbCrLf

'Recorre las columnas del Flexgrid
For Columna = 0 To FlexGrid.Cols - 1
codigo_Html = codigo_Html & " <TH><font color=#FFFFFF>" & _
FlexGrid.TextMatrix(0, Columna) & "</TH>" & vbCrLf
Next Columna

codigo_Html = codigo_Html & "</TR>" & vbCrLf

' Recorre las filas y las columnas y genera el _
etiquetado y lo guarda en la variable ( codigo_Html )

For Fila = 1 To FlexGrid.Rows - 1
codigo_Html = codigo_Html & "<TR bgcolor=#D3D3D3 > " & vbCrLf
For Columna = 0 To FlexGrid.Cols - 1
codigo_Html = codigo_Html & " <td><font color=#000000>" & _
FlexGrid.TextMatrix(Fila, Columna) & "</TD>" & vbCrLf
Next
codigo_Html = codigo_Html & "</TR>" & vbCrLf
DoEvents
Next

'Cierra las etiquetas del codigo_Html
codigo_Html = "<HTML><HEAD></HEAD><BODY BGCOLOR=#999999>" & vbCrLf & _
codigo_Html & "</BODY></HTML>"

' Graba el archivo en disco
f = FreeFile
'Abre y Crea el archivo Html
Open Path For Output As f

'Escribe los datos del FlexGRid en el archivo HTML
Print #f, codigo_Html

Close

Screen.MousePointer = vbNormal

End Sub

 

Recursos vb 6.0 - Enlaces relacionados

 



Buscar en Recursos vb