*** Presente de Ano Novo **** Gerenciamento de ECFS

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

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:

*** Presente de Ano Novo **** Gerenciamento de ECFS

Mensagem por rochinha »

Amiguinhos

A rotina do Vagner veio bem a calhar, pena que não tive tempo de implementar ainda. Mas quando temos tempo?

Mexendo em um pequeno sisteminha de PONTO DE VENDA me deparei com o dilema de te-lo para várias ECF e o saco que era programar cada rotina e blablabla.

Foi então que criei uma biblioteca de funções genéricas, ou seja, bem no esquema ACBR, bem simplório e muito prática.

Meu código para Bematech por exemplo é assim:

Código: Selecionar todos

ECF_AbreCupom( cCNPJ )
do while not. eof()
     ECF_VendeItem( cCodigo, cDescricao, cAliquota, cTipoQtde, 
     skip
enddo
ECF_IniciaFechamentoCupom( cTipo, cEspecie, cValor )
ECF_EfetuaFormaPagamento( cForma, cValor )
ECF_FechaCupom( cForma, cValor )
E para usar o mesmo código com uma Urano, Daruma, etc basta seta a variavel ECF_Driver com o nome da ECF(veja em ECF_Version).

Um código varias funções.

Pode ser pretensão colocar com PRESENTE DE ANO NOVO pois ainda assim é necessário algumas verificações para tornar este projeto como totalmente pronto e liberado.

Conto com o apoio dos amigos que possuem as ECFs relacionadas e que disponham-se a postar suas ajudas para tirar quaisquer erros.

Código: Selecionar todos

#include "fivewin.ch"

///////////////////////////////////////////////////////////////////////////// 
// 
// Funcoes Compativeis com todos os drivers ECFs 
// 
///////////////////////////////////////////////////////////////////////////// 

FUNCTION ECF_Version() 
         retorno := "" 
         do case 
            case ECF_Driver = "MATRICIAL" 
                 retorno := ""
            case ECF_Driver = "URANO" 
                 retorno := URANO_ECF_Version() 
            case ECF_Driver = "DARUMA" 
                 retorno := DARUMA_ECF_Version() 
            case ECF_Driver = "BEMATECH" 
                 retorno := BEMATECH_ECF_Version() 
            case ECF_Driver = "MECAF" 
                 retorno := MECAF_ECF_Version() 
            case ECF_Driver = "SWEDA" 
                 retorno := SWEDA_ECF_Version() 
            case ECF_Driver = "SCHALTER" 
                 retorno := SCHALTER_ECF_Version() 
            case ECF_Driver = "QUATTRO" 
                 retorno := QUATTRO_ECF_Version() 
            case ECF_Driver = "ACBR" 
                 retorno := ACBR_ECF_Version() 
         endcase 
         return retorno 

FUNCTION ECF_AbreCupom( cCNPJ ) 
         retorno := "" 
         do case 
            case ECF_Driver = "MATRICIAL" 
                 retorno := ""
            case ECF_Driver = "URANO" 
                 retorno := URANO_ECF_AbreCupom( cCNPJ ) 
            case ECF_Driver = "DARUMA" 
                 retorno := DARUMA_ECF_AbreCupom( cCNPJ ) 
            case ECF_Driver = "BEMATECH" 
                 retorno := BEMATECH_ECF_AbreCupom( cCNPJ ) 
            case ECF_Driver = "MECAF" 
                 retorno := MECAF_ECF_AbreCupom( cCNPJ ) 
            case ECF_Driver = "SWEDA" 
                 retorno := SWEDA_ECF_AbreCupom( cCNPJ ) 
            case ECF_Driver = "SCHALTER" 
                 retorno := SCHALTER_ECF_AbreCupom( cCNPJ ) 
            case ECF_Driver = "QUATTRO" 
                 retorno := QUATTRO_ECF_AbreCupom( cCNPJ ) 
            case ECF_Driver = "ACBR" 
                 retorno := ACBR_ECF_AbreCupom( cCNPJ ) 
         endcase 
         return retorno 

FUNCTION ECF_VendeItem( cCodigo, cDescricao, cAliquota, cTipoQtde, cQtde, nCasasDecimais, cValor, cTipoDesconto, cValoresconto ) 
         retorno := "" 
         do case 
            case ECF_Driver = "MATRICIAL" 
                 retorno := ""
            case ECF_Driver = "URANO" 
                 retorno := URANO_ECF_VendeItem( cCodigo, cDescricao, cAliquota, cTipoQtde, cQtde, nCasasDecimais, cValor, cTipoDesconto, cValoresconto ) 
            case ECF_Driver = "DARUMA" 
                 retorno := DARUMA_ECF_VendeItem( cCodigo, cDescricao, cAliquota, cTipoQtde, cQtde, nCasasDecimais, cValor, cTipoDesconto, cValoresconto ) 
            case ECF_Driver = "BEMATECH" 
                 retorno := BEMATECH_ECF_VendeItem( cCodigo, cDescricao, cAliquota, cTipoQtde, cQtde, nCasasDecimais, cValor, cTipoDesconto, cValoresconto ) 
            case ECF_Driver = "MECAF" 
                 retorno := MECAF_ECF_VendeItem( cCodigo, cDescricao, cAliquota, cTipoQtde, cQtde, nCasasDecimais, cValor, cTipoDesconto, cValoresconto ) 
            case ECF_Driver = "SWEDA" 
                 retorno := SWEDA_ECF_VendeItem( cCodigo, cDescricao, cAliquota, cTipoQtde, cQtde, nCasasDecimais, cValor, cTipoDesconto, cValoresconto ) 
            case ECF_Driver = "SCHALTER" 
                 retorno := SCHALTER_ECF_VendeItem( cCodigo, cDescricao, cAliquota, cTipoQtde, cQtde, nCasasDecimais, cValor, cTipoDesconto, cValoresconto ) 
            case ECF_Driver = "QUATTRO" 
                 retorno := QUATTRO_ECF_VendeItem( cCodigo, cDescricao, cAliquota, cTipoQtde, cQtde, nCasasDecimais, cValor, cTipoDesconto, cValoresconto ) 
            case ECF_Driver = "ACBR" 
                 retorno := ACBR_ECF_VendeItem( cCodigo, cDescricao, cAliquota, cTipoQtde, cQtde, nCasasDecimais, cValor, cTipoDesconto, cValoresconto ) 
         endcase 
         return retorno 

FUNCTION ECF_IniciaFechamentoCupom( cTipo, cEspecie, cValor ) 
         retorno := "" 
         do case 
            case ECF_Driver = "MATRICIAL" 
                 retorno := ""
            case ECF_Driver = "URANO" 
                 retorno := URANO_ECF_IniciaFechamentoCupom( cTipo, cEspecie, cValor ) 
            case ECF_Driver = "DARUMA" 
                 retorno := DARUMA_ECF_IniciaFechamentoCupom( cTipo, cEspecie, cValor ) 
            case ECF_Driver = "BEMATECH" 
                 retorno := BEMATECH_ECF_IniciaFechamentoCupom( cTipo, cEspecie, cValor ) 
            case ECF_Driver = "MECAF" 
                 retorno := MECAF_ECF_IniciaFechamentoCupom( cTipo, cEspecie, cValor ) 
            case ECF_Driver = "SWEDA" 
                 retorno := SWEDA_ECF_IniciaFechamentoCupom( cTipo, cEspecie, cValor ) 
            case ECF_Driver = "SCHALTER" 
                 retorno := SCHALTER_ECF_IniciaFechamentoCupom( cTipo, cEspecie, cValor ) 
            case ECF_Driver = "QUATTRO" 
                 retorno := QUATTRO_ECF_IniciaFechamentoCupom( cTipo, cEspecie, cValor ) 
            case ECF_Driver = "ACBR" 
                 retorno := ACBR_ECF_IniciaFechamentoCupom( cTipo, cEspecie, cValor ) 
         endcase 
         return retorno 

FUNCTION ECF_EfetuaFormaPagamento( cForma, cValor ) 
         retorno := "" 
         do case 
            case ECF_Driver = "MATRICIAL" 
                 retorno := ""
            case ECF_Driver = "URANO" 
                 retorno := URANO_ECF_EfetuaFormaPagamento( cForma, cValor ) 
            case ECF_Driver = "DARUMA" 
                 retorno := DARUMA_ECF_EfetuaFormaPagamento( cForma, cValor ) 
            case ECF_Driver = "BEMATECH" 
                 retorno := BEMATECH_ECF_EfetuaFormaPagamento( cForma, cValor ) 
            case ECF_Driver = "MECAF" 
                 retorno := MECAF_ECF_EfetuaFormaPagamento( cForma, cValor ) 
            case ECF_Driver = "SWEDA" 
                 retorno := SWEDA_ECF_EfetuaFormaPagamento( cForma, cValor ) 
            case ECF_Driver = "SCHALTER" 
                 retorno := SCHALTER_ECF_EfetuaFormaPagamento( cForma, cValor ) 
            case ECF_Driver = "QUATTRO" 
                 retorno := QUATTRO_ECF_EfetuaFormaPagamento( cForma, cValor ) 
            case ECF_Driver = "ACBR" 
                 retorno := ACBR_ECF_EfetuaFormaPagamento( cForma, cValor ) 
         endcase 
         return retorno 

FUNCTION ECF_FechaCupom( cMensagem ) 
         retorno := "" 
         do case 
            case ECF_Driver = "MATRICIAL" 
                 retorno := ""
            case ECF_Driver = "URANO" 
                 retorno := URANO_ECF_FechaCupom( cMensagem ) 
            case ECF_Driver = "DARUMA" 
                 retorno := DARUMA_ECF_FechaCupom( cMensagem ) 
            case ECF_Driver = "BEMATECH" 
                 retorno := BEMATECH_ECF_FechaCupom( cMensagem ) 
            case ECF_Driver = "MECAF" 
                 retorno := MECAF_ECF_FechaCupom( cMensagem ) 
            case ECF_Driver = "SWEDA" 
                 retorno := SWEDA_ECF_FechaCupom( cMensagem ) 
            case ECF_Driver = "SCHALTER" 
                 retorno := SCHALTER_ECF_FechaCupom( cMensagem ) 
            case ECF_Driver = "QUATTRO" 
                 retorno := QUATTRO_ECF_FechaCupom( cMensagem ) 
            case ECF_Driver = "ACBR" 
                 retorno := ACBR_ECF_FechaCupom( cMensagem ) 
         endcase 
         return retorno 

FUNCTION ECF_CancelaCupom() 
         retorno := "" 
         do case 
            case ECF_Driver = "MATRICIAL" 
                 retorno := ""
            case ECF_Driver = "URANO" 
                 retorno := URANO_ECF_CancelaCupom() 
            case ECF_Driver = "DARUMA" 
                 retorno := DARUMA_ECF_CancelaCupom() 
            case ECF_Driver = "BEMATECH" 
                 retorno := BEMATECH_ECF_CancelaCupom() 
            case ECF_Driver = "MECAF" 
                 retorno := MECAF_ECF_CancelaCupom() 
            case ECF_Driver = "SWEDA" 
                 retorno := SWEDA_ECF_CancelaCupom() 
            case ECF_Driver = "SCHALTER" 
                 retorno := SCHALTER_ECF_CancelaCupom() 
            case ECF_Driver = "QUATTRO" 
                 retorno := QUATTRO_ECF_CancelaCupom() 
            case ECF_Driver = "ACBR" 
                 retorno := ACBR_ECF_CancelaCupom() 
         endcase 
         return retorno 

FUNCTION ECF_CancelaItemGenerico( cItem ) 
         retorno := "" 
         do case 
            case ECF_Driver = "MATRICIAL" 
                 retorno := ""
            case ECF_Driver = "URANO" 
                 retorno := URANO_ECF_CancelaItemGenerico( cItem ) 
            case ECF_Driver = "DARUMA" 
                 retorno := DARUMA_ECF_CancelaItemGenerico( cItem ) 
            case ECF_Driver = "BEMATECH" 
                 retorno := BEMATECH_ECF_CancelaItemGenerico( cItem ) 
            case ECF_Driver = "MECAF" 
                 retorno := MECAF_ECF_CancelaItemGenerico( cItem ) 
            case ECF_Driver = "SWEDA" 
                 retorno := SWEDA_ECF_CancelaItemGenerico( cItem ) 
            case ECF_Driver = "SCHALTER" 
                 retorno := SCHALTER_ECF_CancelaItemGenerico( cItem ) 
            case ECF_Driver = "QUATTRO" 
                 retorno := QUATTRO_ECF_CancelaItemGenerico( cItem ) 
            case ECF_Driver = "ACBR" 
                 retorno := ACBR_ECF_CancelaItemGenerico( cItem ) 
         endcase 
         return retorno 

FUNCTION ECF_LeituraX() 
         retorno := "" 
         do case 
            case ECF_Driver = "MATRICIAL" 
                 retorno := ""
            case ECF_Driver = "URANO" 
                 retorno := URANO_ECF_LeituraX() 
            case ECF_Driver = "DARUMA" 
                 retorno := DARUMA_ECF_LeituraX() 
            case ECF_Driver = "BEMATECH" 
                 retorno := BEMATECH_ECF_LeituraX() 
            case ECF_Driver = "MECAF" 
                 retorno := MECAF_ECF_LeituraX() 
            case ECF_Driver = "SWEDA" 
                 retorno := SWEDA_ECF_LeituraX() 
            case ECF_Driver = "SCHALTER" 
                 retorno := SCHALTER_ECF_LeituraX() 
            case ECF_Driver = "QUATTRO" 
                 retorno := QUATTRO_ECF_LeituraX() 
            case ECF_Driver = "ACBR" 
                 retorno := ACBR_ECF_LeituraX() 
         endcase 
         return retorno 

FUNCTION ECF_ReducaoZ() 
         retorno := "" 
         do case 
            case ECF_Driver = "MATRICIAL" 
                 retorno := ""
            case ECF_Driver = "URANO" 
                 retorno := URANO_ECF_ReducaoZ() 
            case ECF_Driver = "DARUMA" 
                 retorno := DARUMA_ECF_ReducaoZ() 
            case ECF_Driver = "BEMATECH" 
                 retorno := BEMATECH_ECF_ReducaoZ() 
            case ECF_Driver = "MECAF" 
                 retorno := MECAF_ECF_ReducaoZ() 
            case ECF_Driver = "SWEDA" 
                 retorno := SWEDA_ECF_ReducaoZ() 
            case ECF_Driver = "SCHALTER" 
                 retorno := SCHALTER_ECF_ReducaoZ() 
            case ECF_Driver = "QUATTRO" 
                 retorno := QUATTRO_ECF_ReducaoZ() 
            case ECF_Driver = "ACBR" 
                 retorno := ACBR_ECF_ReducaoZ() 
         endcase 
         return retorno 

FUNCTION ECF_Comando() 
         retorno := "" 
         do case 
            case ECF_Driver = "MATRICIAL" 
                 retorno := ""
            case ECF_Driver = "URANO" 
                 retorno := URANO_ECF_Comando() 
            case ECF_Driver = "DARUMA" 
                 retorno := DARUMA_ECF_Comando() 
            case ECF_Driver = "BEMATECH" 
                 retorno := BEMATECH_ECF_Comando() 
            case ECF_Driver = "MECAF" 
                 retorno := MECAF_ECF_Comando() 
            case ECF_Driver = "SWEDA" 
                 retorno := SWEDA_ECF_Comando() 
            case ECF_Driver = "SCHALTER" 
                 retorno := SCHALTER_ECF_Comando() 
            case ECF_Driver = "QUATTRO" 
                 retorno := QUATTRO_ECF_Comando() 
            case ECF_Driver = "ACBR" 
                 retorno := ACBR_ECF_Comando() 
         endcase 
         return retorno 

FUNCTION ECF_Retorno() 
         retorno := "" 
         do case 
            case ECF_Driver = "MATRICIAL" 
                 retorno := ""
            case ECF_Driver = "URANO" 
                 retorno := URANO_ECF_Retorno() 
            case ECF_Driver = "DARUMA" 
                 retorno := DARUMA_ECF_Retorno() 
            case ECF_Driver = "BEMATECH" 
                 retorno := BEMATECH_ECF_Retorno() 
            case ECF_Driver = "MECAF" 
                 retorno := MECAF_ECF_Retorno() 
            case ECF_Driver = "SWEDA" 
                 retorno := SWEDA_ECF_Retorno() 
            case ECF_Driver = "SCHALTER" 
                 retorno := SCHALTER_ECF_Retorno() 
            case ECF_Driver = "QUATTRO" 
                 retorno := QUATTRO_ECF_Retorno() 
            case ECF_Driver = "ACBR" 
                 retorno := ACBR_ECF_Retorno() 
         endcase 
         return retorno 

FUNCTION MyCopyFile( cDeOnde, cPraOnde ) 
         __CopyFile( cDeOnde, cPraOnde ) 
         return .t. 

FUNCTION MyAlltrim( cDeOnde ) 
         return Alltrim( cDeOnde ) 

FUNCTION AlinhaParametro( Param, Tamanho, Tipo ) 
   Do Case 
      Case Tipo == "C" 
           Param := AllTrim(Param) 
           Param := PadR( Param, Tamanho, " ") 
      Case Tipo == "N" 
           Param := AllTrim(Param) 
           Param := PadL( Param, Tamanho, "0") 
      Otherwise 
           Param := AllTrim(Param) 
   EndCase 
   Return Param 

FUNCTION MyWait(_tempo_) 
   _tempo_ := _tempo_*60000 
   for i = 1 to _tempo_ 
       next 
   return .t. 

#include "ECFurano.prg" 
#include "ECFdaru.prg" 
#include "ECFmekf.prg" 
#include "ECFxalt.prg" 
#include "ECFquatr.prg" 
#include "ECFbema.prg" 
#include "ECFsweda.prg" 
#include "ECFACBr.prg"
O fato de chamar a FIVEWIN.CH não quer dizer que só possa ser usado com a mesma, ok?

Para usar com Clipper basta retirar o prefixo de cada função, exemplo: BEMATEC_ECF_AbreCupom() ficando Abre_Cupom().

O restante do projeto esta em:

http://www.5volution.com.br/downloads/forum/ecfs.zip

Este projeto é regido por uma GPL portanto usem com critério e com sentimento de comunidade.
Editado pela última vez por rochinha em 31 Jan 2008 01:38, em um total de 3 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.
And
Usuário Nível 3
Usuário Nível 3
Mensagens: 163
Registrado em: 25 Set 2005 18:31
Localização: São Paulo/SP

Mensagem por And »

Amigo Rochinha,

Primeiramente fico grato pelo presente e sinceramente espero que diante desta iniciativa sua e do Vagner eu possa ser presenteado ou presentear em outras datas comemorativas (de preferencia diariamente). :)Pos



