Num ambiente profissional, em que a gestão e a produção de documentos são cruciais, é essencial dispor de ferramentas poderosas e flexíveis. Imagine ser capaz de desenhar modelos de documentos dinâmicos diretamente de seu cliente Desktop, integrando fórmulas e dados de sua base de dados, e depois gerar esses documentos com um único clique através de uma interface web intuitiva. Isso é precisamente o que 4D Write Pro e 4D Qodly Pro permitem fazer!
No blog dessa semana, vamos explorar como essas duas soluções se complementam perfeitamente para automatizar e otimizar seus processos de documentos. Descobrirá como criar modelos personalizados em 4D Write Pro e como, graças a 4D Qodly Pro, usuários web podem inserir os dados necessários, acionar a geração de documentos, e até mesmo escolher armazená-los no banco de dados ou retorná-los através de um atributo calculado.
Para demonstrar esse processo, usaremos a aplicação Performance Review, que está disponível para download. Prepare-se para transformar a forma como cria e gere os seus documentos, simplificando os seus fluxos de trabalho e aumentando a eficiência.
Criando Modelos no Desktop Client
4D Write Pro é uma poderosa ferramenta de processamento de texto cuja força principal está em sua habilidade de criar modelos de documentos ligados a seu banco de dados. Essa funcionalidade permite gerar automaticamente vários tipos de documentos: cartas, contratos, faturas, catálogos, relatórios de despesas, e muito mais.
Na aplicação Performance Review, são utilizados vários modelos de documentos, consoante o departamento em causa. Por exemplo:
Modelo de OP’s
Modelo de controlo de qualidade
Estes modelos incorporam fórmulas dinâmicas diretamente ligadas à base de dados, facilitando a criação de documentos personalizados para cada departamento.
Um formulário na aplicação Desktop permite-lhe criar estes modelos de uma forma simplificada. Para adicionar facilmente fórmulas, uma lista suspensa sugere todas as fórmulas relevantes para o modelo.
Estas fórmulas são definidas num arquivoJSON chamado “WPexpression.json”.
Aqui está um extrato:
{ "expressão": [{ "nome": "apelido", "fórmula": "Este.dados.revisão.Empregado.Apelido" }, { "name": "Firstname", "fórmula": "Isto.dados.revisão.Empregado.Nome" }, { "name": "CollaboratorName", "formula": "This.data.review.Employee.Firstname+\" \"+Este.dados.revisão.Empregado.Apelido" } ] }
Para saber mais sobre o 4D Write Pro e o ORDA, leia este blogue: ORDA e 4D Write Pro: A dupla poderosa!
Para simplificar a criação de tabelas, o Table Wizard integrado no componente 4D Write Pro Interface é ideal.
Para que funcione perfeitamente com a nossa estrutura de base de dados, adicionamos arquivos de configuração que contêm as fórmulas necessárias para os documentos Performance Review. Por exemplo:
{ "tableDataSource": "This.data.review.Skills.orderBy(\"Group asc\")", "columns": [{ "verificação": verdadeiro, "cabeçalho": "SkillName", "fonte": "Este.item.Nome" }, { "check": falso, "cabeçalho": "CheckCodeI", "source": "Choose(This.item.ID_Score=1; \"X\"; \"\")" }, { "check": falso, "header": "CheckCodeP", "source": "Choose(This.item.ID_Score=2; \"X\"; \"\")" },{ "check": falso, "cabeçalho": "CheckCodeR", "source": "Choose(This.item.ID_Score=3; \"X\"; \"\")" },{ "check": falso, "cabeçalho": "CheckCodeE", "source": "Choose(This.item.ID_Score=4; \"X\"; \"\")" },{ "check": verdadeiro, "cabeçalho": "ScoreName", "fonte": "Este.item.Pontuação.Nome" },{ "verificar": verdadeiro, "header": "ScoreCode", "source": "Este.item.Score.Code" } ], "breaks": [{ "label": "SkillGroup", "source": "Este.item.Grupo" } ], "breakFormulas": [{ "label": "GroupName", "fonte": "Este.item.Grupo" } ], "extraFormulas": [{ "label": "ScoreSkillName", "source": "Isto.dados.revisão.PontuaçãoHabilidade.Nome" },{ "label": "ScoreSkillCode", "source": "Isto.dados.revisão.ScoreSkill.Código" },{ "label": "CheckSkillScoreCodeI", "source": "Choose(This.data.review.ID_ScoreSkill=1; \"X\"; \"\")" }, { "label": "CheckSkillScoreCodeP", "source": "Choose(This.data.review.ID_ScoreSkill=2; \"X\"; \"\")" }, { "label": "CheckSkillScoreCodeR", "source": "Choose(This.data.review.ID_ScoreSkill=3; \"X\"; \"\")" }, { "label": "CheckSkillScoreCodeE", "source": "Choose(This.data.review.ID_ScoreSkill=4; \"X\"; \"\")" } ] }
Com estas fórmulas, a criação de uma tabela de competências e pontuações torna-se muito simples. Depois de personalizar a tabela, aqui está o resultado:
Para saber mais sobre a configuração e os recursos oferecidos pelo Assistente de tabela, consulte:
- Blogue: Um assistente para criar tabelas com dados
- Treinamento: 4D Write Pro e 4D View Pro encontram 4D – o Próximo Nível de Templating Inteligente
Preenchimento de dados no Cliente Web
Uma vez que o modelo for criado, os usuários entram com os dados necessários através de uma interface web intuitiva. Graças a 4D Qodly Pro, este passo se integra perfeitamente com sua base de dados, assegurando que a informação inserida corresponde aos campos definidos em seus modelos.
Para mais detalhes sobre a configuração dessas interfaces, sinta-se à vontade para conferir nossos blogs anteriores sobre:
- Crie uma lista interativa de dados com 4D Qodly Pro
- Construir uma gestão dinâmica de dados na aplicação Qodly: Criar, adicionar, editar e eliminar
Gerando o documento final
O documento final é gerado diretamente a partir da interface web. Quando um utilizador clica no botão dedicado, o evento “On Click” desencadeia a função “selectedReview.generatePDF()”.
Segue-se o código que gere a geração do documento PDF:
Function generateDocument()->$doc: Object
var $context : Object
var $template : cs.TemplateEntity
// Criar contexto
$context :=This.createContext()
// Carregar modelo
$template :=This.Employee.Departement.Template.Template
// Criar documento 4D Write Pro
$doc:=WP New($template)
WP SET DATA CONTEXT ($doc; $context)
WP COMPUTE FORMULAS ($doc)
return $doc
exposed Function generatePDF ()
var $WPdoc : Object
var $blob : 4D.Blob
// Gerar documento WP
$WPdoc:=This.generateDocument()
// Converter para PDF
WP EXPORT VARIABLE ($WPdoc; $blob; wk pdf)
// Salavar na database
This .DocumentPDF:=$blob
This .save()
Permissão
Na aplicação Web, os usuários não podem acessar a tabela Template. No entanto, a função “Review.generatePDF” precisa acessar esses dados para gerar o documento PDF. Para isso, fizemos uma “promoção” na função.
- Criando o privilégio “generatePDF”: Na página Função e privilégio, definimos um novo privilégio chamado generatePDF.
- Conceder direitos de leitura: Concedemos permissão de leitura às classes de dados Departamento e Modelo. Estes direitos são essenciais para localizar o modelo Write Pro necessário para gerar o documento.
- Promovendo a função “Review.generatePDF”: Atribuímos a opção Promover à função Review.generatePDF. Com esta promoção, quando a função for chamada no servidor, ela adquire automaticamente o privilégio generatePDF e pode acessar dados tipicamente restritos.
Este mecanismo garante que apenas os processos autorizados possam alargar temporariamente os seus direitos para executar tarefas específicas, mantendo uma elevada segurança e controle sobre o acesso aos dados.
Pronto!
Próximo passo
Combinando 4D Write Pro e 4D Qodly Pro, pode automatizar a geração de documentos dinâmicos fundindo modelos pré-definidos e dados em tempo real. Essa abordagem oferece muitos benefícios:
- Automatização de documentos: Reduzir tarefas manuais através de modelos dinâmicos.
- Otimização do fluxo de trabalho: Separar claramente a criação de modelos (cliente Desktop) da introdução de dados (cliente Web).
- Poupança de tempo e maior qualidade: Uma solução prática que melhora a produtividade e a qualidade dos documentos gerados.
Encorajamos a experimentar essa abordagem em seus projetos e descobrir os benefícios de integrar 4D Write Pro com 4D Qodly Pro. Sinta-se livre para comentar para compartilhar seu feedback ou confira nossos outros recursos para expandir seu conhecimento.