Clipper On Line • Ver Tópico - LIB JoséQuintas

LIB JoséQuintas

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

Moderador: Moderadores

 

LIB JoséQuintas

Mensagempor JoséQuintas » 16 Ago 2017 20:08

Liberei também meu controle bancário pessoal.

Apesar de pessoal, tem comparativo mês a mês, gráficos, relatórios, etc.

No menu, opção financeiro, bancário
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 13531
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 839 vezes

LIB JoséQuintas

Mensagempor cl@udio » 17 Ago 2017 08:25

Bom dia
Eu baixei o projeto compilei a biblioteca.
Mas quando compilo o test.hbp da erro da falta josequintas.hbc.
Onde posso configurar isto.
Anexos
tela.png
cl@udio
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 90
Data de registro: 25 Jan 2007 15:47
Curtiu: 1 vez
Mens.Curtidas: 0 vez

LIB JoséQuintas

Mensagempor JoséQuintas » 17 Ago 2017 09:11

Infelizmente, parece que o HBMK2 tem problemas em LIBs ao ficar renomeando fontes.
recompile a LIB, e depois recompile o teste.

é acrescentar -rebuild na hora de compilar os dois.

Nota:
Beep() foi eliminada, mais prático chamar direto wapi_MessageBeep(), isso foi alterado.
wOpen() existe desde o começo, talvez tenha sido alterado o nome do fonte (e hbct tem uma com mesmo nome, mas não é a mesma coisa)
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 13531
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 839 vezes

LIB JoséQuintas

Mensagempor JoséQuintas » 17 Ago 2017 09:18

Desculpe, revi a mensagem, dá falta do arquivo HBC.

Então acrescente o path de josequintas.hbc

hbmk2 test -L..

Importante: execute numa pasta separada, porque vai criar vários DBFs na pasta aonde for executado o JPA.EXE
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 13531
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 839 vezes

LIB JoséQuintas

Mensagempor cl@udio » 18 Ago 2017 08:59

Bom dia Jose Quintas
Fiz como vc falou.
Agora acusou falta deste .hbc.
Procurei e nao esta na sua lib.
E depois reclamou falta destas funcoes.
undefined reference to `_HB_FUN_VALIDCNPJCPF'
undefined reference to `_HB_FUN_SONUMEROS'

hbmk2 [test]: Atenção: Não é possível encontrar o sefazclass.hbc (referenciado por ..\josequintas.hbc)

[]s
cl@udio
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 90
Data de registro: 25 Jan 2007 15:47
Curtiu: 1 vez
Mens.Curtidas: 0 vez

LIB JoséQuintas

Mensagempor JoséQuintas » 18 Ago 2017 09:45

Ok, depende dela também, que tem rotinas de XML rotinas do governo, e tudo referente Fazenda, além de validação de CNPJ, CPF, etc.

https://github.com/JoseQuintas/sefazclass

É só mais essa lib adicional.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 13531
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 839 vezes

LIB JoséQuintas

Mensagempor JoséQuintas » 18 Ago 2017 11:03

Não sei se pode ajudar:

Aqui, meus fontes de aplicativo, os que mais uso estão em:

\cdrom\fontes\Haroldo
\cdrom\fontes\integra
\cdrom\fontes\laboroil

Como eu pesquiso sempre em todos os fontes, as libs ficaram dentro de uma delas, justamente dentro do aplicativo total (a lib é parte dele)

\cdrom\fontes\integra\josequintas
\cdrom\fontes\integra\sefazclass

O único arquivo que uso a mais, é HBMK.HBC que deixo dentro de harbour\bin
São os parâmetros que uso como "default" pra tudo que compilo, e mais as pastas das duas LIBs.

compr=yes
strip=yes
prgflags= -m -n -ge1 -w3 -es2
libpaths=d:/cdrom/fontes/integra/sefazclass d:/cdrom/fontes/integra/josequintas d:\cvsfiles\allgui\allgui
mt=yes


Resumindo:
HBMK.HBC = indica o PATH de onde procurar os HBC das LIBs
JOSEQUINTAS.HBC - é responsável pela lib josequintas
SEFAZCLASS.HBC -é responsável pela lib sefazclass
ALLGUI.HBC - é responsável pelas LIBs HMG3, HMG Extended, HWGUI e OOHG

Então, ao indicar um HBC, já fica configurado pra encontrar, linqueditar e acrescentar os #define e tudo referente à LIB.

Se eu quiser compilar sem nenhuma dessas LIBs, é só não indicar nenhum desses hbc.

Exemplos:

console: hbmk2 test
gtwvg: hbmk2 test gtwvg.hbc
hwgui: hbmk2 test hwgui.hbc
hmgextended: hbmk2 test hmge.hbc
hmg3: hbmk2 test hmg3.hbc
com josequintas: hbmk2 test josequintas.hbc
só com sefaz: hbmk2 test sefazclass.hbc

