Funçao ISPRINTER()

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

Moderador: Moderadores

Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Funçao ISPRINTER()

Mensagem por rochinha »

Amiguinhos,

Agora são 18:00hs no meu comutador, notebook e Samgung.

As funções GetProfString devem fazer parte da xHB.lib, basta acrescentá-la as chamadas do ligador.

Meu fuso estava confuso e salvou minhas mensagens com 1 hora de atraso.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Funçao ISPRINTER()

Mensagem por microvolution »

rochinha escreveu:As funções GetProfString devem fazer parte da xHB.lib, basta acrescentá-la as chamadas do ligador.
prezado professor Rochinha... não tô entendendo nada!
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!
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Funçao ISPRINTER()

Mensagem por rochinha »

Amiguinhos,

microvolution
Acrescente a xHB.lib ao seu batch de compilação.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Funçao ISPRINTER()

Mensagem por microvolution »

rochinha escreveu:Acrescente a xHB.lib ao seu batch de compilação.
como eu disse anteriormente, não estou entendendo nada... o que tem a ver XHB e quais códigos devo acrescentar que dependem de XHB, pois não acrescentei nada...
reveja os meus últimos comentários por favor, para verificar se estamos falando a mesma coisa! please!
ou seu perfil foi hackeado (como diz o asimoes)?
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: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Funçao ISPRINTER()

Mensagem por microvolution »

boa noite a todos!
prezado professor asimoes:
fiz o primeiro teste (idêntico ao código que V.Sa. postou) do TRY.CATCH e não deu certo. Veja a mensagem de erro:

Código: Selecionar todos

pci10001.prg(3350) Error E0020  Incomplete statement or unbalanced delimiters // linha do TRY
pci10001.prg(3354) Error E0020  Incomplete statement or unbalanced delimiters // linha do CATCH
pci10001.prg(3388) Error E0011  ENDDO does not match WHILE
Como não entendo nada da sintaxe do try.catch... não tenho nem ideia do que esteja errado.
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!
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Funçao ISPRINTER()

Mensagem por asimoes »

Microvolution,

Mostre o seu código que vou dizer onde você está errando.


Obs.: Você tem que incluir no incio do seu fonte:

#include "hbcompat.ch"
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Funçao ISPRINTER()

Mensagem por asimoes »

Outra coisa,

Cria um programa simples para testar

Código: Selecionar todos

#include "hbcompat.ch"
FUNCTION MAIN
   Try
      SET PRINTER TO LPT1
      SET PRINT ON
   Catch
      Alert("Erro na impressão")
      //Aqui você coloca os seus controles
   End
RETURN Nil
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Funçao ISPRINTER()

Mensagem por microvolution »

asimoes escreveu:Mostre o seu código que vou dizer onde você está errando.
o código é o mesmo que vc alterou pra mim, lembra? pra evitar de vc procurar, olha-o novamente aqui:

Código: Selecionar todos

      do while lastkey () <> K_ESC
           try
               SET DEVICE TO PRINTER 
               SET PRINTER TO LPT1
               SET PRINT ON
           catch
            if .not. CONFIRMA3 ( 'A Impressora Matricial LPTx Est  Pronta?' , 1 , 'SiCCA v3.6 - Verifique Sua Impressora Matricial (paralela)' ) == 1
               if .not. CONFIRMA3 ('Deseja Ent„o Usar Outra Impressoras Instaladas ( USB, em Rede, etc) ? ',1,'SiCCA v3.6 - Impressoras Alternativas') == 1
                  * Abandona o programa // acrescentada p/ parar erro na RIMPR000 na função CONFIG_COMANDO (linha 300) 14/12/15w
                  keyboard chr (K_ESC) // acrescentada p/ parar erro na RIMPR000 na função CONFIG_COMANDO (linha 300) 14/12/15w
                  inkey () // acrescentada p/ parar erro na RIMPR000 na função CONFIG_COMANDO (linha 300) 14/12/15w
                  lUSB := .f.
                  return .f.
                  exit // acrescentada p/ parar erro na RIMPR000 na função CONFIG_COMANDO (linha 300) 14/12/15w
               else // acrescentada p/ parar erro na RIMPR000 na função CONFIG_COMANDO (linha 300) 14/12/15w
                  lUSB := .t.
                  mUSBPRN := substr (dtos(date()),3,2) + substr (dtos(date()),5,2) + left (time(),2) + substr (time(),4,2) + right (time(),2)
                  exit
               endif
                * Abandona o programa
           endif
         end
      enddo
As linhas acima são as que estão no meu aplicativo...
asimoes escreveu:
Obs.: Você tem que incluir no incio do seu fonte:
#include "hbcompat.ch"
Isto eu não sabia... aliás nem sabia que existia o try.catch.end no harbour... sei que existe no delphi, mas, aqui não!
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: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Funçao ISPRINTER()

Mensagem por microvolution »

asimoes escreveu:Cria um programa simples para testar
bom dia a todos!
fiz o pequeno exemplo e incluí para funcionar a lib XHB.HBC.
Bom, no windows 10/64 já testei...
Nessa versão do windows, não possuo impressora LPTx instalada, somente uma HP c4280 (USB).
E a mensagem de erro apareceu:

Código: Selecionar todos

   Alert("Erro na impressão")
Falta testar no windows xp/32 onde tenho uma EPSON LX300 instalada (LPTx) e vou fazer o teste com ela ligada e desligada.
Assim, que eu puder fazer, postarei os resultados!
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: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Funçao ISPRINTER()

Mensagem por microvolution »

microvolution escreveu:Falta testar no windows xp/32 onde tenho uma EPSON LX300 instalada (LPTx) e vou fazer o teste com ela ligada e desligada.
bom, testei, e infelizmente deu o mesmo problema que acontecia em qualquer outro teste com outras funções...
- se a impressora estiver ligada = o resultado é que não aparece a tal mensagem de erro que aconteceu no win 10/64 bits;
- se a impressora estiver DESLIGADA = o resultado é que não aparece a tal mensagem de erro que aconteceu no win 10/64 bits.
Estava pensando aqui... o Viktor e outros lá do google groups users
Bom, quando ainda estava no clipper (16 bits) a coisa funcionava perfeitamente, foi só após a migração para harbour (32 bits) é que a coisa mudou...
então, o problema está que quando a Microsoft ou sei lá quem criou esse 32 bits, mudou alguma coisa no hardware que não mais aceita o jeito que o MSDOS (16 bits) interpretava as portas LPTx/COMx...
no MSDOS pelo que o Viktor me respondeu é feita uma leitura diretamente da BIOS, já no 32 bits (windows) isso é feito pela instalação da impressora.
Se ela está instalada é o que interessa (para o windows), mas, para mim, o que interessa é se a impressora está ligada ou não (on line ou off line).
Obrigado asimoes, mas, infelizmente não deu também, e, agora realmente desisto. Desde a última postagem estou aqui quebrando cabeça, lendo, testando, mas, nada, funciona. E, não é só aqui no meu laboratório, também lá no meu cliente onde possui muitas máquinas instaladas...
Bom, vou continuar com minha variável pública, onde o usuário (cliente e seus funcionários) definem no menu CONFIGURAÇÕES/PARÂMETROS se vai usar ou não impressora matrcial.
Agora, pretendo melhorar isso, pois atualmente em todos os relatórios (exceto em 4 telas) antes da impressão, é oferecido para o usuário o seguinte:

Código: Selecionar todos

IMPRIMIR - VÍDEO - ARQUIVO
Pretendo mudar, que aí fica uma coisa padrão a todos os módulos:

Código: Selecionar todos

IMPRIMIR LPTx - IMPRIMIR IMPRESSORAS WINDOWS - VÍDEO - ARQUIVO
Creio que assim, resolvo meu problema em todos os módulos de relatórios do sistema.
Abraços, e vamos ver se encontramos outra coisa melhor!
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!
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Funçao ISPRINTER()

Mensagem por asimoes »

Você desiste fácil. Enfim!
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Funçao ISPRINTER()

Mensagem por rochinha »

Amiguinhos,

Vamos mais fundo.

Teste e veja o que acontece. Faça screenshots e nos mostre.

Descompacte, entre na subpasta e execute o aplicativo.

Teste na máquina que tem impressora física, depois teste em uma máquina que acessa uma impressora matricial pela rede, ou seja, de uma máquina na rede você acessa a impressora matricial conectada a outra máquina.
Anexos
PortaParalela.rar
Controle de Porta Paralela
(174.89 KiB) Baixado 77 vezes
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Funçao ISPRINTER()

Mensagem por asimoes »

Microvolution,

Uma dica, não sei se você faz assim.

Quando eu quero testar uma função do harbour ou minha, eu sempre crio um programa teste tipo:

Código: Selecionar todos

FUNCTION MAIN
   altd() // para debugar
   Funcao() //a função ou situação que eu quero testar.
RETURN Nil
Quando está ok e livre de bug, eu porto a função ou procedure para o sistema que eu quero utilizar.

Fica mais fácil e rápido o entendimento.

Outra coisa, eu não sou um expert em c++ ou C mas quando uma função não existe no harbour eu vou google e tento fazer observando o que já existe no harbour, hmg, hwgui, minigui e tento fazer. Eu já fiz varias!
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Funçao ISPRINTER()

Mensagem por asimoes »

Achei muita informação útil na págima do fivewin
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Funçao ISPRINTER()

Mensagem por Nascimento »

Amigos olha oque ta na atualizaçao do harbour

2016-03-08 22:10 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/isprint.c
! HB_ISPRINTER(), ISPRINTER() fix to open the port name with CREATE
flag (= CREATE_ALWAYS on Windows). It may fix port detection in
certain situations. Tested on Windows 7 x86 and x64, whereas it
will now return .T. if the port is associated with a queue,
and .F. if it isn't. It seems to cause no harm on OS X. Please
test it on other systems and other LPT scenarios (f.e. with real
hardware device attached).
; borrowed from Viktor's fork: 2016-03-08 18:19 UTC+0100 Viktor Szakats
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Responder