Jump to content


Renan L. Queiroz

Member Since 11/12/2007
Offline Last Active 18/06/2010, 09:50
*****

Topics I've Started

[Resolvido] Mesclar Células Da Tabela

19/01/2010, 17:40

Tenho que imprimir um relatório via FPDF, e colocaram como necessidade
a mesclagem de células quando algumas informações forem iguais (datas)!

Andei dando uma pesquisada, mas não encontrei nada que pudesse me ajudar!
O que encontrei mais próximo, foi escrita vertical dentro da célula, na parte de
script prontos no site oficial.

Existe algum site que ainda não encontrei?

Estou imprimindo a tabela da seguinte forma:
function tabela($header,$data){

		$this->SetFont('','B');
	    
	    $w=array(25,40,35,80,50,40);
	    $this->cMargin = 2;//cell padding

	    for($i=0;$i<count($header);$i++){
	        $this->Cell($w[$i],7,$header[$i],1,0,'C',false);
	    }
		$this->Ln();
		$this->cMargin = 2;//cell padding
		$this->tablewidths = array(25,40,35,80,50,40);
		$this->SetFont('Times','',12);
		$this->morepagestable($data);
	}
Onde "headers" são os dados dos cabeçalhos da tabela e
"data" os registros a serem impressos na tabela.

--

Solução 2:

Encontrei um exemplo no próprio site do FPDF, só que na parte
de links externos, dentro da páginas de scripts, seguem links:
Script: FPDF Table
Resultado: fpdf_table_example_base.pdf
;-)

--

Solução 1:

Tinha pensando em algo anteriormente, antes de achar o script pronto,
um tipo de "gambiarrinha", simples, mas que surte muito efeito, seria esta,
criar uma célula com o tamanho total de linhas na qual esta irá sobrepor,
e ao criar as novas linhas, incluir uma célula (vazia), com a largura da
célula que sobrepoê às anteriores, fazendo com que as outras células fiquem
à direita da célula "mesclada".

Exemplo:
$pdf->Cell(20,10,'Nome',1,1,'C');
$pdf->Cell(20,10,'Função',1,1,'C');
$pdf->Ln();
$pdf->Cell(20,20,'Renan',1,1,'C'); // cria-se uma célula com 2x o tamanho da normal
$pdf->Cell(20,10,'Queiroz',1,1,'C'); // célula ao lado da anterior com tamanho pela mentade
$pdf->Ln(); // quebra linha
$pdf->Cell(20); // inclui uma célula com 20 de largura
$pdf->Cell(20,10,'Desenvolvedor',1,1,'C'); // célula incluida à direita da célula com tamanho dobrado
A classe que referenciei anteriormente trabalha da mesma forma,
mas já tem uma base mais sólida, evitando erros, então
vou prosseguir utilizando à mesma.

[resolvido] Instância De Função

25/05/2009, 17:06

Tenho o seguinte ambiente:

Uma página de apresentação (.asp), e um script com funções (.js)
Na página de apresentação estou criando uma instância de uma
função que se encontra num outro arquivo (.js), ai ao tentar
utlilzar o método da função a mesma não é encontrada:
MostraDisciplinas' is undefined.
O estranho é que já tenho um mesmo caso que
funciona normalmente.

Página ASP:
function escolheDisc(div, periodo){		var disciplinas = new MostraDisciplinas(div, periodo);		disciplinas.abreDisciplinas();	};

Arquivo Js:
function MostraDisciplinas(div, periodo){		this.abreDisciplinas = function(){			var divAtual = 'disc'+ div.innerHTML.substr(0,1);			var divs = new Array('disc1', 'disc2', 'disc3', 'disc4', 'disc5', 'disc6', 'disc7', 'disc8');			var r = 1;			for (i = 0; i < divs.length; i++){				var divStyle = document.getElementById(divs[i]).style;				if (divAtual == divs[i])					divStyle.display = 'block';				else					divStyle.display = 'none';			}			acendeDivPai(periodo);		};		this.acendeDivPai = function(){			for (i = 0; i < 8; i++ ){				var divPai = document.getElementById('divPeriodo'+ (i+1));				if ((i+1) == periodo){					divPai.style.background = '#F2B34C';					divPai.onmouseout = function(){ alteraImg(this, "over"); };									}				else{					divPai.style.background = 'url("img/bg_disciplinas.gif")';					divPai.onmouseout = function (){ alteraImg(this, "out"); };				}			}		};	};

;-)

IPB Skin By Virteq