e por aí vai.
É cada LIB cuidando de si própria, através de um HBC.

Como a josequintas depende de funções da sefazclass, ela adiciona o sefazclass.hbc

Description=any
libs=josequintas sefazclass.hbc
libs=hbhpdf.hbc hbwin.hbc hbzebra.hbc gtwvg.hbc hbct.hbc hbtip.hbc hbnetio.hbc hbziparc.hbc hbmisc.hbc
libpaths=${HB_INSTALL_PREFIX}\addons\lib\${hb_plat}\${hb_comp}
incpaths=include
incpaths=..\..\build


Ela não diz aonde estão as outras LIBs, porque hbmk.hbc já vai dizer
Ela não diz o que faz parte das outras libs, porque cada hbc vai dizer
ela se limita a dizer que precisa da lib josequintas, aonde encontra a josequintas, e os #include da josequintas.
As outras LIBs, o hbc de cada uma é que vai dizer o que faz parte delas.

Parece complicado, mas é questão de costume.
É cada LIB cuidando do que é seu, e se cada lib cuida do que é seu, basta indicar o HBC da LIB que ela se vira.
Ou melhor... indicar o HBC e a localização do HBC.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 13531
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 839 vezes

LIB JoséQuintas

Mensagempor cl@udio » 18 Ago 2017 11:20

Agora compilou, criei o hbmk.hbc.
Obrigado pela ajuda.
[]s
cl@udio
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 90
Data de registro: 25 Jan 2007 15:47
Curtiu: 1 vez
Mens.Curtidas: 0 vez

LIB JoséQuintas

Mensagempor JoséQuintas » 18 Ago 2017 11:52

Legal.

Só a título de curiosidade, de outra forma:

Supondo que você salve josequintas junto com o hbc numa pasta \PASTA-J, e mesma coisa sefazclass \PASTA-S

Opção 1. Indicar em cada projeto, no HBP, a pasta delas

-L\PASTA-J, \PASTA-S

Opção 2: Já ensinar o HMK2 aonde ele pode pesquisar as coisas, no \harbour\bin\hbmk.hbc

libpaths=\PASTA-J, \PASTA-S

Opção 3: a mais conhecida: indicar tudo que é tranqueira na mão, no HBP

-i\pasta-J\include
-i\pasta-s\include
-ljosequintas
-lsefazclass
-L\harbour\addons\lib\win\mingw (se não me engano direcionei as libs pra cá)

Comparando o HBP acima com o uso de HBC:

josequintas.hbc
sefazclass.hbc

Os projetos ficam livres pra trocarem de pasta, as LIBs ficam livres pra trocarem de pasta.
Basta um HBMK.HBC pra indicar aonde estão os HBCs de cada coisa.
Fica tudo mais "portátil".

Até o Xharbour poderia ter seu HBMK2.
A padronização de tudo, Harbour e Xharbour e LIBs poderia começar por aí.
Seria todo mundo começando a "falar a mesma língua".
Até pra configurar uma IDE, bastaria um HBC.

Enquanto isso não acontece, cabe a nós tentar padronizar.

No Clipper tinha algo parecido, mas não igual: os arquivos LNK
BLINKER teste @lib1.lnk @lib2.lnk @lib3.lnk

Dá até pra considerar que o HBC é uma versão mais moderna dos LNK.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 13531
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 839 vezes

LIB JoséQuintas

Mensagempor JoséQuintas » 18 Ago 2017 12:10

Voltando à LIB, sugestões de teste:

Coloque o JPA.EXE gerado numa pasta qualquer, estou acostumado a deixar em C:\JPA
Baixe este: http://www.josequintas.com.br/arquivos/sjpa.exe
E deixe na mesma pasta.
Crie um atalho diretamente para esse SJPA.EXE
A única coisa que ele faz é carregar o JPAn.EXE mais novo da pasta, e já usar o PATH dele automaticamente pra execução.

A partir daí, se recompilar, apenas copie o EXE pra pasta \JPA com qualquer nome. JPAn.EXE
Ao acionar o atalho, já vai carregar a "versão nova" automaticamente.

Abra qualquer cadastro várias vezes, CIDADES por exemplo, que vai ter bastante coisa cadastrada.
Use consulta, F9 no código, pra abrir o browse.
Digite iniciais da cidade, use Alt_F pra filtrar PAULO, ou SAO JOAO ou JOAO SAO ou SA PAU ou PAU SAO
Abra outra janela do cadastro decidades ao mesmo tempo, veja que estão totalmente isolados
Redimensione janela, feche o menu e continue com os cadastros abertos.

Use a listagem de cidades, PDF retrato, PDF paisagem. Use também a opção matricial com preview.

