MatheusFarias Posted October 5, 2017 Report Share Posted October 5, 2017 Pessoa estou desenvolvendo umas classes para agilizar alguns novos projetos e durante o meu processo da graduação vi que alguns Frameworks agilizam bastante certas rotinas do sistema, como procurei algo semelhante no fivewin e não tive muito sucesso, decidi desenvolver por conta própria baseado no funcionamento que já tive dos projetos da faculdade e feitos em outras linguagens. Inicialmente desenvolvi para o conceito de ORM ( ORM (Object Relational Mapper) é uma técnica de mapeamento objeto relacional que permite fazer uma relação dos objetos com os dados que os mesmos representam. http://www.devmedia.com.br/orm-object-relational-mapper/19056) Para quem não conhece algo do tipo resumidamente é você cria a classe e instancia ela em um controller ( outra classe responsável por fazer acesso ao BD, criar tabelas e índices, alem de inserir, altera, excluir, e pesquisar ) Essa classe hoje está compatível com a SQLRDD e os BD que ela é compatível. Infelizmente alguns conceitos do ORM não permitem que seja usado com DBF. e sobre a parte de CRUD View ( CRUD (acrónimo de Create, Read, Update e Delete na língua Inglesa) para as quatro operações básicas utilizadas em bases de dados relacionais (RDBMS) ou em interface para utilizadores para criação, consulta, atualização e destruição de dados. ) É que pretendo desenvolver outra classe para criação de janelas padronizadas, nos novos projetos sempre encontro uma demanda maior no desenvolvimento dos cadastros básicos e de nível médio do programa pois sei que poderia ser padronizado. Hoje para uso proprio estou investindo algum tempo nesses sub-projetos que hoje ja me trazem um bom retorno no tempo de desenvolvimento. Gostaria de saber dos colegas o nível de interesse que tem sobre esse tipo de experiencia de programação. E se tinham interesse em conhecer essas metodologias no fivewin. Alguns desses projetos podem ser usados separadamente. A imagem em anexo é de uma adaptação a classe datarow para criar dialogs sem @ say e redefine lSave := EDITVARS vcodise2,vnomese2,; vcodigru,vnomegru,; vcodisec,vnomesec,; vcodiloc,vnomeloc,; vcodifor,vnomefor,; talfa,trefe,tzera,tinsc,tocio; PROMPTS "Sub-Seção","say:"+cbitmaps+"lupa2.bmp" ,; "Sub-Grupo","say:"+cbitmaps+"lupa2.bmp" ,; "Seção","say:"+cbitmaps+"lupa2.bmp" ,; "Grupo","say:"+cbitmaps+"lupa2.bmp" ,; "Fornecedor","say:"+cbitmaps+"lupa2.bmp" ,; "Imprimir em ordem alfabética",; "Imprimir somente com referência",; "Imprimir sem estoque gerencial",; "Imprimir somente inconsistências",; "Imprimir somente desativados"; PICTURES "@R 999999",nil,"@R 999999",nil,"@R 999999",nil,"@R 999999",nil,"@R 999999",nil ; VALIDS {|oGetBlock| EditVarsGetValid(oGetBlock,@ocodise2,@onomese2) .and. iif(!empty(vcodise2),checkse2(),.t.) },; {|oGetBlock| EditVarsGetValid(oGetBlock,@ocodise2,@onomese2) .and. Pesqse2(.t.) } ,; {|oGetBlock| EditVarsGetValid(oGetBlock,@ocodigru,@onomegru) .and. iif(!empty(vcodigru),checkgru(),.t.) },; {|oGetBlock| EditVarsGetValid(oGetBlock,@ocodigru,@onomegru) .and. Pesqgru(.t.) } ,; {|oGetBlock| EditVarsGetValid(oGetBlock,@ocodisec,@onomesec) .and. iif(!empty(vcodisec),checksec(),.t.) },; {|oGetBlock| EditVarsGetValid(oGetBlock,@ocodisec,@onomesec) .and. Pesqsec(.t.) } ,; {|oGetBlock| EditVarsGetValid(oGetBlock,@ocodiloc,@onomeloc) .and. iif(!empty(vcodiloc),checkloc(),.t.) },; {|oGetBlock| EditVarsGetValid(oGetBlock,@ocodiloc,@onomeloc) .and. Pesqloc(.t.) } ,; {|oGetBlock| EditVarsGetValid(oGetBlock,@ocodifor,@onomefor) .and. iif(!empty(vcodifor),checkfor(),.t.) },; {|oGetBlock| EditVarsGetValid(oGetBlock,@ocodifor,@onomefor) .and. Pesqfor(.t.) } ; TITLE "Digite os Codigos ou Deixe em Branco Para Selecionar Todos" * Quote Link to comment Share on other sites More sharing options...
rochinha Posted October 5, 2017 Report Share Posted October 5, 2017 Amiguinhos, Matheus Farias, O CRUD é baseado em PHP, C#, ...? Interessante ver a sintaxe xBase, pois facilitaria muito a programação para os conhecedores. Não consegui ver a imagem. Quote Link to comment Share on other sites More sharing options...
MatheusFarias Posted October 5, 2017 Author Report Share Posted October 5, 2017 Amiguinhos, Matheus Farias, O CRUD é baseado em PHP, C#, ...? Interessante ver a sintaxe xBase, pois facilitaria muito a programação para os conhecedores. Não consegui ver a imagem. Exemplo ORM CLASS Usuario FROM Entidade DATA cNome AS CHARACTER INIT SPACE(50) DATA cSenha AS CHARACTER INIT SPACE(50) DATA lAdministrador AS LOGICAL INIT .F. DATA cOBS AS CHARACTER INIT Memo() METHOD New() CONSTRUCTOR ENDCLASS METHOD New() CLASS Usuario ::Super():New() return Self Exemplo da Instancia Function ManterTabela() MsgMeter( { | oMeter, oText, oDlg, lEnd | ; ManterTabela_Meter( oMeter, oText, oDlg, @lEnd ) },; "Manutenção de Tabelas", "Aguarde um momento..." ) Function ManterTabela_Meter(oMeter, oText, oDlg, lEnd) Local aTabelas:={},oTabela:=NIL,nTabela:=1 * oUsuario := Usuario():New() oControleUsuario:= Tabela():New(oUsuario) oControleUsuario:AdicionarIndice("cNome","NOME") aadd(aTabelas,oControleUsuario) * oMeter:SetTotal(len(aTabelas)) * For each oTabela in aTabelas oTabela:ManterTabela() oTabela:ManterIndice() oMeter:Set(nTabela++) Next Quote Link to comment Share on other sites More sharing options...
aferra Posted October 5, 2017 Report Share Posted October 5, 2017 sim, eu tenho interesse Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.