Relatório Complexo em PDF

Olá pessoal
Estou com a missão de fazer o seguinte relatório:

Minha experiência com FPDF é 0 e a ferramenta que o SC oferece Meu Deus… Ufa…
Se possível alguém para dar dicas de como fazer.
Esse é o meu SQL

SELECT lanc.data, proc.descricao, lanc.valor FROM lancamento lanc INNER JOIN procedimento proc ON lanc.idprocedimentos = proc.idprocedimentos INNER JOIN funcionario func ON lanc.idfuncionario = func.idfuncionario INNER JOIN cargo cargo ON func.idcargo = cargo.idcargo WHERE (proc.status = '1') AND (lanc.idunidade = '1') AND (func.idcargo = '3') ORDER BY proc.codigo
Que está retornando a seguinte informação.
data descricao valor
2014-03-10 NÃO SE APLICA 1
2014-03-03 NÃO SE APLICA 1
2014-03-11 NÃO SE APLICA 1
2014-03-26 NÃO SE APLICA 1
2014-03-04 NÃO SE APLICA 1
2014-03-12 NÃO SE APLICA 1
2014-03-05 NÃO SE APLICA 1
2014-03-14 NÃO SE APLICA 1
2014-03-31 menor que 1 ano 2
2014-03-07 menor que 1 ano 1
2014-03-18 menor que 1 ano 1
2014-03-21 menor que 1 ano 1
2014-03-24 menor que 1 ano 1
2014-03-17 5-9 anos 1
2014-03-19 5-9 anos 1
2014-03-31 15-19 anos 1
2014-03-28 15-19 anos 1
2014-03-21 15-19 anos 1
2014-03-18 20-39 anos 3
2014-03-19 20-39 anos 4
2014-03-24 20-39 anos 2
2014-03-21 20-39 anos 1
2014-03-31 20-39 anos 2
2014-03-28 20-39 anos 1
2014-03-07 20-39 anos 1
2014-03-25 20-39 anos 1
2014-03-25 40-49 anos 1
2014-03-18 40-49 anos 2
2014-03-19 40-49 anos 4
2014-03-06 40-49 anos 1
2014-03-24 50-59 anos 1
2014-03-25 50-59 anos 1
2014-03-18 50-59 anos 5
2014-03-19 50-59 anos 2
2014-03-27 50-59 anos 1
2014-03-07 50-59 anos 1
2014-03-17 60 anos ou mais 2
2014-03-20 60 anos ou mais 2
2014-03-24 60 anos ou mais 1
2014-03-25 60 anos ou mais 6
2014-03-18 60 anos ou mais 12
2014-03-19 60 anos ou mais 7
2014-03-13 60 anos ou mais 1
2014-03-21 Puericultura 1
2014-03-17 Puericultura 1
2014-03-24 Puericultura 1
2014-03-31 Puericultura 1
2014-03-27 Prevenção do Câncer Cérvico-Uterino 1
2014-03-07 Prevenção do Câncer Cérvico-Uterino 2
2014-03-06 Prevenção do Câncer Cérvico-Uterino 1
2014-03-20 Prevenção do Câncer Cérvico-Uterino 2
2014-03-21 Prevenção do Câncer Cérvico-Uterino 2
2014-03-28 Prevenção do Câncer Cérvico-Uterino 1
2014-03-19 Prevenção do Câncer Cérvico-Uterino 2
2014-03-31 Prevenção do Câncer Cérvico-Uterino 1
2014-03-25 Diabetes 4
2014-03-18 Diabetes 10
2014-03-24 Diabetes 1
2014-03-24 Hipertensão Arterial 2
2014-03-17 Hipertensão Arterial 1
2014-03-25 Hipertensão Arterial 8
2014-03-18 Hipertensão Arterial 17
2014-03-25 Tuberculose 1
2014-03-24 Tuberculose 1
2014-03-17 Tuberculose 1
2014-03-18 Atend. Individual Prof. Nível Superior 21
2014-03-19 Injeções 3
2014-03-18 Injeções 1
2014-03-24 Injeções 1
2014-03-17 Injeções 1
2014-03-31 Retirada de Pontos 1
2014-03-17 Retirada de Pontos 1
2014-03-18 Retirada de Pontos 1
2014-03-31 Reuniões 1
2014-03-06 Reuniões 1
2014-03-17 Reuniões 1
2014-03-20 Reuniões 1
2014-03-24 Reuniões 4
2014-03-21 Reuniões 1
2014-03-28 Reuniões 1
2014-03-27 Visita Domiciliar 1
2014-03-25 Visita Domiciliar 1
2014-03-31 Visita Domiciliar 4
2014-03-17 Visita Domiciliar 4
2014-03-26 Visita Domiciliar 1
2014-03-18 Visita Domiciliar 1
2014-03-24 Visita Domiciliar 4

No aguardo…
Obrigado.

-Crie um novo PDF pegando os dados de uma tabela ou conforme seu SQL.
-Em Layout PDF, clique no Código e no select, selecione Layout.
-Abaixo está o código FPDF que fiz iniciando a configuração do layout do relatório, observe os comentários.
-Cole esse código no Layout.

Você pode prosseguir, terminando de construir o layout com base no que já fiz, se tiver dúvidas, em www.softasso.com.br/fpdf coloquei o Manual completo em português da FPDF.

Após terminar o layout, vá em Layout PDF/Interface e posicione os dados de acordo com o seu layout, ligue a Régua em Configuração para facilitar o posicionamento dos dados.

Se tiver mais dúvidas, é só gritar.
João Carlos

linha1

sc_pdf_set_font(’’,‘B’,‘16’);# font(modelo,bold,tamanho)
sc_pdf_rect(10,10,30,10);# retangulo (eixoX, eixoY,largura,altura)
sc_pdf_set_xy(10,10); #coordenadas de cell
sc_pdf_cell (30,10,iconv(‘utf-8’,‘iso-8859-1’,‘FICHA D’),0,0,C); # o cell e seu conteudo aceitando acentuações
sc_pdf_rect(40,10,210,10);
sc_pdf_set_xy(40,10); #some o set_X anterior (10)+ cell anterior (30) = esse set_X (40)
sc_pdf_set_font(‘Arial’,’’,‘14’);# font(modelo,bold,tamanho)
sc_pdf_cell (180,6,iconv(‘utf-8’,‘iso-8859-1’,‘SECRETARIA MUNICIPAL DE SAÚDE DE TESTES’),0,0,C);
sc_pdf_set_font(‘Arial’,’’,‘12’);# font(modelo,bold,tamanho)
sc_pdf_set_xy(40,16); # aqui coloquei uma posição aproximada, pois está dentro do anterior
sc_pdf_cell (180,4,iconv(‘utf-8’,‘iso-8859-1’,‘Sistema de Informação de Atenção Básica’),0,0,C); #observe o segundo parametro (6+4 = 10>altura do retangulo)
sc_pdf_rect(250,10,30,10);

linha2, desenhei primeiro os retangulos

sc_pdf_rect(10,20,80,10);
sc_pdf_rect(90,20,80,10);
sc_pdf_rect(170,20,80,10);
sc_pdf_rect(250,20,30,10);

#mudo a fonte
sc_pdf_set_font(‘Arial’,’’,‘8’);
sc_pdf_set_xy(10,25); sc_pdf_cell (80,5,iconv(‘utf-8’,‘iso-8859-1’,‘Municípios:’),0,0,L);# posicao e textos, largura igual a dos retangulos
sc_pdf_set_xy(90,25); sc_pdf_cell (80,5,iconv(‘utf-8’,‘iso-8859-1’,‘Unidade:’),0,0,L);
sc_pdf_set_xy(170,25); sc_pdf_cell (80,5,iconv(‘utf-8’,‘iso-8859-1’,‘Profissionais:’),0,0,L);
sc_pdf_set_xy(250,25); sc_pdf_cell (30,5,iconv(‘utf-8’,‘iso-8859-1’,‘Mês:’),0,0,L);