Abraço,
Anderson
Clipper 52e/Clipper 53b/Blinker 7/Vlib/Fglib/DBFNTX
_______________________________________________
Migrando para [x]Harbour 0.99.60 (SimpLex) + MiniGUI 1.2 Exp. (Build 22)
_______________________________________________
Assine o manifesto dos artistas pela preservação da amazônia.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinho

O nosso presente, meu, do Vagner, do Maligno, do Vailtom, do Toledo, do Stanis, do Dudu, do And(oopops, este é voce) e todos os forenses de qual não lembro o nome é o feedback e a atenção aos nossos posts e respostas.

Mas todo desbravador, refaz o caminho menos perigosos para os próximos bandeirantes.

Estamos ai! ;)
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.
And
Usuário Nível 3
Usuário Nível 3
Mensagens: 163
Registrado em: 25 Set 2005 18:31
Localização: São Paulo/SP

Mensagem por And »

Valeu mestre!

:{


Abraço,
Anderson
Clipper 52e/Clipper 53b/Blinker 7/Vlib/Fglib/DBFNTX
_______________________________________________
Migrando para [x]Harbour 0.99.60 (SimpLex) + MiniGUI 1.2 Exp. (Build 22)
_______________________________________________
Assine o manifesto dos artistas pela preservação da amazônia.
Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Mensagem por vagucs »

Show de bola rochinha!
Sem mais
Wagner Nunes
www.vagucs.com.br
Avatar do usuário
Sergio_ASSilva
Usuário Nível 2
Usuário Nível 2
Mensagens: 92
Registrado em: 09 Mar 2006 10:58
Localização: Santo Estevão (Ba)

Mensagem por Sergio_ASSilva »

Valeu Garoto,

Um grande axé pra voce. :|<
Clipper 5.3a/Blinker 7/DBFNTX
clebermano
Usuário Nível 3
Usuário Nível 3
Mensagens: 187
Registrado em: 03 Out 2004 12:39
Contato:

Mensagem por clebermano »

MUITO BOM GOSTEI
Vastec - Automacao Comercial Ltda - Ribeirao Preto - SP. (16)3968-2299-(16)8154-7828 (16)8121-4139
msn: suporte@clebermano.com.br - email: clebermanorp@yahoo.com.br
Quem nao vive pra servir nao serve pra viver !
Avatar do usuário
momente
Usuário Nível 3
Usuário Nível 3
Mensagens: 496
Registrado em: 03 Mar 2005 11:53
Localização: São Carlos-SP
Contato:

Mensagem por momente »

Legal mesmo!!!

Obrigado! :)Pos
Rogerio L. Momenté
Nada é tão perfeito que não possamos melhorar.
Nunca se explique. Seus amigos não precisam e seus inimigos não vão acreditar.
www.looksystem.com.br
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinhos

Inseri no projeto o codigo para contemplar a impressora Quattro.

Sugiro analisarem os codigos antes de utilizar e fazer as modificações e correções necessárias para o uso.

O link para baixar ainda é o mesmo do primeiro post.

Obrigado pela atenção e ajuda recebida.
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.
jose.juca
Usuário Nível 1
Usuário Nível 1
Mensagens: 3
Registrado em: 05 Jul 2007 16:59
Localização: Vilhena/RO

preciso do ecfs.zip

Mensagem por jose.juca »

amigos,
Vagner, do Maligno, do Vailtom, do Toledo, do Stanis, do Dudu
se um de vcs pode me enviar o projeto das ecfs.zip fico muito grato muito mesmo

abraço


Josá Jucá.
Estou precisnado de rotina para geraçao do arquivo sintegra
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinhos

O link acima esta ok agora.
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
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinhos

Fiz uma retificação em um dos .PRGs do projeto ECFs em relação a Bematech.

O módulo usa BEMAFI32.EXE e arquivos .CMD para se comunicar com a ECF e não estava liberando o arquivo .CMD gerado para o proximo comando.

Agora esta ok.

Tomo a liberdade de apresentar o visual que consegui para deixar o meu PDV mais atraente.

Imagem
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
RamonXHB
Usuário Nível 3
Usuário Nível 3
Mensagens: 159
Registrado em: 03 Mar 2007 14:55

