Página 1 de 35

Meu modo de trabalho

Enviado: 16 Jan 2016 20:32
por JoséQuintas
Meus dois aplicativos principais atuais:

um de imobiliária, que era em Clipper Summer 87, que venho fazendo manutenção, melhorias, etc.

Código: Selecionar todos

...
15/01/2016  09:46            12.161 vhl123baix.prg
17/11/2015  18:16             5.425 vhl123corr.prg
02/01/2016  10:04            12.234 vhl123extr.prg
14/01/2016  02:15            24.968 VHLAL01.prg
15/12/2015  11:53             6.420 vhlqdon.prg
             122 arquivo(s)      1.275.786 bytes
               0 pasta(s)   203.726.548.992 bytes disponíveis
e um "tudo em um", com todo o restante

Código: Selecionar todos

...
04/01/2016  21:23               848 ze_resource.prg
04/01/2016  21:23            16.217 ze_SendMailClass.prg
25/11/2015  21:44            16.181 ze_SpedAssina.prg
12/12/2015  22:09             9.223 ze_SpedCadastroClass.prg
13/12/2015  21:01            79.897 ze_SpedSefazClass.prg
09/09/2015  22:02            33.876 ze_spedxmlClass.prg
10/08/2015  22:46             2.303 ze_SpedXmlEventoMDFE.prg
13/01/2016  09:37            10.917 ze_SpedXmlMDFE.prg
05/01/2016  12:04           103.906 ze_spedxmlnfe.prg
30/12/2015  19:38             6.119 ze_webservice.prg
10/08/2015  22:45             6.435 ze_winapi.prg
30/12/2015  19:36             3.463 ze_window.prg
02/01/2016  10:37             4.903 ze_wmenu.prg
20/10/2015  19:35             6.140 ze_xmlfun.prg
             396 arquivo(s)      4.812.530 bytes
               0 pasta(s)   203.726.548.992 bytes disponíveis
É só o final do comando DIR, pra mostrar que são 122 + 396 = 518 PRGs
Cada um tem sua própria pasta.

Meu modo de trabalho

Enviado: 16 Jan 2016 20:34
por JoséQuintas
Na pasta do JPA, que é o tudo em um, o HBP:

Código: Selecionar todos

*.prg
-oJPA
jpa.rc
hbct.hbc
hbtip.hbc
hbhpdf.hbc
hbziparc.hbc
hbmisc.hbc
hbzebra.hbc
hbnetio.hbc
gtwvg.hbc

-workdir=c:\temp
-m
-n
-es2
-w3
-compr
-inc
-strip
-mt
-quiet
-jobs=1

#----------- nos tempos do W98
#-winuni
Notem o *.PRG.
Tudo que está na pasta está sendo usado.

Meu modo de trabalho

Enviado: 16 Jan 2016 20:37
por JoséQuintas
Já na pasta da imobiliária muda um pouco.
Como é um aplicativo de terceiros, e não quero multiplicar fontes, faço uso de fontes da pasta JPA.
Então criei DOIS HBPS:

Primeiro HBP:
Uso o que interessa da pasta JPA, agrupo tudo como uma LIB

Código: Selecionar todos

#----------biblioteca do jose maria
..\integra\browse.prg
..\integra\pauxiliar.prg
..\integra\pdfboletoclass.prg
..\integra\pdfboletobradescoclass.prg
..\integra\pjpnumero.prg
..\integra\pjpreguso.prg
..\integra\puti0040.prg
..\integra\rabout.prg
..\integra\errorsys.prg
..\integra\getsys.prg
..\integra\ze_ado.prg
..\integra\ze_application.prg
..\integra\ze_calculadora.prg
..\integra\ze_calendario.prg
..\integra\ze_dbase.prg
..\integra\ze_dbf.prg
..\integra\ze_func.prg
..\integra\ze_funcapp.prg
..\integra\ze_help.prg
..\integra\ze_labelclass.prg
..\integra\ze_logerr.prg
..\integra\ze_mensagem.prg
..\integra\ze_preview.prg
..\integra\ze_progressbar.prg
..\integra\ze_prompt.prg
..\integra\ze_rede.prg
..\integra\ze_xmlfun.prg
..\integra\ze_webservice.prg
..\integra\ze_winapi.prg
..\integra\ze_window.prg
..\integra\ze_wmenu.prg
..\integra\ze_FrmCadClass.prg
..\integra\ze_FrmMainClass.prg
..\integra\ze_PDFClass.prg
..\integra\ze_SendMailClass.prg
..\integra\ze_resource.prg
..\integra\ptes0170.prg
..\integra\ptes0180.prg
-olibjose

