Autor Tópico: Uso DLL no windev  (Lida 8799 vezes)

zerloti

  • Jr. Member
  • **
  • Mensagens: 78
  • Karma: +0/-0
Uso DLL no windev
« Online: Dezembro 10, 2011, 10:53:35 am »
Ola  a todos , estou com dificuldades em testar a dll COBREBEM , a mesma é um componente  COM e existe exemplos em várias linguagens eu baixei a do visual basic mas não consegui implementar no windev,
no windev declarei assim

CobreBemX is object Automation dynamic
CobreBemX = new object Automation "CobreBemX.ContaCorrente"


como seria no windev a linha abaixo
===
    Set CobreBemX = New ContaCorrente
===
CobreBemX>>ArquivoLicenca = "f:\CobreBemX\237-09.conf" ...

Segue abaixo código para usar no visual basic ...
-----visual basic

Dim CobreBemX As CobreBemX.ContaCorrente

Dim Boleto As Object

    Set CobreBemX = New ContaCorrente

    CobreBemX.ArquivoLicenca = "f:\CobreBemX\237-09.conf"
    CobreBemX.CodigoAgencia = "1234-5"
    CobreBemX.NumeroContaCorrente = "00000123-X"
    CobreBemX.CodigoCedente = "123456"
    CobreBemX.InicioNossoNumero = "00001"
    CobreBemX.FimNossoNumero = "99999"
    CobreBemX.ProximoNossoNumero = "00015"
    CobreBemX.PadroesBoleto.PadroesBoletoImpresso.ArquivoLogotipo = "f:\CobreBemX\Imagens\BannerCBX.gif"
    CobreBemX.PadroesBoleto.PadroesBoletoImpresso.CaminhoImagensCodigoBarras = "f:\CobreBemX\Imagens\"

    Set Boleto = CobreBemX.DocumentosCobranca.Add
    Boleto.NumeroDocumento = "12345"
    Boleto.NomeSacado = "Fulano de Tal"
    Boleto.CPFSacado = "111.111.111-11"
    Boleto.EnderecoSacado = "Rua do Sacado 123"
    Boleto.BairroSacado = "Bairro do Sacado"
    Boleto.CidadeSacado = "Cidade do Sacado"
    Boleto.EstadoSacado = "SP"
    Boleto.CepSacado = "01001-001"
    Boleto.DataDocumento = "01/09/2002"
    Boleto.DataVencimento = "15/09/2002"
    Boleto.ValorDocumento = 123.45
    Boleto.PadroesBoleto.Demonstrativo = "Referente a compras na WEB<br><b>O melhor site da Internet</b>"
    Boleto.PadroesBoleto.InstrucoesCaixa = "<br><br>Não dispensar juros e multa após o vencimento"

    CobreBemX.ImprimeBoletos

    Set CobreBemX = Nothing

obrigado a todos
att zerloti.

JacquesBica

  • Full Member
  • ***
  • Mensagens: 197
  • Karma: +0/-0
  • Boas cercas fazem bons vizinhos
Re:Uso DLL no windev
« Responder #1 Online: Dezembro 10, 2011, 02:39:37 pm »
Boa tarde.
Por coincidência, hoje antes de acessar o fórum, como faço diariamente eu tinha esta mesma dúvida sobre o uso do Cobrebem. Temos sistema ERP em Clarion e pensamos em migrar para o Windev. Sem sombra de dúvidas o Cobrebem é a melhor solução para cobrança escritural. Sei que não ajuda, mas o código que tenho em Clarion inicia desta forma abaixo. Também necessito da implementação desta DLL.

Grato e tenham um bom final de semana.

JB


     Loc:Cbx = Create(0,Create:Ole)
     Loc:Cbx{Prop:Create} = 'CobreBemX.ContaCorrente'
     Loc:Cbx{'ArquivoLicenca'} = 'C:\Adm_SQL\Cobrebem\10317400000189-748-A.conf'

     ! Monta dados da conta corrente
     Loc:Cbx{'CodigoAgencia'}          = '0409/03'
     Loc:Cbx{'CodigoCedente'}          = '27252'
     Loc:Cbx{'InicioNossoNumero'}      = '000001'
     Loc:Cbx{'FimNossoNumero'}         = '999999'
     Loc:Cbx{'OutroDadoConfiguracao1'} = '2'
     LOC:Cbx{'LocalPagamento'}         = 'Pagável prefrerencialmente em qualquer agência bancária'

Davi

  • Global Moderator
  • *****
  • Mensagens: 426
  • Karma: +0/-0
Re:Uso DLL no windev
« Responder #2 Online: Dezembro 14, 2011, 09:03:06 am »
Eu utilizo cobrebemx no windev sem problema, gero os boletos e nunca deu problema.

abaixo o tutorial:

1: Registre a DLL no windows, eu coloco a dll cobrebemx dentro do instalador e instalo na para do exe e registro ela nessa pasta.

