Ir para conteúdo
  • Cadastre-se

dev botao

Sintegra Geração


  • Este tópico foi criado há 3173 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Pessoal, boa tarde!

Sou novo com delphi, mexo a pouquissimo tempo, estou mexendo em um geração de sintegra, iniciando o registro 50, e utilizando o acbrSintegra 

fiz o seguinte para filtrar a data que digitar na geração,

 

procedure TfrmSintegra.DadosRegistro50;
begin
       //
     with   dm.qryReg50 do  begin
      Close;
       SQL.Clear;
       SQL.Add('SELECT * FROM vendas WHERE ');
       SQL.Add('(datahora_emissao BETWEEN :datahora_ini AND :datahora_fim) AND (');
       SQL.Add('(modelo_nf = ""01"") OR');
       SQL.Add('(modelo_nf = ""1A"") OR');
       SQL.Add('(modelo_nf = ""03"") OR');
       SQL.Add('(modelo_nf = ""06"") OR');
       SQL.Add('(modelo_nf = ""22""))');
       SQL.Add('ORDER BY datahora_emissao');
       ParamByName('datahora_ini').asdatetime := MaskEdit1;
       ParamByName('datahora_fim').asdatetime := MaskEdit2;
       Open;
end;

mas ele retorna essa mensagem

 

[dcc32 Error] uSintegra.pas(111): E2010 Incompatible types: 'TDateTime' and 'TMaskEdit'

o campo não e compatível. Aguém pode me ajudar? se erre procedimento daria certo.

 

Desde já muito obrigado.

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Boa tarde

neste local que postou trata do componente ACBrSintegra e seu problema está em programar em delphi e abrir query!

estou movendo para o local correto pois vejo que é seu primeiro post

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Sobre seu problema é bem simples tu tá passando um componente para o campo do tipo datetime!

o maskedit é um objeto e o valor dele é um text então terá que converter para passar

  • Curtir 1
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Link para o comentário
Compartilhar em outros sites

Sobre seu problema é bem simples tu tá passando um componente para o campo do tipo datetime!

o maskedit é um objeto e o valor dele é um text então terá que converter para passar

Boa tarde, preciso de mais uma ajuda do ACbr, estou usando o compomente acbr para gear o sintegra, peguei como exemplo o que vem na pasta do instalador, até agora funcionou blz, porém estou conseguindo gerar somente 1 registro 50 por vez, e não todos do periodo, já tentei dar um next na query e no cds  que estou puxando as informações mas mesmo assim não está indo.. alguém poderia me dar uma ajuda?

 

 

procedure TFrmSintegra.GerarRegistro50;
var
  wregistro50: TRegistro50;
begin
  wregistro50:=TRegistro50.Create;
  with ACBrSintegra do
  begin
    DadosRegistro50;
    wregistro50.CPFCNPJ:= dm.qryReg50CNPJ.AsString;
    wregistro50.Inscricao:= dm.QryReg50IE.AsString;
    wregistro50.DataDocumento:= dm.qryReg50DATA_CADASTRO.AsDateTime;
    wregistro50.UF:= dm.qryReg50UF.AsString;
    wregistro50.Modelo:= dm.qryReg50MODELO.AsString;;
    wregistro50.Serie:= dm.qryReg50SERIE.AsString;
    wregistro50.Numero:= dm.qryReg50N_NOTA.AsString;
    wregistro50.Cfop:= dm.qryReg50CFOP.AsString;
    wregistro50.EmissorDocumento:= dm.qryReg50TIPO_EMISSAO.AsString;
    wregistro50.ValorContabil:= dm.qryReg50VALOR_CONTABIL.AsFloat ;
    wregistro50.BasedeCalculo:= dm.qryReg50BASE_CALCULO.AsFloat;
    wregistro50.Icms:= dm.qryReg50ICMS.AsFloat;
    wregistro50.Isentas:= dm.qryReg50ISENTAS.AsFloat;
    wregistro50.Outras:= dm.qryReg50OUTRAS.AsFloat;
    wregistro50.Aliquota:= dm.qryReg50ALIQUOTA.AsFloat;
    wregistro50.Situacao:= 'N';
    ACBrSintegra.Registros50.Add(wregistro50);
  end;
end;

se eu fizer assim acho que daria certo... vou tentar aqui

 

wregistro50:=TRegistro50.Create;
while not sqlaux.Eof do begin
  with ACBrSintegra do begin
    wregistro50.CPFCNPJ         := TiraMascara(sqlaux.FieldByName('CPFCNPJ').asstring);
    wregistro50.Inscricao       := TiraMascara(sqlaux.FieldByName('RGIE').asstring);
    wregistro50.DataDocumento   := Registro10.DataFinal;
    wregistro50.UF              := sqlaux.FieldByName('UF').asstring;


    if sqlaux.FieldByName('CODCHACESSO').AsString = '' then wregistro50.Modelo := '01'
    else                                                    wregistro50.Modelo := '55';


    wregistro50.Serie           := sqlaux.FieldByName('SERIE').asstring;
    wregistro50.Numero          := sqlaux.FieldByName('DOCUMENTO').asstring;
    wregistro50.Cfop            := TiraMascara(sqlaux.FieldByName('NATUREZAOP').asstring);
    wregistro50.EmissorDocumento:= sqlaux.FieldByName('EMITENTE').asstring;
    wregistro50.ValorContabil   := sqlaux.FieldByName('VLNOTA').AsCurrency;
    wregistro50.Icms            := sqlaux.FieldByName('ICMS').AsCurrency;
    wregistro50.BasedeCalculo   := sqlaux.FieldByName('BCICMS').AsCurrency;
    wregistro50.Situacao        := 'N';
    wregistro50.Isentas         := 0;
    wregistro50.Outras          := 0;
    ACBrSintegra.Registros50.Add(wregistro50);
  end;
  sqlaux.Next;