Altere a estrutura dos DBF em ze_updatedbf.prg
Recompile, coloque na pasta \JPA, e veja as estruturas se atualizarem sozinhas ao recarregar.

Pode conferir usando a opção sistema, ferramentas, acesso direto a arquivos.
Lá pode usar os comandos
USE arquivo
LIST STRU
EDIT
BROWSE
etc.

Em JPA_INDEX, pode acrescentar índices em algum arquivo. Depois pode voltar ao consulta F9, e verificar até que o índice está ativo (após reindexar)

Em JPA_MENU, pode acrescentar opções no menu, e já ver aparecerem na configuração de senhas/acessos.

Pode criar usuário, e definir que programas vai poder usar.
Reabra o aplicativo usando o usuário/senha que criou.

Ah sim... no menu: clique em qualquer opção, da frente, de trás, do lado, etc. vai ver o mouse funcionando em qualquer lugar do menu.

Na opção de testes, menu Windows ou estilo diferente, o Windows FALANDO (se for Windows 10)

Teria o backup automático também, diário ou ao alterar versão, mas a rotina inclui senhas, então ainda não acrescentei nos fontes liberados.

E por aí vai.

São pequenos detalhes interessantes, que facilitam para o usuário e pra mim também.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 13531
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 839 vezes

LIB JoséQuintas

Mensagempor JoséQuintas » 18 Ago 2017 12:18

O fonte de SJPA.EXE vou colocar na LIB também, em pasta separada.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 13531
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 839 vezes

LIB JoséQuintas

Mensagempor JoséQuintas » 18 Ago 2017 12:25

Pronto, nem vai precisar baixar o SJPA, pode gerá-lo a partir do fonte.

https://github.com/JoseQuintas/JoseQuintas/blob/master/tests/sjpa.prg

requer gtwvg.hbc
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 13531
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 839 vezes

LIB JoséQuintas

Mensagempor JoséQuintas » 22 Ago 2017 00:52

Alteraçãozinha legal:

https://github.com/JoseQuintas/JoseQuintas/commit/d525b0bbeef9b45dbae85a623cce6e097020e10e

Alterei de STATIC FUNCTION DbfPackIndex() pra FUNCTION ze_DbfPackIndex()

Depois foi só usar:

ze_DbfPackIndex( DbfInd( "jpestoq" ) )

Já compacta o arquivo e cria seus índices definidos no JPA_INDEX.

Porque isso?
Como tem exclusão em massa, a compactação/indexação vai evitar que fique lento.
E deixar por conta do usuário não vai ser bom.

Só imaginar que os clientes não reindexam há muitos anos..... rs
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 13531
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 839 vezes

LIB JoséQuintas

Mensagempor JoséQuintas » 23 Ago 2017 07:26

Automaticamente apagar movimentação antiga ao atualizar versão.

https://github.com/JoseQuintas/JoseQuintas/blob/master/source/ze_updateDelete.prg

Perigoso isso?
Nem tanto.
- Tem o backup diário.
- Tem o backup ao trocar número de versão de DBF
Backups do início de cada mês são mantidos por um ano.

Durante um ano, as informações ainda poderão ser recuperadas.
E se for o caso, basta manter uma cópia desses backups, tem um ano de prazo pra fazer o backup pra dispositivo externo.... rs
O único problema é fazerem essa atualização num horário impróprio, porque vão ter que esperar o backup e eventuais conversões.
Mas por parte do aplicativo, tudo tranquilo.

De minha parte:
Trabalho sempre na versão atual do aplicativo, não importa o que esteja lá no cliente.
Não existem "fontes para próxima versão".
Só existem opções que aparecem em um cliente e em outro não, ou que só aparecem pra mim.

Lado ruim: qualquer mudança no aplicativo precisa funcionar em todos os clientes
Lado bom: basta funcionar em um cliente. Funcionou pra um, funciona pra todos.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 13531
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 839 vezes

LIB JoséQuintas

Mensagempor JoséQuintas » 25 Ago 2017 18:41

Com essa história de dividir o aplicativo em 3 pastas: normal, sefazclass e libjosequintas, ficou chato editar um fonte, porque pode estar em qualquer pasta.

Então....alterei meu bat de chamar o editor de textos:

pushd .
if not exist %1 cd \cdrom\fontes\integra\sefazclass\source
if not exist %1 cd \cdrom\fontes\integra\josequintas\source
if not exist %1 cd \cdrom\fontes\haroldo
if not exist %1 cd \cdrom\fontes\integra
start d:\tools\pnotepad\pn.exe %*
popd


Agora basta eu editar o fonte, o bat sai pesquisando aonde está.... rs
pushd e popd são pra salvar/restaurar o path atual, antes da chamada do bat
Acho que dá pra reduzir, com o FOR/EACH do BAT, mas tá resolvido.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 13531
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 839 vezes

Anterior Próximo



Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 4 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