Clipper On Line • Ver Tópico - Gerador de fonte com algo mais
Página 1 de 2

Gerador de fonte com algo mais

MensagemEnviado: 05 Set 2016 21:57
por JoséQuintas
Quando comecei a aprender Visual Basic, a parte mais chata era a lentidão de aprender as coisas.
Parecia estar em marcha lenta, tipo, uma semana ou mais preparando um cadastro.
Então... criei este programa em Clipper pra sentir que estava rápido.

No final, a conclusão foi: gerar fonte pra que?

Não tem recursos extraordinários, no que diz respeito a fontes.
Talvez seja interessante pra ver que, onde uso classe hoje, já vinha tomando essa forma há muito tempo.

Usar um arquivo postado recentemente de "cobaia".

 Pasta de d:\temp

05/09/2016  21:36    <DIR>          .
05/09/2016  21:36    <DIR>          ..
05/09/2016  21:36           540.160 gera.exe
05/09/2016  07:10        22.543.888 NCM_IBPT.DBF
               2 arquivo(s)     23.084.048 bytes
               2 pasta(s)   470.669.692.928 bytes disponíveis


gerador1.png
gerador1.png (4.42 KiB) Visualizado 3423 vezes


Opção A, atualizar Estruturas, confirma Sim.

Opção E, executa simulação

gerador2.png


gerador3.png


gerador4.png


Pois é, menu, cadastro, relatório, e utilitários que inclui reindexação.
Pra todos os DBFs da pasta, mas no caso agora só tem 1.

E chamando a opção de gerar fontes, todos os fontes pra Clipper ou Visual Basic.

Gerador de fonte com algo mais

MensagemEnviado: 05 Set 2016 22:07
por JoséQuintas
Não para por aí não.
Tem a modificação do "dicionário".

gerador5.png


Vou alterar só a indicação de campo chave.
Para usar os demais, precisaria de mais arquivos, pra fazer uma espécie de relacionamento entre eles, já com pesquisa automática e mostrando descrição.
Alterando campo chave pra .T., fazendo a simulação, reindexando na rotina de reindexação já do simulador, a nova tela do cadastro.

gerador6.png


Sim, totalmente funcional.
Pesquisa código, browse, validação de código já cadastrado na inclusão, validação de código inexistente nas demais opções.
Isso é no simulador, não foi gerado nenhum fonte.

No relatório, agora também opção de intervalo de códigos.

gerador7.png

Gerador de fonte com algo mais

MensagemEnviado: 05 Set 2016 22:14
por JoséQuintas
Preciso atualizar tudo pra biblioteca atual.
A geração em Clipper, nem precisa dizer que é igual ao simulador.
E carregando os fontes gerados pra VB:

gerador8.png


Com isso, pelo menos ao invés de parecer que eu estava trabalhando em apenas um fonte, eu estava trabalhando no aplicativo inteiro de uma vez.

É sem botões nos ícones mesmo, pelo menos no projeto.
Da mesma forma que faço na GTWVG, as imagens são colocadas em run-time, baseadas no nome do pushbutton.

Gerador de fonte com algo mais

MensagemEnviado: 05 Set 2016 22:26
por JoséQuintas
Fazia isso pra TODOS os DBFs do sistema.
Como deu pra perceber, inclusive dividir em várias abas quando havia muitos campos.

Depois de um certo tempo, olhei direito o troço e pensei:

Se dá pra criar tudo em run-time, pra que fonte?
Mais fácil trabalhar com o dicionário, e nem precisar compilar !!

Pois é... acho que isso era um antecessor das classes que uso hoje.

Mas na época ajudou a brincar.

Hoje os fontes desse gerador estão "fora de forma", não compatíveis com bibliotecas atuais.
VB não uso mais, só pra atualizar o site harbourdoc.com.br mesmo.
Usei na vez anterior pra ajudar a desvendar a DLL do RMChart, e agora pra este post.

Acho que minha classe atual de cadastros acaba fazendo isso que o gerador fazia.
Ao invés de gerar fonte repetitivo, a classe já assume esse papel.

Essa é uma daquelas coisas que poderia apagar, mas continua aqui no HD.

Gerador de fonte com algo mais

MensagemEnviado: 05 Set 2016 23:02
por JoséQuintas
Não, os HDs não estão cheios, tem espaço de sobra.

hds.png


C: >> 120GB Windows, e programas que instalam junto com Windows (SSD)
D: >> 500GB Fontes, documentos, etc.
E: >> Tudo do D:, mais músicas, fotos, filmes, e instaladores de programas
F: >> cópia do E:

Por coincidência, os 3 HDs tem quase o mesmo espaço livre.

