Emissao de Etiqueta em LX-300
Moderador: Moderadores
-
mmaciel11
- Usuário Nível 2

- Mensagens: 69
- Registrado em: 23 Mar 2006 11:16
- Localização: sao luis
- Contato:
Emissao de Etiqueta em LX-300
Boa Noite,
Tenho um sistema hospitalar que estou convertendo para Xharbour + minigui e gostaria de saber como faço para imprimir a etiqueta com dados do paciente em modo gráfico ou não.
desde já agradeço.
Marco Maciel
Utilizo Xharbour + minigui
Tenho um sistema hospitalar que estou convertendo para Xharbour + minigui e gostaria de saber como faço para imprimir a etiqueta com dados do paciente em modo gráfico ou não.
desde já agradeço.
Marco Maciel
Utilizo Xharbour + minigui
HBMake v1.55 - xHarbour Make
xHarbour build 0.99.60 (simplex)
Borland c++ 5.5.1
xHarbour build 0.99.60 (simplex)
Borland c++ 5.5.1
-
mmaciel11
- Usuário Nível 2

- Mensagens: 69
- Registrado em: 23 Mar 2006 11:16
- Localização: sao luis
- Contato:
Re: Emissao de Etiqueta em LX-300
Boa dia,
para impressao via DOS diretamente pela impressora local LPT1
é assim que imprimo
Function Etiqueta_Paciente()
Set Device to Print
@ 10, 10 Say 'Marco Maciel' to print
Set Device to Scree
para impressao via DOS diretamente pela impressora local LPT1
é assim que imprimo
Function Etiqueta_Paciente()
Set Device to Print
@ 10, 10 Say 'Marco Maciel' to print
Set Device to Scree
HBMake v1.55 - xHarbour Make
xHarbour build 0.99.60 (simplex)
Borland c++ 5.5.1
xHarbour build 0.99.60 (simplex)
Borland c++ 5.5.1
- Mario Mesquita
- Usuário Nível 4

- Mensagens: 613
- Registrado em: 08 Dez 2009 13:47
- Localização: Rio de Janeiro
Re: Emissao de Etiqueta em LX-300
Bom dia a todos.
Estou "requentando" o tópico do colega aqui, pois queria uma dica, pois no meu programinha que estou fazendo e que já tiuve a preciosa ajuda de voces aqui, preciso emitir umas etiquetas em impressora LX e em modo Draft. Qual o modo mais simples de fazer? Vcs usam a MiniPrint? Vejo que alguns usam, ela facilita?
Desde já agradeço a ajuda e peço desculpas pela avalanche de tópicos. Como já me disseram, só se aprende fazendo. Mas, progredindo com as ferramentas, sinto que estou gostando de usá-las e me sentindo em casa, como todo velho clippeiro.
Boa semana a todos,
Mario.
Estou "requentando" o tópico do colega aqui, pois queria uma dica, pois no meu programinha que estou fazendo e que já tiuve a preciosa ajuda de voces aqui, preciso emitir umas etiquetas em impressora LX e em modo Draft. Qual o modo mais simples de fazer? Vcs usam a MiniPrint? Vejo que alguns usam, ela facilita?
Desde já agradeço a ajuda e peço desculpas pela avalanche de tópicos. Como já me disseram, só se aprende fazendo. Mas, progredindo com as ferramentas, sinto que estou gostando de usá-las e me sentindo em casa, como todo velho clippeiro.
Boa semana a todos,
Mario.
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Re: Emissao de Etiqueta em LX-300
Mário, em modo Draft você pode continuar imprimindo como era feito no Clipper.
Abraços,
Código: Selecionar todos
SET PRINTER TO LPT1
SET DEVICE TO PRINT
@ 1,1 SAY "Aqui você monta sua etiqueta"
SET PRINTER TO
SET DEVICE TO SCREENToledo - 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
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
- Mario Mesquita
- Usuário Nível 4

