Problemas com iReport

9 respostas
T

Olá a todos,
acho que estou no lugar certo, e estou precisando muito de ajuda, desenvolvi um relatório mestre-detalhe (sub-report), estou usando a versão 3.7.5 no Netbeans. Configurei tudo conforme manda o figurino, no JasperReports ele roda e mostra todos os dados tanto no relatório pai quanto no filho. Porém quando tento rodar pela aplicação, somente os dados do relatório pai são mostrados, já procurei por toda a internet por horas a fio e nada de solução. Alguém pode me ajudar?

Abaixo segue a classe que estou usando no meu aplicativo:

public class Main {

    public static void main(String[] args) throws NoSuchAlgorithmException, SQLException, ClassNotFoundException {
        new Main().abrirRelatorioClientes();
    }

    public void abrirRelatorioClientes() throws ClassNotFoundException {


        Date dateinicial = null;
        Date datefinal = null;
        try {
            datefinal = new SimpleDateFormat("d/M/y").parse("10/12/2010");
            dateinicial = new SimpleDateFormat("d/M/y").parse("07/12/2010");
        } catch (ParseException ex) {
            System.out.println("Erro: " + ex.getMessage());
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }
        InputStream inputStream = getClass().getResourceAsStream("Comandos.jasper");
        Map<String, Object> parametros = new HashMap<String, Object>();
        parametros.put("nomeUsuario", "Well%");
        parametros.put("datainicial", dateinicial);
        parametros.put("datafinal", datefinal);
        try {
            try {
                ReportUtils.openReport("Locações por Clientes", inputStream, parametros, ConnectionFactory.getInstancia());
            } catch (JRException ex) {
                Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
            }

        } catch (SQLException exc) {
        }

    }
}

Ambos os .jasper e a classe acima se encontram no mesmo diretório.

As configurações ficaram a seguinte:

Relatório pai:

Nome: Comandos

SUBREPORT_DIR: "/"

Parâmetros criados:

nomeUsuario: tipo Long

datainicial e datafinal: tipo Date

SubReport expression: getClass().getResource(ComandosUser.jasper)

Expression Class: java.net.URL

3 parameters:

Name           Expression

datainicial     $P{datainicial}

datafinal       $P{datafinal}

idUsers        $F{idUsers}

SQL:

select * from Users where Nome LIKE $P{nomeUsuario}

Fields:
       <parameter name="nomeUsuario" class="java.lang.String"/>
	<parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
		<defaultValueExpression><![CDATA["/"]]></defaultValueExpression>
	</parameter>
	<parameter name="datainicial" class="java.util.Date"/>
	<parameter name="datafinal" class="java.util.Date"/>
	<queryString>
		<![CDATA[select * from Users where Nome LIKE $P{nomeUsuario}]]>
	</queryString>
	<field name="idUsers" class="java.lang.Long"/>
	<field name="Login" class="java.lang.String"/>
	<field name="Senha" class="java.lang.String"/>
	<field name="Nome" class="java.lang.String"/>
	<field name="Tipo" class="java.lang.String"/>
	<field name="Data_Cad" class="java.sql.Timestamp"/>

Relatório Filho (Subreport):

Parameters:

<parameter name="datainicial" class="java.util.Date"/>
<parameter name="datafinal" class="java.util.Date"/>
<parameter name="idUsers" class="java.lang.Long"/>
Campos da tabela:
<field name="idcomandos" class="java.lang.Long"/>
	<field name="idUsers" class="java.lang.Long"/>
	<field name="nomebomba" class="java.lang.String"/>
	<field name="datacomando" class="java.sql.Date"/>
	<field name="horacomando" class="java.sql.Time"/>
	<field name="statusdocomando" class="java.lang.String"/>
	<field name="statusanterior" class="java.lang.String"/>
Query:
<queryString>
		<![CDATA[SELECT
    *
FROM
      comandos
WHERE
     idUsers = $P{idUsers} and datacomando BETWEEN $P{datainicial} and $P{datafinal}]]>
	</queryString>

