Ir al contenido


Foto

Uso del TDataSetPageProducer y del TDataSetTableProducer


  • Por favor identifícate para responder
5 respuestas en este tema

#1 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 08 febrero 2010 - 04:59

Hola a todos !!! Por acá andamos nuevamente con unas preguntas :p, pero no se preocupen, no son capciosas... jejeje

Estoy intentando modificar un proyecto que hace uso de componentes TDataSetPageProducery TDataSetTableProducer que se pueden localizar en la pestaña Internet de Delphi... Trabajo con la versión 2007

Básicamente mis preguntas son:

1. Alguien ha usado estos componentes ?
2. Cuando deseo mostrar datos que no son detalle, se utiliza el componente PageProducer mencionado antes, el cual es ligado a un formato previamente diseñado con html y con su propiedad ReplaceText permite colocar datos en los tags indicados. Cuando se desea mostrar un dato que si es detalle (numero y detalle de facturas contenidas en otro documento, por ejemplo) se hace uso del TableProducer y en el evento OnFormatCell se va "dibujando" la tabla y sus datos, pero lo que no sé es como pedirle que tome cierto formato en especial para que sea uniforme con el resto de la página generada.

Les dejo una sección del código del evento OnFormatCell para que quede un poco más claro... espero :$



delphi
  1. procedure TConsHTML.DSTP_difRectFormatCell(Sender: TObject; CellRow,
  2.   CellColumn: Integer; var BgColor: THTMLBgColor; var Align: THTMLAlign;
  3.   var VAlign: THTMLVAlign; var CustomAttrs, CellData: String);
  4. var estilo : string;
  5. begin
  6.     if CellRow mod 2 = 0 then
  7.       estilo := '_gris'
  8.     else
  9.       estilo := '';
  10.     if CellRow = 0 then begin
  11.       case CellColumn of
  12.         0: CustomAttrs := 'colspan="3" class="titulo">Diferencias de Contribuciones</td>' +
  13.             '</tr><tr><td width=50%';
  14.         1: CustomAttrs := 'width=30%';
  15.  
  16.       end;
  17.       CustomAttrs := customattrs + ' class=subtitulo';
  18.     end else begin
  19.       case CellColumn of
  20.         0: CustomAttrs := 'class=datos_jus' + estilo;
  21.         1: CustomAttrs := 'class=datos_cen' + estilo;
  22.         2: CustomAttrs := 'class=datos_der' + estilo;
  23.       end;
  24.     end;
  25.     if celldata = '' then
  26.       CellData := '&nbsp;'
  27. end;



Saludox y gracias a todos ! :D

  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 08 febrero 2010 - 06:22

Huy amiguis

Yo no se como se come eso :(

Salud OS
  • 0

#3 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 15 febrero 2010 - 01:32

Pues aquí actualizando este hilo con info que les puede resultar interesante :)

Aquí la info...

Saludox ! :D

P.D. Yo por lo pronto me sigo peleando... ya les contaré cómo terminó la batalla (y)
  • 0

#4 agentmani

agentmani

    Newbie

  • Miembros
  • Pip
  • 2 mensajes

Escrito 17 marzo 2010 - 11:09

Para qué ir tan lejos si tan cerca tienes donde recurrir?
Sólo hay que tomar un curso basico de html, ccs y si es necesario javascript y bueno...
la ayuda de delphi tal vez no sirva de mucho.. pero la declaración del método nos dice ya bastante



delphi
  1. procedure TConsHTML.DSTP_difRectFormatCell(Sender: TObject; CellRow,
  2.   CellColumn: Integer; var BgColor: THTMLBgColor; var Align: THTMLAlign;
  3.   var VAlign: THTMLVAlign; var CustomAttrs, CellData: String);



CellRow,  CellColumn: Integer; //no me imagino que otra cosa puedan ser estas variables.. te indican la posición de la celda.. en fila y columna
var BgColor: THTMLBgColor; //ejem. background color ???? qué será esto??  :p No recomiendo usarla
var Align: THTMLAlign;
var VAlign: THTMLVAlign;  //align y valign? mmmm de verdad necesito explicarlo?

var CustomAttrs, CellData: String); //bueno.. celldata es más que obvio.. pero por aquello del note entumas, es el dato que contiene la celda.

//customattrs.. aqui es donde entra lo realmente interesante.. esta es una variable que se pega en la etiqueta td o th, según sean el caso..
//(insisto en el curso básico de html), en esta variable podríamos poner algo como customattrs := 'class=celda width=80 bgcolor=#FFFFFF';
//y el componente solito sabe donde queda para que al momento de entregar el resultado salga algo como esto
<td class=celda width=80 bgcolor=#FFFFFF>celldata</td>

ahora.. pues para que tu diseño sea consistente.. pues podrías definir una serie de estilos, para las cabeceras y los datos. Directamente en las propiedades del componete puedes indicar el ancho de la tabla, su posición, borde, el color del borde, y algunas otras cosas.. Y en el método onformatcell haces todo lo demás.. puedes pintar las celdas de la cabecera de una forma, y las celdas de datos de otra, alinearlas, darles formato, etc. Lo que más recomiendo es usar estilos y el curso básico de html y la sección de tablas.
  • 0

#5 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 17 marzo 2010 - 11:35

Hola supermanimx, bienvenido !

Después de que has estudidado bastante sobre el tema parece todo ya tan lógico y hasta cierto punto absurdo, pero cuando nunca te has enfrentado al problema, ésta (DA) es una herramienta más a utilizar...

Y sí tenía un poco olvidado este hilo, puesto que no les comenté que tenía ya resuelto el problema...

Fué mucho más sencillo de lo que pensé y logré dos objetivos:

1. Modificar el formato originalmente utilizado para el resultado del TPageProducer
2. Abstraer todo de tal manera que en caso de cambiar el formato, no sea necesario modificar de nuevo código en delphi...

Saludox ! :D
  • 0

#6 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 17 marzo 2010 - 12:53

Sólo hay que tomar un curso basico de html, ccs y si es necesario javascript y bueno...


Más bien te refieres a CSS?  o será que ccs es una nueva tecnología? :p

http://es.wikipedia....tilo_en_cascada


Saludos


  • 0




IP.Board spam blocked by CleanTalk.