Página 42 de 51

A WAPI.LIB do Maligno é compatível com Clipper 5.2e ???

Enviado: 04 Mai 2008 05:32
por adilson
E porque ao executar o PRINTFILE(), está dando erro undefined function DISKNAME, e mesma so a vi no cliper 5.3 tem como resolver isto ??

meus agradecimentos a todos.

:{

Re: A WAPI.LIB do Maligno é compatível com Clipper 5.2e ???

Enviado: 04 Mai 2008 13:06
por Pablo César
A WAPI.LIB do Maligno é compatível com Clipper 5.2e ???
Totalmente compatível.
E porque ao executar o PRINTFILE(), está dando erro undefined function DISKNAME
Pela simples razão que precisa dessa função e na versão 5.2 do Clipper não possue. Mas se utilizares a biblioteca CT.LIB você vai conseguir perfeitamente.

A documentação de todo o trabalho que envolve a WAPI, na minha opinião é farta de informação e de fácil comprensão, dificil ver isso em software livres. A utilização da WAPI.LIB em certas funções exigem o uso de outras bibliotecas externas que o Clipper não possui e que para auxiliar o funcionamento das funções da WAPI. Se bem que no \lib\todo.txt (TODOLIST da WAPI) o Maligno menciona "Remover a dependência das bibliotecas CATools e NanFor".

Outra forma de utilizar as funções do WAPI seria utilizar o RUN/SWAPRUNCMD WAPI.EXE -<função> que também funciona, embora utilizando-se da WAPI.LIB e chamar as funções diretamente você reduziria as margens de erros pois a biblioteca tem muitos procedimentos de verificação de parametrização e análise de erros durante a execução. Mas enfim, está aí o grandioso trabalho do Maligno e pode ser utilizado da forma que você achar melhor e ainda gratuitamente. Aconselho ao colega dar uma olhada nos exemplos, na documentação de todo o pacote da WAPI.

Re: A WAPI.LIB do Maligno é compatível com Clipper 5.2e ???

Enviado: 04 Mai 2008 19:23
por filizola
seria legal se pudessem ser removidas estas dependencias. tem como fazê-lo?


rtlink fi t1 lib wapi
.RTLink for Clipper Dynamic Overlay Linker / Pre-Linker Version 3.14B
(C) Copyright Pocket Soft Inc., 1988-1991. All Rights Reserved.


UNDEFINED SYMBOL(S) AFTER LIBRARY SEARCH:
SYMBOL FIRST REFERENCE
------ ---------------
'SWPRUNCMD' WAPI.LIB
'DIRCHANGE' WAPI.LIB
'DIRMAKE' WAPI.LIB
'DIRNAME' WAPI.LIB
'DISKNAME' WAPI.LIB
'RAND' WAPI.LIB
'RANDOM' WAPI.LIB

warning wrt0022: .EXE may not execute properly -- undefined symbols
169K
1 warning message(s)

Re: A WAPI.LIB do Maligno é compatível com Clipper 5.2e ???

Enviado: 05 Mai 2008 03:23
por Maligno
filizola escreveu:seria legal se pudessem ser removidas estas dependencias. tem como fazê-lo?
Sim. Tanto tem que essa tarefa faz parte da TODO list do projeto. É só uma questão de tempo. :)

Re: WAPI v1.03 - Funções da API do Windows.. a tela minimiza ...

Enviado: 05 Mai 2008 05:12
por adilson
ok ! pessoal valeu pela informacao(funcionou) muito obrigado! , so mais uma coisa (please) , porque apos usar a funcao PRINTFILE(), o sistema e minimizado ?? alias usando tb o DOSPRINT, ou qq outro meio para a impressao em usb , no meu caso uso (Windows Xpessimo)e impressoa lexmark z13 (hui), tem como resolver isto ?? , ja garimpei na net e nada . caso os nobres colegas souberem alguma dica, porfavor ..

obrigado a todos....

:{

Re: WAPI v1.03 - Funções da API do Windows

Enviado: 05 Mai 2008 08:43
por Netavin
Bom dia amigos!
Malígno, não consigo acessar http://buzinello.com/download/wapi.zip.
Erro 404.

:|

[]´s

Netavin

Enviado: 05 Mai 2008 10:55
por Maligno
Já não é mais esse diretório há muito tempo. Agora é:
http://pub.buzinello.com/index.php?d=./ ... pper/libs/

Re: WAPI v1.03 - Funções da API do Windows.. a tela minimiza ...

Enviado: 05 Mai 2008 11:31
por Maligno
adilson escreveu:porque apos usar a funcao PRINTFILE(), o sistema e minimizado ?? alias usando tb o DOSPRINT, ou qq outro meio para a impressao em usb , no meu caso uso (Windows Xpessimo)e impressoa lexmark z13 (hui), tem como resolver isto ??
É muito estranho. O DOSPrint nunca usei, mas com a WAPI isso não me acontece. Mas se, ao começar a imprimir, o sistema muda para o modo janela, provavelmente é porque alguma janela do Windows recebeu o foco do SO. Quando isso acontece aparece alguma janela?

Re: WAPI v1.03 - Funções da API do Windows

Enviado: 05 Mai 2008 13:52
por adilson
maligno boa tarde , no meu caso estou usando uma lexmark z513 ela estava abrindo o gerenciador
LEXMARK desativei, mas mesmo assim agora quando o sistema volta meia tela, ai usei o setmode(25,80) e resolveu esta parte, e agora ele minimiza meu programa na barra do menu iniciar.

Outra Coisa : a Funcao PRINTFILE() esta enviando corretamente para o spooler ai parece
imprimindo,excluindo ... ok ,so que nada sai no papel , segundo o suporte do fabricante, a mesma alega que esta impressoras nao emulam TEXTOS MSDOS. isto sera Verdade??


grato ate aqui pela grande ajuda de VOCE e ao DEMAIS menbros..


obrigado...

Enviado: 05 Mai 2008 14:15
por Maligno
adilson escreveu:estou usando uma lexmark z513 ela estava abrindo o gerenciador
LEXMARK desativei, mas mesmo assim agora quando o sistema volta meia tela, ai usei o setmode(25,80) e resolveu esta parte, e agora ele minimiza meu programa na barra do menu iniciar.
Minha impressão processa como se ela realmente fosse feita pelo Clipper. Nem minimiza ou troca o modo para janela. Esse é o comportamento normal, a não ser, claro, na hipótese que mencionei: um aplicativo Windows recebe o foco a partir do momento em que a impressão é iniciada. No demais, não poderia/deveria sequer minimizar.
segundo o suporte do fabricante, a mesma alega que esta impressoras nao emulam TEXTOS MSDOS. isto sera Verdade??
Totalmente. Algumas impressoras, que alguns chamam errôneamente de for Windows, não possuem tabelas de caracteres nativas, necessidanto assim, que toda a impressão seja completamente gráfica. Se for esse o seu caso, pela WAPI ainda não dá. Você terá de utilizar outro programa: PRWin do Vagner (pago), USB do Heveraldo (grátis) ou qualquer outro que transforme seu texto em gráfico.

Opcionalmente, você também pode migrar para o XHarbour, que possui uma classe de impressão apropriadamente preparada para esse tipo de impressão gráfica. É um pouco mais complicado, pois isso sugere a recompilação de todo o seu projeto e nem sempre essa migração é tranqüila, como alguns colegas já relataram.

Se estivesse no seu lugar, primeiramente testaria o programa USB.EXE do Heveraldo. É grátis e fácil de usar. Infelizmente não é a última versão disponível, mas só porque o Heveraldo ainda não liberou a última que preparou. Mas há quem use a antiga mesmo, com sucesso.

WAPI v1.03 - Funções da API do Windows - não executa

Enviado: 05 Mai 2008 18:07
por FabioAugusto
Maligno, boa tarde!

Baixei a WAPI e estou linkando da seguinte forma:

BLINKER INCREMENTAL OFF
BLINKER CLIPPER PAGE OFF
BLINKER EXECUTABLE CLIPPER F180
BLINKER EXECUTABLE EXTENDED
BLINKER OVERLAY OPSIZE 50
BLINKER OVERLAY PAGEFRAME ON
BLINKER PROCEDURE DEPTH 250
BLINKER EXECUTABLE COMPRESS 1

OUTPUT PDV.EXE

BEGINAREA
File Pdv, Profile, Moviment, Transfer, Cadastro
File Consulta, Apoio, Param, Filtro, Cliente
File Cliente1, Metas, Tabela, Compra, Relatori
File Estoque, TransfMJ, Ecf, timeslic, __wait_b, CTUSP
lib WAPI, CL_ECF, C_ECF_PL, CLIB, CTP
ENDAREA

SEARCH \BLINKER7\LIB\BLXCLP53
@C:\BLINKER7\CLP\LNK\CL530MAX.LNK

Porem, quando eu incluo no Relatori.prg a linha "aPrint := GetPrinters()" e compilo o sistema, o executavel PDV.EXE aborta antes mesmo de iniciar a tela principal!
O que será que estou fazendo de errado ?? vc pode me dar um help?? :%

Abraços

Fabio A França
Ps: Estou usando Clipper 5.3 e Blinker 7

Re: WAPI v1.03 - Funções da API do Windows

Enviado: 05 Mai 2008 18:45
por Maligno
Acho que já sei qual é o problema. Não se preocupe. Se for o que estou pensando, a solução é bem simples. Mas antes quero fazer um teste pra confirmar minha suspeita. Respondo sua pergunta, no mais tardar, amanhã pela manhã. :)