Mensagem por RamonXHB »

[Como vc conseguiu essa aparencia ?
Ramon A. Körber Jr.
Harbour 3.2 MiniGUI Extended Edition
xDevStudio v0.70 - BCC 5.82 - Lazarus FreePascal
Firebird
AdoDB - ODBC
Windows - Linux
Linux User Number 404280
MSN - ramon15061959@hotmail.com
Skype - ramon15061959
ICQ - UIN 82580595
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinho

É um trabalho gráfico usando como base aparecencia do site download.com e outras imagens encontradas na net, em formato bitmap, colocado em um dialogo sem bordas, titulos, etc e controles listbox estrategicamente colocados sobre o desenho.

A imagem bitmap atua como skin, e quando eu ficar de saco cheio faço outra arte e envio ao cliente.
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
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinhos

Agora o projeto vem contemplar o monitor ACBr.

O mesmo ja trabalhava com outros monitores como Bematech e Daruma e agora com este reforço acho que as impressoras não tem mais fronteiras.

O projeto ACBr é um verdadeiro achado e dentre os projetos que auxiliam o usuario talvez o melhor.

Espero que o meu projeto agora nosso também possa nos ajudar neste arduao trabalho de programar impressoras.

Como sempre, sugiro analisarem os codigos antes de utilizar e fazer as modificações e correções necessárias para o vosso uso e quaisquer modificações ou remoções de bugs deem seu retorno aqui mesmo.

O link para baixar ainda é o mesmo:

http://www.5volution.com.br/downloads/forum/ecfs.zip

Obrigado pela atenção e ajuda recebida.
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.
Responder