Quando rodo o arquivo veja o que aparece na Saída:
log4j:WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment).
log4j:WARN Please initialize the log4j system properly.
Porém somente são mostrados os dados no relatório mestre.

Segue anexo meu xml:
xml Comandos.jrxml(report- pai)

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report name" pageWidth="595" pageHeight="842" columnWidth="535" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
	<property name="ireport.zoom" value="1.0"/>
	<property name="ireport.x" value="0"/>
	<property name="ireport.y" value="0"/>
	<parameter name="nomeUsuario" class="java.lang.String"/>
	<parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
		<defaultValueExpression><![CDATA["/"]]></defaultValueExpression>
	</parameter>
	<parameter name="datainicial" class="java.util.Date"/>
	<parameter name="datafinal" class="java.util.Date"/>
	<queryString>
		<![CDATA[select * from Users where Nome LIKE $P{nomeUsuario}]]>
	</queryString>
	<field name="idUsers" class="java.lang.Long"/>
	<field name="Login" class="java.lang.String"/>
	<field name="Senha" class="java.lang.String"/>
	<field name="Nome" class="java.lang.String"/>
	<field name="Tipo" class="java.lang.String"/>
	<field name="Data_Cad" class="java.sql.Timestamp"/>
	<background>
		<band splitType="Stretch"/>
	</background>
	<title>
		<band height="43" splitType="Stretch"/>
	</title>
	<pageHeader>
		<band height="35" splitType="Stretch"/>
	</pageHeader>
	<columnHeader>
		<band height="21" splitType="Stretch">
			<staticText>
				<reportElement x="6" y="0" width="100" height="20"/>
				<textElement/>
				<text><![CDATA[Login]]></text>
			</staticText>
			<staticText>
				<reportElement x="120" y="0" width="100" height="20"/>
				<textElement/>
				<text><![CDATA[Nome]]></text>
			</staticText>
			<staticText>
				<reportElement x="242" y="0" width="100" height="20"/>
				<textElement/>
				<text><![CDATA[Tipo]]></text>
			</staticText>
			<staticText>
				<reportElement x="373" y="0" width="100" height="20"/>
				<textElement/>
				<text><![CDATA[Data_Cad]]></text>
			</staticText>
			<staticText>
				<reportElement x="489" y="0" width="100" height="20"/>
				<textElement/>
				<text><![CDATA[idUsers]]></text>
			</staticText>
		</band>
	</columnHeader>
	<detail>
		<band height="100" splitType="Stretch">
			<textField>
				<reportElement x="6" y="2" width="100" height="20"/>
				<textElement/>
				<textFieldExpression class="java.lang.String"><![CDATA[$F{Login}]]></textFieldExpression>
			</textField>
			<textField>
				<reportElement x="120" y="2" width="100" height="20"/>
				<textElement/>
				<textFieldExpression class="java.lang.String"><![CDATA[$F{Nome}]]></textFieldExpression>
			</textField>
			<textField>
				<reportElement x="242" y="2" width="100" height="20"/>
				<textElement/>
				<textFieldExpression class="java.lang.String"><![CDATA[$F{Tipo}]]></textFieldExpression>
			</textField>
			<textField pattern="dd/MM/yyyy">
				<reportElement x="373" y="2" width="100" height="20"/>
				<textElement/>
				<textFieldExpression class="java.sql.Timestamp"><![CDATA[$F{Data_Cad}]]></textFieldExpression>
			</textField>
			<subreport>
				<reportElement x="0" y="22" width="555" height="78"/>
				<subreportParameter name="datainicial">
					<subreportParameterExpression><![CDATA[$P{datainicial}]]></subreportParameterExpression>
				</subreportParameter>
				<subreportParameter name="idUsers">
					<subreportParameterExpression><![CDATA[$F{idUsers}]]></subreportParameterExpression>
				</subreportParameter>
				<subreportParameter name="datafinal">
					<subreportParameterExpression><![CDATA[$P{datafinal}]]></subreportParameterExpression>
				</subreportParameter>
				<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
				<subreportExpression class="java.net.URL"><![CDATA[getClass().getResource("ComandosUser.jasper")]]></subreportExpression>
			</subreport>
			<textField>
				<reportElement x="489" y="8" width="100" height="20"/>
				<textElement/>
				<textFieldExpression class="java.lang.Long"><![CDATA[$F{idUsers}]]></textFieldExpression>
			</textField>
		</band>
	</detail>
	<columnFooter>
		<band height="45" splitType="Stretch"/>
	</columnFooter>
	<pageFooter>
		<band height="54" splitType="Stretch"/>
	</pageFooter>
	<summary>
		<band height="42" splitType="Stretch"/>
	</summary>