linha3

sc_pdf_rect(10,30,270,6);
sc_pdf_set_font(‘Arial’,‘B’,‘14’);
sc_pdf_set_xy(10,30); sc_pdf_cell (270,6,iconv(‘utf-8’,‘iso-8859-1’,‘Registro de Atividades, Procedimentos e Notificações:’),0,0,C);

#linha 4
sc_pdf_rect(10,45,50,10);
sc_pdf_set_xy(10,45); sc_pdf_cell (50,10,iconv(‘utf-8’,‘iso-8859-1’,‘Dias >>’),0,0,C);
sc_pdf_rect(60,45,10,10);
sc_pdf_rect(70,45,10,10);
sc_pdf_rect(80,45,10,10);
sc_pdf_rect(90,45,10,10);
sc_pdf_rect(100,45,10,10);
sc_pdf_rect(110,45,10,10);
sc_pdf_rect(120,45,10,10);
sc_pdf_rect(130,45,10,10);
sc_pdf_rect(140,45,10,10);
sc_pdf_rect(150,45,10,10);
sc_pdf_rect(160,45,10,10);
sc_pdf_rect(170,45,10,10);
sc_pdf_rect(180,45,10,10);
sc_pdf_rect(190,45,10,10);
sc_pdf_rect(200,45,10,10);
sc_pdf_rect(210,45,10,10);
sc_pdf_rect(220,45,10,10);
sc_pdf_rect(230,45,10,10);
sc_pdf_rect(240,45,10,10);
sc_pdf_rect(250,45,10,10);
sc_pdf_rect(260,45,10,10);
sc_pdf_rect(270,45,10,10);
sc_pdf_set_font(‘Arial’,‘B’,‘8’);
sc_pdf_set_xy(270,45); sc_pdf_cell (10,10,iconv(‘utf-8’,‘iso-8859-1’,‘Total’),0,0,C);

Eu prefiro desenhar isso em HTML.

=X

Obrigado pela ajuda João Carlos.
Vou tentar seguir as suas dicas.

João Carlos, como faço para justificar os dados de uma coluna?

Obrigado

Faz o formulário no WORD, sai salva ele como PNG alta resolução depois coloca como imagem de fundo no Report PDF,
e coloca os campos em cima.

“Programar é inevitável
O sofrimento é opcional”.
Carlos Drummond de Andrade (Adaptei hehe)

Você pode usar formato livre e exportar para o pdf.

Ou

Usar extensões da classe fpdf para ter a formatação justificado.

Jailton, o formulário é todo texto, o problema é justificar os dados do contratado e contratante.

Haroldo, fiz em HTML, o difícil é controlar as margens superiores e inferiores, são várias páginas.

Obrigado aos amigos.

Pessoal bom dia, estou iniciando no scriptcase gostaria de saber se tem como criar um relatório muito parecido com o problema acima porem desenhando em HTML?

Abs,

João, bom dia.
O endereço do tutorial não esta abrindo, se possível me mande no e-mail rocha@rcequipe.com.br

Grato

No meu canal dou uma demonstração de utilização de report pdf

não era um tutorial e sim o manual do FPDF em PT-BR o qual nem se usa mais agora deve ler o TCPDF,

Ola Anildo

Pessoal bom dia, estou iniciando no scriptcase gostaria de saber se tem como criar um relatório muito parecido com o problema acima porem desenhando em HTML?

No site do TCPF tem um exemplo usando html.
https://tcpdf.org/examples/example_006/

🚀 O Scriptcase 9.12 já está disponível! Veja as novidades aqui 👉🚀 Na próxima segunda (24/02), o Scriptcase 9.12 será lançado! Veja as novidades antes de todo mundo 👉