Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) FPDF


Vagner Nunes

Pergunta

Prezados,

Estou utilizando o FPDF para gerar um relatório em PDF. Não sei se estou fazendo corretamente, porem gostaria de saber como faço para repetir os registros.

Segue código:

<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/Conectar.asp" -->
<%
Dim Patrimonio
Dim Patrimonio_numRows

Set Patrimonio = Server.CreateObject("ADODB.Recordset")
Patrimonio.ActiveConnection = MM_Conectar_STRING
Patrimonio.Source = "SELECT * FROM controle"
Patrimonio.CursorType = 0
Patrimonio.CursorLocation = 2
Patrimonio.LockType = 1
Patrimonio.Open()

Patrimonio_numRows = 0
%>
<!--#include file="fpdf.asp"-->
<%
dim pdf
'// criando o pdf
set pdf=CreateJsObject("FPDF")

'// aki poderemos adcionar várias funções como titulos padroes para todas as páginasm numeração de páginas e etc.

'// montando o corpo do pdf, setando o tipo da folha, tipo de medida e o tamanho da folha
pdf.CreatePDF "P","mm","A4"
pdf.SetPath("fpdf/")
pdf.Open()

'// adcionando página
pdf.AddPage()

'// setando fonte e tamanho
pdf.SetFont "Arial","",11

'// setando grossura da linha
pdf.SetLineWidth(0.4)

'// setando linhas, reapare que, as medidas são feitas em x1, y1, x2 e y2, començando no ponto inicial de x e y e finalizando nos mesmo.
pdf.Line "7","50","200","50"
'// criamos aki uma linha horizontal, a linha pode ser feita de qualquer jeito, vertical, diagonal e td mais, somente setando os valores de x e y.

'// escrevendo um texto
pdf.Text "7","45","Faculdade Cesat - Relatório de Patrimonios"
pdf.Text "10","55",(Patrimonio.Fields.Item("instituicao").Value)
pdf.Text "10","60",(Patrimonio.Fields.Item("nome").Value)
pdf.Text "10","65",(Patrimonio.Fields.Item("codigo").Value)
pdf.Text "10","70",(Patrimonio.Fields.Item("setor").Value)
pdf.Text "10","75",(Patrimonio.Fields.Item("dtaquisicao").Value)
pdf.Text "10","80",(Patrimonio.Fields.Item("dtentrada").Value)
pdf.Text "10","85",(Patrimonio.Fields.Item("cor").Value)
pdf.Text "10","90",(Patrimonio.Fields.Item("descricao").Value)
pdf.Text "10","95",(Patrimonio.Fields.Item("fornecedor").Value)
pdf.Text "10","100",(Patrimonio.Fields.Item("quantidade").Value)
pdf.Text "10","105",(Patrimonio.Fields.Item("situacao").Value)
pdf.Text "10","110",(Patrimonio.Fields.Item("valor").Value)
pdf.Text "10","115",(Patrimonio.Fields.Item("dtsaida").Value)
pdf.Text "10","120",(Patrimonio.Fields.Item("motivosaida").Value)

pdf.Close()
pdf.Output()
%>
<%
Patrimonio.Close()
Set Patrimonio = Nothing
%>

Sds,

Vagner Nunes

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

Cara, você já fez loop do tipo while em asp, né? Sei que sim!

É exatamente igual... segue mastigadinho:

Set conexao= server.createObject("ADODB.Connection")
conexao.CursorLocation = 3
conexao.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.mappath("bd.mdb")


sql= "select * from sua_tabela"
Set rs= Server.CreateObject( "ADODB.RecordSet" )
rs.Open sql, conexao

while not rs.Eof
varaivel = rs("campo_bd")
rs.movenext
wend

Link para o comentário
Compartilhar em outros sites

  • 0

Consegui, porém os registros estão aparecendo um sobre o outro.

Segue código:

<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/Conectar.asp" -->
<%
Dim Patrimonio
Dim Patrimonio_numRows

Set Patrimonio = Server.CreateObject("ADODB.Recordset")
Patrimonio.ActiveConnection = MM_Conectar_STRING
Patrimonio.Source = "SELECT * FROM controle"
Patrimonio.CursorType = 0
Patrimonio.CursorLocation = 2
Patrimonio.LockType = 1
Patrimonio.Open()