Por falar nisso.....
Conheci um programador que cada vez que fazia cópia dos fontes, usava pasta diferente.
Tinha cópia, de cópia, de cópia, de versões diferentes, em lugares diferentes.
Ao adquirir HD novo, lá copiava tudo de novo, dentro de pasta, de outra pasta, etc.
Na hora de trabalhar, nem sabia qual das pastas usar pra trabalho.
E na hora de precisar de um HD livre... nenhum podia ser apagado, porque tinha algo que poderia ser útil... rs

Cuidado com isso.
Ao invés de ajudar, isso atrapalha.
Se for o caso, organize as pastas por data: sistema-2016-09-05 por exemplo, pra identificar do que se trata, e vai sempre saber aonde estão os fontes atuais.
Mas melhor mesmo é usar o software GIT, e deixar por conta dele.

Por exemplo, meus backups do MySQL:

backupmysql.png


Já aproveitei pra fazer uma limpeza, costumo deixar só os 3 últimos.
Mas está fácil identificar ao que se refere cada um, e quais são os 3 últimos.
Não costumo olhar a pasta, o HEIDISQL já está configurado pra gerar desse jeito, apenas executo o backup.

Simples e prático.
Foi assim também que acabei colocando o backup automático no aplicativo, mesmo esquema, com datas no nome.
E o mesmo critério que usaria manualmente, usei no aplicativo: deixar o primeiro de cada mês, um de cada semana dos 2 meses anteriores, e o diário das duas últimas semanas.
Tudo gerenciado pelo aplicativo nos clientes, assim não tem surpresa.
Só "ensinei" pro aplicativo como eu fazia.... rs

Transformar o aplicativo em um ajudante é bom.
O aplicativo não esquece nunca, não reclama do salário, e dá pra confiar.
É interessante isso, de fazer o computador trabalhar pra nós, transformar em ajudante, e não em "atrapalhador".
Sobra tempo pra outras coisas.

Fugi um pouco do gerador, mas é porque tudo isso faz parte do mesmo passado.

Gerador de fonte com algo mais

MensagemEnviado: 21 Out 2018 15:45
por JoséQuintas
Ressucitando esse gerador, mas não atualizando ainda para o padrão atual.
Corrigi a execução de cadastro.

Gerador de fonte com algo mais

MensagemEnviado: 21 Out 2018 22:45
por JoséQuintas
Aqui um browse da configuração.
Foram marcados os campos chave de cada arquivo.

gera1.png

Gerador de fonte com algo mais

MensagemEnviado: 21 Out 2018 22:46
por JoséQuintas
No caso do financeiro, indiquei que o cadastro será pesquisado em JPCADAS e será apresentado CDNOME

gera2.png

Gerador de fonte com algo mais

MensagemEnviado: 21 Out 2018 22:47
por JoséQuintas
Em execução, a tela pra JPCADAS

gera3.png

Gerador de fonte com algo mais

MensagemEnviado: 21 Out 2018 22:48
por JoséQuintas
Em execução a tela pra JPFINAN.
Neste caso, já pesquisando e mostrando informação do cadastro

gera4.png

Gerador de fonte com algo mais

MensagemEnviado: 21 Out 2018 22:49
por JoséQuintas
E F9 no código, mostrando um browse.
Como usei a rotina atual, com ícones.

gera5.png

Gerador de fonte com algo mais

MensagemEnviado: 21 Out 2018 22:50
por JoséQuintas
O menu, com base nos arquivos.

gera6.png

Gerador de fonte com algo mais

MensagemEnviado: 21 Out 2018 22:53
por JoséQuintas
Então....
Inicialmente foi pra gerar fontes.
Dá pra executar, e fazer todos os testes antes de gerar fontes.
Validações, Picture, pesquisar em outro arquivo, etc.
Dá pra ir configurando e testando.
E depois gerar os fontes.

Pra quem achou legal até aqui.... ter facilidade em gerar fontes.... pense no seguinte:

Se funciona sem fonte, pra que gerar fonte?

Nota:
Basicamente é acionar a opção de ler estrutura dos DBFs, e depois ir configurando do jeito que quiser.
E dá pra fazer o inverso: cadastrar campos nesse gerador, e a partir dele gerar/atualizar as estruturas.

Gerador de fonte com algo mais

MensagemEnviado: 22 Out 2018 12:55
por JoséQuintas
É pra um código fonte que eu usava há alguns anos, dependente de LIBs que nem tenho mais.
Por isso tive que atualizar os fontes.
Atualizei só a parte necessária, só para funcionar a execução.

O interessante é que... depois de testado tudo em Harbour, gera fontes em PRG ou Visual Basic, com tela GUI lógico.
Poderia ser atualizado pra gerar em HWGUI, HMGE, etc.

Todos os meus fontes de LIB estão disponíveis.
Se eu atualizar para o padrão atual, fica pronto pra compilar com todos os fontes.

Gerador de fonte com algo mais

