simbolos

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

evandro frasson
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 11 Ago 2010 22:04
Localização: botucatu/sp

simbolos

Mensagem por evandro frasson »

Quando crio o txt no diretorio, esta aparecento simbolos na primeira linha o que pode ser?
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: simbolos

Mensagem por Toledo »

Evandro, seja bem-vindo ao Fórum!

Dê mais detalhes sobre como você está criando este arquivo TXT e que simbolos são estes?

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
evandro frasson
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 11 Ago 2010 22:04
Localização: botucatu/sp

Re: simbolos

Mensagem por evandro frasson »

Bom dia,
Estou gerando um arquivo .txt no diretorio c:\nfe e o que esta ocorrendo e o seguinte,
Eu digigo a nota fiscal normalmente e envio para este diretorio, quando envio uma por vez, ou seja, envio uma saio do sitema, envio outra ok funcional legal, mas quando digito duas ou mais notas, apartir da segunda nota ,na primeira linha aparece dois caracteres estranhos da tabela ascii (desculpe) CONCLUINDO.. Ja analisei reli e nao encontro erro na emissao para o diretorio.
Obrigado por retornar..
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: simbolos

Mensagem por Maligno »

Pela lógica: a finalização da primeira NF está enviando "lixo" para o início da segunda. Será preciso analisar o código que gera a NF para saber como resolver.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: simbolos

Mensagem por Toledo »

Evandro, se para cada nota você está criando um TXT, com o mesmo nome, tente antes de criar o arquivo verificar se ele já existe, se sim, delete o arquivo antes (ERASE <arquivo>).

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
evandro frasson
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 11 Ago 2010 22:04
Localização: botucatu/sp

Re: simbolos

Mensagem por evandro frasson »

Vou postar daqui a pouco o codigo, mas antes tenho uma tabela do ibge com nomes dos municipios e estados mas esta em xls tem como eu passar ela para dbf.
evandro frasson
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 11 Ago 2010 22:04
Localização: botucatu/sp

Re: simbolos

Mensagem por evandro frasson »

Código: Selecionar todos

if CONFIRMA1("Deseja Imprimir a Nota? ")

            xdata_venda = space(10)
            xpro_cod = 0
            xpro_qtd = 0
            xpro_ven = 0
            xcst000t = 0
            xcst010t = 0
            xcst060t = 0
            xfat_ope11 = 0
            xfat_ope12 = 0
            xsit_trib = space(3)
            sele 8
            loca for orc_cod = xbal_cod
            do while orc_cod = xbal_cod 
               xdata_venda = data
               xpro_cod = pro_cod
               xpro_qtd = pro_qtd
               xpro_ven = pro_ven
               sele 3
               loca for xpro_cod = pro_cod
               do case
                  case xemp_grupo = "S"
                     xfat_ope11 = 5949
                     xfat_opnom = "REMESSA"
                     xfat_ope12 = 5949
                     xfat_opno1 = "REMESSA"
                  case sit_trib = "000" .and. xcli_est = "SP"
                       xfat_ope11 = 5102
                       xfat_opnom = "VENDAS"
                  case sit_trib = "060" .and. xcli_est = "SP"
                       xfat_ope12 = 5403
                       xfat_opno1 = "VENDAS"
                  case sit_trib = "000" .and. xcli_est <> "SP"
                       xfat_ope11 = 6102
                       xfat_opnom = "VENDAS"
                  case sit_trib = "060" .and. xcli_est <> "SP"
                       xfat_ope12 = 6403
                       xfat_opno1 = "VENDAS"
               endcase
               sele 58
               append blank
               replace DATA    with xDATA_VENDA
               replace BAL_COD with xBAL_COD
               replace PRO_COD with xPRO_COD
               replace PRO_QTD with xPRO_QTD
               replace PRO_VEN with xPRO_VEN
               SELE 8
               SKIP
            ENDDO

            sele 29
            append blank
            replace BAL_COD with xBAL_COD
            replace FAT_SAI with xFAT_SAI
            replace FAT_ENT with xFAT_ENT
            replace FAT_NUM with xFAT_NUM
            replace FAT_OPE with xFAT_OPE11
            replace FAT_OPE1 with xFAT_OPE12
            replace FAT_opnom with xFAT_opnom
            replace FAT_opno1 with xFAT_opno1
            replace FAT_COD with xFAT_COD
            replace FAT_CLI with xcli_cod
            replace cli_nom with xcli_nom
            replace FAT_EMI with xDATA
            replace FAT_DAT with xDATA
            replace FAT_VAL with xSUBTOT2
            replace FAT_VE1 with xFAT_VE1
            replace FAT_VE2 with xFAT_VE2
            replace FAT_VE3 with xFAT_VE3
            replace FAT_VE4 with xFAT_VE4
            replace FAT_VE5 with xFAT_VE5
            replace PROQTD  with xquant_nf
            replace TOTALMERC with xsubtot1
            replace BASE_CALC with xbase
            replace ALIC    with xALIC
            replace IPI     with xIPI
            replace FRETE   with xFRETE
            replace TRANS   with xTRANS
            replace ENDER   with xENDER
            replace CIDAD   with xCIDAD
            replace ESTAD   with xEST
            replace PLACA   with xPLACA
            replace CGC     with xCGC
            replace IE      with xIE
            replace ESPEC   with xESPEC
            replace MARCA   with xMARCA
            replace P_BRU   with xP_BRU
            replace P_LIQ   with xP_LIQ
            replace MENSAGEM with xobs
            replace MENSAGEM2 WITH xobs1
            replace CANCELA   WITH xCANCELA

            sele 29
            // Verifica se a impressora esta ok
//            if !print()
//               RESTORE SCREEN FROM XTT
//               EXIT
//            endif

            //Funcao que pede para aguardar termino da impressao

              AGUARDE()

            // Inicializa Variaveis do relatorio
                xLIN    = 0
                xTOT    = 0
                xTOTAL  = 0
                xcst000 = 0
                xcst010 = 0
                xcst060 = 0
                xcst00t = 0
                xcst01t = 0
                xcst06t = 0
                xcst00te = 0
                xcst01te = 0
                xcst06te = 0
                xprazo = 0
                
                if xgru_cod = 7   //se o grupo for carteira venda (1=prazo
                   xprazo = 1     //                              (0=vista
                   else
                   xprazo = 0
                endif

                //variavel (nfe1) cria o arquivo txt no diretorio especificado
                nfe1 = "C:\nfeour\nfe_" + alltrim(str(xfat_num,10)) + ".TXT" 

                xtot_gru = 0
                xtot_not = 0
                xpreven  = 0
                xtt_gru = 0
                xtt_not = 0

                set console off
                set cursor off
                set print TO &NFE1
                set device to print

                @ xlin,00 say "NOTA FISCAL|"
                @ xlin,12 say "1"
                xlin = xlin + 1
                @ xlin,00 say "A|1.10|NFe|"
                xlin = xlin + 1
                @ xlin,00 say "B|35||"
                @ xlin,06 say alltrim(xFAT_OPNOM) + "|" + alltrim(str(xprazo)) + "|55|0|" + alltrim(str(xfat_num)) + "|" + ;
                SUBS(xdata,7,4)+"-"+SUBS(xdata,4,2)+"-"+SUBS(xdata,1,2) + "|" + SUBS(xDATA,7,4)+"-"+SUBS(xDATA,4,2)+"-"+SUBS(xDATA,1,2) + "|1|3534708|1|1||1|1|3|1.4.2"
                xlin = xlin + 1  
                @ xlin,00 say "C|A|T|999999999999|||"
                xlin = xlin + 1
                @ xlin,00 say "C02|99999999999999"
                xlin = xlin + 1
                @ xlin,00 say "C05|RUA|328||BAIRRO|3534708|OURINHOS|SP||1058|BRASIL||"
                xlin = xlin + 1

                sele 1

                loca for CLI_COD = xcli_cod

                @ xlin,00 say "E|" + ALLTRIM(CLI_NOM) +"|"+ ALLTRIM(CLI_RG)
                xlin = xlin + 1
                IF CLI_FJ = "F"
                   @ xLIN,00 say "E03|" + alltrim(CLI_CPF)
                   ELSE
                   @ xLIN,00 say "E02|" + ALLTRIM(CLI_CPF)
                ENDIF
                xLIN = xLIN + 1
                @ xLIN,00 say "E05|" + alltrim(CLI_END) + "|" + alltrim(NRO) + "||" + alltrim(CLI_BAI) + "|" + STR(cmun) + "|" + ;
                alltrim(CLI_CID) + "|" + CLI_EST + "|" + subs(CLI_CEP,1,5)+subs(CLI_CEP,7,3) + "|1058|BRASIL||"  //+ alltrim(cli_tel) + "|"
                xlin = xlin + 1
                xit = 0
                xpro_cod = 0
                xpro_ven = 0
                xpro_qtd = 0
                xval = 0

                sele 29

                xBAL_COD = BAL_COD

                sele 58
                set order to 2
                go bott
                go top

                loca for xBAL_COD = BAL_COD

                DO WHILE xBAL_COD = BAL_COD .and. !eof()

                   xPRO_COD = PRO_COD
                   xPRO_VEN = PRO_VEN
                   xPRO_QTD = PRO_QTD

                   sele 3
                   loca for xpro_cod = pro_cod
                   xpro_cus = pro_cus
                   IF xemp_grupo = "S"
                      xval = xpro_cus
                      xtotal = (xPRO_CUS * xPRO_QTD)
                      xtt=xtt+xtotal
                     else
                      xval = xpro_ven
                      xTOTAL = (xPRO_VEN * xPRO_QTD)
                      xtt=xtt+xtotal
                   endif

                   if xemp_grupo = "S"
                      IF SIT_TRIB = "000"
                       xcst000e = 0
                       xcst000e = (pro_cus * xpro_qtd)
                       xcst00te = xcst00TE + xcst000e
                      endif
                      IF SIT_TRIB = "010"
                       xcst010e = 0
                       xcst010e = (pro_cus * xpro_qtd)
                       xcst01te = xcst01TE + xcst010e
                      endif
                      IF SIT_TRIB = "060"
                         xcst060e = 0
                         xcst060e = (pro_cus * xpro_qtd)
                         xcst06te = xcst06TE + xcst060e
                      endif

                      else
                     
                      IF SIT_TRIB = "000"
                       xcst000 = 0
                       xcst000 = (xpro_ven * xpro_qtd)
                       xcst000t = xcst000t + xcst000
                      endif
                      IF SIT_TRIB = "010"
                       xcst010 = 0
                       xcst010 = (xpro_ven * xpro_qtd)
                       xcst010t = xcst010t + xcst010
                      endif
                      IF SIT_TRIB = "060"
                       xcst060 = 0
                       xcst060 = (xpro_ven * xpro_qtd)
                       xcst060t = xcst060t + xcst060
                      endif

                   endif

                   xtrib = " "
                   xtrib = sit_trib
                   xit = xit + 1
                   sele 3
                   loca for PRO_COD = xPRO_COD

                   @ xlin,00 say "H|" + alltrim(str(xit))

                   xLIN = xLIN + 1
                   @ xLIN,00 say "I|" + alltrim(str(xPRO_COD)) + "||" + alltrim(pro_des) + "|" + alltrim(cncm) + "|||" + str(cfop) + ;
                   "|" + alltrim(pro_uni) + "|" + alltrim(str(xpro_qtd,9,4)) + "|" + alltrim(str(xval,9,4)) + "|" + alltrim(str(xtotal,9,2)) + "|" + ;
                   "|" + alltrim(pro_uni) + "|" + alltrim(str(xpro_qtd,9,4)) + "|" + alltrim(str(xval,9,4)) + "||"                         
 
                   xlin = xlin + 1
                   @ xlin,00 say "M"
                   xlin = xlin + 1
                   @ xlin,00 say "N"
                   IF xTRIB = "000"
                      xlin = xlin + 1
                      @ xlin,00 say "N06|0|41"
                   ENDIF   
                   IF xTRIB = "060"
                      xlin = xlin + 1
                      @ xlin,00 say "N08|0|60|0.00|0.00"
                   ENDIF   
                   xlin = xlin + 1
                   @ xlin,00 say "Q"
                   xlin = xlin + 1
                   @ xlin,00 say "Q05|99|0.00"
                   xlin = xlin + 1
                   @ xlin,00 say "Q07|0.00|0.00"
                   xlin = xlin + 1
                   @ xlin,00 say "S"
                   xlin = xlin + 1
                   @ xlin,00 say "S05|99|0.00"
                   xlin = xlin + 1
                   @ xlin,00 say "S07|0.00|0.00"
                   xlin = xlin + 1
                                      
                   sele 58
                   skip

                ENDDO

                sele 29

                @ xlin,00 say "W"
                xlin = xlin + 1
                @ xlin,00 say "W02|0.00|0.00|0.00|0.00|" + alltrim(str(xtt,9,2)) + "|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|" + alltrim(str(xtt,9,2))
                xlin = xlin + 1
                if xFRETE = "1"
                  @ xlin,00 say "X|0"
                  xlin = xlin + 1
                  @ xlin,00 say "X03|" + alltrim(xEMP_NOME) + "|" + alltrim(xemp_ie) + "|" + alltrim(xemp_end) + ;
                  "|" + alltrim(xemp_est) + "|" + alltrim(xemp_cid) + "|"
                  xlin = xlin + 1
                  @ xlin,00 say "X04|" + alltrim(xemp_cgc) + "|"
                  else
                  @ xlin,00 say "X|1"
                  xlin = xlin + 1
                  @ xlin,00 say "X03|" + alltrim(xtrans) + "|" + alltrim(xie) + "|" + alltrim(xender) + ;
                  "|" + alltrim(xest) + "|" + alltrim(cidad) + "|" 
                  xlin = xlin + 1
                  @ xlin,00 say "X04|" + alltrim(xcgc) + "|"
                endif
                xlin = xlin + 1
                @ xlin,00 say "X26|" + alltrim(str(xquant_nf)) + "|" + alltrim(xESPEC) + "|||" + ;
                alltrim(str(xP_BRU,8,3)) + "|" + alltrim(str(xP_LIQ,8,3))

//DADOS ADICIONAIS DA NOTA FISCAL

                xlin = xlin + 1
                @ xlin,00 say "Y"
                xlin = xlin + 1
                @ xlin,00 say "Z||O IMPOSTO SERA CALCULADO E RECOLHIDO NOS TERMOS DO ARTIGO 10 DO DECRETO 50588 DE 14/03/2006" + ;
                "|" + alltrim(xobs) + alltrim(xobs1) + "|" + "|DOCUMENTO:" + alltrim(str(xfat_num)) + "|" + "-Vencimento:" + ;
                SUBS(xorc1,1,2)+"-"+SUBS(xorc1,4,2)+"-"+SUBS(xorc1,7,4) + "|" + "Valor:" + alltrim(str(xpar1))

                set device to screen
                set print to
                set console on
                set cursor on

                if xemp_grupo = "S"
                   if xcst00TE <> 0
                    replace cst000 with xcst00te
                   endif
                   if xcst06TE <> 0
                    replace cst060 with xcst06te
                   endif
                   if xcst01TE <> 0
                      replace cst010 with xcst01te
                   endif
                endif
                xdes = 0
                xdes1 = 0
                if xvaldes > xcst000t .and. xcst060t <> 0
                   xdes = xvaldes - xcst000t
                   xdes1 = xcst060t - xdes - xdes
                   replace cst000 with xdes
                   replace cst060 with xdes1
                   else
                   if xcst000t <> 0
                       if xcst000t >= xvaldes .or. xcst060t = 0
                          replace cst000 with xcst000t-xvaldes
                       endif
                   endif
                   if xcst060t <> 0
                      if xcst000t >= xvaldes 
                         replace cst060 with xcst060t
                         else
                         if xcst060 >= 0 .and. xcst000 = 0 
                           replace cst060 with xcst060t-xvaldes
                          else 
                           if xcst060 >= xvaldes
                            replace cst060 with xcst060t-xvaldes
                            replace cst000 with xcst000t
                           endif
                         endif
                      endif
                   endif
                   if xcst010t <> 0
                      replace cst010 with xcst010t
                   endif
                endif

