Clipper On Line • Ver Tópico - Migrar Clipper para Harbour.

Migrar Clipper para Harbour.

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Migrar Clipper para Harbour.

Mensagempor Pablo César » 02 Dez 2016 13:34

O GetDefaultPrinter() teoricamente retorna com o nome da impressora. Nunca vi imprimir dessa forma. Talvez eu esteja enganado mas acho que deve ter imprimido em arquivo com o nome da impressora no diretorio corrente.
Também se a dúvida é em Minigui, tem uma seção apropriada para tratar deste tema, se for a questão.

Mesmo sendo em console, aplica-se igual os comando do Harbour/xBase

Acabo de ler isto na WEB: https://www.mail-archive.com/harbour-users@harbour-project.org/msg00461.html
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Migrar Clipper para Harbour.

Mensagempor freddyd » 02 Dez 2016 14:08

Ao contrario do que fala o Viktor (ai ai ele sabe muiiito) tanto o win_PrinterGetDefault() como o GetDefaultPrinter() funcionam no Harbour 3.2 , porque minha rotina mostra o resultado na tela e o nome está correto.

Também o GetPrinters(.T.) funciona pelo mesmo motivo porque mostro a lista para poder escolher, e a lista é correta: todas as impressoras inclusive de rede são mostradas corretamente igual tem no windows.

Concluo que o que não funciona é o SET PRINTER TO (cVariavel) que alias é o que o Viktor fala mas não consegui entender como posso escolher uma impressora cujo nome está numa variável caractere
freddyd
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 11
Data de registro: 26 Nov 2016 12:24
Cidade/Estado: sao paulo-sp
Curtiu: 2 vezes
Mens.Curtidas: 0 vez

Migrar Clipper para Harbour.

Mensagempor freddyd » 05 Dez 2016 11:57

Conforme o http://www.hmgforum.com/hmgdoc/data/index.htm (ver Print system) deveria funcionar o SELECT PRINTER cVariavel
Mas ainda não consegui compilar com a + nova versão 3.4.3
freddyd
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 11
Data de registro: 26 Nov 2016 12:24
Cidade/Estado: sao paulo-sp
Curtiu: 2 vezes
Mens.Curtidas: 0 vez

Migrar Clipper para Harbour.

Mensagempor JoséQuintas » 05 Dez 2016 22:05

Se não me engano, tem que pegar o nome da conexão da impressora, e não o nome.
O mais comum seria usar algo como win_PrintFileRaw()

hbmk2 -find print

hbct.hbc (installed):
NetPrinter()
PrintReady()
PrintSend()
PrintStat()
hbcups.hbc (not installed):
cupsPrintFile()
hbfoxpro.hbc (installed):
PrintStatus()
hbmisc.hbc (installed):
sql_sprintf()
hbnf.hbc (installed):
ft_IsPrint()
hbssl.hbc (installed):
ERR_print_errors()
hbwin.hbc (installed):
win_PrintDataRaw()
win_PrintDlgDC()
win_printerExists()
win_printerGetDefault()
win_printerList()
win_printerPortToName()
win_printerSetDefault()
win_printerStatus()
win_PrintFileRaw()
xhb.hbc (installed):
GetDefaultPrinter()
GetPrinters()
IsPrint()
PrinterExists()
PrinterPortToname()
PrintFileRaw()
SetDefaultPrinter()
sprintf()
XIsPrinter()
Harbour core (installed):
hb_IsPrinter()
IsPrinter()


Acredito que também possa ser definida a impressora default.
A partir daí é só imprimir.
Praticamente o mesmo que no Clipper.
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: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Migrar Clipper para Harbour.

Mensagempor freddyd » 06 Dez 2016 10:57

Obrigado José Quintas. É importante para mim porque é a única coisa que me impede de usar o Harbour. E também melhora muito o meu problema (outro post meu) com win server 2008 R2 que ainda não sei como resolver, talvez com VM server 2003....

