Clipper On Line • Ver Tópico - Exemplos tudo-em-um

Exemplos tudo-em-um

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

Moderador: Moderadores

 

Exemplos tudo-em-um

Mensagempor JoséQuintas » 11 Set 2015 18:20

Ok.
Mas aproveitando:

oPDF := PDFClass():New()


oPage é uma variável da classe.

Se for usar dentro da própria classe, num fonte da classe, usa-se ::oPage, pra indicar que é dela própria.

Se for usar no seu fonte, o comando acima colocou a classe na variável oPDF.
Então a variável oPage da classe no seu fonte é oPDF:oPage

A mesma coisa pra "funções da classe" (métodos).

Dentro da classe é ::DrawText()
No seu fonte é oPDF:DrawText()

Demora um pouco pra acostumar com isso.

Só pra lembrar: oPDF é uma variável do seu fonte.
Poderia se chamar oRelatorio, varRelatorio, qualquer nome que queira.
Mas vai ter que usar esse nome em todo fonte.

oPDF := PDFClass():New()
oPDF:DrawText( .... )

meuRelatorio := PDFClass():New()
meuRelatorio:DrawText( ... )


É difícil, mas às vezes pode querer gerar dois relatórios de uma vez, de repente um de entradas e outro de saídas.
Poderia usar duas variáveis, uma pra cada relatório.

oEntradas := PDFClass():New()
oSaidas    := PDFClass():New()
...
DO WHILE .NOT. Eof()
   IF tipo="entrada"
      oEntradas:DrawText(...)
   ELSE
      oSaidas:DrawText(...)
   ENDIF
   SKIP
ENDDO
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: 14324
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 859 vezes

Exemplos tudo-em-um

Mensagempor ROBERTO SÁVIO » 11 Set 2015 19:32

Fenomenal, sua explicação José;
Quando e se precisar do oPage, já sei como faço.
Aos poucos vamos aprendendo mais e mais.
Mas se tiver alguma dúvida ainda, consultaremos aos universitários do forum.
Até não precisarmos mais, a não ser por algo inédito.
Obrigado a todos, por enquanto.
Roberto Sávio
ROBERTO SÁVIO
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 40
Data de registro: 29 Mai 2014 10:56
Cidade/Estado: CORONEL FABRICIANO/MG
Curtiu: 3 vezes
Mens.Curtidas: 1 vez

Exemplos tudo-em-um

Mensagempor ROBERTO SÁVIO » 14 Out 2015 15:59