2: Registrada a DLL eu instancio ela dentro da inicialização da aplicação (observe que dentro da dll exsitem classes e vc deve instanciar a dll com a sua classe definida, no caso para ferar boleto precisa instanciar a  ContaCorrente que é uma classe da dll, mas isso eu percebi que você já fez.

       Cbx is object Automation  "CobreBemX.ContaCorrente"

3: defino os parametros da dll como você fez.

   Cbx>>arquivolicenca = Forma_pagamento.arquivo_config
   Cbx>>codigoagencia = Forma_pagamento.agencia + "-" + Forma_pagamento.dvagencia
   Cbx>>NumeroContaCorrente = Right("0000000" + Forma_pagamento.conta,8) + "-" + Forma_pagamento.dvconta
   Cbx>>CodigoCedente = Forma_pagamento.convenio
   Cbx>>InicioNossoNumero = "000000001"
   Cbx>>FimNossoNumero = "9999999999"
   Cbx>>ProximoNossoNumero = boletostmp.titulo - 1

Cbx>>DocumentosCobranca>>add

Cbx>>DocumentosCobranca[0]>>CNPJSacado = Cfrt.cnpj_cpf   
Cbx>>DocumentosCobranca[0]>>EnderecoSacado = Cfrt.endereco + "," + Cfrt.numero
Cbx>>DocumentosCobranca[0]>>BairroSacado = Cfrt.bairro

.... e os outros dados que vc deve setar.....



4: eu imprimo o boleto pode dentro do windev, preferi criar o layout no windev e utilizo apenas os retornos da criação do boleto pelo corebemx

BAC_BAR_CODE1 = Cbx>>DocumentosCobranca[0]>>codigobarras   //retorna o codigo de barras
nossonumerotmp = Cbx>>DocumentosCobranca[0]>>nossonumero  //retorna nosso numero calculado
linhadigi = Cbx>>DocumentosCobranca[0]>>linhadigitavel

com essas três informações eu monto o boleto, os outros dados como valor, vencimento, instruções e etc eu pego direto do banco de dados que ele gerou um título.

JacquesBica

  • Full Member
  • ***
  • Mensagens: 197
  • Karma: +0/-0
  • Boas cercas fazem bons vizinhos
Re:Uso DLL no windev
« Responder #3 Online: Dezembro 14, 2011, 11:53:13 am »
Perfeito !!!!
Agradeço imensamente a sua ajuda. Este recurso foi decisivo para decidir (ou não) pelo upgrade para a versão 17, que me foi oferecida nesta semana. Eu estava dependendo deste recurso para decidir sobre a migração do sistema ERP do Clarion 55 para o Windev. Tenho usado com sucesso o Windev Mobile para aplicações Android. Tínhamos dois aplicativos desenvolvido para Palm OS (HB++) e agora os reescrevemos para Android. Foi um sucesso. Rápido, prático e com muitos recursos.

Por favor, me tire uma dúvida com relação ao seu código: Como você encerra o tratamento deste objeto? Não existe um método "Destroy" ou algo parecido que deve ser executado após a impressão?

Muito obrigado.

Jacques Bica

zerloti

  • Jr. Member
  • **
  • Mensagens: 78
  • Karma: +0/-0
Re:Uso DLL no windev
« Responder #4 Online: Dezembro 15, 2011, 08:44:42 am »
Puxa muito obrigado DAVI ...
e agradeço tambem o post Jacques, eu ainda estou estudando a ferramenta e não a uso comercialmente, mas li algumas informações sobre o cobrebem e queria deixar meio engatilhado numa necessidade futura , assim como outras funcionalidades, extenso, validação CPF CNPJ, etc ...
e com ajuda do DAVI na implementação da dll, nos economizou bastante tempo, mais uma vez grato DAVI ...

Luciano Zerloti.




Davi

  • Global Moderator
  • *****
  • Mensagens: 426
  • Karma: +0/-0
Re:Uso DLL no windev
« Responder #5 Online: Dezembro 15, 2011, 09:44:43 am »
Pessoal fiz um video demostrando o funcionamento da nota eletronica e boleto dentro do windev

http://www.youtube.com/watch?v=Stk1_Y7_HbA&feature=youtu.be

em resposta a pergunta ao Jacques, não destruo o objeto, instancio ele no incio do programa e ele é destruído ao finalizar o prgrama.

JacquesBica

  • Full Member
  • ***
  • Mensagens: 197
  • Karma: +0/-0
  • Boas cercas fazem bons vizinhos
Re:Uso DLL no windev
« Responder #6 Online: Dezembro 15, 2011, 11:00:53 am »
Bom dia.
Agradeço a atenção e tempo gasto por usuários experientes em ajudar os novatos neste fórum. Normalmente um fórum possui milhares de usuários cadastrados, porém, são uma meia-dúzia que fazem a diferença. Gostei do video. Serviu para mostrar que é possível fazer algo "normal" com o Windev. Isto encoraja e dá ânimo para quem está começando. Sou desenvolvedor há 25 anos, passei pelo Cobol, Clipper, Progress, HB++ (Palm), PHP (Web) e Clarion. Agora estou pensando seriamente em migrar para o Windev. Porém o medo do desconhecido assusta. Minha primeira experiência foi com o Windev Mobile. Um sucesso. Gastei uma semana para absorver a cultura do Android, localizar os componentes (comandos, funções, etc) necessários no WM e criar o aplicativo. Fiz um aplicativo que importa cadastros de um banco de dados externo e envia os dados depois de coletados.

Implementei o exemplo apresentado pelo Davi em mensagens anteriores e funcionou de primeira.

No tocante a este exemplo gentilmente fornecido pelo Davi ficou claro como manipular o componente exceto por dois detalhes que serão necessários para quem for trabalhar com Bradesco (BIC Banco).

O Bradesco (BIC Banco) requer dois campos no boleto: "Uso do Banco" e "CIP".  Em ambos resolve-se com o código abaixo em Delphi. Não estou conseguindo fazê-lo no Windev.

// Código Delphi - pseudo propriedade

Boleto: Variant;
MDados1: Variant;
MDados2: Variant;

Boleto := 'CobreBemX.DocumentosCobranca.Add';

MDados1 := Boleto.MeusDados.Add;

MDados1.Nome := 'CodigoUsoBanco';
MDados1.Valor := 'EXPRESSA'; // Informar o código do Uso do Banco

MDados2 := Boleto.MeusDados.Add;

MDados2.Nome := 'CodigoCIP';
MDados2.Valor := '521'; // Informar o código CIP

A meu ver, uma vez dominando o uso desta pseudo-propriedade em WD, teremos um exemplo completo e funcional para todas as necessidades.

Agradeço a ajuda.

Jacques Bica
São Sebastião do Caí/RS

maddog_pa

  • Full Member
  • ***
  • Mensagens: 240
  • Karma: +0/-0
Re:Uso DLL no windev
« Responder #7 Online: Å¿etembro 26, 2012, 11:08:17 am »
Amigos bom dia

         Estou usando a ideia do fullpack de usar o WD para gerar os boletos, gero os dados no cobrebem e pego somente as informacoes que preciso e mando para um form do WD. Com o bradesco foi legal mas com o brasil nao foi pois o campo codigo de barras da erro dizendo que nao é compativel.

001995397000000019000000000099999-7000001002

ele vem com este Hifem ae e eu acho q este hifem esta dando problema...

alguem ja passou por isso ou sabe de alguma outra fonte de codgo de barras para poder emitir ?

obrigado amigos

Davi

  • Global Moderator
  • *****
  • Mensagens: 426
  • Karma: +0/-0
Re:Uso DLL no windev
« Responder #8 Online: Å¿etembro 28, 2012, 05:54:40 pm »
Estranho...

eu uso o cobrebemx com  BB, caixa, bradesco, itau, hsb, sicob e sicredi

com esses eu ja testei e tudo certo

no caso do BB tem um parametro a mais que é o numero do convenio, não sei se você esta passando ele

Exemplo:

Cbx is object Automation  "CobreBemX.ContaCorrente"


IF bancotmp = "001" THEN
   Cbx>>arquivolicenca = Forma_pagamento.arquivo_config
   Cbx>>codigoagencia = Forma_pagamento.agencia + "-" + Forma_pagamento.dvagencia
   Cbx>>NumeroContaCorrente = Right("0000000" + Forma_pagamento.conta,8) + "-" + Forma_pagamento.dvconta
   Cbx>>CodigoCedente = Forma_pagamento.convenio
   Cbx>>InicioNossoNumero = "000000001"
   Cbx>>FimNossoNumero = "9999999999"
   Cbx>>ProximoNossoNumero = boletostmp.titulo - 1
END


Cbx>>DocumentosCobranca>>add


ai adiciono os dados do boleto.... sacado vencimento valor....

e para o código de barras

BAC_BAR_CODE1 = Cbx>>DocumentosCobranca[0]>>codigobarras

JacquesBica

  • Full Member
  • ***
  • Mensagens: 197
  • Karma: +0/-0
  • Boas cercas fazem bons vizinhos
Re:Uso DLL no windev
« Responder #9 Online: Å¿etembro 28, 2012, 06:30:48 pm »
Olá,

Com relação ao Sicredi, você notou que o Cobrebem imprime o "x" minúsculo no cabeçalho do boleto?
O Sicredi para homologar exige que o "x" seja maiúsculo. Tanto é que existe uma propriedade para esta finalidade.
A minha dúvida é como acessar esta propriedade através do Windev.
Recebi esta instrução do suporte do Cobrebem:

Boleto:Variant;
MDados:Variant;

Boleto := CobreBemX.DocumentosCobranca.Add;
MDados := Boleto.MeusDados.Add;

MDados.Nome := 'NumeroBancoXMaiusculo';
MDados.Valor := 'X';

Em Clarion fiz assim:


     ! Cria documento de cobrança
     LOC:Boleto = LOC:Cbx{'DocumentosCobranca.Add'}
     LOC:Cbx{Prop:AddRef} = LOC:Boleto

     If (LOC:Banco = 748) Then
        LOC:MDados = LOC:Cbx{LOC:Boleto & '.MeusDados.Add'}
        LOC:Cbx{Loc:MDados &'.Nome'}  = 'NumeroBancoXMaiusculo'
        LOC:Cbx{Loc:MDados &'.Valor'} = 'X'
     End