hbwin.hbc
hbct.hbc
hbhpdf.hbc
gtwvg.hbc
hbtip.hbc
hbmisc.hbc
hbziparc.hbc
hbzebra.hbc
-m
-w3
-es2
-strip
-compr
-inc
-workdir=c:\temp
-quiet

-hblib
Segundo hbp, do aplicativo propriamente dito:

Código: Selecionar todos

libjose.hbp

*.c
*.prg
-ohl
hl.rc
-llibjose

hbwin.hbc
hbct.hbc
hbhpdf.hbc
gtwvg.hbc
hbtip.hbc
hbmisc.hbc
hbziparc.hbc
hbzebra.hbc

-I..\integra\
-m
-w3
-es2
-strip
-compr
-inc
-workdir=c:\temp
-jobs=1

#----------- nos tempos do W98
#-winuni
Acrescento exatamente os mesmos fontes de biblioteca do JPA, e mesmo include "jpa.ch"
Isso garante que estou usando minhas rotinas atualizadas nos dois.

Justamente um recurso legal do HBP é que incluo o projeto da LIB como sendo parte do projeto do aplicativo.
Caso eu mexa em algum PRG da biblioteca quando estiver mexendo no JPA, ao estar mexendo no HL, ao compilar o projeto ele também já verifica e reconstrói a LIB se for necessário.

Só me resta programar... entrar no editor de texto, alterar um fonte, e digitar C <ENTER>

Meu modo de trabalho

Enviado: 16 Jan 2016 20:45
por JoséQuintas
O que tem no meu C.BAT

Na pasta JPA:

Código: Selecionar todos

del jpa.exe
hbmk2 jpa.hbp
Na pasta HL:

Código: Selecionar todos

del hl.exe
hbmk2 hl.hbp -comp=msvc %1 %2 %3 %4
Nem deveriam estar diferentes, mas tudo bem, estou postando a realidade atual.
Compilo muito. Mais fácil digitar C<ENTER> do que hbmk2 projeto.hbp <ENTER>

Meu modo de trabalho

Enviado: 16 Jan 2016 20:50
por JoséQuintas
De vez em quando alguns posts me lembram que nem todo mundo faz da mesma forma que eu.
Por isso este tópico.

Agora vamos lá...
518 PRGs.
Quantas rotinas de tbrowse eu devo ter?...
Algum palpite?
Uso em praticamente todo lugar
tbrowsedb.png
Vamos ver...

browse.prg - é uma cópia do browse do Harbour, mas ajustado pra funcionar em rede

pban0100.prg - é um tbrowse específico de controle bancário

ze_dbf.prg - duas rotinas. Uso pra TUDO

Meu modo de trabalho

Enviado: 16 Jan 2016 20:57
por JoséQuintas
E o uso de GTWVG nos fontes?
prgwvg.png
Vamos ver:

jpa.prg - é o programa principal, só anotação
pbol0010.prg - é de boleto, testei usar na harupdf mas não deu certo
pusrmsg.prg - é um "messenger" que criei, não é exatamente parte do aplicativo
rmenu.prg - o programa principal - um menu opcional em Windows
ze_application.prg - nem sei porque tem isso lá, algum teste talvez
ze_apres.prg - a tela de abertura
ze_calculadora.prg - uma calculadora
ze_frmmainclass.prg - TODAS as telas do aplicativo são criadas aqui
ze_mt.prg - a parte de multithread. só pra carregar a GTWVG em cada thread

Deixo algumas anotações/testes, porque posso precisar deles algum dia.

Por falar nisso... tem um teste de hoje aí no meio... interessante.

Meu modo de trabalho

Enviado: 16 Jan 2016 21:03
por JoséQuintas
multithread:
multithread.png
Vamos ver o uso de multithread:

jpa.prg - o "main" de tudo, pra iniciar o antigo main, que virou Sistema()
p0600nfe.prg - seria uma rotina pra baixar PDF em background, está apenas anotado
pemissor.prg - meu emissor de nfe, está apenas anotado
jpordser.prg - ordem de serviço, em background uma rotina a cada intervalo de tempo verifica ordens em atraso
jpusrmsg.prg - aquele "messenger" que já comentei
rmenu.prg - o menu principal, tinha que ter aí
ze_func.prg - apenas anotado. algum teste que só olhando o fonte pra lembrar
ze_help.prg - a rotina de help on-line, que acessa a internet. Só pra evitar que o help trave o resto
ze_mt.prg - a rotina de multithread, tinha que ter aí também

Nota:
As últimas linhas são teste, é que estão num bloco /* */, e não dá pra ver que é apenas anotação.
Cheguei a usar isso no começo do multithread, e deixei anotado pra não esquecer.

Meu modo de trabalho