</jasperReport>

xml ComandosUser.jrxml(subreport- Filho)

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="ComandosUser" language="groovy" pageWidth="555" pageHeight="802" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0">
	<property name="ireport.zoom" value="1.0"/>
	<property name="ireport.x" value="0"/>
	<property name="ireport.y" value="0"/>
	<parameter name="datainicial" class="java.util.Date"/>
	<parameter name="datafinal" class="java.util.Date"/>
	<parameter name="idUsers" class="java.lang.Long"/>
	<queryString>
		<![CDATA[SELECT
    *
FROM
     comandos
WHERE
     idUsers = $P{idUsers} and datacomando BETWEEN $P{datainicial} and $P{datafinal}]]>
	</queryString>
	<field name="idcomandos" class="java.lang.Long"/>
	<field name="idUsers" class="java.lang.Long"/>
	<field name="nomebomba" class="java.lang.String"/>
	<field name="datacomando" class="java.sql.Date"/>
	<field name="horacomando" class="java.sql.Time"/>
	<field name="statusdocomando" class="java.lang.String"/>
	<field name="statusanterior" class="java.lang.String"/>
	<background>
		<band splitType="Stretch"/>
	</background>
	<columnHeader>
		<band height="20" splitType="Stretch">
			<staticText>
				<reportElement x="12" y="0" width="100" height="20"/>
				<textElement/>
				<text><![CDATA[nomebomba]]></text>
			</staticText>
			<staticText>
				<reportElement x="118" y="0" width="100" height="20"/>
				<textElement/>
				<text><![CDATA[datacomando]]></text>
			</staticText>
			<staticText>
				<reportElement x="222" y="0" width="100" height="20"/>
				<textElement/>
				<text><![CDATA[horacomando]]></text>
			</staticText>
			<staticText>
				<reportElement x="330" y="0" width="100" height="20"/>
				<textElement/>
				<text><![CDATA[statusanterior]]></text>
			</staticText>
			<staticText>
				<reportElement x="446" y="0" width="100" height="20"/>
				<textElement/>
				<text><![CDATA[statusdocomando]]></text>
			</staticText>
		</band>
	</columnHeader>
	<detail>
		<band height="22" splitType="Stretch">
			<textField>
				<reportElement x="12" y="2" width="100" height="20"/>
				<textElement/>
				<textFieldExpression class="java.lang.String"><![CDATA[$F{nomebomba}]]></textFieldExpression>
			</textField>
			<textField>
				<reportElement x="118" y="2" width="100" height="20"/>
				<textElement/>
				<textFieldExpression class="java.util.Date"><![CDATA[$F{datacomando}]]></textFieldExpression>
			</textField>
			<textField>
				<reportElement x="222" y="2" width="100" height="20"/>
				<textElement/>
				<textFieldExpression class="java.sql.Time"><![CDATA[$F{horacomando}]]></textFieldExpression>
			</textField>
			<textField>
				<reportElement x="330" y="2" width="100" height="20"/>
				<textElement/>
				<textFieldExpression class="java.lang.String"><![CDATA[$F{statusanterior}]]></textFieldExpression>
			</textField>
			<textField>
				<reportElement x="446" y="2" width="100" height="20"/>
				<textElement/>
				<textFieldExpression class="java.lang.String"><![CDATA[$F{statusdocomando}]]></textFieldExpression>
			</textField>
		</band>
	</detail>
</jasperReport>

Alguém tem pode me ajudar.

