Tem links?
Sim, tem! Desde a versão 0.1.2 temos o elemento LINK dentro do elemento COL, com esses atributos:nome | obrigatório | valores | significado |
TYPE | sim | STATIC/DYNAMIC | Se é STATIC, o link vai seguir o valor dentro do elemento LINK. Se é DYNAMIC, o link vai seguir vai seguir o valor de um campo do resultado da consulta SQL. |
TARGET | sim | <target value (string)> | O quadro destino onde o link vai abrir. Se é nulo, ele vai abrir na mesma janela onde o relatório está. Se é "_blank", por exemplo, ele vai abrir em uma nova janela. Verifique o atributo TARGET on elemento <A HREF> para aprender mais sobre isso. |
TITLE | sim | <title value (string)> | O valor do título é igual a "dica" que aparece quando passa o mouse sobre o link. |
Para esse exemplo vou usar o arquivo sales7.php, onde vamos criar uma nova coluna chamada url com o endereço de um site buscando o conteúdo do campo corrente id (http://www.mysite.com/customers.php?id=<sql_id_here>), desse jeito (lembre-se que estou usando MySQL):
select id,name,city,product,value,concat('http://www.mysite.com/customers.php?id=',id) as url from saleslog order by city,id;
A coluna url vai ter valores como http://www.mysite.com/customers.php?id=1 e por aí vai.
Vejamos sales7.xml:
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?> <!DOCTYPE REPORT SYSTEM "PHPReport.dtd"> <REPORT> <TITLE>Sales Report</TITLE> <BACKGROUND_COLOR>#FFFFFF</BACKGROUND_COLOR> <CSS>phpreports.css</CSS> <DOCUMENT> <FOOTER BORDER="1" CELLSPACING="0" CELLPADDING="5" WIDTH="500"> <ROW> <COL ALIGN="RIGHT" CELLCLASS="DOCUMENT_LAYER" WIDTH="430">report total</COL> <COL ALIGN="LEFT" CELLCLASS="DOCUMENT_LAYER" TEXTCLASS="BOLD" NUMBERFORMATEX="2" TYPE="EXPRESSION">$this->getSum("value")</COL> </ROW> </FOOTER> </DOCUMENT> <PAGE BORDER="1" SIZE="25" CELLSPACING="0" CELLPADDING="5" WIDTH="500"> <HEADER> <ROW> <COL COLSPAN="4" CELLCLASS="PAGE_LAYER" TEXTCLASS="BOLD">John Doe Enterprises</COL> </ROW> <ROW> <COL COLSPAN="4" CELLCLASS="PAGE_LAYER" TEXTCLASS="BOLD">Sales Report</COL> </ROW> </HEADER> <FOOTER> <ROW> <COL ALIGN="RIGHT" COLSPAN="3" CELLCLASS="PAGE_LAYER">page total</COL> <COL ALIGN="LEFT" NUMBERFORMATEX="2" CELLCLASS="PAGE_LAYER" TEXTCLASS="BOLD" TYPE="EXPRESSION">$this->getSum("value")</COL> </ROW> </FOOTER> </PAGE> <GROUPS> <GROUP NAME="citygroup" EXPRESSION="city"> <HEADER> <ROW> <COL CELLCLASS="GROUP_LAYER"> <LINK TYPE="STATIC" TITLE="search cities here" TARGET="_blank">http://www.citysearch.com</LINK>city: </COL> <COL CELLCLASS="GROUP_LAYER" TEXTCLASS="BOLD" TYPE="EXPRESSION" COLSPAN="3">$header->getValue("city")</COL> </ROW> <ROW> <COL CELLCLASS="GROUP_LAYER">id</COL> <COL CELLCLASS="GROUP_LAYER">name</COL> <COL CELLCLASS="GROUP_LAYER">product</COL> <COL CELLCLASS="GROUP_LAYER">$</COL> </ROW> </HEADER> <FOOTER> <ROW> <COL ALIGN="RIGHT" COLSPAN="3" CELLCLASS="GROUP_LAYER">city total</COL> <COL ALIGN="LEFT" CELLCLASS="GROUP_LAYER" TEXTCLASS="BOLD" NUMBERFORMATEX="2" TYPE="EXPRESSION">$this->getSum("value")</COL> </ROW> </FOOTER> <GROUP NAME="customergroup" EXPRESSION="name"> <FOOTER> <ROW> <COL ALIGN="RIGHT" COLSPAN="3" CELLCLASS="GROUP_LAYER">customer total</COL> <COL ALIGN="LEFT" CELLCLASS="GROUP_LAYER" TEXTCLASS="BOLD" NUMBERFORMATEX="2" TYPE="EXPRESSION">$this->getSum("value")</COL> </ROW> </FOOTER> <FIELDS> <ROW> <COL CELLCLASS="GROUP_LAYER"> <LINK TYPE="DYNAMIC" TITLE="click here for more info about this customer" TARGET="_blank">url</LINK>id </COL> <COL CELLCLASS="GROUP_LAYER"> <LINK TYPE="STATIC" TITLE="search this customer name">http://www.mysite.com/customernames.php</LINK>name </COL> <COL TYPE="FIELD" CELLCLASS="GROUP_LAYER">product</COL> <COL TYPE="FIELD" CELLCLASS="GROUP_LAYER" NUMBERFORMATEX="2">value</COL> </ROW> </FIELDS> </GROUP> </GROUP> </GROUPS> </REPORT>Note a primeira parte de código destacado - tem um link STATIC lá, com atributos TITLE e TARGET. Traduzindo: esse link sempre (é estático!) vai apontar para http;//www.citysearch.com, vai abrir em uma nova janela, e toda vez que você passar seu mouse sobre esse link uma "dica" com "procure cidades aqui vai aparecer.
A segunda parte de código destacado é um link DYNAMIC (dinâmico) - onde vamos inserir o valor do campo url, que vai mudar de acordo com os valores da nossa tabela do banco de dados. Note que há atributos TITLE e TARGET lá também - seu comportamento é idêntico ao explicado acima.
O resultado é:
Note os links sublinhados lá - city, id e name são, city e name com links estáticos e id mudando quando o id do cliente muda (http://www.mysite.com/customers.php?id=1,http://www.mysite.com/customers.php?id=2 e http://www.mysite.com/customers.php?id=3).