- Mensagens: 613
- Registrado em: 08 Dez 2009 13:47
- Localização: Rio de Janeiro
Re: Emissao de Etiqueta em LX-300
Toledo,
Como diz um amigo: "Só isso tudo"? Que beleza! E dá pra usar os CHR(15) e outros, para negrito, compressão, etc?
Que legal. Obrigado de novo pela dica!
Boa semana,
Mario.
Como diz um amigo: "Só isso tudo"? Que beleza! E dá pra usar os CHR(15) e outros, para negrito, compressão, etc?
Que legal. Obrigado de novo pela dica!
Boa semana,
Mario.
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Re: Emissao de Etiqueta em LX-300
Sim, você pode usar os mesmos comandos.Mario Mesquita escreveu:E dá pra usar os CHR(15) e outros, para negrito, compressão, etc?
Agora, se você quiser um relatório em modo gráfico, ai sim você pode utilizar a MiniPrint.
MiniPrint: veja o exemplo anexo a esta mensagem:
https://pctoledo.org/forum/viewto ... 404#p47179
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
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
- Mario Mesquita
- Usuário Nível 4

- Mensagens: 613
- Registrado em: 08 Dez 2009 13:47
- Localização: Rio de Janeiro
Re: Emissao de Etiqueta em LX-300
Toledo,
Eu vi lá. Tem que dar uma parada e olhar direito e farei isso.
De novo, obrigado.
Abraço,
Mario.
Eu vi lá. Tem que dar uma parada e olhar direito e farei isso.
De novo, obrigado.
Abraço,
Mario.
- Mario Mesquita
- Usuário Nível 4

- Mensagens: 613
- Registrado em: 08 Dez 2009 13:47
- Localização: Rio de Janeiro
Re: Emissao de Etiqueta em LX-300
Boa noite a todos.
As dicas sobre impressão foram ótimas, obrigado aos colegas. Mas surgiu um antigo problema do tempo do Clipper. O buffer de impressão retem a etiqueta até fechar o programa ou esperar uma eternidade. No Clipper resolvi com uma pequena lib que vi aqui no fórum, com uma função PRCOMMIT(). Pelo que vi, o Harbour não tem uma coisa pronta para isso. Os colegas já se depararam com isso? E como resolveram?
Desde já, obrigado a todos.
Abraço,
Mario.
As dicas sobre impressão foram ótimas, obrigado aos colegas. Mas surgiu um antigo problema do tempo do Clipper. O buffer de impressão retem a etiqueta até fechar o programa ou esperar uma eternidade. No Clipper resolvi com uma pequena lib que vi aqui no fórum, com uma função PRCOMMIT(). Pelo que vi, o Harbour não tem uma coisa pronta para isso. Os colegas já se depararam com isso? E como resolveram?
Desde já, obrigado a todos.
Abraço,
Mario.
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Emissao de Etiqueta em LX-300
Aqui no fórum encontrei algo, não sei se servirá para seu caso. Mas não custa tentar e nos dizer se funcionou:
https://pctoledo.org/forum/viewto ... 936#p50966 Possível solução alterando REGISTRY
https://pctoledo.org/forum/viewto ... 936#p51481 Outra possível solução baixando e executando tal utilitário.
https://pctoledo.org/forum/viewto ... 936#p51492 Terceira possível solução, criando a função citada.
https://pctoledo.org/forum/viewto ... 936#p50966 Possível solução alterando REGISTRY
https://pctoledo.org/forum/viewto ... 936#p51481 Outra possível solução baixando e executando tal utilitário.
https://pctoledo.org/forum/viewto ... 936#p51492 Terceira possível solução, criando a função citada.
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.
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.
- Mario Mesquita
- Usuário Nível 4

- Mensagens: 613
- Registrado em: 08 Dez 2009 13:47
- Localização: Rio de Janeiro
Re: Emissao de Etiqueta em LX-300
Bom dia a todos.
Valeu Pablo! Vou fuçar e conto como ficou. Obrigado.
Abraço,
Mario.
Valeu Pablo! Vou fuçar e conto como ficou. Obrigado.
Abraço,
Mario.
-
MARCELOG
- Usuário Nível 4