//frase de epp ESTA IMPRESSO NA NOTA FISCAL

// IMPRIME CANHOTO DA NOTA FISCAL

                sele 29
                replace ESTPL   WITH xESTPL

                SELE 7
                loca for orc_cod = xbal_cod
                if orc_cod = xbal_cod
                   if rlock()
                     replace dnf with xfat_num
                     unlock
                   endif
                endif

         else
              restore screen from xtt
              exit
         endif
Editado pela última vez por Maligno em 09 Out 2010 14:48, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: simbolos

Mensagem por rochinha »

Amiguinho,

Use funçõse de baixo nivel para salvar o conteudo de seu arquivo. Usando a forma como vc esta usando realmente podem aparecer caracteres estranhos não só no inicio como no final do arquivo.

Veja o exemplo de uso destes comandos.
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.
evandro frasson
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 11 Ago 2010 22:04
Localização: botucatu/sp

Re: simbolos

Mensagem por evandro frasson »

eu nao conheco a funcao fwrite.
se tiver um exeplo como poderia subs o @ 00,00 say " " por fwrite..

grato
evandro


Nota de Moderação:
por Maligno: O presente tópico originalmente foi postado na seção "Legislação Fiscal e Tributária", que obviamente é a seção errada. Mas, como até a presente mensagem não foi definido se é Clipper ou [x]Harbour, resolvi mover para a seção "CA-Clipper".
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: simbolos

Mensagem por gvc »

Antes de iniciar o relatório coloque: setprc(0, 0)
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Responder