Gerador de fonte com algo mais

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador de fonte com algo mais

Mensagem 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".

Código: Selecionar todos

 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) Exibido 5448 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador de fonte com algo mais

Mensagem 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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador de fonte com algo mais

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador de fonte com algo mais

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador de fonte com algo mais

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador de fonte com algo mais

Mensagem por JoséQuintas »

Ressucitando esse gerador, mas não atualizando ainda para o padrão atual.
Corrigi a execução de cadastro.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador de fonte com algo mais

Mensagem por JoséQuintas »

Aqui um browse da configuração.
Foram marcados os campos chave de cada arquivo.

gera1.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador de fonte com algo mais

Mensagem por JoséQuintas »

No caso do financeiro, indiquei que o cadastro será pesquisado em JPCADAS e será apresentado CDNOME
gera2.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador de fonte com algo mais

Mensagem por JoséQuintas »

Em execução, a tela pra JPCADAS

gera3.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador de fonte com algo mais

Mensagem por JoséQuintas »

Em execução a tela pra JPFINAN.
Neste caso, já pesquisando e mostrando informação do cadastro
gera4.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador de fonte com algo mais

Mensagem por JoséQuintas »

E F9 no código, mostrando um browse.
Como usei a rotina atual, com ícones.

gera5.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador de fonte com algo mais

Mensagem por JoséQuintas »

O menu, com base nos arquivos.
gera6.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador de fonte com algo mais

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador de fonte com algo mais

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador de fonte com algo mais

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder