Angariar fundos para cobrir os custos logísticos do "Festival da Arte Capoeira" e apoiar o projeto Eu Sou Ninja em sua missão de promover a integração social e cultural na comunidade de Jacaraípe. Com a criação da rifa, buscamos envolver a comunidade de forma ativa no financiamento do evento, permitindo que todos contribuam para o sucesso do festival e para a continuidade das atividades do projeto. Prêmio: Copia da minha biblioteca pessoal de AdvPL/TLpp ..etc Participe da Rifa Eu já contribui. Só falta você! ```cmd Pasta de C:\GitHub\naldodj-tlpp 13/04/2024 19:17 . 19/03/2024 13:49 .. 05/01/2024 12:22 2.742 .gitattributes 14/11/2023 16:02 83 .gitignore 02/12/2023 20:08 .vscode 05/01/2024 12:05 bin 13/04/2024 19:18 4.121 ChangeLog.txt 27/12/2023 02:05 include 14/11/2023 16:02 27.030 LICENSE.txt 14/11/2023 16:02 0 makepatch.lst 14/11/2
ADVPL com MVC "é o que há". Por muito tempo a totvs não implementava melhoria significativa em sua linguagem ADVPL (à despeito das melhorias implementadas por outros fornecedores de linguagens no padrão CodBase Harbour, xHarbour dentre outras) mas MVC foi a campeã. Muito fácil programar agora: vou ensinar ao meu filho e curtir um bom e merecido descanso em Dubai ou começar a programar em Assembly me distraindo com o MenuetOS porque em ADVPL com MVC está muito, mas muito fácil.
Não deixem de baixar o "Tutorial" e mais ainda, não deixem de utilizar.
[]s
иαldσ dj
Ainda bem que eu sigo o seu blog... valeu Naldo por compartilhar essa belíssima informação.
ResponderExcluirSaudações Nordestinas mais especificamente de Alagoas.
Abraço.
Muito bom o material. Bem mais organizado que as formas tradicionais de desenvolvimento ADVPL. Pena que não tem funções para desenvolvimento de relatórios.
ResponderExcluirPara relatórios, ultimamente, utilizo o IReport baseado no JasperReports.
ResponderExcluirAfinal, o protheus não é uma aplicação especializada na emissão de relatórios.
[]s
иαldσ dj
Você tem algum material ou algum post relacionado aqui no blog?
ResponderExcluirTenho planos para uma série de 'posts' sobre o IReports. Ainda não tive tempo para monta-la. Acho que tenho uma documentação em algum lugar. Se acha-la te passo o link.
ResponderExcluir[]s
иαldσ dj
Estou estudando o material mas não encontro a include FWMVCDEF
ResponderExcluirOnde posso encontra-la?
Poderia me envia-la por email?
Att,
Henrique
henrique@esdeva.com.br
Só com o pessoal da Totvs.
ResponderExcluir[]s
иαldσ dj
Boa tarde Naldo.
ResponderExcluirVocê pode me tirar uma dúvida por favor?!
O conceito MVC funciona na versão 10?
Outra coisa, seguindo a apostila, como eu faço para que dentro do meu fonte exemplo: ( User Function teste01() ) as funções Static Function ModelDef, ViewDef sejam usadas, pergunto isso pois fiz a declaração dessas duas funções dentro da minha User function e não funcionou, mais também não apresentou nenhum erro.
Desculpa te incomodar e obrigado por responder.
Abraço.
Este comentário foi removido pelo autor.
ExcluirBom dia Talvane.
ExcluirNão sei se ainda está com dúvidas, mas respondendo a sua pergunta o MVC funciona sim na versão 10, mas precisa baixas os arquivos include (.ch) no portal.
Sobre as funções ModelDef e ViewDef, você não precisa chamar elas na sua função... Elas são chamadas automaticamente se você fizer a declaração correta do menu no array aRotina, que deve estar declarado da seguinte forma na função Static Function MenuDef()
// ----------------------------------------
User Function myFunction()
Private aRotina := MenuDef()
.
.
.
Return Nil
// ----------------------------------------
Static Function MenuDef()
Local aRotina := {}
ADD OPTION aRotina
Title 'nome_do_item_no_menu'
Action 'VIEWDEF.nome_do_arquivo_fonte'
OPERATION valor_que_define_a_operacao_a_ser_executada(inclusão,alteração,etc)
ACCESS valor_que_define_o_nivel_de_acesso
Return aRotina
// ----------------------------------------
Static Function ViewDef()
Local oView
Local oModel := FWLoadModel("nome_do_arquivo_fonte")
.
.
.
Return oView
// ----------------------------------------
Por definição o sistema vai chamar a rotina ViewDef do arquivo fonte definido no array aRotina Action 'VIEWDEF.nome_do_arquivo_fonte', que por sua vez usará as definições do ModelDef do arquivo fonte definido na função ViewDef (oModel := FWLoadModel("nome_do_arquivo_fonte"))
Espero ter ajudado.
Talvane,
ResponderExcluirAcredito que sim, mas só a Totvs para ratificar. Provavelmente dependerá da atualização de algum Framework. Entre em contato com eles.
[]s
иαldσ dj
Não está mais disponivel o download do tutorial ...
ResponderExcluirLeonardo, o "link" foi corrigido. Apontava para o antigo TDN
ExcluirNaldo,
ResponderExcluirSoube o que era MVC através dessa pagina. Muito interessante.
Li toda a apostila, e fiz alguns programinhas.
Agora estou tentando usar o comando NEW MODEL, e não tem funcionado direito.
Voce poderia me dizer o que há de errado com o codigo abaixo?
User Function COMP043_MVC()
Local oBrowse
NEW MODEL ;
TYPE 3 ;
DESCRIPTION "Pedidos" ;
BROWSE oBrowse ;
SOURCE "COMP043_MVC" ;
MODELID "MDCOMP043" ;
MASTER "SC5" ;
DETAIL "SC6" ;
RELATION { { 'C6_FILIAL', 'xFilial( "SC6" )' }, { 'C6_NUM' , 'C5_NUM' } } ;
ORDERKEY SC6->( IndexKey( 1 ) )
Return NIL
O problema era q eu estava testando pelo cadastro de formulas, so funciona se adicionar ao menu.
ResponderExcluirValeu!
Naldo, procurei em vários lugares e inclusive com a Totvs, como realizo o doubleclick com o MVC?
ResponderExcluirDaniel a classe especializada em tratar a interação com o usuário é a TControl. Nela encontramos as propriedades:
ExcluirDATA bLClicked
DATA bLDblClick
DATA bRClicked
As classes de interface TDialog, TWindow, TBitMap, Tetc... herdam essas propriedades e podem implementar controles específicos. Considerando que a interface MVC tem interação com o usuário é possível sim utilizar, se implementado pela TOTVS, os eventos acima relacionados. Então terá que identificar em que momento quer usar o evento relacionado a bLDblClick e implementá-lo.
Também estou precisando disso.
ExcluirNaldo! Por acaso, você teria um exemplo de como fazer isso?
Naldo, muito bom seu site, contrui uma app mvc aqui e gostei muito, mas tem uma coisa que estou apanhando um bocado, na tabela do browse tenho campo virtuais que são preenchidos de acordo com uma consulta padrão na hora da edição.
ResponderExcluirPorem quando volto para consultar o cadastro ele não traz os dados, mesmo eu usando o "inic Browse" no configurador do campo.
Como eue trago estes valores ?
Boa tarde!
ResponderExcluirGelera, oque MODELID está esperando, sei que é uma string mas oque devo passar?
não tem na documentação. algem aberia me informar?
cid:421714164268
STRING
STRING
Boa tarde. Não sei se vc vai poder me ajudar. Criei um programa em MVC para o modelo3 com duas tabelas customisadas. As duas são exclusivas. Ai vem a duvida. somente na tabela PAI é que é gravada a filial na tabela filha não. Detalhe o relacionamente entre as duas é a filial e um codigo, que digito na tabela PAI. Esse codigo via pra tabela Filha, mas a filial não
ResponderExcluir