Abaixo segue link das fotos da tela para ilustração: http://dl.dropbox.com/u/8256868/ireport.zip
Obs.: Adicionei todas as bibliotecas necessárias, pelo menos eu acho :smiley:
(commons-beanutils-1.5.jar; commons-collections-2.1.jar; commons-digester-
1.7.jar; commons-logging-1.0.2.jar; commons-logging-api-1.0.2.jar; etc…)

Agradeço desde já,

Obrigado.

9 Respostas

H

Olá pessoal,

trashdollar, estou exatamente com o mesmo problema que você! Tenho um relatório pai com 4 sub-relatórios. Quando dou preview no IReport, tudo funciona perfeitamente. Porém, quando ponho para rodar pela aplicação Java, o relatório pai aparece tranquilo, mas os subrelatórios aparecem em branco! :shock:

O que eu já tentei fazer:

a) Já tentei mexer nas propriedades dos sub-relatórios e mudar o whenNoDataType para AllSectionsNoDetail, como vi em alguns lugares o pessoal falar, mas não adiantou;
b) Já tentei mudar o caminho dos sub-relatórios para um caminho dinâmico (tipo: "../../subreport1.jasper");
c) Já tentei passar por parâmetro o caminho dos sub-relatórios, mas o IReport não deixa (ele dá esse erro aqui - net.sf.jasperreports.engine.JRException: An error has accurred compiling the subreport: C:\Program Files (x86)\Jaspersoft\iReport-3.7.5\ireport\fonts).

Estou suspeitando que o problema é na conexão que os relatórios utilizam (conexão a um banco MySql). Acho que o relatório pai consegue pegar a conexão, mas os sub-relatórios não. A conexão é passada para o relatório pai pelo Java, mas é supostamente passada para os relatórios filhos por um parâmetro - $P{REPORT_CONNECTION}. Mas não sei bem da onde que esse parâmetro pega os dados da conexão, pois eu não defini no código Java nenhum parâmetro assim.

Desde já, agradeço qualquer ajuda!
Obrigado!

Vou colocar meu código aqui..

Connection connection;
        Statement statement;
        ResultSet resultSet;
        ServletOutputStream servletOutputStream = response.getOutputStream();
        InputStream reportStream = getServletConfig().getServletContext().
        getResourceAsStream("/WEB-INF/relatorios/"+layout+".jasper"); /** O nome do arquivo aqui é o do layout de relatório ou gráfico
        criado no IReport que você irá utilizar. */

        try{

            /** Abaixo, está a query do relatório. Dá para modificá-la a fim de obter
            outros dados para preencher o relatório. */

            String query1 = "SELECT C.semestre, P.nome_pergunta, O.nome_opcao, count(*) as total"+
            " FROM opcoes O, respostas R, perguntas P, questionario_usuarios U, questionarios Q, cursos C"+
            " where R.id_opcao = O.id_opcao"+
            " and O.id_pergunta = P.id_pergunta"+
            " and P.id_questionario = Q.id_questionario"+
            " and Q.id_questionario = U.id_questionario"+
            " and U.id_quest_usuario = R.id_quest_usuario"+
            " and Q.id_curso = C.id_curso"+
            " and (P.nome_pergunta like '%Somando a sua renda%')"+
            " and U.id_quest_usuario in"+
            " ("+
            " SELECT U2.id_quest_usuario"+
            " FROM opcoes O2, respostas R2, perguntas P2, questionario_usuarios U2"+
            " where R2.id_opcao = O2.id_opcao"+
            " and O2.id_pergunta = P2.id_pergunta"+
            " and P2.id_questionario = U2.id_questionario"+
            " and U2.id_quest_usuario = R2.id_quest_usuario"+
            " and  (P2.nome_pergunta like '%atual de moradia%')"+
            " )"+
            " group by P.nome_pergunta, O.nome_opcao"+
            " order by P.nome_pergunta, O.nome_opcao;";
            
            Class.forName("com.mysql.jdbc.Driver");
            connection = DriverManager.getConnection ("jdbc:mysql://144.44.444.44:3306/bancoqualquer", "senha qualquer","bleh"); /*conexão com o banco mysql */
            statement = connection.createStatement();
            resultSet = statement.executeQuery(query1); /** Executa a query que é dada acima, e obtém dela o ResultSet. */
            
            JRResultSetDataSource resultSetDataSource = new /** Pega como DataSource o ResultSet obtido com aquela query. */
            JRResultSetDataSource(resultSet);

            HashMap parametros = new HashMap();  /** Coloca o valor dos parametros titulo e descricao no arquivo .jasper */
            parametros.put("titulo", titulo);
            parametros.put("descricao", descricao);
            parametros.put("semestre", semestre);

            JasperRunManager.runReportToPdfStream(reportStream,
            servletOutputStream, parametros, resultSetDataSource); /** Preenche o relatório com os dados e o faz executar no formato .PDF. */
            resultSet.close();
            statement.close();
            connection.close();
            response.setContentType("application/pdf");
            servletOutputStream.flush();
            servletOutputStream.close();

        }
        
        catch (Exception e){                       
            // display stack trace in the browser
            StringWriter stringWriter = new StringWriter();
            PrintWriter printWriter = new PrintWriter(stringWriter);
            e.printStackTrace(printWriter);
            response.setContentType("text/plain");
            response.getOutputStream().print(stringWriter.toString());
        }
        
    }
