Ir para conteúdo
  • Cadastre-se

dev botao

Recommended Posts

Postado

Estou tentando alterar (ou criar um novo) modelo BoletoFatura.fr3 (trabalho com FastReport). Isso porque aquela caixa do modelo para a fatura não passa de uma caixa de texto, e a fatura para mim é como se fosse uma Nota Fiscal, com x itens e tem todo um LayOut próprio. De modo que só a caixa de texto é insuficiente. Minha ideia é colocar minha fatura como sendo um DataSet Detail do Boleto que seria o DataSet Master e assim minha Fatura sairia logo abaixo do Boleto (na mesma página) e usuária quanto espaço precisasse, independente do número de itens. Mas para fazer isso eu tive que adicionar o DataSet da Fatura ao arquivo fr3 e quando faço isso a impressão do boleto (boleto1.imprimir) simplesmente deixa de reconhecer todos os campos do boleto, como "titulo.vencimento" por exemplo. 

Tem como eu adicionar DataSets ao modelo do boleto (.fr3) mas de forma que ele continue reconhecendo os campos do boleto?

Se isso não for possível, eu terei de mudar os nomes dos campos do boleto e transformá-los em variáveis que terei de pegar no ACBrBoleto e passar todos eles como parâmetros para o novo modelo .

Postado

Manual nenhum. Não estou falando de nenhum banco especifico, estou falando em modelos dos boletos. Estou precisando alterar o modelo boletofatura.fr3 ou criar um novo modelo, de modo que as informações do boleto seriam meu Dataset Master e minha fatura o Dataset Detail, só isso.

A solução foi criar um modelo novo e não usar a função acbrboleto.imprimir porque não vou usar a ListadeBoletos. No novo modelo o Boleto é o DataSetMaster e as informações da Fatura o DataSet Detail.

 

  • 4 semanas depois ...
Postado

Eu resolvi como falei, criei um modelo novo e nele o boleto é o DataSet Master e minha Fatura é o Detail e os itens da Fatura SubDetail no FastReport. E dessa forma não uso o ListadeBoletos do ACBr, apenas as funções que montam a Linha Digitável, o Código de Barras e o Código de Cedente basicamente. A impressão não se dá pelo ACBrBoleto.imprimir. Assim o boleto e a fatura ficam na mesma página.

Melhor do que isso só se eu conseguisse gerar o Boleto usando o ACBr normalmente usando o ListadeBoletos (um a um)  usando o ACBrBoleto.PrepareReport() e gerasse minha fatura também usando o PrepareReport() e aí quando eu imprimisse sairia tudo junto na mesma página. O problema é que não consegui usar o frxReport1.ShowPreparedReport para imprimir os dois, porque o frxReport1 só traz minha fatura.

  • 2 semanas depois ...
Postado

Nem mandei para validação, já estava validado só com o boleto.fr3. Na verdade o boleto não muda nada, o boleto ocupa meia página, a outra meia-página é minha fatura. Mas como disse tive de desenhar um novo modelo fr3 com as informações de boleto como DataSet Master e minha fatura como Detail e subdetail.  E não uso o ACBr para imprimir, apenas para montar os campos calculados pelo ACBr.

  • 3 anos depois...
Postado
Em 22/12/2020 at 22:48, Luciano Rodrigues Pereira disse:

Nem mandei para validação, já estava validado só com o boleto.fr3. Na verdade o boleto não muda nada, o boleto ocupa meia página, a outra meia-página é minha fatura. Mas como disse tive de desenhar um novo modelo fr3 com as informações de boleto como DataSet Master e minha fatura como Detail e subdetail.  E não uso o ACBr para imprimir, apenas para montar os campos calculados pelo ACBr.

Opa tbm estou precisando criar modelo proprio vc consegue me passar um exemplo de como fez .eu preciso colocar logo da empresa ,servicos prestado tbm

  • 5 semanas depois ...
Postado

Eu Eu criei meu próprio .fr3, com meu DataSet. O segredo foi usar o ACBr como campos calculados do meu Dataset.

procedure TfrmConsultaFaturaMes.cds_CobBancoCalcFields(DataSet: TDataSet);
begin
  if DataSet.State = dsInternalCalc then
  begin
    dmBol.cds_CobBancoCalcFields(DataSet);
    ConfigBoleto(Dataset);
  end;
end;
procedure TfrmConsultaFaturaMes.ConfigBoleto(DataSet:TDataSet);
var Titulo: TACBrTitulo;
begin
  // Dados do Boleto
  ConfiguraCarteiraCob(dmBol.Boleto, DataSet);
  AddTituloNaLista(dmBol.Boleto, DataSet);
  //Transfere os campos do Boleto (Cedente) para o DataSet
  with dmBol.Boleto do
    with DataSet do
    begin
      FieldByName('Banco_Numero').Value:= FormatFloat('000', Banco.Numero);
      FieldByName('Banco_Digito').Value:= IfThen(Banco.Digito >= 10, 'X', IntToStr(Banco.Digito));
    end;

  //Transfere os campos do Boleto (Titulo) para o DataSet
  Titulo:= dmBol.Boleto.ListadeBoletos.Objects[0];
  with Titulo do
    with DataSet do
    begin
      FieldByName('Titulo_Vencimento').Value        := Vencimento;
      FieldByName('Titulo_ValorDocumento').Value    := ValorDocumento;
      FieldByName('Titulo_EspecieMod').Value        := EspecieMod;
      FieldByName('Titulo_EspecieDoc').Value        := EspecieDoc;
      FieldByName('Titulo_DataDocumento').Value     := DataDocumento;
      FieldByName('Titulo_NumeroDocumento').Value   := NumeroDocumento;
      FieldByName('Titulo_Aceite').Value            := Ifthen(FieldByName('ACEITE').AsInteger= -1, 'SIM', 'NÃO');
      FieldByName('Titulo_DataProcessamento').Value := DataProcessamento;
      // Campos ainda a serem montados
      with dmBol.Boleto.Banco do
      begin
        FieldByName('Titulo_Carteira').Value          := MontarCampoCarteira(Titulo);
        FieldByName('Titulo_NossoNum').AsString       := MontarCampoNossoNumero(Titulo);
        FieldByName('Titulo_CodBarras').AsString      := MontarCodigoBarras(Titulo);
        FieldByName('Titulo_LinhaDigitavel').AsString := MontarLinhaDigitavel(FieldByName('Titulo_CodBarras').AsString, Titulo);
        FieldByName('Cedente_CodigoCedente').AsString := MontarCampoCodigoCedente(Titulo);
        FieldByName('Titulo_QRCode').AsString         := QrCode.emv;
      end;
      // Mensagens
      dmBol.Boleto.AdicionarMensagensPadroes(Titulo, Mensagem);
      FieldByName('Titulo_Mensagem').Value:= Mensagem.Text;
    end;
end;

 

  • Moderadores
Postado

Vejam não é algo que está definido em manuais e definições da febraban e nem de banco algum

então estão com boletos que após um tempo circulando o pessoal começa a questionar, vai sim ler o código de barras

mas se submeter aos bancos eles não vão aceitar e dai fica aquela o ACBr não tem e tem por ai gente usando assim e o banco não aceita.

o bom é validar no banco se aceitar, trazer para que possamos sim disponibilizar ou senão avisar aqui que o banco rejeitou

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.