sábado, 30 de julio de 2011

8.4 Añadiendo la función convertir en html: .crearhtml

Para añadir esta procedimiento a “supergridviews”, necesitamos añadir un componente más “gb.desktop”:




Señalamos en la pestaña “componentes”, gb.desktop





Y en la pestaña Requiere, agregamos gb.desktop.



Y pasamos a escribir el siguiente código en la clase “supergridviews”, en la zona 4:
'-------------------------------------------------------------------------
'exportar a .html
'-------------------------------------------------------------------------
PUBLIC SUB crearhtml(OPTIONAL ruta AS String)
DIM archivo AS File
DIM i, j AS Integer
DIM titulo AS String
'la ruta es opcional
IF ruta = "" THEN ruta = User.Home &/ "reporte.html"
OPEN ruta FOR WRITE CREATE AS #archivo
PRINT #archivo, "<html>"
PRINT #archivo, "<head><title>" & ("Reporte en HTML") & "</title>"
PRINT #archivo, "<?xml version=" & Chr$(34) & "1.0" & Chr$(34) & " encoding=" & Chr$(34) & "UTF-8" & Chr$(34) & "?>" & Chr$(13)
PRINT #archivo, "<!DOCTYPE html PUBLIC " & Chr$(34) & "-//W3C//DTD XHTML 1.1//EN" & Chr$(34) & Chr$(13)
PRINT #archivo, " " & Chr$(34) & "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" & Chr$(34) & ">" & Chr$(13)

PRINT #archivo, " <HTML xmlns=" & Chr$(34) & "http://www.w3.org/1999/xhtml" & Chr$(34) & " xml:lang =" & Chr$(34) & "es" & Chr$(34) & ">" & Chr$(13)

PRINT #archivo, "<meta http-equiv=" & Chr$(34) & "Content-Type" & Chr$(34) & " content =" & Chr$(34) & "text/html;charset =utf-8" & Chr$(34) & " /" & Chr$(13) & "</head>"
PRINT #archivo, "<body topmargin='0' leftmargin='0'"
PRINT #archivo, ">"
PRINT #archivo, "<table border='1' width='500' cellpadding='4' cellspacing='0'>"
PRINT #archivo, " <tr>"
PRINT #archivo, " <td colspan='6' align='center'>"
'aquí escribimos el titulo del supergridviews (le hemos puesto: Listado)
PRINT #archivo, " <h3>" & ("Listado") & "</h3>"
PRINT #archivo, " </td>"
PRINT #archivo, " </tr>"
PRINT #archivo, " <tr>"
'imprime cabeceras
PRINT #archivo, " <td align='center'>" &
"<P STYLE=" & Chr$(34) & "background: silver" &
Chr$(34)&
">" &
" " &
"</p>" &
"</td>"
'escribe los titulos de las columnas
FOR i = 0 TO ME.Columns.count - 1
titulo = ME.columns[i].title
PRINT #archivo, " <td align='center'>" &
"<P STYLE=" & Chr$(34) & "background: silver" &
Chr$(34)&
">" &
titulo &
"</p>" &
"</td>"
NEXT
'imprime tabla en si
PRINT #archivo, " </tr>"
FOR i = 0 TO ME.rows.Count - 1
PRINT #archivo, " <td align='center'>" &
"<P STYLE=" & Chr$(34) & "background: silver" &
Chr$(34)&
">" &
Str$(i + 1)&
"</p>" &
"</td>"
FOR j = 0 TO ME.Columns.Count - 1
PRINT #archivo, " <td> " &
"<P STYLE=" & Chr$(34) & "background: " & Hex$(ME[i, j].Background)&
Chr$(34)&
"><FONT COLOR=" & Chr$(34)&
Hex$(ME[i, j].Foreground)&
Chr$(34) & ">" &
ME[i, j].Text &
"</FONT></P>" &
"</td> "
NEXT
PRINT #archivo, " </tr>"
NEXT
PRINT #archivo, "</table>"
PRINT #archivo, "</body>"
PRINT #archivo, "</html>"
CLOSE #archivo
' con esta orden que pertenece a gb.desktop, abrimos con el navegador que tenga por determinado el equipo, el listado en .html
Desktop.Open(ruta)
END

Ahora probamos nuestra nuevo procedimiento. Abrimos el archivo “pruebacomponente”, le añadimos un botón al formulario y ponemos el siguiente código:

PUBLIC SUB Button1_Click()
supergridviews1.crearhtml()
END

Al hacer click en el botón, obtenemos el siguiente resultado:
Nota: mi navegador por defecto es el Chromium.






No hay comentarios:

Publicar un comentario