T

Tenta usar isso aqui:

private void abreRelatorio(String nome, String dataInicial, String dataFinal) throws JRException, Exception {
        super.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
        Date dateinicial = null;
        Date datefinal = null;
        datefinal = new SimpleDateFormat("d/M/y").parse(dataFinal);
        dateinicial = new SimpleDateFormat("d/M/y").parse(dataInicial);
        Map<String, Object> parametros = new HashMap<String, Object>();
        parametros.put("nome", "%" + nome + "%");
        parametros.put("datainicial", dateinicial);
        parametros.put("datafinal", datefinal);
        String path = "relatorios/Reservatorios.jasper";
        File file = new File(path);
        file = file.getAbsoluteFile();
        String repStr2 = file.getPath();
        try {
            JasperFillManager.fillReportToFile(repStr2, parametros, ConnectionFactory.getInstancia());
            JasperPrint jasperPrint = JasperFillManager.fillReport(repStr2, parametros, ConnectionFactory.getInstancia());
            JasperViewer viewer = new JasperViewer(jasperPrint, false);
            viewer.setTitle("Relatório de Bombas");
            viewer.setVisible(true);
        } catch (JRException jex) {
            super.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
            mostrarErro("JasperException: " + jex.getMessage());
        } catch (Exception ex) {
            mostrarErro("" + ex.getStackTrace());
        }
        super.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
    }

Mais uma pergunta:
estou tendo outro problema, preciso fazer o somatório de um campo do tipo Time no mysql usando o ireport. criei a váriavel, escolhi Sum em calculation e Reset Type =Report. Escolhi $F{total_funciona} que é o campo do tipo Time no mysql. Variable class = java.sql.Time. Quando rodo o report ele mostra as horas do último registro e não o total das horas somadas.
Alguém já fez somátorio de horas aí? Está no seguinte formato: HH.MMS.

Obrigado

H

Cara, não entendi o que você quis eu que tentasse usar…

Quanto ao seu problema com a soma, tente colocar o campo do total na band Summary no IReport, pode ser que resolva!

T

No meu caso foi o seguinte: problema de path. Ele não achava o diretório onde está o .jasper. Veja:

String path = “relatorios/Reservatorios.jasper”;

File file = new File(path);

file = file.getAbsoluteFile();

String repStr2 = file.getPath();

Tenho uma vídeo aula para relatórios com Web e posso disponibilizar pra você se você quiser. Meu software é desktop, mas a vídeo aula é para WEB.

H

Cara, deve ser mesmo problema de path.. Tentei fazer o que você falou, mas não sei como passar o path por parâmetro pro IReport.. Ficaria mais ou menos assim?

