Clipper On Line • Ver Tópico - Meu modo de trabalho

Meu modo de trabalho

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

Moderador: Moderadores

 

Meu modo de trabalho

Mensagempor JoséQuintas » 16 Jan 2016 19:32

Meus dois aplicativos principais atuais:

um de imobiliária, que era em Clipper Summer 87, que venho fazendo manutenção, melhorias, etc.
...
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

...
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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Meu modo de trabalho

Mensagempor JoséQuintas » 16 Jan 2016 19:34

Na pasta do JPA, que é o tudo em um, o HBP:

*.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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Meu modo de trabalho

Mensagempor JoséQuintas » 16 Jan 2016 19:37

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

#----------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:

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>
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Meu modo de trabalho

Mensagempor JoséQuintas » 16 Jan 2016 19:45

O que tem no meu C.BAT

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


Na pasta HL:
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>
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Meu modo de trabalho

Mensagempor JoséQuintas » 16 Jan 2016 19:50

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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Meu modo de trabalho

Mensagempor JoséQuintas » 16 Jan 2016 19:57

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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Meu modo de trabalho

Mensagempor JoséQuintas » 16 Jan 2016 20:03

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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Meu modo de trabalho

Mensagempor JoséQuintas » 16 Jan 2016 20:08

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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Meu modo de trabalho

Mensagempor JoséQuintas » 16 Jan 2016 20:17

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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Meu modo de trabalho

Mensagempor JoséQuintas » 16 Jan 2016 20:20

Quantas variáveis PUBLIC

public.png


Tirando " PUBLIC" encontrado na declaração do tbrowse do Harbour, uma única variável pública m_PROG
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Meu modo de trabalho

Mensagempor JoséQuintas » 16 Jan 2016 20:26

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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Meu modo de trabalho

Mensagempor JoséQuintas » 16 Jan 2016 20:38

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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Meu modo de trabalho

Mensagempor JoséQuintas » 16 Jan 2016 20:49

SAVE SCREEN

savescreen.png
savescreen.png (10.53 KiB) Visualizado 187177 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Meu modo de trabalho

Mensagempor JoséQuintas » 16 Jan 2016 20:59

atualizacao.png
atualizacao.png (9.61 KiB) Visualizado 187177 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Meu modo de trabalho

Mensagempor JoséQuintas » 16 Jan 2016 21:04

testesa.png
testesa.png (10.72 KiB) Visualizado 187177 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Próximo



Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Google [Bot] e 19 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro