Página 4 de 7
Imprimir condensado usando WIN_PRN
Enviado: 08 Dez 2015 19:24
por microvolution
então... gostaria que os Srs. fizessem o teste do jeito que estão me pedindo para verificar se em vossas máquinas o arquivo é criado como se estivesse usando uma macro substituição ou não.
Bom, mesmo sem entender como V.Sas. entendem, usando a "macro" e da seguinte forma, funcionou, pois o arquivo 0001.tmp foi criado. Vejam:
.
E aí, é por isso que já disse que não entendi como fazer o que preciso sem usar a MACRO substituição... alguém consegue uma ideia que funcione sem a MACRO?
:% vlw
Imprimir condensado usando WIN_PRN
Enviado: 08 Dez 2015 19:46
por Toledo
Ok, então a primeira coisa a fazer é entender o que você fez... vamos analisar o seu código:
Nesta linha de comando você está criando uma variável chamada
vendas com o conteúdo (valor) de StrZero(mCDCLIENTE,4) + ".TMP", então por exemplo se o valor de mCDCLIENTE for 200 então a variável
vendas será o mesmo que
"0200.TMP"
Já nesta linha você está criando um arquivo chamado
"vendas" (sem extensão) com o conteúdo da variável
cCupom.
Bom, o correto seria:
Código: Selecionar todos
cVendas := StrZero(mCDCLIENTE,4)+".TMP"
MemoWrit( cVendas, cCupom )
Observe que eu retirei as
" que você tinha colocado no nome da variável vendas (que renomeei para cVendas) que você passou como primeiro parâmetro da função MemoWrite().
A melhor coisa é sempre tentar entender o que está fazendo.
Abraços,
Imprimir condensado usando WIN_PRN
Enviado: 09 Dez 2015 14:39
por microvolution
"oia nóis aki traveis"...
boa tarde!
é o seguinte, coloquei junto ao código do início deste tópico (lá da página 1), o seguinte:
Código: Selecionar todos
oPrn := Win_Prn():New(cPrint)
oPrn :SetColor( HB_WIN_RGB_RED ) // ESTA É A LINHA DA COR DA FONTE QUE NÃO MUDA DE JEITO ALGUM.
oPrn :Copies := 1
oPrn :CharSet(255)
Observem que o que coloquei e que está bem destacado foi a tentativa de mudança de cor, mas, sem sucesso pois aconteceram algumas coisas estranhas:
1 - se eu colocar o
setcolor (HB_WN_RGB)_xxx), onde xxx é o nome da cor, que pode ser: BLAC, BLUE, GREEN, etc... não muda nada, ou seja, a impressora continua a imprimir na cor preta.
2 - se o comando acima não for inclusa no módulo aqui presente a chamada #include 'bhwin.ch' dá uma mensagem de erro, mesmo se ela já estiver colocada no módulo main.
3 - já troquei entre as diversas cores (nomes de cores BLACK, BLUE, GREEN, YELLOW, etc) e nenhum mudou.
4 - minha impressora é HP C4280 usb;
5 - Se eu colocar apenas o nome da cor, exemplo: RGB_RED e não colocar antes (e junto) o HB_WIN_ dá uma mensagem de erro também.
Enfim, o que fazer, pois não achei nenhum tutorial que ensine como colocar a cor, a não ser pouca coisa em xharbour usando a WIN32PRN.
Vlw!
Imprimir condensado usando WIN_PRN
Enviado: 09 Dez 2015 15:17
por microvolution
última informação:
TOLEDO DISSE: no tópico
função SetFont em 2012:::
Inacio, tenta fazer o seguinte:
- Mova a linha 3 do seu código para a linha 12.
- Retire o espaço que existe entre o objeto e a função, por exemplo oPrn :Create() ficaria assim oPrn:Create(). Faça o mesmo com as demais funções.
Mesmo com a instrução acima que está no tópico:
https://pctoledo.org/forum/viewto ... =4&t=13631 não funciona o SETCOLOR.
Aguardo...
Imprimir condensado usando WIN_PRN
Enviado: 09 Dez 2015 15:20
por Toledo
Segue um exemplo:
Código: Selecionar todos
#include "hbwin.ch"
Function Main()
oPrinter:=Win_Prn():new( "PDFCreator" )
oPrinter:Create()
oPrinter:StartDoc("Teste")
oPrinter:SetColor( HB_WIN_RGB_RED )
oPrinter:newline()
oPrinter:setfont('Courier New')
oPrinter:TextOut("IMPRIMINDO NA COR VERMELHA")
oPrinter:EndDoc()
oPrinter:Destroy()
Return Nil
ATENÇÃO: neste exemplo estou enviando a impressão para o PDFCreator, então troque no código acima
"PDFCreator" por
cPrint.
Abraços,
Imprimir condensado usando WIN_PRN
Enviado: 09 Dez 2015 15:29
por microvolution
ops...
pra acrescentar fiz o seguinte teste também (lembrando que usava a hmg 3.0.35 e agora uso a 3.0.46 p/compilar/linkeditar):
#include "hbwin.ch" // se mudar p/
// #require "hbwin" // não reconhece as cores do setcolor e dá a mensagem de erro de variável inexistente.
enfim, e agora José, ou melhor, Toledo, Eolo, Quintas, Sygecom, Itamar, Antônio, etc, etc, etc???
Imprimir condensado usando WIN_PRN
Enviado: 09 Dez 2015 16:47
por JoséQuintas
Está esquecendo de usar a cabeça.
Por acaso pelo menos pensou em alterar de 160 colunas pra 132 colunas?
Abaixo , numa alteração rápida, alterado pra 132 colunas.
Código: Selecionar todos
Nao Vale Como Cupom Fiscal
==================================================================================================================================
Sistema de Controle Comercial Avancado - SiCCA v3.4.3 - todos os direitos reservados 1998/2015!5
----------------------------------------------------------------------------------------------------------------------------------
DOCUMENTO AUXILIAR DE VENDA - ORDEM DE SERVI€O VEICULAR (O.S.V.) - v1.2
NAO EH VALIDO COMO RECIBO E/OU COMO GRANTIA DE MERCADORIA(S)
ESTE DOCUMENTO NAO COMPROVA PAGAMENTO
---------------------------------------------------------------------------------------------------------------------------------
MVINFO Sistemas & Automa‡ão - teste1 - (31)3824-1556
05/06/2015 16:42:01
----------------------------------------------------------------------------------------------------------------------------------
O.S.V. Numero... : 000001
D A D O S D O C L I E N T E
Cliente.. : 0001-W
Endereco. : DESC - 111
Bairro... : DESC
Fone..... : ( ) -
----------------------------------------------------------------------------------------------------------------------------------
D A D O S D O V E I C U L O
Marca/Modelo.....: FIAT / UNO MILLE FIRE 1.0 Placas......: XXX-NNNN Extintor(S/N) S Combustivel...: GASOLINA
Ano Fabric/Modelo: 2004 / 2005
Data/Hora Entrada: 28/05/2015 / 03:00:21 KM Entrada..: 141 Vend./Mecanico: 01-W - SYSTEM ADM
Data/Hora Saida..: / / / KM Saida....: 0 Operador......:01-W - SYSTEM ADMINIS
DEFEITO(S) RECLAMADO(S): STATUS O.S.V.: 1
Observacoes.: 2PORTAS - MOTOR 1.0 - C/ ALARME, SOM, MàDULO ROADSTAR 1000W, GRADE FRONTAL QUEBRADA, CAPUT TRAZEIRO.
----------------------------------------------------------------------------------------------------------------------------------
P E C A S / P R O D U T O S
CODIGO DESCRICAO DO PRODUTO/PECA QUANT GRADE VR. UNITARIO VR. TOTAL %DESC. VR.DESC.
Sub-Total. 0,00
----------------------------------------------------------------------------------------------------------------------------------
S E R V I C O S / M A O D E O B R A
CODIGO DESCRICAO DO SERVICO QUANT VR. UNITARIO VR. TOTAL %DESC. VR.DESC.
Sub-Total. 0,00
----------------------------------------------------------------------------------------------------------------------------------
Total Bruto. 0,00
Desconto.. 0,00 Total a Pagar..... 0,00
----------------------------------------------------------------------------------------------------------------------------------
Ass.: ___________________________________________________
----------------------------------------------------------------------------------------------------------------------------------
EH VEDADA A AUTENTICACAO DESTE DOCUMENTO
= MVinfo Sistemas - (31) 3824.1556 / 9711.1556 / 8854.1556 / 8758.1556 Copyrigth 1998-2015 =======================================
Imprimir condensado usando WIN_PRN
Enviado: 09 Dez 2015 16:58
por JoséQuintas
E como destaque: o maior problema está sendo o fonte precisando de revisão, pois está com dificuldades em encontrar o arquivo gerado.
De repente, fazendo a revisão primeiro, vai encontrar seu arquivo.
Pergunta: se gerar em PDF não seria melhor? ou só vai ser usada impressora matricial?
Se PDF resolver, tem rotina pronta no fórum pra relatórios 132 colunas em PDF, ou até um pouco mais que isso.
Imprimir condensado usando WIN_PRN
Enviado: 09 Dez 2015 20:16
por microvolution
olá professor JoséQuintas, obrigado mais uma vez...
mas, acho que V.Sa. equivocou-se ao usar um formulário de outro programa meu, para falar das minhas últimas dúvidas.
No caso de hoje, preciso saber a questão da cor que não está mudando (setando) pois só está imprimindo preto.
A necessidade apareceu, pois minha jato e tinta acabou exatamente o preto e com isso, pensei em criar uma forma de que o usuário escolha entre umas 4 opções (preto,verde, azul, vermelho, etc...).
então o objeto :SETCOLOR não está funcionando...
inté +!
Imprimir condensado usando WIN_PRN
Enviado: 09 Dez 2015 21:11
por Toledo
microvolution escreveu:então o objeto :SETCOLOR não está funcionando...
Amigo, preste atenção, veja o meu exemplo.
A propriedade :SETCOLOR funciona sim!
Abraços,
Imprimir condensado usando WIN_PRN
Enviado: 09 Dez 2015 21:43
por JoséQuintas
Passei o post desde o começo, e nessas horas a gente acaba pulando alguns pra ganhar tempo, e me confundi.
Se não me engano, a tinta preta é usada pra criar as tonalidades do colorido, e não pode faltar.
Imprimir condensado usando WIN_PRN
Enviado: 09 Dez 2015 22:38
por microvolution
Toledo escreveu:Amigo, preste atenção, veja o meu exemplo.
Prezado Toledo, desculpa, pois não havia visto o seu exemplo.
Bom, compilei-o e descobri algumas coisas "extranhas":
1 - se compilar com a HMG 3.0.35 tenho que mudar de setcolor(HB_WIN_RGB_xxx) para simplesmente "RGB_xxx";
2 - se compilar no braço (usando CMD) desta forma: hbmk2 teste2.prg hbwin.hbc o setcolor tem que ser o inverso do citado sobre a HMG acima;
3 - ao executar por uma pasta do windows (win explorer) a tela preta abre e fecha imediatamente e não imprime nada (mesmo colocando o cPRINT);
4 - se executar pelo CMD (que já é uma tela preta) também nada acontece.
Então, resolvi colocar uma pausa na penúltima linha (antes do return nil) pra ver o que acontecia, então só apareceu PRESSIONE UMA TECLA PARA CONTINUAR... mas impressão mesmo... nada!
Na tentativa desesperada de vários testes e já há várias horas no computador (tô igual viciado) desde o nascer do sol até o entardecer, ou melhor à meia noite quase todos os dias, então, com os olhos já não vendo quase nada e a mente sem entender mais o que fazer, FIZ a seguinte alteração para tentar imprimir em todas as cores:
#include "hbwin.ch"
Código: Selecionar todos
Function Main()
oPrinter:=Win_Prn():new( "cPrint" )
oPrinter:Create()
oPrinter:StartDoc("Teste")
oPrinter:SetColor( HB_WIN_RGB_RED )
oPrinter:newline()
oPrinter:setfont('Courier New')
oPrinter:TextOut("IMPRIMINDO NA COR VERMELHA")
oPrinter:SetColor( HB_WIN_RGB_BLUE )
oPrinter:TextOut("IMPRIMINDO NA COR AZUL")
oPrinter:SetColor( HB_WIN_RGB_GREEN )
oPrinter:TextOut("IMPRIMINDO NA COR VERDE")
// oPrinter:SetColor( RGB_YELLOW )
// oPrinter:TextOut("IMPRIMINDO NA COR AMARELA")
oPrinter:EndDoc()
oPrinter:Destroy()
wait
Return Nil
INFELIZMENTE nada de impressão (ah! a impressora está ligada).
ufa!!! que cansaço meu Deus!
Imprimir condensado usando WIN_PRN
Enviado: 09 Dez 2015 23:03
por JoséQuintas
Já usou o debug do Clipper?
Pode usar igual no Harbour e acompanhar linha a linha.
Imprimir condensado usando WIN_PRN
Enviado: 10 Dez 2015 00:13
por Eolo
Não tá faltando dizer pra qual printer vai o job, antes da Win32prn?
Ou, onde voce faz
oPrinter:=Win_Prn():new( "cPrint" )
"cPrint" é o nome da impressora?
Como eu uso, apontando para a printer padrão do Windows:
padrao=getdefaultprinter()
oPrinter := Win32Prn():new(padrao)
etc...
Imprimir condensado usando WIN_PRN
Enviado: 10 Dez 2015 08:08
por Toledo
Amigo, quando falei que era para trocar PDFCreator por cPrint, eu presumi que a sua variável cPrint já tinha o nome da impressora. Conforme observação do nosso amigo Eolo, na função Win_Prn():new tem que passar o nome da impressora onde você vai imprimir o relatório, neste caso segue um outro exemplo:
Código: Selecionar todos
#include "hbwin.ch"
Function Main()
cNomeImpressora:=WIN_PRINTERGETDEFAULT()
oPrinter:=Win_Prn():new( cNomeImpressora )
oPrinter:Create()
oPrinter:StartDoc("Teste")
oPrinter:SetColor( HB_WIN_RGB_RED )
oPrinter:newline()
oPrinter:setfont('Courier New')
oPrinter:TextOut("IMPRIMINDO NA COR VERMELHA")
oPrinter:newline()
oPrinter:SetColor( HB_WIN_RGB_BLUE )
oPrinter:TextOut("IMPRIMINDO NA COR AZUL")
oPrinter:newline()
oPrinter:SetColor( HB_WIN_RGB_GREEN )
oPrinter:TextOut("IMPRIMINDO NA COR VERDE")
oPrinter:EndDoc()
oPrinter:Destroy()
Return Nil
Abraços,