Patrimonio_numRows = 0
%>
<%
Dim Repeat1__numRows
Dim Repeat1__index

Repeat1__numRows = -1
Repeat1__index = 0
Patrimonio_numRows = Patrimonio_numRows + Repeat1__numRows
%>
<!--#include file="fpdf.asp"-->
<%
dim pdf
'// criando o pdf
set pdf=CreateJsObject("FPDF")

'// aki poderemos adcionar várias funções como titulos padroes para todas as páginasm numeração de páginas e etc.

'// montando o corpo do pdf, setando o tipo da folha, tipo de medida e o tamanho da folha
pdf.CreatePDF "P","mm","A4"
pdf.SetPath("fpdf/")
pdf.Open()

'// adcionando página
pdf.AddPage()

'// setando fonte e tamanho
pdf.SetFont "Arial","",11

'// setando grossura da linha
pdf.SetLineWidth(0.4)

'// setando linhas, reapare que, as medidas são feitas em x1, y1, x2 e y2, començando no ponto inicial de x e y e finalizando nos mesmo.
pdf.Line "7","50","200","50"
'// criamos aki uma linha horizontal, a linha pode ser feita de qualquer jeito, vertical, diagonal e td mais, somente setando os valores de x e y.

'// escrevendo um texto
While ((Repeat1__numRows <> 0) AND (NOT Patrimonio.EOF))
pdf.Text "7","45","Faculdade Cesat - Relatório de Patrimonios"
pdf.Text "10","55",(Patrimonio.Fields.Item("instituicao").Value)
pdf.Text "10","60",(Patrimonio.Fields.Item("nome").Value)
pdf.Text "10","65",(Patrimonio.Fields.Item("codigo").Value)
pdf.Text "10","70",(Patrimonio.Fields.Item("setor").Value)
pdf.Text "10","75",(Patrimonio.Fields.Item("dtaquisicao").Value)
pdf.Text "10","80",(Patrimonio.Fields.Item("dtentrada").Value)
pdf.Text "10","85",(Patrimonio.Fields.Item("cor").Value)
pdf.Text "10","90",(Patrimonio.Fields.Item("descricao").Value)
pdf.Text "10","95",(Patrimonio.Fields.Item("fornecedor").Value)
pdf.Text "10","100",(Patrimonio.Fields.Item("quantidade").Value)
pdf.Text "10","105",(Patrimonio.Fields.Item("situacao").Value)
pdf.Text "10","110",(Patrimonio.Fields.Item("valor").Value)
pdf.Text "10","115",(Patrimonio.Fields.Item("dtsaida").Value)
pdf.Text "10","120",(Patrimonio.Fields.Item("motivosaida").Value)
  
  Repeat1__index=Repeat1__index+1
  Repeat1__numRows=Repeat1__numRows-1
  Patrimonio.MoveNext()
Wend

pdf.Close()
pdf.Output()
%>
<%
Patrimonio.Close()
Set Patrimonio = Nothing
%>

Sds,

Vagner Nunes

Link para o comentário
Compartilhar em outros sites

  • 0

bom como você já deve ter percebido o FPDF trabalhja desenhando o PDF, você tem que informar o x e y de cada coisa que vai botar lá... então nesse caso tu tem que ir almentando o valor de y para que ele escreva em toda a página...

então seria algo do tipo

for i =1 to 10

pdf.Text "7", (45+(i*10)) ,"Faculdade Cesat - Relatório de Patrimonios"

next

Link para o comentário
Compartilhar em outros sites

  • 0

Continua por cima ainda, porém agora repete dez vezes e fica sobreposto os dez.

Rapaz difícil de entender...

<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/Conectar.asp" -->
<%
Dim Patrimonio
Dim Patrimonio_numRows

Set Patrimonio = Server.CreateObject("ADODB.Recordset")
Patrimonio.ActiveConnection = MM_Conectar_STRING
Patrimonio.Source = "SELECT * FROM controle"
Patrimonio.CursorType = 0
Patrimonio.CursorLocation = 2
Patrimonio.LockType = 1
Patrimonio.Open()

