« September 2010 »
Su Mo Tu We Th Fr Sa
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
 

Relatório paginado usando módulo

por Aldinei Sampaio -posted at 19/06/2009 18:08 Última modificação 19/06/2009 18:08

O código abaixo exemplifica o uso do objeto HTMLReport em um módulo do Kankei para gerar uma tag HTML <table>. O objetivo é criar um relatório que possa ser impresso de forma a que saiam 6 registros em cada página. O salto de página, na tela, é exibido como um espaçamento entre as páginas, mas durante a impressão será efetuada uma quebra.

Note o uso do novo método TableHeader() - disponível a partir do build 106.

<html>
  <head>
    <style type="text/css">
      body {
         font-family : Verdana;
         font-size : 9pt;
      }
      table {
        font-size : 8pt;
      }
    </style>
  </head>
  <body>
<%

// Obtém os dados a serem listados através de uma pesquisa
var p = K.BD.NovaPesquisa();
p.Listar('NomeFantasia');
p.Listar('CPNJCPF');
p.Listar('GeralStatus');
p.Filtrar('E_Cliente').IgualA('SIM');
p.OrdenarPor('NomeFantasia');
p.ExecuçãoOpções.MaxRecords = 15;
var rs = p.Executar();

// Cria o HTMLReport
var r = GetHTMLReport();
r.ShowGridLines();

// Define o número de linhas por página
r.PageHeight(6);


// Configura cabeçalho e rodapé
r.Header('RELATÓRIO DE CLIENTES');
r.TableHeader().NewRow('Nome', 'CPF/CNPJ', 'Status').RowStyle('background:#C0C0C0');
r.Footer('PÁGINA @PAGE@');

// Ativa zebramento, incluindo um estilo diferente para linhas alternadas
r.AlternateRowStyle('background:#E0E0E0');
r.Alternate();

while (!rs.EOF) {
 r.NewRow();
 r.NewCell(rs('NomeFantasia'));
 r.NewCell(rs('CPNJCPF'));
 r.NewCell(rs('GeralStatus'));
 
 rs.MoveNext();
}

r.EndTable();

%>
  </body>
</table>

Resultado:

 

Category(s)
KANKEI KANKEI