• Lunes 29 de Abril de 2024, 06:10

Autor Tema:  Crear Documento Html  (Leído 1065 veces)

galustiza

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Crear Documento Html
« en: Lunes 11 de Diciembre de 2006, 09:56 »
0
Hola a todo el mundo!

Estoy desarrollando una aplicación para gestionar varias lecciones y los ejercicios que los conforman, contra una base de datos MySQL. Lo que necesito es que al crear un nuevo ejercicio se genere también un documento HTML de formato preestablecido, mostrando los valores del ejercicio que acabo de crear. ¿Alguien tiene alguna idea de como lograr esto?

Gracias de antemano

Vatoicc

  • Miembro activo
  • **
  • Mensajes: 65
    • Ver Perfil
Re: Crear Documento Html
« Respuesta #1 en: Martes 12 de Diciembre de 2006, 18:48 »
0
Pues en una aplicación que hice, necesitaba generar un reporte en formato HTML, pero no encontré un componente para hacerlo, asi que la solución que encontre, fue generar el codigo HTML en un Memo, y guardarlo con extensión HTML.

La verdad fue muy buen reto hacer un codigo en C++ que generara codigo HTML, y mas por que no sabia programar en HTML, pero en la red hay tutoriales muy buenos. Y al final obtuve el resultado que esperaba.

Fue algo asi:

Código: Text
  1.  
  2.    TStringList *ReporteHTML = new TStringList();
  3.    ReporteHTML->Clear();
  4.       //----Poner la cabecera
  5.       ReporteHTML->Append("<HEAD>");
  6.       ReporteHTML->Append("<TITLE>SÍNTESIS INFORMATIVA</TITLE>");
  7.       ReporteHTML->Append("</HEAD>");
  8.  
  9.       //----Poner el cuerpo
  10.       ReporteHTML->Append("<BODY><FONT FACE= \"MS Sans Serif\"");
  11.  
  12.       //Titulo
  13.       ReporteHTML->Append("<CENTER><H2>Síntesis Informativa</H2><H4>FECHA: "+FechaActual.FormatString("ddd d/mmm/yy"</H4></CENTER>");
  14.       ReporteHTML->Append("<p><A NAME =\"TopMenu\">FILTRADO POR: Medios Electrónicos</A>");
  15.       ReporteHTML->Append("<HR>");
  16.  
  17.       //Enlaces a Radio
  18.       ReporteHTML->Append("Radio<UL>");
  19.       for( int i = 0; i < NombreRadio->Count; i++ )
  20.       {
  21.          AnsiString Ancla = CrearAncla(NombreRadio->Strings[i]);
  22.          AnsiString NAncla = NombreRadio->Strings[i];
  23.          ReporteHTML->Append("<LI><A HREF = #"+Ancla+">"+NAncla+" ("+IntToStr(ListaRadio[i]->Count)+")</A>");
  24.       }
  25.       ReporteHTML->Append("</UL>");
  26.  
  27.       //Enlaces a Tv
  28.       ReporteHTML->Append("Tv<UL>");
  29.       for( int i = 0; i < NombreTv->Count; i++ )
  30.       {
  31.          AnsiString Ancla = CrearAncla(NombreTv->Strings[i]);
  32.          AnsiString NAncla = NombreTv->Strings[i];
  33.          ReporteHTML->Append("<LI><A HREF = #"+Ancla+">"+NAncla+" ("+IntToStr(ListaTv[i]->Count)+")</A>");
  34.       }
  35.       ReporteHTML->Append("</UL>");
  36.  
  37.       //Enlaces a Internet
  38.       ReporteHTML->Append("Internet<UL>");
  39.       for( int i = 0; i < NombreInternet->Count; i++ )
  40.       {
  41.          AnsiString Ancla = CrearAncla(NombreInternet->Strings[i]);
  42.          AnsiString NAncla = NombreInternet->Strings[i];
  43.          ReporteHTML->Append("<LI><A HREF = #"+Ancla+">"+NAncla+" ("+IntToStr(ListaInternet[i]->Count)+")</A>");
  44.       }
  45.       ReporteHTML->Append("</UL>");
  46.  
  47.  

El codigo no esta completo, y te aseguro que si lo compilas te va agenerar un mil de errores, pero es solo para que te des una idea de lo que hize, y como fui armando poco a poco la pagina HTML con datos que tenia almacenados en archivos que puse en variables.

Al final de tu codigo, simplemente tienes que guardar el contenido del TStringList como HTML

Código: Text
  1.  
  2.    ReporteHTML->SaveToFile("c:\\Reporte.HTML");
  3.  
  4.  

Te adjunto un ejemplo del reporte que se genera.

Como vez, es una opción muy engorrosa, pero si alguien mas tiene una mejor opción, tambien me interasa saberla, pues podria mejorar el aspecto de mi reporte
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
La paranoia es una vision mas sutil de la vida