No meu caso eu preciso escolher uma impressora (geralmente de rede) para depois, em todos lugares onde tem SET DEVICE TO PRINT, o SAY ou DEVOUT() etc... imprimem nessa impressora predefinida. È assim que funciona (muito bem) com o xHarbour 1.2.3 e SET PRINTER TO (cNomeDeUmaImpressora)

Então seria SetDefaultPrinter(cPorta) ou win_printerSetDefault(cPorta) com cPorta sendo o que vem como segundo parámeto quando pega getprinters() ??
Ou talvez SET PRINTER TO cPorta ??

O getprinters() retorna um vetor com 4 variáveis tipo character cf. abaixo (já testei):

1 Printer name
2 Port name
3 Printer type (e.g. Local/Network)
4 Printer driver

Logo que puder vou testar
freddyd
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 11
Data de registro: 26 Nov 2016 12:24
Cidade/Estado: sao paulo-sp
Curtiu: 2 vezes
Mens.Curtidas: 0 vez

Migrar Clipper para Harbour.

Mensagempor JoséQuintas » 06 Dez 2016 11:18

E se não resolver de um jeito, vai de outro:
Gera pra um arquivo, depois chama um módulo xHarbour pra imprimir.
Quando tiver a solução é só trocar.

Uma coisa é procurar solução quando NÃO se usa, e outra coisa é procurar solução quando se USA.
O resultado é diferente.

Uma opção seria centralizar todas as rotinas de impressão em uma única rotina.
Algo do tipo gerar pra arquivo, e uma rotina imprimir.
Quando for resolver, será apenas uma rotina pra resolver.

Se quiser mesmo usar, é ir alterando desde já.
Vai estar com o fonte pronto pra troca.

Supondo que faça isso de centralizar numa rotina pra imprimir arquivo:

Por um lado pode pensar: que merd. ter que mudar tudo
Por outro lado pode pensar: legal, posso até criar um preview de relatórios

Se ficar esperando uma coisa ou outra, não vai trocar nunca.
Já se pensar em opções, pode expandir as possibilidades.
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: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Migrar Clipper para Harbour.

Mensagempor freddyd » 06 Dez 2016 13:31

JoséQuintas escreveu:E se não resolver de um jeito, vai de outro:
Gera pra um arquivo, depois chama um módulo xHarbour pra imprimir.
Quando tiver a solução é só trocar.

Uma coisa é procurar solução quando NÃO se usa, e outra coisa é procurar solução quando se USA.
O resultado é diferente.

Uma opção seria centralizar todas as rotinas de impressão em uma única rotina.
Algo do tipo gerar pra arquivo, e uma rotina imprimir.
Quando for resolver, será apenas uma rotina pra resolver.

Se quiser mesmo usar, é ir alterando desde já.
Vai estar com o fonte pronto pra troca.

Supondo que faça isso de centralizar numa rotina pra imprimir arquivo:

Por um lado pode pensar: que merd. ter que mudar tudo
Por outro lado pode pensar: legal, posso até criar um preview de relatórios

Se ficar esperando uma coisa ou outra, não vai trocar nunca.
Já se pensar em opções, pode expandir as possibilidades.


... Ok tudo bem posso fazer qq. coisa assim, SE eu conseguir selecionar uma impressora de rede, o que não consigo (já testei) com nenhuma da funções acima. Por exemplo ele me mostra que a porta de minha impressora usb é DOT4_001 (o que é correto) mas não consigo selecionar ela. Idem para impressoras de rede.
freddyd
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 11
Data de registro: 26 Nov 2016 12:24
Cidade/Estado: sao paulo-sp
Curtiu: 2 vezes
Mens.Curtidas: 0 vez

Migrar Clipper para Harbour.

Mensagempor JoséQuintas » 06 Dez 2016 15:14

Dá uma olhada nos exemplos dentro de contrib/hbwin/tests.
um deles:

https://github.com/vszakats/harbour-core/blob/master/contrib/hbwin/tests/prn2.prg
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: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Migrar Clipper para Harbour.

Mensagempor GilmarDalantonia » 24 Jan 2017 13:05

Boa tarde galera... estou acompanhando este post, vendo tudo q ja foi postado, mas infelizmente ñ consegui muito sucesso na minha migração... eu tenho um sistema em clipper 5.3, utilizo a lib visual52 pra modelagem de telas, botoes e outros recursos q la tem... não estou conseguindo compilar com esta lib... alias, não sei como compilar a lib no harbour... alguem pode me ajudar... eu ja estava criando uma versão nova em clipper mesmo... melhorando o sistema... mas a uma semana atras, um cliente meu trocou seu pc... windows 10 64bits... como todos sabem... clipper com 64bits não roda... no windows 10 32bits sem problema.
GilmarDalantonia
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 44
Data de registro: 11 Dez 2014 15:42
Cidade/Estado: Adamantina/SP
Curtiu: 2 vezes
Mens.Curtidas: 0 vez

Migrar Clipper para Harbour.

Mensagempor Toledo » 24 Jan 2017 16:55

Amigo, se você está falando da Visual LIB, veja esta mensagem:

Harbour 3.2.0 X Visual Lib

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Migrar Clipper para Harbour.

Mensagempor GilmarDalantonia » 24 Jan 2017 18:21

Boa noite Toledo... obrigado pela atenção... olhei esse post e baixei os anexos q tinham la... vou ver se consigo fazer minha migração a partir deles...

abraço... obrigado novamente.
GilmarDalantonia
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 44
Data de registro: 11 Dez 2014 15:42
Cidade/Estado: Adamantina/SP
Curtiu: 2 vezes
Mens.Curtidas: 0 vez

Migrar Clipper para Harbour.

Mensagempor GustavoAvila » 10 Ago 2017 11:38

Pessoal,

Bom dia a todos.

Estou a tempos pensando em migrar meu sistema para o Harbour, mas como não estou mais trabalhando especificamente na area, estou enrolando bastante ate cair de cabeça nesse projeto.

Ontem tomei coragem e baixei a instalação conforme a orientação deste topico. Comecei a fazer as alterações sugeridas no meu fonte e compilei conforme ensinado na primeira pagina.

Porém, estou com um problema ao rodar o sistema que não estou conseguindo resolver:
Eu carrego um arquivo de variaveis, com nomes para os esquemas de cores, etc..., quando o programa inicia, eu carrego este arquivo com o comando restore from (arquivo).

Na montagem da tela, uso o comando @ 00,00,23,79 box moldura, onde moldura é uma variavel carregada pelo arquivo acima.

Porem o programa não funciona, da variable does not exist.

O que pode estar ocorrendo???? :P
GustavoAvila
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 8
Data de registro: 26 Out 2015 12:10
Cidade/Estado: Salvador/Bahia
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Migrar Clipper para Harbour.

Mensagempor Jairo Maia » 10 Ago 2017 11:57

Não sei se é o caso, mas penso que sim. Você precisa em Harbour usar o comando completo:
RESTORE FROM (arquivo) ADDITIVE
Também para futuro, altere esses comandos para:
Hb_MVRestore( arquivo, .T. )
e
Hb_MVSave( arquivo, "vars*" )
Porém, faça com planejamento. Se você salvar com Hb_MVSave() não será compatível com RESTORE FROM (arquivo) ADDITIVE.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Migrar Clipper para Harbour.

Mensagempor JoséQuintas » 10 Ago 2017 16:44

Ou pode ser que está colhendo o fruto dos erros do passado...... rs
Colocou pra restaurar do arquivo, mas criava o arquivo "por fora".
Ou está carregando o aplicativo pelo MAIN errado, e falta definir as variáveis.

De qualquer forma, também ocorreria erro no Clipper, a não ser que criasse o arquivo por fora, e agora ele existe mas falta conteúdo.

