Página 13 de 18

Migrar Clipper para Harbour.

Enviado: 02 Dez 2016 14:34
por Pablo César
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-us ... 00461.html

Migrar Clipper para Harbour.

Enviado: 02 Dez 2016 15:08
por freddyd
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

Migrar Clipper para Harbour.

Enviado: 05 Dez 2016 12:57
por freddyd
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

Migrar Clipper para Harbour.

Enviado: 05 Dez 2016 23:05
por JoséQuintas
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.

Migrar Clipper para Harbour.

Enviado: 06 Dez 2016 11:57
por freddyd
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

Migrar Clipper para Harbour.

Enviado: 06 Dez 2016 12:18
por JoséQuintas
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.

Migrar Clipper para Harbour.

Enviado: 06 Dez 2016 14:31
por freddyd
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.

Migrar Clipper para Harbour.

Enviado: 06 Dez 2016 16:14
por JoséQuintas
Dá uma olhada nos exemplos dentro de contrib/hbwin/tests.
um deles:

https://github.com/vszakats/harbour-cor ... s/prn2.prg

Migrar Clipper para Harbour.

Enviado: 24 Jan 2017 14:05
por GilmarDalantonia
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.

Migrar Clipper para Harbour.

Enviado: 24 Jan 2017 17:55
por Toledo
Amigo, se você está falando da Visual LIB, veja esta mensagem:

Harbour 3.2.0 X Visual Lib

Abraços,

Migrar Clipper para Harbour.

Enviado: 24 Jan 2017 19:21
por GilmarDalantonia
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.

Migrar Clipper para Harbour.

Enviado: 10 Ago 2017 11:38
por GustavoAvila
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

Migrar Clipper para Harbour.

Enviado: 10 Ago 2017 11:57
por Jairo Maia
Não sei se é o caso, mas penso que sim. Você precisa em Harbour usar o comando completo:

Código: Selecionar todos

RESTORE FROM (arquivo) ADDITIVE
Também para futuro, altere esses comandos para:

Código: Selecionar todos

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.

Migrar Clipper para Harbour.

Enviado: 10 Ago 2017 16:44
por JoséQuintas
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

Migrar Clipper para Harbour.

Enviado: 17 Mai 2018 17:56
por robsonf1968
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