String path = "reportmoradia_subreport2.jasper";
            File file = new File(path);
            file = file.getAbsoluteFile();
            String repStr2 = file.getPath(); 
            
            HashMap parametros = new HashMap();  /** Coloca o valor dos parametros titulo e descricao no arquivo .jasper */
            parametros.put("titulo", titulo);
            parametros.put("descricao", descricao);
            parametros.put("semestre", semestre);
            parametros.put("caminho", repStr2 );

E no IReport, no sub-relatorio:

Subreport Expression: $P{caminho}
Expression Class: java.lang.String

E quanto as video-aulas, tem como me passar o link delas? (se for por link, claro)

Obrigado!

T

Espero que te ajuda, pois estou o dia inteiro tentando somar a porcaria da coluna de horas e nada.

http://dl.dropbox.com/u/8256868/Aula%208%20-%20Aplicacao%20WEB.avi

H

thashdollar,

Muito obrigado pela video-aula! Já assisti ela e acho que sei como resolver o problema. Deve ser na questão do path mesmo, mas pra web é um pouco diferente. Terei que usar os metodos getServletContext() e o getRealPath(). Pena que já estou em casa e não posso testar aqui, mas amanhã irei testar essa solução. Obrigado mesmo!

Cara, e ainda quanto ao seu problema com a soma, de repente pode ser por que o tipo java.sql.time não pode ser somado, justamente por causa do tipo que ele é. Aí, tente fazer o seguinte:

Transforme todos os campos do tipo java.sql.time que você queria somar em variáveis do tipo java.lang.double dessa forma: crie uma variável e coloque o Variable Class Type dela como java.lang.Double e no variable expression ponha:

Aí, para obter o total, crie outra variável do tipo Double, com Calculation Type = Sum, Reset Type = Report, Variable Expression = $V{nome_da_variavel_que_transformou_de_time_para_double}, Initial Value Expression = new Double(0), e ponha ela em alguma band do tipo footer (ou summary, não tenho muita certeza de qual) no IReport…

Vi isso em um tutorial que eu tinha, só que o campo que a pessoa tinha e queria transformar em double era do tipo java.Util.Date, e não o java.sql.time. Mas, acredito que irá funcionar igual!

Espero ter ajudado!

Obrigado novamente!

H

Problema resolvido!!!

Na verdade, o problema não era nos paths dos sub-relatórios; era na conexão. O relatório-pai tinha conexão com o banco MySql, porém os filhos não tinham. Por isso que eles estavam vindo em branco quando eu rodava pela aplicação.

Até vou escrever o que fiz para, de repente, poder ajudar alguém que esteja com o mesmo problema.

O que eu tive que fazer foi criar um parâmetro para passar a conexão para os sub-relatórios. Fiz da seguinte forma:

Connection connection; Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager.getConnection ("jdbc:mysql://144.44.444.44:3306/bancoqualquer", "senhaqualquer","bleh"); /*conexão com o banco mysql */ HashMap parametros = new HashMap(); /** Coloca o valor dos parametros titulo e descricao no arquivo .jasper */ parametros.put("titulo", titulo); parametros.put("descricao", descricao); parametros.put("semestre", semestre); parametros.put("connection",connection); // Aqui passei a conexão por parâmetro para o relatório

Aí, no IReport, criei um parâmetro com o nome de connection lá no relatório-pai e coloquei java.sql.Connection no Parameter Class dele.

Depois, no relatório principal, nas propriedades de cada sub-relatório eu coloquei:
Connetion Type: Use a connection expression
Connection Expression: $P{connection}

Aí funcionou! =D

Para os paths dos sub-relatórios, deixei da seguinte forma: SubReport Expression: “…/…/nome_do_sub_relatorio.jasper”

Abraço!
Obrigado!

T

Olá henriko!!!
cara, o que você me passou foi de enorme valia e finalmente com alguma adaptação funcionou. Por isso estou aqui a lhe agradecer.

Valeu pela ajuda.

Espero também que você tenha resolvido seu problema.

Abraços e obrigado novamente!!!

Criado 13 de dezembro de 2010
Ultima resposta 15 de dez. de 2010
Respostas 9
Participantes 2