end;
Editado por rogerioclaro
mais informações
Link para o comentário
Compartilhar em outros sites

Então veja você somente cria uma vez o componente !

terá que criar quantos for o número de registros

Olá juliomar, bom dia!

 

como disse sou 'newbie' no mundo delphi. rss fiz dessa forma abaixo, porém ainda so gera um registro...

 

 

procedure TFrmSintegra.GerarRegistro50;

       var
       wregistro50: TRegistro50;

        begin
        dm.qryReg50.Open;
        dm.QryReg50.First;
        wregistro50:= TRegistro50.Create;

        while not dm.qryReg50.Eof do begin
          with ACBrSintegra do  begin
            DadosRegistro50;
            wregistro50.CPFCNPJ         := dm.qryReg50.FieldByName('CNPJ').asstring;
            wregistro50.Inscricao       := dm.qryReg50.FieldByName('IE').asstring;
            wregistro50.DataDocumento   := dm.QryReg50.FieldByName('DATA_CADASTRO').AsDateTime;//Registro10.DataFinal;
            wregistro50.UF              := dm.qryReg50.FieldByName('UF').asstring;


            wregistro50.Modelo:= dm.QryReg50.FieldByName('MODELO').AsString;

            wregistro50.Serie           := dm.qryReg50.FieldByName('SERIE').asstring;
            wregistro50.Numero          := dm.qryReg50.FieldByName('N_NOTA').asstring;
            wregistro50.Cfop            := dm.qryReg50.FieldByName('CFOP').asstring;
            wregistro50.EmissorDocumento:= dm.qryReg50.FieldByName('TIPO_EMISSAO').asstring;
            wregistro50.ValorContabil   := dm.qryReg50.FieldByName('VALOR_CONTABIL').AsCurrency;
            wregistro50.Icms            := dm.qryReg50.FieldByName('ICMS').AsCurrency;
            wregistro50.BasedeCalculo   := dm.qryReg50.FieldByName('BASE_CALCULO').AsCurrency;
            wregistro50.Situacao        := 'N';
            wregistro50.Isentas         := 0;
            wregistro50.Outras          := 0;

            ACBrSintegra.Registros50.Add(wregistro50);
            dm.qryReg50.Next;
          end;

          dm.qryReg50.Close;
        end;

end;

 

 

 

procedure TfrmSintegra.DadosRegistro50;
begin
       //select que fitra o periodo da geração do arquivo
       //e modelo da nota
        with   dm.qryReg50 do  begin
      Close;
       SQL.Clear;
       SQL.Add('SELECT * FROM entrada_nf WHERE ');
       SQL.Add('(data_emissao BETWEEN :datahora_ini AND :datahora_fim ) AND (');
       SQL.Add('(modelo = ''01'') OR');
       SQL.Add('(modelo = ''1A'') OR');
       SQL.Add('(modelo = ''03'') OR');
       SQL.Add('(modelo = ''06'') OR');
       SQL.Add('(modelo = ''55''))');
       SQL.Add('ORDER BY data_emissao');
       ParamByName('datahora_ini').asdatetime := StrToDate(MaskEdit1.Text);
       ParamByName('datahora_fim').asdatetime := StrToDate(MaskEdit2.Text);
       Open;

end;

Link para o comentário
Compartilhar em outros sites

Pessoal, bom dia!

 

Eu mesmo observei o erro, e consegui ajustar, desde ja obrigado, Em caso de dúvidas posto novamente.

 

Obrigado

 

       while not Dm.qryReg50.EOF do

        begin

          wregistro50 := TRegistro50.Create;

          DadosRegistro50;
          wregistro50.CPFCNPJ:=Dm.qryReg50.FieldByName('CNPJ').Value;

          wregistro50.Inscricao:=Dm.qryReg50.FieldByName('IE').Value;

          wregistro50.DataDocumento:=Dm.qryReg50.FieldByName('DATA_CADASTRO').Value;

          wregistro50.UF:=Dm.qryReg50.FieldByName('UF').Value;

          wregistro50.Modelo:=Dm.qryReg50.FieldByName('MODELO').Value;

          wregistro50.Serie:=Dm.qryReg50.FieldByName('SERIE').Value;

          wregistro50.Numero:=Dm.qryReg50.FieldByName('N_NOTA').Value;

          wregistro50.Cfop:=Dm.qryReg50.FieldByName('CFOP').Value;

          wregistro50.EmissorDocumento:=Dm.qryReg50.FieldByName('TIPO_EMISSAO').Value;

          wregistro50.ValorContabil:=Dm.qryReg50.FieldByName('VALOR_CONTABIL').Value;

          wregistro50.BasedeCalculo:=Dm.qryReg50.FieldByName('BASE_CALCULO').Value;

          wregistro50.Icms:=Dm.qryReg50.FieldByName('ICMS').Value;

          wregistro50.Isentas:=Dm.qryReg50.FieldByName('ISENTAS').Value;

          wregistro50.Outras:=Dm.qryReg50.FieldByName('OUTRAS').Value;

          wregistro50.Aliquota:=Dm.qryReg50.FieldByName('ALIQUOTA').Value;

          wregistro50.Situacao:='N';


          ACBrSintegra.Registros50.Add(wregistro50);


          Dm.qryReg50.Next;

        end;

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3173 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

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.