
Por que este curso é necessário? Conheça o conceito por trás do produto apresentado a vocês.
Aula demonstrativa. O objetivo desta aula é dar mais uma oportunidade de vislumbrar o resultado final de todo o nosso trabalho após concluir este curso.
→ Irei demonstrar como funciona o primeiro produto "Executar Sentenças SQL no Protheus com AdvPL"
→ Irei disponibilizar um pacote com fontes do primeiro produto
→ Irei disponibilizar um fonte para criação da Tabela ZZS (SX2, SX3 e SIX)
→ Iremos cadastrar algumas sentenças SQL e fazer algumas demonstrações
#Objetivo: Demonstrar que o primeiro produto é funcional e como se dá sua operação.
→ Iremos construir dois fontes para demonstrar a nova forma de consumir as sentenças SQL, onde:
mQryM5TR: Utilizaremos a classe FWPreparedStatement para otimizar a passagem de parâmetros via pergunta
mQryM5TR: A pergunta utilizada estará no fonte ("chumbada") que chama as sentenças SQL
Iremos passar apenas o parâmetro com o nome da sentença por meio de um fonte simples construído com MSDialog (mQryScr2)
→ O mQryM5TR irá chamar a User Function U_MnTTela compilada na Parte01
→ Iremos cadastrar uma nova sentença SQL no padrão FWPreparedStatement
#Objetivo: Apresentar o novo paradigma que será utilizado neste produto, o qual visa eliminar a necessidade que atualizar os menu do usuário e criar um mecanismo único para consumir as sentenças.
Continuação da Parte 01- Aula 01 : Apresentando a classe “salvadora”
#Objetivo: Apresentar o novo paradigma que será utilizado neste produto, o qual visa eliminar a necessidade que atualizar os menu do usuário e criar um mecanismo único para consumir as sentenças.
. Aplicação de Pacotes:
→ Irei disponibilizar um pacote com os fontes zDoScrn e zDoScrX. Estes são os novos MnTTela.
→ Irei disponibilizar um pacote com o fonte zDoExcel, pois retirei o gerador de .XML de dentro das funções de Montagem de Tela para melhorar o funcionamento da ferramenta.
. Aplicação de Pacotes/Fontes:
→ Irei disponibilizar a nova versão da zDoZZS para criar três campos novos (ZZS_PERG, ZZS_GRUPO, ZZS_MSGINF), bem como um novo índice.
_ Desenvolvimento:
→ Iremos recriar a tela de cadastro de Sentenças SQL em MVC Modelo 1 utilizando os elementos básicos do MVC (no MenuDef, ModelDef e ViewDef). O aprimoramento deste MVC ocorrerá após a Parte 04.
→ Iremos aperfeiçoar o mQryM5TR para atender a chamada das sentenças via RECNO da Tabela ZZS
→ Ainda na mQryM5TR, iremos criar um mecanismo que atribui os parâmetros da Pergunta (SX1) na Classe FWPreparedStatement de forma dinâmica.
Continuação da aula anterior. Iremos construir o trecho que executa dinamicamente a preparação das variáveis.
# Aqui a parte central do treinamento está cumprida:
. novo mecanismo de execução de sentenças SQL DQL(utilizando FwPreparedStatement + RECNO + MVC)
. novo fonte de CRUD da tabela ZZS em MVC (ainda básico, mas funcional)
. consumir as sentenças SQL na mesma tela de CRUD
→ Com tudo isso, fica dispensada a necessidade de futuras compilações de fontes que efetuem a chamada (consumo) do M5TR
Aplicar melhorias no zMVCZZS
→ Iremos aplicar o conceito de permissionamento para exibição das sentenças SQL conforme o grupo de usuário do Protheus (tabelas SYS_GRP_GROUP e SYS_USR_GROUPS) que está cadastrado no campo ZZS_GRUPO
→ Teremos de atualizar o MVC da ZZS para atender este novo requisito, no que diz respeito ao campo ZZS_GRUPO
→ Iremos atualizar o zMVCZZS para que mude o MenuDef de acordo com o usuário logado.
Continuação da aula anterior.
Vamos trabalhar um pouco com MVC.
Criar um sistema de permissionamento independente do cadastro de usuários do Protheus (tabelas SYS_GRP_GROUP e SYS_USR_GROUPS)
→ Iremos aplicar os conceitos da Parte 04 no caso de criarmos nosso próprio esquema de permissionamento
Vamos criar duas tabelas (irei disponibilizar o fonte de criação):
ZS1 – Grupo de sentenças SQL
ZS2 – Usuários por Grupo (Amarração)
Nela iremos criar os grupos de sentenças SQL (ZS1) e atribuir os usuários que estarão vinculados a cada grupo (ZS2)
Devemos criar uma consulta padrão (ZS1COD)
Criar um sistema de permissionamento independente do cadastro de usuários do Protheus (tabelas SYS_GRP_GROUP e SYS_USR_GROUPS)
→ Iremos aplicar os conceitos da Parte 04 no caso de criarmos nosso próprio esquema de permissionamento
→ Iremos criar uma tela CRUD em MVC Modelo 3 para efetuar o cadastro das tabelas ZS1 e ZS2
Criar um sistema de permissionamento independente do cadastro de usuários do Protheus (tabelas SYS_GRP_GROUP e SYS_USR_GROUPS)
→ Teremos de atualizar o MVC da ZZS para atender este novo requisito, no que diz respeito ao campo ZZS_GRUPO. Criar novo filtro no configurador
→ Iremos manter a regra do MenuDef de acordo com o usuário logado, a qual criamos na parte 04
→ Vamos testar!
Aplicação de melhorias no fonte zMVCZZS por meio das funções disponíveis no MVC
- cDescri
- oBrowse:AddLegend
SetProperty na ModelDef - parte 1
- oStruZZS:SetProperty : MODEL_FIELD_WHEN
→ https://tdn.totvs.com/display/framework/FWFormModelStruct
Aula 03 - SetProperty na ModelDef - parte 2
- oStruZZS:SetProperty : MODEL_FIELD_INIT
→ https://tdn.totvs.com/display/framework/FWFormModelStruct
Aula 04 - SetProperty na ModelDef - parte 3
- oStruZZS:SetProperty : MODEL_FIELD_VALID
→ https://tdn.totvs.com/display/framework/FWFormModelStruct
Aula 05 - SetProperty na ModelDef - parte 4
oStruZZS:SetProperty : MODEL_FIELD_OBRIGAT
→ https://tdn.totvs.com/display/framework/FWFormModelStruct
Aula 06 - SetProperty na ViewDef - parte 1
oStruZZS:RemoveField - revisando
MVC_VIEW_LOOKUP - revisando
MVC_VIEW_COMBOBOX
→ https://tdn.totvs.com/display/framework/FWFormViewStruct
Aula 07- SetProperty na ViewDef - parte 2
MVC_VIEW_TITULO
MVC_VIEW_HELP
→ https://tdn.totvs.com/display/framework/FWFormViewStruct
Aula 08- SetProperty na ViewDef - parte 3
MVC_VIEW_ORDEM
→ https://tdn.totvs.com/display/framework/FWFormViewStruct
Aula 09 - Classe: MPFormModel (Aprimorando) - Explicação
→ https://tdn.totvs.com/display/framework/MPFormModel
Aplicação de melhorias no projeto: criar um fonte para executar a exportação para XML direto, sem ter que exibir os dados em tela antes.
→ Implementar o zDoExcel diretamente no menu da zMVCZZS com a opção de exportar automaticamente.
→ Iremos criar um fonte para passar a Sentença diretamente ao zDoExcel sem precisar mostrar em tela.
Aplicação de melhorias no projeto: criar um fonte para executar a exportação para XML direto, sem ter que exibir os dados em tela antes.
→ Implementar o zDoExcel diretamente no menu da zMVCZZS com a opção de exportar automaticamente.
→ Iremos criar um fonte para passar a Sentença diretamente ao zDoExcel sem precisar mostrar em tela.
zDoExport
https://tdn.totvs.com/display/framework/FWMsExcel
https://tdn.totvs.com/display/framework/FWMsExcelEx
https://tdn.totvs.com/display/framework/FwPrinterXlsx (Classe disponível na lib com label igual ou superior a 20201009.)
Melhoria 01 - Implantação das funções TCSqlExec e TCSqlError no zMVCZZS
TCSqlExec := https://tdn.totvs.com/display/tec/TCSQLExec
TCSqlError := https://tdn.totvs.com/display/tec/TCSQLError
Esta aula foi originalmente gravada para o curso "Executar consultas SQL no Protheus com AdvPL".
Estou compartilhando-a aqui para utilizarmos na demonstração da nova Classe FwMsExcelXlsx.
Espero que gostem.
Novidades! A nova classe FwMsExcelXlsx irá contribuir com o nosso projeto. Vamos conhecê-la!
Preparando nosso ambiente para utilizar a Classe FwMsExcelXlsx - Parte 01
Vamos verificar quais são os requisitos exigidos para poder utilizar a nova classe em nosso ambiente.
Para mais detalhes, consulte o tutorial anexo a esta aula.
Utilize-se também da documentação oficial no link a seguir: https://tdn.totvs.com/display/framework/FWMsExcelXlsx
Preparando nosso ambiente para utilizar a Classe FwMsExcelXlsx - Parte 02
Vamos descobrir como obter os artefatos necessários e como instalá-los em nosso ambiente.
Faremos um teste dentro do Protheus, gerando a impressão em Formato tabela Xlsx a partir de uma rotina padrão: Cadastro de Produto (MATA010).
Para mais detalhes, consulte o tutorial anexo disponibilizado na aula anterior.
Nesta aula, iremos utilizar o fonte de exemplo sugerido na documentação da Classe FWMsExcelXlsx para testar a implementação de seus recursos.
Segue o fonte de exemplo no anexo desta aula.
Nesta aula, iremos aplicar a nova classe dentro do fonte produzido na aula 36 deste treinamento.
#Mais que um curso ou treinamento, você terá a sua disposição uma ferramenta útil para o seu dia-o-dia. Customize a forma como você, seus clientes e colegas consomem dados dentro de um ambiente com Protheus com MS SQL Server.
Neste treinamento daremos continuidade a inovação iniciada no projeto "Executar consultas SQL no Protheus com AdvPL", onde aprendemos a desenvolver um mecanismo prático e inovador para execução das consultas SQL dentro do Protheus com uma interface repaginada pelos recursos do MVC dentro do AdvPL.
>>> Atualizado em 22/07/2023: Fontes testados na Release 12.1.2210 do Protheus <<<
Aqui nos iremos desenvolver:
. No DBeaver (aplicativo para desenvolvimento SQL)
- Criar sentenças SQL com DBeaver
- Criar "Consulta Padrão" (SXB) e "Pergunta" (SX1) via INSERT SQL
. AdvPL com MVC - Desenvolvimento
- Criar uma tela para CRUD da tabela de Consulta SQL (ZZS) - MVC Modelo 1
- Criar uma tela para CRUD da tabela de Grupo de Consultas (ZS1 e ZS2) - MVC Modelo 3
- Reestruturar os fontes de execução das sentenças SQL gravadas na tabela customizada
Aprenda a construir uma ferramenta irá impactar o dia-a-dia de seus clientes e colegas de trabalho.
Meu lema foi retirado de uma frase de Blaise Pascal:
“Ninguém é tão sábio que não tenha nada a aprender. Ninguém é tão ignorante que não tenha nada a ensinar”.
Vamos alcançar a excelência juntos!