José Quintas
Saudações
Ao tentar compilar e executar o ALLINONE.ZIP apareceu a mensagem abaixo.
Harbour 3.2.0dev (r1405061532)
Copyright (c) 1999-2014, http://harbour-project.org/
c:/hmg.3.3.0/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot open output file test.exe: Permission denied
collect2: ld returned 1 exit status
hbmk2[test]: Erro: Executando linkeditor. 1
gcc.exe C:/Users/ROBERTO/AppData/Local/Temp/hbmk_e6974n.dir/test.o C:/Users/ROBERTO/AppData/Local/Temp/hbmk_e6974n.dir/about.o C:/Users/ROBERTO/AppData/Local/Temp/hbmk_e6974n.dir/calculator.o C:/Users/ROBERTO/AppData/Local/Temp/hbmk_e6974n.dir/calendar.o C:/Users/ROBERTO/AppData/Local/Temp/hbmk_e6974n.dir/frm1.o C:/Users/ROBERTO/AppData/Local/Temp/hbmk_e6974n.dir/menu.o C:/Users/ROBERTO/AppData/Local/Temp/hbmk_e6974n.dir/modalwindow.o C:/Users/ROBERTO/AppData/Local/Temp/hbmk_e6974n.dir/pdf.o C:/Users/ROBERTO/AppData/Local/Temp/hbmk_e6974n.dir/progressbar.o C:/Users/ROBERTO/AppData/Local/Temp/hbmk_e6974n.dir/sped.o C:/Users/ROBERTO/AppData/Local/Temp/hbmk_e6974n.dir/ze_errorsys.o C:/Users/ROBERTO/AppData/Local/Temp/hbmk_e6974n.dir/ze_frmcadclass.o C:/Users/ROBERTO/AppData/Local/Temp/hbmk_e6974n.dir/ze_frmclass.o C:/Users/ROBERTO/AppData/Local/Temp/hbmk_e6974n.dir/ze_functions.o C:/Users/ROBERTO/AppData/Local/Temp/hbmk_e6974n.dir/ze_pdfclass.o C:/Users/ROBERTO/AppData/Local/Temp/hbmk_e6974n.dir/ze_sefaz.o C:/Users/ROBERTO/AppData/Local/Temp/hbmk_e6974n.dir/ze_xmlfun.o C:/Users/ROBERTO/AppData/Local/Temp/hbmk_e6974n.dir/hbmk_1ran6i.o C:/Users/ROBERTO/Downloads/test/_temp.o -Wl,--nxcompat -Wl,--dynamicbase -mwindows -Wl,--start-group -lhmg -lcrypt -ledit -leditex -lgraph -lini -lreport -lhfcl -lmsvfw32 -lvfw32 -lhbct -lhbwin -lhbmzip -lminizip -lhbmemio -lhbmisc -lhbmysql -lmysql -lhbtip -lsqlite3 -lhbsqlit3 -lsddodbc -lrddsql -lsddmy -lhbodbc -lodbc32 -lhbhpdf -lhbfimage -lhbpgsql -lhbnetio -lxhb -lpng -llibhpdf -lhbvpdf -lhbzebra -lhbextern -lhbdebug -lhbvmmt -lhbrtl -lhblang -lhbcpage -lgtcgi -lgtpca -lgtstd -lgtwin -lgtwvt -lgtgui -lhbrdd -lhbuddall -lhbusrrdd -lrddntx -lrddcdx -lrddnsx -lrddfpt -lhbrdd -lhbhsx -lhbsix -lhbmacro -lhbcplr -lhbpp -lhbcommon -lhbmainwin -lkernel32 -luser32 -lgdi32 -ladvapi32 -lws2_32 -liphlpapi -lwinspool -lcomctl32 -lcomdlg32 -lshell32 -luuid -lole32 -loleaut32 -lmpr -lwinmm -lmapi32 -limm32 -lmsimg32 -lwininet -lhbpcre -lhbzlib -Wl,--end-group -otest.exe -LC:/hmg.3.3.0/harbour/lib/win/mingw -LC:/hmg.3.3.0/lib

Tem ideia de como resolver?
Roberto Sávio
HMG 3.3.0
ROBERTO SÁVIO
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 40
Data de registro: 29 Mai 2014 10:56
Cidade/Estado: CORONEL FABRICIANO/MG
Curtiu: 3 vezes
Mens.Curtidas: 1 vez

Exemplos tudo-em-um

Mensagempor JoséQuintas » 14 Out 2015 19:55

Sim.
O test.exe usa multithread, tarefas rodando simultaneamente.
Pra tudo dar certo, o programa principal aguarda uns poucos segundos antes de fechar.

Das duas uma:

Ou tentou compilar muito rápido, antes dele fechar.
Neste caso só aguardar alguns segundos mais.

Ou deu erro no meio do caminho, e o módulo prinicpal não detectou que era pra ser fechado.
Neste caso, fechar pelo gerenciador de tarefas e verificar o que pode ser causado isso - alguma alteração.
Em todo caso, vou verificar como deixei o controle disso nesse allinone.
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: 14324
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 859 vezes

Exemplos tudo-em-um

Mensagempor JoséQuintas » 14 Out 2015 20:10

Ok, tá correto nele.