- Mensagens: 546
- Registrado em: 15 Mar 2005 16:54
- Localização: Divinópolis/MG
Re: Emissao de Etiqueta em LX-300
Olá combatente,
atualmente estou usando harbour+minigui+miniprint+sqlite.
Como a miniprint tem a opção de gerar as coordenadas em mm, achei a melhor opção para etiquetas que, normalmente, vêm em formulários contínuos ou folhas soltas.
Ah! E ainda tem a opção de pré-visualização. Demais.
Num arquivo de configuração, gravo as informações do formulário e da última etiqueta utilizada.
As informações para impressão são obtidas do banco de dados e transferidas para uma matriz.
Depois, é só percorrer a matriz e imprimir.
O exemplo abaixo foi elaborado com o xharbour + minigui + tsbrowse + miniprint + postgresql, mas a lógica é a mesma e vai funcionar em outras situações.
MarceloG
atualmente estou usando harbour+minigui+miniprint+sqlite.
Como a miniprint tem a opção de gerar as coordenadas em mm, achei a melhor opção para etiquetas que, normalmente, vêm em formulários contínuos ou folhas soltas.
Ah! E ainda tem a opção de pré-visualização. Demais.
Num arquivo de configuração, gravo as informações do formulário e da última etiqueta utilizada.
As informações para impressão são obtidas do banco de dados e transferidas para uma matriz.
Depois, é só percorrer a matriz e imprimir.
O exemplo abaixo foi elaborado com o xharbour + minigui + tsbrowse + miniprint + postgresql, mas a lógica é a mesma e vai funcionar em outras situações.
Código: Selecionar todos
PROCEDURE PARTEIMPRIME3()
LOCAL aParte, i, nLin, nCol, nEtq, x, nColunas, nLinhas, cCodigo, cQuery, oQuery
//, nString, aEstado, cLinha
IF FILE('c:\divijuri\divijuri.cfg')
hCfg := HB_READINI('c:\divijuri\divijuri.cfg')
hCfg['ETIQUETA']['SUPERIOR'] := NTRIM(ETIQUETA.SPN1.VALUE)
hCfg['ETIQUETA']['ESQUERDA'] := NTRIM(ETIQUETA.SPN2.VALUE)
hCfg['ETIQUETA']['LARGURA'] := NTRIM(ETIQUETA.SPN3.VALUE)
hCfg['ETIQUETA']['ALTURA'] := NTRIM(ETIQUETA.SPN4.VALUE)
hCfg['ETIQUETA']['ESPACOH'] := NTRIM(ETIQUETA.SPN5.VALUE)
hCfg['ETIQUETA']['ESPACOV'] := NTRIM(ETIQUETA.SPN6.VALUE)
hCfg['ETIQUETA']['LINHAS'] := NTRIM(ETIQUETA.SPN7.VALUE)
hCfg['ETIQUETA']['COLUNAS'] := NTRIM(ETIQUETA.SPN8.VALUE)
hCfg['ETIQUETA']['FONTE'] := NTRIM(ETIQUETA.SPN9.VALUE)
ENDIF
IF !HB_WRITEINI('c:\divijuri\divijuri.cfg',hCfg)
MSGSTOP('Desculpe, mas nÆo foi poss¡vel gravar'+CRLF+'informa‡äes no arquivo.')
ENDIF
IF PARTEIMPRIME.RDG2.VALUE == 1 // Este
OTBR:ASELECTED := {OTBR:NAT}
ELSEIF PARTEIMPRIME.RDG2.VALUE == 2 // Selecionado(s)
// NÆo faz nada
ELSEIF PARTEIMPRIME.RDG2.VALUE == 3 // Todos
OTBR:ASELECTED := {}
FOR i := 1 TO OTBR:NLEN
AADD(OTBR:ASELECTED,i)
NEXT i
ENDIF
aParte := {}
FOR i := 1 TO LEN(OTBR:ASELECTED)
cCodigo := OTBR:AARRAY[OTBR:ASELECTED[i],1]
// 1 2
cQuery := 'SELECT BTRIM(parte),BTRIM(endereco) '+;
'FROM parte '+;
"WHERE codigo='" + cCodigo + "'"
oQuery := oServer:QUERY(cQuery)
IF oQuery:NETERR()
MSGSTOP(PROCFILE()+CRLF+PROCNAME()+CRLF+NTRIM(PROCLINE())+CRLF+oQuery:ERRORMSG())
oQuery:DESTROY()
END PAGE
END DOC
RELEASE PRINTSYS
OTBR:ASELECTED := {}
RETURN
ENDIF
AADD(aParte,{oQuery:GETROW(1):FIELDGET(1),;
ALLTRIM(MEMOLINE(oQuery:GETROW(1):FIELDGET(2),79,1)),;
ALLTRIM(MEMOLINE(oQuery:GETROW(1):FIELDGET(2),79,2)),;
ALLTRIM(MEMOLINE(oQuery:GETROW(1):FIELDGET(2),79,3)),;
ALLTRIM(MEMOLINE(oQuery:GETROW(1):FIELDGET(2),79,4))})
NEXT i
oQuery:DESTROY()
INIT PRINTSYS
SELECT PRINTER PARTEIMPRIME.CMB1.ITEM(PARTEIMPRIME.CMB1.VALUE) PREVIEW
IF HBPRNERROR > 0
RETURN
ENDIF
SET PREVIEW RECT 0,0,GETDESKTOPHEIGHT(),GETDESKTOPWIDTH()
DEFINE FONT 'FONTETQ' NAME 'Courier New' SIZE ETIQUETA.SPN9.VALUE
// DEFINE PEN 'P0' STYLE PS_DOT WIDTH 1 COLOR 0x000000
// DEFINE PEN 'P1' STYLE PS_SOLID WIDTH 1 COLOR 0x000000
SET UNITS MM
IF PARTEIMPRIME.RDG1.VALUE == 1 // Retrato
SET PREVIEW SCALE 2
SET ORIENTATION PORTRAIT
ELSE
SET PREVIEW SCALE 1
SET ORIENTATION LANDSCAPE
ENDIF
// A impressÆo come‡a aqui!!!
START DOC NAME HB_OEMTOANSI('Etiqueta de Parte')
START PAGE
nLin := ETIQUETA.SPN1.VALUE
nCol := ETIQUETA.SPN2.VALUE
nEtq := 1
FOR i := 1 TO INT(ROUND(LEN(aParte)/ETIQUETA.SPN8.VALUE,0)) // Linhas = registros : colunas
IF nEtq > LEN(aParte)
EXIT
ENDIF
FOR x := 1 TO ETIQUETA.SPN8.VALUE // Colunas
IF nEtq > LEN(aParte)
EXIT
ENDIF
@ nLin+2,nCol SAY aParte[nEtq,1] FONT 'FONTETQ' ALIGN TA_LEFT TO PRINT
@ nLin+2 + (ETIQUETA.SPN4.VALUE-4)/5,nCol SAY aParte[nEtq,2] FONT 'FONTETQ' ALIGN TA_LEFT TO PRINT
@ nLin+2 + ((ETIQUETA.SPN4.VALUE-4)/5*2),nCol SAY aParte[nEtq,3] FONT 'FONTETQ' ALIGN TA_LEFT TO PRINT
@ nLin+2 + ((ETIQUETA.SPN4.VALUE-4)/5*3),nCol SAY aParte[nEtq,4] FONT 'FONTETQ' ALIGN TA_LEFT TO PRINT
@ nLin+2 + ((ETIQUETA.SPN4.VALUE-4)/5*4),nCol SAY aParte[nEtq,5] FONT 'FONTETQ' ALIGN TA_LEFT TO PRINT
nEtq++
nCol += (ETIQUETA.SPN3.VALUE+ETIQUETA.SPN5.VALUE)
NEXT x
nLin += (ETIQUETA.SPN4.VALUE+ETIQUETA.SPN6.VALUE)
nCol := ETIQUETA.SPN2.VALUE
IF i % ETIQUETA.SPN7.VALUE == 0 // Linhas
END PAGE
START PAGE
nLin := ETIQUETA.SPN1.VALUE
nCol := ETIQUETA.SPN2.VALUE
ENDIF
NEXT i
END PAGE
END DOC
RELEASE PRINTSYS
ATIVIDADE('SOLICITOU IMPRESSAO DE ETIQUETA')
OTBR:ASELECTED := {}
OTBR:REFRESH(.T.)
RETURNÁgua mole em pedra dura tanto bate que até espirra!
- Mario Mesquita
- Usuário Nível 4

- Mensagens: 613
- Registrado em: 08 Dez 2009 13:47
- Localização: Rio de Janeiro
Re: Emissao de Etiqueta em LX-300
Boa noite a todos.
Valeu, MarceloG. A codificação parece sofisticada, complexa. Vale como estudo da MiniPrint. As etiquetas que estou fazendo são supersimples e diretas em impressora matricial em modo Draft. Como é pra atendimento a púbilco, com volume elevado de impressões, a impressão direta me resolve fácil. Mas como quero entender a MiniPrint para uso futuro, muito obrigado pela luz.
Abraço,
Mario.
Valeu, MarceloG. A codificação parece sofisticada, complexa. Vale como estudo da MiniPrint. As etiquetas que estou fazendo são supersimples e diretas em impressora matricial em modo Draft. Como é pra atendimento a púbilco, com volume elevado de impressões, a impressão direta me resolve fácil. Mas como quero entender a MiniPrint para uso futuro, muito obrigado pela luz.
Abraço,
Mario.