Patrimonio_numRows = 0
%>
<%
Dim Repeat1__numRows
Dim Repeat1__index

Repeat1__numRows = -1
Repeat1__index = 0
Patrimonio_numRows = Patrimonio_numRows + Repeat1__numRows
%>
<!--#include file="fpdf.asp"-->
<%
dim pdf
'// criando o pdf
set pdf=CreateJsObject("FPDF")

'// aki poderemos adcionar várias funções como titulos padroes para todas as páginasm numeração de páginas e etc.

'// montando o corpo do pdf, setando o tipo da folha, tipo de medida e o tamanho da folha
pdf.CreatePDF "P","mm","A4"
pdf.SetPath("fpdf/")
pdf.Open()

'// adcionando página
pdf.AddPage()

'// setando fonte e tamanho
pdf.SetFont "Arial","",11

'// setando grossura da linha
pdf.SetLineWidth(0.4)

'// setando linhas, reapare que, as medidas são feitas em x1, y1, x2 e y2, començando no ponto inicial de x e y e finalizando nos mesmo.
pdf.Line "7","50","200","50"
'// criamos aki uma linha horizontal, a linha pode ser feita de qualquer jeito, vertical, diagonal e td mais, somente setando os valores de x e y.

'// escrevendo um texto
While ((Repeat1__numRows <> 0) AND (NOT Patrimonio.EOF))

pdf.Text "10","45","Faculdade - Relatório de Patrimonios"

for i =1 to 10

pdf.Text "10", (55+(i*10)) ,(Patrimonio.Fields.Item("instituicao").Value)
next

pdf.Text "10","60",(Patrimonio.Fields.Item("nome").Value)
pdf.Text "10","65",(Patrimonio.Fields.Item("codigo").Value)
pdf.Text "10","70",(Patrimonio.Fields.Item("setor").Value)
pdf.Text "10","75",(Patrimonio.Fields.Item("dtaquisicao").Value)
pdf.Text "10","80",(Patrimonio.Fields.Item("dtentrada").Value)
pdf.Text "10","85",(Patrimonio.Fields.Item("cor").Value)
pdf.Text "10","90",(Patrimonio.Fields.Item("descricao").Value)
pdf.Text "10","95",(Patrimonio.Fields.Item("fornecedor").Value)
pdf.Text "10","100",(Patrimonio.Fields.Item("quantidade").Value)
pdf.Text "10","105",(Patrimonio.Fields.Item("situacao").Value)
pdf.Text "10","110",(Patrimonio.Fields.Item("valor").Value)
pdf.Text "10","115",(Patrimonio.Fields.Item("dtsaida").Value)
pdf.Text "10","120",(Patrimonio.Fields.Item("motivosaida").Value)
  
  Repeat1__index=Repeat1__index+1
  Repeat1__numRows=Repeat1__numRows-1
  Patrimonio.MoveNext()
Wend

pdf.Close()
pdf.Output()
%>
<%
Patrimonio.Close()
Set Patrimonio = Nothing
%>

Link para o comentário
Compartilhar em outros sites

  • 0

se você não analisar o q ta fazendo e ficar no ctrl+c e v não vai entender mesmo...

aqui tem bastante coisa, mais é ingles e PHP.. http://www.fpdf.org/

você parou para analisar que sempre tem uma coordenada na frente...

pdf.Text "10","45","Faculdade - Relatório de Patrimonios"

x=10 y=45 ... certo???? esperimenta faze esses numero irem sendo somados ou subtraidos no loop.

outro tópico a respeito:

http://scriptbrasil.com.br/forum/index.php?showtopic=138945

Link para o comentário
Compartilhar em outros sites

  • 0

Consegui aqui, porém não estou conseguindo configurar a paginação. Os resultados só está aparecendo em uma página, sendo que, não está aparecendo os outros registros, tentei utilizar aquele código de paginação porém aparece um registro em cada página, mas gostaria que aparece uma quantidade de registro em cada página.

Como proceder?

Sds,

Vagner Nunes

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...