Mestre/Detalhe: Da Consulta ao PDF

Demonstro aqui alguns recursos que desenvolvi para customizar consultas, formulários com mestre e detalhe e Relatórios PDF.

  • Aceito Críticas *

1) pcc_menu: Aplicação simples de menu para chamar a grid de pedidos e demonstrar a abertura do pdf do pedido em aba do menu chamando direto da aplicação grid.

2) pcc_grid: Aplicação de consulta que carrega os pedidos em ordem decrescente por id.
Recursos fora do padrão do Scriptcase:
- Modificado CSS padrão da consulta para ajustar melhor as linhas.
- Recurso de Tooltip customizado para os campos Status e Ação dos botões em linha
- Botão em Linha Editar -> Carrega aplicação de formulário do pedido (Exibido apenas para status = A (em orçamento digitação) e I (produzido parcialmente) para permissão de alterar itens que não estão em produção ainda. Caso status diferente de (A,I) ícone de lápis é trocado por ícone de cadeado.
- Botão em Linha Exclusão -> Carrega Tela de Dialogo de confirmação para exclusão do pedido e seus itens. Pedidos Faturado, Faturado Parcialmente, Produção Integral, Produção Parcial (F,f,I,P) não poderão ser excluídos.
- Botão em Linha para Geração PDF -> Abre uma aba no menu com o PDF para cada pedido, ou seja, várias abas podem ser abertas, cada uma com um pedido. Ícone de Impressora com aba ativa e ativa + Hint (ToolTip) Com número do pedido + nome do cliente exibido.
- Botão em Linha para clonagem do pedido -> Carrega Tela de Dialogo de confirmação para duplicar o pedido da linha relacionado, após clonagem do pedido e seus itens a tela de formulário do novo pedido criado é carregada. Pedidos sem itens não é permitido clonagem, ícone do copy em vermelho é apresentado para esses casos.

3) pcc_form: Aplicação para edição de seus pedidos e itens no estilo mestre detalhe.
Recursos fora do padrão do Scriptcase:

  • Botão de encolher/expandir com recurso de animação para bloco de dados do pedido. Intenção é ganhar espaço em tela escondendo informações que não são pertinentes durante a inclusão dos itens.

  • Abas internas em estilo NavBar com animação e realce ativo abrindo e escondendo blocos pertinentes a Grid dos Itens, Inclusão de um Novo Item, Edição de Um item existente e Dados de endereço caso não se deseje a entrega no endereço padrão do cliente. Ao clicar em qualquer das abas o bloco de dados complementares do pedido é escondido automaticamente. Uma animação no label da aba Itens foi criado quando da edição do item do pedido.

  • Total do Pedido na mesma linha do NavBar, para otimização de espaços.

  • Aba Itens: Nesse bloco apresentamos os itens do pedido dentro de um campo virtual scriptcase,através de uma biblioteca chamada DataGrid, que criamos para montar datagrids em aplicações de formulário, controle e report_pdf. Esse datagrid apresenta tooltips customizados e informativos, além do ícone de lixeira para exclusão do item através de mensagem de confirmação.
    Esse DataGrid apresenta cabeçalho das colunas fixo e sempre que é carregado navega para último item. Ao clicar na linha do DataGrid é carregado o bloco para edição do item da linha clicada.

  • Aba Novo Item: Nessa aba, campos do item são apresentados para inclusão do item.

  • Botão Salvar dentro do Bloco Novo Item/Edição Item: Incluso um botão salvar dentro do bloco para salvamento do item, se for um novo item no pedido é feita a inclusão, se for um item já incluso que está em edição o botão salva os dados alterados. O clique executa o salvamento e recarrega a aba Itens (bloco com a lista dos itens do pedido). Esse botão salvar tem o mesmo efeito que o botão salvar na barra de ferramentas do formulário.

  • Nota: Não é necessário salvar o cabeçalho primeiro para depois salvar o item, o sistema avalia se ainda não existe número de pedido criado e faz a inclusão do cabeçalho do pedido, captura o número gerado (id) e salva o item automaticamente.

4) pcc_pdf: Impressão do Pedido em pdf.
Totalmente customizado.

  • Se número de itens ultrapassar a 24 itens,o total é impresso na primeira página e os itens restantes na segunda página.
  • A espessura da linha se ajusta ao tamanho da descrição do produto quando esse ultrapassa o limite da largura da coluna.
  • Não há imagem em background para construção do pré-impresso (linhas e molduras molduras foram criadas via código de programação).

Links relacionados:

Vídeo demonstrativo do exemplo acima:

Artigo escrito no blog Scriptcase sobre DataGrids:

Vídeo sobre customização em Report PDF

Link exemplo aplicações:
http://infinitusweb.net.br/forum/pcc_menu/

6 Curtidas

Muito bacana ! Eu já tinha testado quando você me mandou o link.

Ótimo trabalho.

1 Curtida

Muito Legal Seu vídeo!
Podes demonstrar a função do Loading?

Temos esse código aqui no fórum, já bastante compartilhado…

mas segue novamente:

Coloquei em uma biblioteca externa onde a carrego no evento onload/onnavigate/onheader

sc_include_library(‘prj’,‘rotinas’,‘loading.php’);

Código:

<?php
// Function Carregando($imagem="../imagens/loading.gif")  {
if (!isset($_img) || empty($_img)) {$_img='../_lib/libraries/grp/imagens/loading.gif';}
echo "
<div style='top: 49%;left: 49%;position:absolute;'>
<script language=\"JavaScript\" type=\"text/javascript\">
document.write('<div id=\"loadings\"><img src=\"$_img\"></div>');
window.onload=function() {
document.getElementById(\"loadings\").style.display=\"none\";
}
</script></div>";
// }
?>
2 Curtidas

Obrigado Haroldo.
Achei bacana no vídeo que nem me dei conta de pesquisar.

1 Curtida

Ola Haroldo, boa tarde, tudo bem? Parabés pelos vídeos!
Achei perfeito a utilização da classe “navBAR” para cadastro e edição de itens! …idéia maravilhosa realmente, o layout da tela fica perfeita!!!
Gostaria de saber se você disponibilizou o código também desta classe!
Gostaria muito de utilizá-la.
Desde já agradeço por tudo, e continuemos em frente!

Não criei uma classe para NavBar, não ainda.

Ah desculpa, é que você demostra a aplicabilidade no video acima e realmente fica tão pratico a edição de dados desta maneira que me apaixonei pela idéia. rs rs.

Comecei uma série de vídeos em cima desse modelo de desenvolvimento.

Por enquanto estamos aqui:

Obrigado Haroldo, …vou acompanhar ansiosamente o desenvolvimento por este link q me passou.
Obrigado por compartilhar seu conhecimento e ajudar a nós, pobres mortais aprendizes da programação!
Abraços!