Enviado: 16 Jan 2016 21:08
por JoséQuintas
Só lembrando. 518 PRGs.
Nesta pesquisa estou olhando somente a pasta JPA.
Pela descrição de onde usa, já dá pra imaginar que no HL não vai ter nenhum fonte com essas coisas.

Meu modo de trabalho

Enviado: 16 Jan 2016 21:17
por JoséQuintas
Chamadas da função imprime:
imprime.png
Muitas, e tem muitas função imprime(), cada relatório tem a sua.
Só declarar STATIC, e não tem que inventar nome nenhum diferente.

Meu modo de trabalho

Enviado: 16 Jan 2016 21:20
por JoséQuintas
Quantas variáveis PUBLIC
public.png
Tirando " PUBLIC" encontrado na declaração do tbrowse do Harbour, uma única variável pública m_PROG

Meu modo de trabalho

Enviado: 16 Jan 2016 21:26
por JoséQuintas
Variáveis THREAD STATIC
threadstatic.png
Até me espantei. GFORCA.PRG é um joguinho de forca. Para o caso de abrir várias janelas do jogo de forca, um não atrapalhar o outro... foi exagero.

Isso é o mesmo que STATIC, mas cada thread tem a sua.
Por exemplo, duas rotinas enviando email ao mesmo tempo, uma não pode interferir na outra.

Notem que a maioria do uso é nas bibliotecas, ou na GETSYS, que não deixa de ser biblioteca.

Meu modo de trabalho

Enviado: 16 Jan 2016 21:38
por JoséQuintas
SET KEY
setkey.png
getsys.prg - apenas anotações
PCTL* são fontes de contabilidade, ainda não deixei totalmente modernas
pedi0150 - é uma rotina especial de configuração de importação de XMLs
jpa.prg - tem uma pesquisa de empresas instaladas no disco, é especial também

sobra

rpesq.prg - rotina de pesquisa
ze_application.prg - programa principal
ze_calculadora.prg - calculadora
ze_func.prg - rotinas gerais
ze_preview.prg - preview de relatórios, quando matricial

518 PRGs, e todos eles aceitam entrar na calculadora, pesquisa, etc. com base no SET KEY

Como no JPA não tem mais nenhum SET KEY específico, com certeza no HL também não tem.
Possivelmente só em hlpesq.prg, porque ele tem rotina de pesquisa própria.
E na configuração principal, porque também tem rotina principal própria.

Meu modo de trabalho

Enviado: 16 Jan 2016 21:49
por JoséQuintas
SAVE SCREEN
savescreen.png
savescreen.png (10.53 KiB) Exibido 221007 vezes
Tem até demais.

integra\balanco\???? -> é apenas rotina anotada, não faz parte do aplicativo e não conta.
ptes0090.prg - é uma rotina de teste
ze_calculadora.prg
ze_calendario.prg

Tenho isso no aplicativo. Algumas rotinas deixo como PTES*
São testes que faço, e só aparecem na minha senha.
Melhor do que espalhar fontes pelo disco.
E assim me lembra de dar uma olhada se dá pra aproveitar alguma coisa.
Foi num desses que meu uso da WVG começou.

Meu modo de trabalho

Enviado: 16 Jan 2016 21:59
por JoséQuintas
atualizacao.png
atualizacao.png (9.61 KiB) Exibido 221007 vezes
JPA Update - Download Versão
O cliente usa lá, pra baixar versão da internet. Se meu site estiver fora do ar, baixa direto do meu servidor.

JPA Update - Upload Versão
Sou eu que uso aqui, pra enviar versão pra internet e pro meu servidor.
Também facilito pra mim, porque não.

Essa opção tem uma segurança extra: se eu estiver fora da minha máquina, nem na minha senha aparece.
Assim evita que eu cometa algum erro.

Meu modo de trabalho

Enviado: 16 Jan 2016 22:04
por JoséQuintas
testesa.png
testesa.png (10.72 KiB) Exibido 221007 vezes
O primeiro menu de testes
- Escolher cores para o aplicativo
- Mostrar tabela Ascii
- Gera o manual do aplicativo em PDF
- Troca de mensagens entre usuários, estilo messenger
- Mexer com a parte gráfica do aplicativo, como menu Windows, e o aplicativo falar em português
- Também alterar o estilo do pushbutton de todo apliativo
- o Aplicativo se transformar num servidor de hbnetio
- Teste pra consultar recibo na secretaria da fazenda
- Envio de TODOS os DBFs para o MySql, criando toda estrutura equivalente e transferindo dados
- Backup também, que já deixou de ser teste.
- DanfeNFE é uma geração, não oficial, do PDF da nota fiscal eletrônica. Fiz só por curiosidade.