Este bloco é parte do programa principal:

   RunThread( { || MainMenu( .F. ) } )
   DO WHILE RunThread()
      HB_IdleSleep(1)
   ENDDO


A função RunThread() serve pra duas coisas:

a) Acrescenta o número da nova thread ao array
b) Testa se todas as threads do array estão "rodando".

Nesse bloco do programa principal, o loop continua até que nenhum módulo esteja rodando, testando a cada 1 segundo.
Se o módulo principal fechar, encerra tudo, por isso ele roda como um "zumbi", sem tela, aguardando que os outros se encerrem.

Como ele roda igual zumbi, sem tela, em caso de erro não previsto ele continua rodando, e só dá pra fechar no gerenciador de tarefas.

Uso assim há mais de um ano, e não lembro de nenhuma vez precisar do gerenciador de tarefas.
Exceto no começo, enquanto ainda estava começando a fazer os testes.
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: 14324
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 859 vezes

Exemplos tudo-em-um

Mensagempor lugab » 15 Out 2015 10:57

Pessoal, bom dia....

Quintas, ta Bacana esse tópico, parabéns..

Eu gostaria de incluir alguns programinhas modo console ( compilado em Harbour 3.0 ) dentro desse TEST.PRG do Quintas, então,

precisarei reconfigurar algo no HB34 e no Mingw32 ou complio direto com HBMK2 TEST sem nehuma mudança ??
lugab
lugab
Colaborador

Colaborador
 
Mensagens: 862
Data de registro: 19 Mai 2009 15:58
Curtiu: 126 vezes
Mens.Curtidas: 37 vezes

Exemplos tudo-em-um

Mensagempor JoséQuintas » 15 Out 2015 12:12

O único detalhe a considerar é o seguinte:

Todo módulo independente que for aberto, precisa ser aberto usando RunThread().

Lembre-se que a GT precisa funcionar em multithread, não serve pra qualquer GT.
GTWVG SIM
GTWVW NÃO.

Se não funcionar em multithread, chega a causar GPF.
É algo como abrir uma tela pra digitação, mas a digitação estar presa na tela anterior.
Ou abrir uma tela, mas a atualização de tela só funcionar na primeira tela, e não conseguir atualizar a segunda.

Na GTWVW, por exemplo, TUDO passa por um único programa de uma única thread.
Não adianta abrir janelas em multithread, porque a GTWVW só consegue trabalhar na primeira thread.

Já na GTWVG, ela respeita isso, e funciona perfeitamente.
Cada thread é responsável pela sua própria tela.
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: 14324
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 859 vezes

Exemplos tudo-em-um

Mensagempor ROBERTO SÁVIO » 15 Out 2015 15:41

José Quintas
Entendido.
Vou voltar à prancheta.
Obrigado
Roberto Sávio
ROBERTO SÁVIO
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 40
Data de registro: 29 Mai 2014 10:56
Cidade/Estado: CORONEL FABRICIANO/MG
Curtiu: 3 vezes
Mens.Curtidas: 1 vez

Exemplos tudo-em-um

Mensagempor Eroni » 01 Dez 2015 10:24

Bom dia pessoal,

Estou desenvolvendo a integração da NFSe em xharbour, está praticamente tudo pronto, porém, o provedor que estou desenvolvendo exige duas assinaturas no xml, uma para o rps e outra para o lote, e é ai que não estou conseguindo, pois só consigo assinar o xml uma vez.

Até consigo preparar o xml certinho e assinar, mas o bloco da segunda assinatura fica vazio, acredito que o problema seja neste trecho de código aqui:

DSIGNS = "xmlns:ds='http://www.w3.org/2000/09/xmldsig#'"
oDOMDoc:setProperty( 'SelectionNamespaces', DSIGNS )
xmldsig:signature := oDOMDoc:selectSingleNode('.//ds:Signature')

Imagino que quando vai passar pela segunda assinatura, o nó localizado sempre fica no primeiro.