MensagemEnviado: 23 Out 2018 11:07
por JoséQuintas
O pessoal gosta dessa cor.
Já tentei trocar no passado, mas não vai.
E tem a funcionária de um cliente com estrabismo, dependendo da cor ela tem problemas de tontura.
Trocar cor está fácil, mas o difícil é agradar a todos.

Deixo as cores em SetColorNormal(), SetColorBox(), SetColorFocus(), etc.
Basta alterar as funções e pronto, mesmo que fosse pra ler/gravar configuração.

Gerador de fonte com algo mais

MensagemEnviado: 23 Out 2018 11:11
por JoséQuintas
Até tenho a opção de alterar cores

cores.png


Dá pra alterar todas as cores do aplicativo, e já usar, mas não coloquei pra salvar.

Gerador de fonte com algo mais

MensagemEnviado: 31 Out 2018 12:24
por JoséQuintas
Tem também um rascunho básico pra gerar as telas em HTML ou HMG, mas nem lembro o que sai disso.
Talvez eu atualize pra multithread, e outras coisas mais, principalmente a parte de execução sem fonte.

Pra quem quiser "brincar", só não esqueça de colocar em uma pasta vazia.
E pode copiar alguns DBFs pra ela.
Não é direcionado a usuário, então não sei se vão se acertar com ele.
Por enquanto só o EXE:

http://www.josequintas.com.br/arquivos/gera.exe

Gerador de fonte com algo mais

MensagemEnviado: 31 Out 2018 13:43
por JoséQuintas
   FOR EACH oElement IN mEsteDbf
      ?[ @ ] + Str( nCont + iif( oElement[ SY_KEY ], 3, 4 ), 2 ) + ;
         [, 3 SAY "] + pontos( oElement[ SY_TXT ], 16 ) + [:"]
   NEXT


Troquei FOR/NEXT por FOR EACH, e ficou errado faltando nCont.
Não cheguei a testar a geração de fonte, só a execução.
Vou corrigir.

Gerador de fonte com algo mais

MensagemEnviado: 31 Out 2018 14:29
por JoséQuintas
Pronto. Corrigi esse e outros erros durante geração de fonte.

Gerador de fonte com algo mais

MensagemEnviado: 09 Mai 2019 13:54
por lugab
Bom dia....

Mestre Quintas, o link ta quebrado

http://www.josequintas.com.br/arquivos/gera.exe

Gerador de fonte com algo mais

MensagemEnviado: 09 Mai 2019 17:10
por JoséQuintas
lugab escreveu:Mestre Quintas, o link ta quebrado


Acho que numa limpeza recente apaguei do site.
Tá de volta.
Depois vou ver a possibilidade de colocar os fontes disso no GitHub.

Gerador de fonte com algo mais

MensagemEnviado: 23 Jul 2019 09:19
por jairfab
Gostei desta ideia!

Estou querendo fazer algo semelhante para gera o PRG para fivewin e hwgui.

Estou inclusive procurando algum prg com o inicio pra não ter que fazer tudo a partir do zero!

Gerador de fonte com algo mais

MensagemEnviado: 23 Jul 2019 18:29
por JoséQuintas
jairfab escreveu:Estou inclusive procurando algum prg com o inicio pra não ter que fazer tudo a partir do zero!


Na prática é o contrário.
Comece criando uma tela de cadastro padrão comum - não no gerador, uma normal de uso.
Talvez já com mais de uma tela, pra já atender cadastros grandes.
A partir daí sim, comece o gerador baseado nessa tela.

Campos, tipos e tamanhos: dbStruct()

Vai usar o que usou pra criar sua tela manual, mas automático conforme estrutura.
O começo seria algo assim.

Gerador de fonte com algo mais

MensagemEnviado: 01 Ago 2019 17:55
por jairfab
Legal, estou fazendo com harbour + fivewin está ficando muito bom, já conseguir ler os dbf e gerar as grid e telas de inclusão/alteração inclusive já aproveitei passando também para mysql e criando um dicionario onde pode ser digitado a descrição dos campos para as telas de inclusão e alteração.
Indo mais alem e aproveitando o esquema de dicionario já estou fazendo a criação das class para geração dos xml para e-Social e efd-reinf.

Gerador de fonte com algo mais

MensagemEnviado: 01 Ago 2019 22:20
por sygecom
Esse sisteminha do Ricardo Marques, faz isso. Mas ele sumiu, já tentei procurar ele para fazer algumas melhorias, mas é muito bom. E faz tanto para Fivewin como para Hwgui.

Gerador de fonte com algo mais

MensagemEnviado: 01 Ago 2019 22:29
por sygecom
jairfab escreveu:Gostei desta ideia!

Estou querendo fazer algo semelhante para gera o PRG para fivewin e hwgui.

Estou inclusive procurando algum prg com o inicio pra não ter que fazer tudo a partir do zero!


A segunda versão do sisteminha do Ricardo Marque chamava UNION, tinha muito mais recursos. E tinha o manual em anexo.