É sempre bom conferir isso, porque pode atribuir um erro à mudança pra Harbour, sendo que era um erro prévio, que só agora descobriu... rs
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: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Migrar Clipper para Harbour.

Mensagempor robsonf1968 » 17 Mai 2018 17:56

Depois de 11 anos encontrei esse forum, por incrivel que parece ainda tenho uma aplicação em Clipper que roda a mais de 20 anos.... Agora queria ver se consigo migrar para HArbor estou com a versão hmg.3.4.4 e estou tentando compilar pelo programa (IDE)e não por linha de comando. mas da muitos erros e estou tentando arrumar. Segue alguns erros e o meu arquivo LNK e RMK.

Cannot open ABRE_ARQ2.prg, assumed external
Cannot open ABRE_ARQ1.prg, assumed external
Cannot open ABRE_ARQ1.prg, assumed external
Cannot open ABRE_ARQ1.prg, assumed external
Cannot open TELIMP.prg, assumed external
Cannot open ABRE_ARQ.prg, assumed external
C:/DOCUME~1/Robson/CONFIG~1/Temp/hbmk_8wk8ed.dir/ETOVISS.o:ETOVISS.c:(.text+0x0): multiple definition of `HB_FUN_ETOVISS'
C:/DOCUME~1/Robson/CONFIG~1/Temp/hbmk_8wk8ed.dir/ETORESU.o:ETORESU.c:(.text+0x40): first defined here
C:/DOCUME~1/Robson/CONFIG~1/Temp/hbmk_8wk8ed.dir/ETOVISS.o:ETOVISS.c:(.text+0x20): multiple definition of `HB_FUN_FUNCDB10'
C:/DOCUME~1/Robson/CONFIG~1/Temp/hbmk_8wk8ed.dir/ETORESU.o:ETORESU.c:(.text+0x60): first defined here
C:/DOCUME~1/Robson/CONFIG~1/Temp/hbmk_8wk8ed.dir/EVEGERAL.o:EVEGERAL.c:(.text+0xa0): multiple definition of `HB_FUN_CONCLIEN

Meu arquivo Financ.LNK é:
FILE ADMINI,ADMPAC,AGPOSFLU,APAGAMES,APAGAOBR,BORDERO,CADCLIEN,IMPAGFLU,IMPDEFAN,CADFILHO,APAGAOC
FILE CADCONTA,CADDESP,CADEVEN,CADFORNE,CADOC,CCOBRA,CONBANCO,CONBOLE,IMPDEF,FLUGERPR,CONOBRCL
FILE CONCHEQ,CONCLIEM,CONCLIEO,CONCONTA,CONDESPE,CONFORNE,CONITENS,IMPMOD04,PROCONCI,EVEGO
FILE CONPAGTO,CONSUDEF,DETFLUX1,DETFLUX2,DETFLUXO,ETODIST,ETORESU,ETOVISS,IMPCONCI,EVFILTRO
FILE EVEAFATU,EVEFATUR,EVEGERAL,EXT,FLUIMCON,FLUIMCO2,FLUIMP,FLUIMPCO,IMPDEFRE,EVETODEF,OCFILTRO,DEFTOXLS
FILE FLUXOATU,IMPAGEND,IMPEVEAF,IMPEVEDT,IMPFLUAN,IMPFORNE,IMPMOD04,IMPMO04M,IMPRESPG,CADITENS
FILE IMPNFISC,IMPOCOMP,IMPPINTE,LESENHA,OCCOMPRA,OCDATANF,OCFORNE,VISCCOBR,FLUIMPRP,VISFILHO
FILE VISCLIEM,VISCLIEO,VISRESU,CONCILIA,EVECONCI,PGCONCI,CADDEBI,CADCREDI,VISNF,CONCLIEN,EXPFTMES
FILE LOCKS,PRFTELA,CTUSP,__WAIT_b,GETSYS
LIB TERMINAL,CTP,vl2_53,DBFCDX,_DBFCDX
OUTPUT FINANCEIRO

Meu arquivo RMK é:
.PRG.OBJ:
CLIPPER $< /M
ADMINI.OBJ: ADMINI.PRG
ADMPAC.OBJ: ADMPAC.PRG
AGPOSFLU.OBJ: AGPOSFLU.PRG
APAGAMES.OBJ: APAGAMES.PRG
APAGAOBR.OBJ: APAGAOBR.PRG
APAGAOC.OBJ: APAGAOC.PRG
BORDERO.OBJ: BORDERO.PRG
CADCLIEN.OBJ: CADCLIEN.PRG
CADCONTA.OBJ: CADCONTA.PRG
CADDESP.OBJ: CADDESP.PRG
CADEVEN.OBJ: CADEVEN.PRG
CADFORNE.OBJ: CADFORNE.PRG
CADITENS.OBJ: CADITENS.PRG
CADOC.OBJ: CADOC.PRG
CCOBRA.OBJ: CCOBRA.PRG
CONBANCO.OBJ: CONBANCO.PRG
CONBOLE.OBJ: CONBOLE.PRG
CONCHEQ.OBJ: CONCHEQ.PRG
CONCLIEM.OBJ: CONCLIEM.PRG
CONCLIEO.OBJ: CONCLIEO.PRG
CONCONTA.OBJ: CONCONTA.PRG
CONDESPE.OBJ: CONDESPE.PRG
CONFORNE.OBJ: CONFORNE.PRG
CONITENS.OBJ: CONITENS.PRG
CONPAGTO.OBJ: CONPAGTO.PRG
CONSUDEF.OBJ: CONSUDEF.PRG
DETFLUX1.OBJ: DETFLUX1.PRG
DETFLUX2.OBJ: DETFLUX2.PRG
DETFLUXO.OBJ: DETFLUXO.PRG
ETODIST.OBJ: ETODIST.PRG
ETORESU.OBJ: ETORESU.PRG
ETOVISS.OBJ: ETOVISS.PRG
EVEAFATU.OBJ: EVEAFATU.PRG
EVEFATUR.OBJ: EVEFATUR.PRG
EVEGERAL.OBJ: EVEGERAL.PRG
EXT.OBJ: EXT.PRG
FLUIMCON.OBJ: FLUIMCON.PRG
FLUIMCO2.OBJ: FLUIMCO2.PRG
FLUIMP.OBJ: FLUIMP.PRG
FLUIMPRP.OBJ: FLUIMPRP.PRG
FLUIMPCO.OBJ: FLUIMPCO.PRG
FLUXOATU.OBJ: FLUXOATU.PRG
IMPAGEND.OBJ: IMPAGEND.PRG
IMPAGFLU.OBJ: IMPAGFLU.PRG
IMPEVEAF.OBJ: IMPEVEAF.PRG
IMPEVEDT.OBJ: IMPEVEDT.PRG
IMPFLUAN.OBJ: IMPFLUAN.PRG
IMPFORNE.OBJ: IMPFORNE.PRG
IMPMOD04.OBJ: IMPMOD04.PRG
IMPNFISC.OBJ: IMPNFISC.PRG
IMPOCOMP.OBJ: IMPOCOMP.PRG
IMPPINTE.OBJ: IMPPINTE.PRG
EVETODEF.OBJ: EVETODEF.PRG

Como fica os arquivos só tenho os OBJ:
FILE LOCKS,PRFTELA,CTUSP,__WAIT_b,GETSYS

E como faço para incluir essas blibiotecas?
LIB TERMINAL,CTP,vl2_53,DBFCDX,_DBFCDX
robsonf1968
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 3
Data de registro: 17 Mai 2018 17:46
Cidade/Estado: são paulo - sp
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Anterior Próximo



Retornar para Harbour

Quem está online

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