Alguém já passou por esta situação ?

Abraço a todos.

Obrigado

Eroni
Eroni
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 20
Data de registro: 18 Mai 2015 09:15
Cidade/Estado: Criciuma/SC
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Exemplos tudo-em-um

Mensagempor JoséQuintas » 01 Dez 2015 16:50

Apesar que o tudo em um tem algo de nota eletrônica, seria melhor ter feito em um post próprio.

Segunda assinatura?

Levando em conta o lote de NFE, não de NFSE, não sei se é igual:

No lote de NFE, há várias notas fiscais.
A assinatura é em cada nota fiscal, e não no lote.'
No caso da NFE é necessário separar cada bloco de cada nota, assinar cada um, e depois juntar todos novamente.

<lote>

<nota1 id=1111> ......
<assinatura>assinatura da id=1111</assinatura>
</nota1>

</nota2 id=2222> ...
<assinatura>assinatura da id=2222</assinatura>
</nota2>

</lote>


Não seria igual?

Nota: Caso tente assinar o arquivo com tudo junto, vai sempre pegar a primeira. (primeira id=)
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: 14324
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 859 vezes

Exemplos tudo-em-um

Mensagempor Eroni » 02 Dez 2015 07:59

Bom dia JoseQuintas, obrigado pelo retorno, o caso é que se exige uma assinatura para o rps e outra para o lote mesmo. Quanto a sua idéia de fazer separado e juntar tudo, não tinha pensado nisso, vou tentar implementar para ver se consigo.
Abraço.
xHarbour 1.2.1 FiveWin 1209 SQLRDD-SQLEX-xHarbour.org-March2010-build31
Eroni
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 20
Data de registro: 18 Mai 2015 09:15
Cidade/Estado: Criciuma/SC
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Exemplos tudo-em-um

Mensagempor JoséQuintas » 02 Dez 2015 09:05

Então precisa ajustar sua rotina de assinatura.

No momento da assinatura a rotina usa o bloco de ID, e a assinatura é inclusa no bloco <signature>.

Veja se sua rotina de assinatura está usando os parâmetros corretos pra cada caso.
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: 14324
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 859 vezes

Exemplos tudo-em-um

Mensagempor Eroni » 03 Dez 2015 09:23

José Quintas, segui sua ideia e consegui fazer as duas assinaturas, obrigado.
xHarbour 1.2.1 FiveWin 1209 SQLRDD-SQLEX-xHarbour.org-March2010-build31
Eroni
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 20
Data de registro: 18 Mai 2015 09:15
Cidade/Estado: Criciuma/SC
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Exemplos tudo-em-um

Mensagempor microvolution » 23 Dez 2015 12:40

prezado Jquintas, boa tarde!
Como havia dito noutro tópico, hão havia ainda testado o AllInOne. Tirei hoje para fazê-lo.

