Página 1 de 1

Registro C190 do sped - como gerar ?

Enviado: 19 Dez 2011 11:17
por rubens
Gente tô desaprendendo programar !!!

Preciso gerar o registro c190 do sped e num tô conseguindo a lógica de como fazer ...
Tenho uma tabela com o seguintes campos:

numnota = c, 10
cfop = 4, c
cst = 3, c
icms = 2, c
valor = n,12,2

Preciso criar um relatório que gere os totais da combinação de cfop+cst+icms de uma mesma nota. alguem já fez? como ?

por exemplo:
na nota 100 tem os seguinte lancamentos:
cfop=5102 cst=000 icms=07 valor=120,00
cfop=5102 cst=000 icms=07 valor=70,00
cfop=5405 cst=500 icms=07 valor=50,00
cfop=5102 cst=500 icms=12 valor=12,00

daí preciso que saia assim:
|100|5102|000|07|190,00|
|100|5405|500|07|50,00|
|100|5102|500|12|12,00|

Vlw
Obg
Rubens

Registro C190 do sped - como gerar ?

Enviado: 20 Dez 2011 12:40
por rubens
Resolvi...

Código: Selecionar todos

USE ICOMPRAS
// CRIA UM INDICE TEMPORARIO COM OS CAMPOS QUER QUERO FILTRAR 
// E PARA O DOCUMENTO SELECIONADO
INDEX ON CFOP+CST_ICMS+STRZERO(ALIQ_ICMS,2) TO IC190 FOR DOCUME=cDOCUME
DBGOTOP()

WHILE !EOF()

                // PEGA OS CAMPOS NO PRIMEIRO REGISTRO
		cCFOP	:= CFOP
		cCST_ICMS := CST_ICMS
		cALIQ	:= STRZERO( ALIQ_ICMS,2 )
		cLINHA	:= cCFOP + cCST_ICMS + cALIQ
		
                // ENQUANTO OS CAMPOS DO ARQUIVO FOREM IGUAIS AS VARIAVEIS
		WHILE ICOM->CFOP+CST_ICMS+STRZERO(ALIQ_ICMS,2) = (cLINHA)
             	        nVL_OPR += ( ICOM->QTDE_ * ICOM->VALOR_ )
			DBSKIP()
		ENDDO 

		@ PROW(),PCOL() SAY "|"+DOCUME+"+"|"+cCFOP+"|"+cCST+"|"+cALIQ+"|" 
               @ PROW(),PCOL() SAY STRTRAN( ALLTRIM( STR(nVL_OPR,12,2) ),".","," )+"|"

ENDDO