\

Enviado: 06 Mai 2008 10:34
por Maligno
FabioAugusto escreveu:o executavel PDV.EXE aborta antes mesmo de iniciar a tela principal!
O que será que estou fazendo de errado ?? vc pode me dar um help??
Acredito que você não está fazendo nada de errado. Ocorre que, como o utilitário WAPI.EXE é embutido no programa, dentro da definição da função que extrai esse arquivo, o Clipper, por alguma estranha razão que ainda não decifrei, está tendo dificuldade em manipular esses dados. Algum problema em relação à montagem do segmento de dados que contém esse binário. Não dá problema algum na linkedição. Mas o programa aborta. Aconteceu comigo também. E parece estar relacionado ao tamanho do programa Clipper. Quando chega a certo tamanho, o problema ocorre. Se você fizesse um programa bem pequeno, não haveria qualquer problema. Resumidamente, é isso.

A solução é simples: não utilizar o WAPI.EXE embutido, mas distribuí-lo manualmente, junto com seu programa. Mas isso implica em utilizar alguns procedimentos. Siga os passos:

1) Crie a função abaixo em qualquer parte do seu programa. Conselho: coloque no fim do seu PRG principal. Assim ficará mais fácil encontrá-la novamente para removê-la, quando esse problema for resolvido.

Código: Selecionar todos

function WAPI2File()
return .F.
2) No seu PRG principal, antes de usar a WAPI, execute EraseWAPI(.F.). O valor default[/b] já é falso. Se você não alterou isso, pode pular esse passo. Esse SET serve para dizer à LIB que o utilitário deve ser apagado após o uso. Portanto, isso precisa ser falso.

3) Você precisa dizer à LIB onde gravou o WAPI.EXE para que ela possa executá-lo. Para isso existe um outro SET: WAPIExeDir(<path>). Pode ser um drive de rede, caso precise. Novamente, use o PRG principal para isso. É mais prático.

Esses três passos simples devem resolver. Aliás, explicando o passo 1: a função sugerida, minimalista, só servirá para se sobrepor à que existe na LIB, evitando que ela seja linkada ao seu programa, o que evitará o aborto do mesmo. Uma vez que a função original não mais existirá, o WAPI.EXE não poderá mais ser extraído da LIB. Por isso você precisará distribuí-lo manualmente.

Diga-nos depois se a receita deu certo. :)

Re: WAPI v1.03 - Funções da API do Windows

Enviado: 06 Mai 2008 11:51
por FabioAugusto
Maligno, obrigado pela ajuda! vou fazer uns testes e lhe falo se deu certo.

Abs.

Fabio A França :D

Re: WAPI v1.03 - Funções da API do Windows

Enviado: 06 Mai 2008 16:55
por FabioAugusto
Maligno, apos as alterações que vc me recomendou o sistema funcionou normalmente, obrigado!

Só uma duvida, a matriz gerada pelo Getprinters() é uma matriz dinâmica correto ?

Então, pelos exemplos que vi aqui postado não funcionaria com o achoice(), Exemplo :
LOCAL aPrn:= GetPrinters()
nPrn:= ACHOICE(2,1,maxRow()-1,maxCol()-1,aPrn,.T.,,nPrn)
a matriz aPrn é dinamica, então o achoice() não a lê.

Acabei fazendo dessa maneira:
Local aPrn := GetPrinters()
Local aPrnx := {}
for q=1 to len(aPrn)
aadd(aPrnx,aPrn[q,2])
if aPrn[q,1] ;nPrn := q ; endif
next
nPrn:= ACHOICE(11,11,15,59,aPrnx,.T.,,nPrn)

e assim funcionou!

Abs, e mto obrigado!

Fabio A. França :)Pos :{