Acontece, que no momento da compilação em qualquer das opções TEST.PRG ou TETNOWVG.PRG apresentou a seguinte mensagem de erro no momento da compilação:
Compiling 'ze_xmlfun.prg'...
Lines 185, Functions/Procedures 8
Generating C source output to 'C:\Users\wal\AppData\Local\Temp\hbmk_830z24.dir\ze_xmlfun.c'... Done.
c:/mvinfo/hb34/lib/win/mingw/liblibhpdf.a(hpdfecyd.o):hpdfecyd.c:(.text+0xc4): undefined reference to `__time32'
c:/mvinfo/hb34/lib/win/mingw/liblibhpdf.a(hpdfimac.o):hpdfimac.c:(.text+0x463): undefined reference to `__wassert'
c:/mvinfo/hb34/lib/win/mingw/liblibhpdf.a(hpdfimac.o):hpdfimac.c:(.text+0xbb0): undefined reference to `__wassert'
collect2.exe: error: ld returned 1 exit status
hbmk2 [test]: Erro: Executando linkeditor. 1
gcc.exe C:/Users/wal/AppData/Local/Temp/hbmk_830z24.dir/test.o C:/Users/wal/AppData/Local/Temp/hbmk_830z24.dir/about.o C:/Users/wal/AppData/Local/Temp/hbmk_830z24.dir/calendar.o C:/Users/wal/AppData/Local/Temp/hbmk_830z24.dir/calculator.o C:/Users/wal/AppData/Local/Temp/hbmk_830z24.dir/frm1.o C:/Users/wal/AppData/Local/Temp/hbmk_830z24.dir/menu.o C:/Users/wal/AppData/Local/Temp/hbmk_830z24.dir/modalwindow.o C:/Users/wal/AppData/Local/Temp/hbmk_830z24.dir/pdf.o C:/Users/wal/AppData/Local/Temp/hbmk_830z24.dir/progressbar.o C:/Users/wal/AppData/Local/Temp/hbmk_830z24.dir/sped.o C:/Users/wal/AppData/Local/Temp/hbmk_830z24.dir/ze_frmclass.o C:/Users/wal/AppData/Local/Temp/hbmk_830z24.dir/ze_frmcadclass.o C:/Users/wal/AppData/Local/Temp/hbmk_830z24.dir/ze_functions.o C:/Users/wal/AppData/Local/Temp/hbmk_830z24.dir/ze_pdfclass.o C:/Users/wal/AppData/Local/Temp/hbmk_830z24.dir/ze_errorsys.o C:/Users/wal/AppData/Local/Temp/hbmk_830z24.dir/ze_sefaz.o C:/Users/wal/AppData/Local/Temp/hbmk_830z24.dir/ze_xmlfun.o C:/Users/wal/AppData/Local/Temp/hbmk_830z24.dir/hbmk_3dyots.o  C:/Users/wal/AppData/Local/Temp/hbmk_830z24.dir/test.reso  -m32 -Wl,--no-demangle -Wl,--nxcompat -Wl,--dynamicbase -mwindows -Wl,--start-group -lgtwvg -lhbhpdf -llibhpdf -lpng -lhbct -lhbwin -lhbextern -lhbdebug -lhbvmmt -lhbrtl -lhblang -lhbcpage -lgtcgi -lgtstd -lgtpca -lgtwin -lgtwvt -lgtgui -lhbrdd -lhbuddall -lhbusrrdd -lrddntx -lrddcdx -lrddnsx -lrddfpt -lhbrdd -lhbhsx -lhbsix -lhbmacro -lhbcplr -lhbpp -lhbcommon -lhbmainwin -lkernel32 -luser32 -lgdi32 -ladvapi32 -lws2_32 -liphlpapi -lwinspool -lcomctl32 -lcomdlg32 -lshell32 -luuid -lole32 -loleaut32 -lmpr -lwinmm -lmapi32 -limm32 -lmsimg32 -lwininet -lhbpcre -lhbzlib   -Wl,--end-group -s -otest.exe  -Lc:/mvinfo/hb34/lib/win/mingw -Lc:/mvinfo/hb34/lib/3rd/win/mingw

O que vem a ser esses 3 erros referências indefinidas?
undefined reference to `__time32'
undefined reference to `__wassert'
undefined reference to `__wassert'

Vlw!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1011
Data de registro: 02 Set 2011 22:17
Curtiu: 58 vezes
Mens.Curtidas: 10 vezes

Exemplos tudo-em-um

Mensagempor microvolution » 23 Dez 2015 12:48

microvolution escreveu:O que vem a ser esses 3 erros referências indefinidas?
undefined reference to `__time32'
undefined reference to `__wassert'
undefined reference to `__wassert'
Vlw!

PS: estou usando o harbour 3.4.0. ok?
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1011
Data de registro: 02 Set 2011 22:17
Curtiu: 58 vezes
Mens.Curtidas: 10 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 0 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