×
Linguagem de Programação ADVPL
Perguntas CRLF
- Rstrozi
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 123
- Obrigados Recebidos: 0
11 anos 4 meses atrás #15373
por Rstrozi
Boa tarde Pessoal,
Estou mexendo no ponto de entrada PE01NFESEFAZ para inclusão de uma mensagem do cálculo do ICMS ST nas informações adicionais e gostaria de deixá-la assim:
CALCULO DO ICMS ST:
_Produto: 1111111 Base ICMS ST: R$ 999,99 Aliq. ICMS ST: 99,99% Vlr ICMS ST: R$ 9,99
_Produto: 2222222 Base ICMS ST: R$ 999,99 Aliq. ICMS ST: 99,99% Vlr ICMS ST: R$ 9,99
_Produto: 3333333 Base ICMS ST: R$ 999,99 Aliq. ICMS ST: 99,99% Vlr ICMS ST: R$ 9,99
Para isto, utilizei o código abaixo:
Porém a mensagem não está ficando 'bonitinha' como deveria ser... No lugar do <ENTER> ( CHR(13)+CHR(10) ), está aparecendo '..', conforme abaixo
..CALCULO ICMS ST: .._Produto: 9999999 Base ICMS ST: R$18,30 Aliq. ICMS ST: 18,00% VLR ICMS ST: R$ 0,23 ..
Alguém já passou por isso?
Meu servidor é Linux (RedHat) e meu banco é IBM DB2.
Estou mexendo no ponto de entrada PE01NFESEFAZ para inclusão de uma mensagem do cálculo do ICMS ST nas informações adicionais e gostaria de deixá-la assim:
CALCULO DO ICMS ST:
_Produto: 1111111 Base ICMS ST: R$ 999,99 Aliq. ICMS ST: 99,99% Vlr ICMS ST: R$ 9,99
_Produto: 2222222 Base ICMS ST: R$ 999,99 Aliq. ICMS ST: 99,99% Vlr ICMS ST: R$ 9,99
_Produto: 3333333 Base ICMS ST: R$ 999,99 Aliq. ICMS ST: 99,99% Vlr ICMS ST: R$ 9,99
Para isto, utilizei o código abaixo:
If SF2->F2_ICMSRET > 0
dbSelectArea("SD2")
dbSetOrder(3)
dbSeek(xFilial("SD2")+SF2->F2_DOC+SF2->F2_SERIE+SF2->F2_CLIENTE+SF2->F2_LOJA)
cNWICMS := CHR(13)+CHR(10)+"CALCULO ICMS ST: "+CHR(13)+CHR(10)
While !EOF() .and. SD2->D2_SERIE == SF2->F2_SERIE .and. SD2->D2_DOC == SF2->F2_DOC
If SD2->D2_ICMSRET > 0
cNWICMS += "_Produto: "+Alltrim(SD2->D2_COD)+;
" Base ICMS ST: R$"+AllTrim(Transform(SD2->D2_BRICMS, "@ze 9,999,999,999,999.99"))+;
" Aliq. ICMS ST: "+AllTrim(Transform(SD2->D2_ALIQSOL, "@ze 9,999,999,999,999.99"))+;
"% VLR ICMS ST: R$ "+AllTrim(Transform(SD2->D2_ICMSRET, "@ze 9,999,999,999,999.99"))+CHR(13)+CHR(10)
EndIf
SD2->(dbSkip())
EndDo
SD2->(DbCloseArea())
EndIf
Porém a mensagem não está ficando 'bonitinha' como deveria ser... No lugar do <ENTER> ( CHR(13)+CHR(10) ), está aparecendo '..', conforme abaixo
..CALCULO ICMS ST: .._Produto: 9999999 Base ICMS ST: R$18,30 Aliq. ICMS ST: 18,00% VLR ICMS ST: R$ 0,23 ..
Alguém já passou por isso?
Meu servidor é Linux (RedHat) e meu banco é IBM DB2.
Por favor Acessar ou Registrar para participar da conversa.
- Rstrozi
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 123
- Obrigados Recebidos: 0
11 anos 4 meses atrás #15400
por Rstrozi
Acho que descobri qual é o problema
Na função NoAcento no fonte NFESEFAZ, existe este trecho:
Pelo que entendi, ele pega o CHR(13)+CHR(10) (ambos < 32) e transforma cada um deles em '.', logo CHR(13)+CHR(10) = '..'
Acho que não vai rolar de deixar a mensagem 'bonitinha'...
Na função NoAcento no fonte NFESEFAZ, existe este trecho:
For nX:=1 To Len(cString)
cChar:=SubStr(cString, nX, 1)
If (Asc(cChar) < 32 .Or. Asc(cChar) > 123) .and. !cChar $ '|'
cString:=StrTran(cString,cChar,".")
Endif
Next nX
Pelo que entendi, ele pega o CHR(13)+CHR(10) (ambos < 32) e transforma cada um deles em '.', logo CHR(13)+CHR(10) = '..'
Acho que não vai rolar de deixar a mensagem 'bonitinha'...
Por favor Acessar ou Registrar para participar da conversa.
Tempo para a criação da página:0.113 segundos