Estou gerando a nf paulista, mas o programa da receita nem reconhece o arquivo uso delphi 7, a baixo a minha funcao para gerar o arquivo. Sera que alguem pode me ajudar ?
Obrigado procedure TFRM_SIS8011.Processa; var TipFre: String; Tot20, Tot30, Tot40, Tot50, Tot60: Integer; F: TextFile; begin AssignFile(F,'C:\NF.TXT'); Rewrite(F); Write(F, #239+#187+#191 ); Tot20 := 0; Tot30 := 0; Tot40 := 0; Tot50 := 0; Tot60 := 0; FRM_DATMOD.Query.Close; FRM_DATMOD.Query.SQL.Clear; FRM_DATMOD.Query.SQL.Add( 'SELECT COUNT( * ) AS TOTAL FROM FATGER G, CADCLI C WHERE G.CLI_CODIGO = C.CLI_CODIGO' ); FRM_DATMOD.Query.SQL.Add( 'AND G.FTG_DATVEN BETWEEN ' + FormataData( edDATINI.Text ) + ' AND ' + FormataData( edDATFIN.Text ) ); FRM_DATMOD.Query.SQL.Add( 'AND G.FTG_ESPDOC = ' + QuotedStr( 'NF' ) ); FRM_DATMOD.Query.SQL.Add( 'AND G.EXC_DATEXC IS NULL' ); FRM_DATMOD.Query.SQL.Add( 'AND G.FTG_TIPONF = ' + QuotedStr( 'VE' ) ); FRM_DATMOD.Query.SQL.Add( 'ORDER BY G.FTG_DATVEN' ); FRM_DATMOD.Query.Open; Pro.Visible := True; Pro.MaxValue := FRM_DATMOD.Query.FieldByName( 'TOTAL' ).AsInteger; Pro.Progress := 0; FRM_DATMOD.Query.Close; FRM_DATMOD.Query.SQL.Clear; FRM_DATMOD.Query.SQL.Add( 'SELECT * FROM FATGER G, CADCLI C, CADTRA TRA WHERE G.CLI_CODIGO = C.CLI_CODIGO' ); FRM_DATMOD.Query.SQL.Add( 'AND G.FTG_DATVEN BETWEEN ' + FormataData( edDATINI.Text ) + ' AND ' + FormataData( edDATFIN.Text ) ); FRM_DATMOD.Query.SQL.Add( 'AND G.FTG_ESPDOC = ' + QuotedStr( 'NF' ) ); FRM_DATMOD.Query.SQL.Add( 'AND G.EXC_DATEXC IS NULL' ); FRM_DATMOD.Query.SQL.Add( 'AND G.FTG_TIPONF = ' + QuotedStr( 'VE' ) ); FRM_DATMOD.Query.SQL.Add( 'AND G.TRA_CODIGO = TRA.TRA_CODIGO' ); FRM_DATMOD.Query.SQL.Add( 'ORDER BY G.FTG_DATVEN' ); FRM_DATMOD.Query.Open; Writeln( F, UTF8Encode( '10'+'|'+ '1,00'+'|'+ StrZero( TiraCaracter( PegaFil( 'FIL_C_G_C_' ) ), 14 )+'|'+ FormatDateTime( 'DD/MM/YYYY', StrToDate( edDATINI.Text ) )+'|'+ FormatDateTime( 'DD/MM/YYYY', StrToDate( edDATFIN.Text ) ) ) ); While Not FRM_DATMOD.Query.Eof Do Begin Writeln( F, UTF8Encode( '20'+'|'+ 'I'+ '|' + ''+'|'+ NomeCfop( FRM_DATMOD.Query.FieldByName( 'CFO_CODIG1' ).AsString )+'|'+ '1'+'|'+ FRM_DATMOD.Query.FieldByName( 'FTG_CODIGO' ).AsString+'|'+ FormatDateTime( 'DD/MM/YYYY', FRM_DATMOD.Query.FieldByName( 'FTG_DATVEN' ).AsDateTime ) + ' ' + FormatDateTime( 'HH:MM:SS', FRM_DATMOD.Query.FieldByName( 'FTG_HORVEN' ).AsDateTime )+'|'+ ''+'|'+ '1'+'|'+ FRM_DATMOD.Query.FieldByName( 'CFO_CODIG1' ).AsString+'|'+ ''+'|'+ ''+'|'+ TiraCaracter( FRM_DATMOD.Query.FieldByName( 'CLI_C_G_C_' ).AsString )+'|'+ TiraCaracter( FRM_DATMOD.Query.FieldByName( 'CLI_DESCRI' ).AsString )+'|'+ TiraCaracter( FRM_DATMOD.Query.FieldByName( 'CLI_ENDERE' ).AsString )+'|'+ TiraCaracter( FRM_DATMOD.Query.FieldByName( 'CLI_NUMERO' ).AsString )+'|'+ ''+'|'+ TiraCaracter( FRM_DATMOD.Query.FieldByName( 'CLI_BAIRRO' ).AsString )+'|'+ TiraCaracter( FRM_DATMOD.Query.FieldByName( 'CLI_CIDADE' ).AsString )+'|'+ TiraCaracter( FRM_DATMOD.Query.FieldByName( 'CLI_ESTADO' ).AsString )+'|'+ TiraCaracter( FRM_DATMOD.Query.FieldByName( 'CLI_C_E_P_' ).AsString )+'|'+ 'BRASIL'+'|'+ ''+'|'+ '' ) ); Inc( Tot20 ); FRM_DATMOD.Query1.Close; FRM_DATMOD.Query1.SQL.Clear; FRM_DATMOD.Query1.SQL.Add( 'SELECT * FROM FATDET F, CADPRO P' ); FRM_DATMOD.Query1.SQL.Add( 'WHERE F.FTG_CODIGO = ' + QuotedStr( FRM_DATMOD.Query.FieldByName( 'FTG_CODIGO' ).AsString ) ); FRM_DATMOD.Query1.SQL.Add( ' AND F.FTG_ESPDOC = ' + QuotedStr( FRM_DATMOD.Query.FieldByName( 'FTG_ESPDOC' ).AsString ) ); FRM_DATMOD.Query1.SQL.Add( ' AND F.FIL_CODIGO = ' + QuotedStr( FRM_DATMOD.Query.FieldByName( 'FIL_CODIGO' ).AsString ) ); FRM_DATMOD.Query1.SQL.Add( ' AND F.PRO_CODIGO = P.PRO_CODIGO' ); FRM_DATMOD.Query1.Open; While Not FRM_DATMOD.Query1.Eof Do Begin Writeln( F, UTF8Encode( '30'+'|'+ TiraCaracter( FRM_DATMOD.Query1.FieldByName( 'PRO_CODIGO' ).AsString )+'|'+ TiraCaracter( FRM_DATMOD.Query1.FieldByName( 'FTD_ITEESP' ).AsString )+'|'+ ''+'|'+ TiraCaracter( FRM_DATMOD.Query1.FieldByName( 'FTD_ITEESP' ).AsString )+'|'+ TiraCaracter( FRM_DATMOD.Query1.FieldByName( 'UNI_CODIGO' ).AsString )+'|'+ FormatFloat( '0.0000', FRM_DATMOD.Query1.FieldByName( 'FTD_QTDITE' ).AsFloat )+'|'+ FormatFloat( '0.0000', FRM_DATMOD.Query1.FieldByName( 'FTD_VALRAT' ).AsFloat )+'|'+ FormatFloat( '0.00', FRM_DATMOD.Query1.FieldByName( 'FTD_QTDITE' ).AsFloat * FRM_DATMOD.Query1.FieldByName( 'FTD_VALRAT' ).AsFloat )+'|'+ TiraCaracter( FRM_DATMOD.Query1.FieldByName( 'FTD_CODCFO' ).AsString )+'|'+ FormatFloat( '0.00', FRM_DATMOD.Query1.FieldByName( 'FTD_ALQICM' ).AsFloat )+'|'+ FormatFloat( '0.00', FRM_DATMOD.Query1.FieldByName( 'FTD_VALIPI' ).AsFloat )+'|'+ FormatFloat( '0.00', 0 ) ) ); Inc( Tot30 ); FRM_DATMOD.Query1.Next; end; FRM_DATMOD.Query1.Close; FRM_DATMOD.Query1.SQL.Clear; FRM_DATMOD.Query1.SQL.Add( 'SELECT SUM( F.FTD_BASICM ) AS BASICM,' ); FRM_DATMOD.Query1.SQL.Add( ' SUM( F.FTD_VALICM ) AS TOTICM,' ); FRM_DATMOD.Query1.SQL.Add( ' SUM( F.FTD_VALSUB ) AS TOTRET,' ); FRM_DATMOD.Query1.SQL.Add( ' SUM( F.FTD_VALRAT * F.FTD_QTDITE ) AS TOTPRO,' ); FRM_DATMOD.Query1.SQL.Add( ' SUM( F.FTD_VALIPI ) AS VALIPI,' ); FRM_DATMOD.Query1.SQL.Add( ' SUM( ( F.FTD_VALRAT * F.FTD_QTDITE ) + F.FTD_VALIPI + + F.FTD_VALIPI ) AS TOTNF' ); FRM_DATMOD.Query1.SQL.Add( 'FROM FATDET F' ); FRM_DATMOD.Query1.SQL.Add( 'WHERE F.FTG_CODIGO = ' + QuotedStr( FRM_DATMOD.Query.FieldByName( 'FTG_CODIGO' ).AsString ) ); FRM_DATMOD.Query1.SQL.Add( ' AND F.FTG_ESPDOC = ' + QuotedStr( FRM_DATMOD.Query.FieldByName( 'FTG_ESPDOC' ).AsString ) ); FRM_DATMOD.Query1.SQL.Add( ' AND F.FIL_CODIGO = ' + QuotedStr( FRM_DATMOD.Query.FieldByName( 'FIL_CODIGO' ).AsString ) ); FRM_DATMOD.Query1.Open; Writeln( F, UTF8Encode( '040'+'|'+ FormatFloat( '0.00', FRM_DATMOD.Query1.FieldByName( 'BASICM' ).AsFloat )+'|'+ FormatFloat( '0.00', FRM_DATMOD.Query1.FieldByName( 'TOTICM' ).AsFloat )+'|'+ FormatFloat( '0.00', FRM_DATMOD.Query1.FieldByName( 'TOTRET' ).AsFloat )+'|'+ FormatFloat( '0.00', FRM_DATMOD.Query1.FieldByName( 'TOTPRO' ).AsFloat )+'|'+ FormatFloat( '0.00', FRM_DATMOD.Query.FieldByName( 'FTG_VALFRE' ).AsFloat )+'|'+ FormatFloat( '0.00', 0 )+'|'+ FormatFloat( '0.00', 0 )+'|'+ FormatFloat( '0.00', FRM_DATMOD.Query1.FieldByName( 'VALIPI' ).AsFloat )+'|'+ FormatFloat( '0.00', 0 )+'|'+ FormatFloat( '0.00', FRM_DATMOD.Query1.FieldByName( 'TOTNF' ).AsFloat + FRM_DATMOD.Query.FieldByName( 'FTG_VALFRE' ).AsFloat )+'|'+ FormatFloat( '0.00', 0 )+'|'+ FormatFloat( '0.00', 0 )+'|'+ FormatFloat( '0.00', 0 ) ) ); Inc( Tot40 ); TipFre := '0'; If FRM_DATMOD.Query.FieldByName( 'FTG_FRECON' ).AsString = '2' then begin TipFre := '1'; end; Writeln( F, UTF8Encode( '050'+'|'+ TipFre+'|'+ TiraCaracter( FRM_DATMOD.Query.FieldByName( 'TRA_C_G_C_' ).AsString )+'|'+ TiraCaracter( FRM_DATMOD.Query.FieldByName( 'TRA_DESCRI' ).AsString )+'|'+ TiraCaracter( FRM_DATMOD.Query.FieldByName( 'TRA_I_E_S_' ).AsString )+'|'+ TiraCaracter( FRM_DATMOD.Query.FieldByName( 'TRA_ENDERE' ).AsString )+'|'+ TiraCaracter( FRM_DATMOD.Query.FieldByName( 'TRA_CIDADE' ).AsString )+'|'+ TiraCaracter( FRM_DATMOD.Query.FieldByName( 'TRA_ESTADO' ).AsString )+'|'+ ''+'|'+ ''+'|'+ ''+'|'+ TiraCaracter( FRM_DATMOD.Query.FieldByName( 'FTG_ESPECI' ).AsString )+'|'+ TiraCaracter( FRM_DATMOD.Query.FieldByName( 'FTG_DESMAR' ).AsString )+'|'+ ''+'|'+ ''+'|'+ '' ) ); Inc( Tot50 ); Writeln( F, '060'+'|'+ ''+'|'+ ''+'|'+ '' ); Inc( Tot60 ); FRM_DATMOD.Query.Next; Pro.Progress := Pro.Progress + 1; Pro.Refresh; end; Write( F, UTF8Encode( '90'+'|'+ StrZero( FloatToStr( Tot20 ), 05 )+'|'+ StrZero( FloatToStr( Tot30 ), 05 )+'|'+ StrZero( FloatToStr( Tot40 ), 05 )+'|'+ StrZero( FloatToStr( Tot50 ), 05 )+'|'+ StrZero( FloatToStr( Tot60 ), 05 ) ) ); CloseFile( F ); Pro.Visible := False; Pro.Progress := 0; Pro.Refresh; FRM_DATMOD.Query.Close; Aviso( 'Arquivo Gerado Com Sucesso !'); end;