FPDF error: Some data has already been output, can't send PDF file

SC 7.01.0021
Banco Sql 2008 R2

Esse aplicação ira gerar um relatorio em PDF das empresas selecionadas com aproximadamente 150 paginas.
Abre-se um grid onde o usuario ira selecionar as empresas que quer imprimir e num botão RUN executara a rotina

Criei uma classe ( na opção biblioteca) com base em uma que eu encontrei no site http://www.fpdf.org (Multi-columns) e adaptei para o que eu queria.
Em um Blank eu chamo a classe.

Se eu colocar o sc_select apresenta o erro acima.
Obs.:

  1. Basta simplesmente colocar o comando.
  2. Antes eu estava usando sc_select() sem problema, depois que eu coloquei
    .
    .
    .
    sc_select(Socios,$SqlSocio);

while (!$Socios->EOF)
{
.
.
.
passou a dar a mensagem.
depois disso só funciona se retirar todos os
sc_select

$pdf = new PDF();

$Sql=“SELECT
Contratos.Codigo_do_contrato,
Contratos.Nome,
Contratos.Cnpj,
Cidade.Nome AS NomeCidade,
Contratos.Bairro,
Contratos.Endereco,
Contratos.CEP
FROM
Contratos INNER JOIN
Cidade ON
Contratos.Id_cidade = Cidade.Id_cidade
WHERE
(Contratos.Codigo_do_contrato = 1)”;

sc_select(meus_dados,$Sql);

$CodigoPessoaJuridica = $meus_dados->fields[0];
$PessoaJuridica = $meus_dados->fields[1];
$CNPJ = $meus_dados->fields[2];
$NomeCidade = $meus_dados->fields[3];
$Bairro = $meus_dados->fields[4];
$Endereco = $meus_dados->fields[5];
$CEP = $meus_dados->fields[6];

$Documentos = “SELECT
Id_documento,
Descricao,
Texto_padrao
FROM
Documentos_pradroes”;

sc_select(TextoPadrao,$Documentos);

$RECIBO = $TextoPadrao->fields[2];
$TextoPadrao->MoveNext();
$DECLARACAO_SOCIO = $TextoPadrao->fields[2];
$TextoPadrao->MoveNext();
$DECLARACAO_EMPRESA = $TextoPadrao->fields[2];

//DeclaraçãoIsençao INSS
$SqlSocio = "SELECT
PHPValorGuia.NomeProfissional,
Profissional.Cpf,
Profissional.Numero_rg,
PHPValorGuia.Numerocontrato
FROM
PHPValorGuia INNER JOIN
Profissional ON
PHPValorGuia.CodigoProfissional = Profissional.Codigo_do_profissional
WHERE
(PHPValorGuia.CodigoPessoaJuridica = " .$CodigoPessoaJuridica. “)
GROUP BY
PHPValorGuia.NomeProfissional,
Profissional.Cpf,
Profissional.Numero_rg,
PHPValorGuia.Numerocontrato”;

sc_select(Socios,$SqlSocio);

while (!$Socios->EOF)
{
$Imprime_Declaracao = $DECLARACAO_SOCIO ;
//SOCIO
$Imprime_Declaracao = str_replace(’@NomeSocio’,$Socios->fields[0],$Imprime_Declaracao);
//RG SOCIO
$Imprime_Declaracao = str_replace(’@NumeroRG’,$Socios->fields[2],$Imprime_Declaracao);
//Cpf Socio
$Imprime_Declaracao = str_replace(’@NumeroCPF’,$Socios->fields[1],$Imprime_Declaracao);
//Socio
$Imprime_Declaracao = str_replace(’@NomeEmpresa’,$PessoaJuridica ,$Imprime_Declaracao);
//CNPJ EMPRESA
$Imprime_Declaracao = str_replace(’@CNPJContratada’,$CNPJ,$Imprime_Declaracao);
//Numero do contrato
$Imprime_Declaracao = str_replace(’@NumeroContrato’,$Socios->fields[3],$Imprime_Declaracao);
//Qual Instituto
$Imprime_Declaracao = str_replace(’@NomeContratante’,[vgDescricao_empresa],$Imprime_Declaracao);
//@CNPJContratante

		$pdf->PrintChapter(1,	$CodigoPessoaJuridica,
								$PessoaJuridica,
			   					$CNPJ,
						   		$NomeCidade,
						   		$Bairro,
			   					$Endereco,
						   		$CEP,
						   		'DECLARAÇÃO',
			   					$Imprime_Declaracao);

		$Socios->MoveNext();

}

$pdf->Output();

//Class

<?php require_once($this->Ini->path_third."/fpdf/fpdf.php"); class PDF extends FPDF { function Header() { $title='-'; // Arial bold 15 $this->SetFont('Arial','B',15); // Calculate width of title and position $w = $this->GetStringWidth($title)+6; $this->SetX((210-$w)/2); // Colors of frame, background and text $this->SetDrawColor(0,80,180); $this->SetFillColor(230,230,0); $this->SetTextColor(220,50,50); // Thickness of frame (1 mm) $this->SetLineWidth(1); // Title $this->Cell($w,9,$title,1,1,'C',true); // Line break $this->Ln(10); } function ChapterTitle($lblNum, $lblCodigoPessoaJuridica, $lblPessoaJuridica, $lblCNPJ, $lblNomeCidade, $lblBairro, $lblEndereco, $lblCEP) { $this->SetFont('Arial','B',15); $w = $this->GetStringWidth($lblPessoaJuridica)+6; // Calculate width of title and position $this->SetX((210-$w)/2); $this->SetFillColor(200,220,255); $this->Cell($w,9,$lblPessoaJuridica,0,1,'C',true); // Title $Texto = $lblNomeCidade .' - ' . $lblBairro .' - ' . $lblEndereco; $w = $this->GetStringWidth($Texto)+6; $this->SetX((210-$w)/2); $this->SetFillColor(200,220,255); $this->Cell($w,9,$Texto,0,1,'C',true); $Texto = 'CNPJ.: ' . $lblCNPJ .' - C.E.P.:' . $lblCEP; $w = $this->GetStringWidth($Texto)+6; $this->SetX((210-$w)/2); $this->SetFillColor(200,220,255); $this->Cell($w,9,$Texto,0,1,'C',true); // Arial 12 $this->SetFont('Arial','',12); // Background color $this->SetFillColor(200,220,255); // Title $this->Cell(0,0," ",1,1,'L',true); $this->SetFont('Arial','B',12); // Line break $this->Ln(20); } function ChapterBody($lblTitulo, $txt) { // Read text file //$txt = $file; $this->SetFont('Times','',14); $this->Cell(0,9,$lblTitulo,1,1,'C',true); $this->Ln(20); // Times 12 $this->SetFont('Times','',12); // Output justified text $this->MultiCell(0,5,$txt); // Line break $this->Ln(); // Mention in italics $this->SetFont('','I'); $this->Cell(0,5,'(end of excerpt)'); } function PrintChapter($num,$CodigoPessoaJuridica, $PessoaJuridica, $CNPJ, $NomeCidade, $Bairro, $Endereco, $CEP, $Titulo, $file) { $this->AddPage(); $this->ChapterTitle($num, $CodigoPessoaJuridica, $PessoaJuridica, $CNPJ, $NomeCidade, $Bairro, $Endereco, $CEP); $this->ChapterBody($Titulo, $file); } // fim da class } ?>

Mude sc_select(meus_dados,$Sql);
Para sc_select(meus_dados,$Sql,“nomedasuaconexao”);

Teste também mudar sc_select para sc_lookup

Tentei mas continua a mesma mensagem.

Eu ja havia Tentado com sc_lookup. Mas mesmo assim não funciona.

O estranho era que nos testes estava funcionando.
Foi só tentar dar umamelhoradinha para acontecer isso.

É so colocar sc_lookup ou sc_select para aparecer a mensagem

Faz um restore da aplicação no menu arquivo, restaurar aplicações.
Tenta fazer essa melhoria novamente na versão anterior que deve funcionar.
Pode ser que tenha alterado algo a mais…

Rodrigo,
Obrigado pela ajuda.
Eu já refiz toda e por algum motivo não funciona.

Como prometi ao cliente entregar hoje o relatorio para teste
estou refazendo de outra maneira.

Oi jah passei por isto,

Pode ser um simples ; ou uma aspas.

Recomendo refazer o seu relatorio parte por parte.

exemplo faz o cabecalho.
depois insere a primeira linha de dados, e assim sucessivamente.

Obrigado marcio william,

Mas funciona se não colocar o select numa boa
Mas basta colocar um select por mais simples que seja e dá erro
so fazer o select para abrir a tabela mais nada e o erro aparece
Mesmo que ele não seja utilizado.
fiz o debug e o select esta correto.

Teste criando um método php que faz o select e apenas chame ele no código.

Se você usar o sc_lookup vai da certo. Abraço.