Árvore de páginas

Função: ECDImpLivro - Função

Função que importa um arquivo txt e cria o livro Z- Razão Auxiliar, na Central de Escrituração.

ECDImpLivro - Função ( [ cEmp], [ aFils], [ cArqTxt], < cLayout>, < cNumOrdem>, < cNatureza>, < dDataIni>, < dDataFim> ) --> lRet

NomeTipoDescriçãoObrigatórioReferência
cEmpCaracterEmpresa Corrente
aFilsArray of RecordArray com as filiais do livro gerado.a sua estrutura deve ser a seguinte:aFils[1][1] := .T.aFils[2][2] := Codigo da Empresa aFils[2][3] := Codigo da FilialaFils[2][4] := Razão Social da EmpresaaFils[2][5] := Razão Social da FilialCaso não seja informado parametro, sera considerada a filial corrente
cArqTxtCaracterCaminho do Arquivo Texto.Caso não seja informado, a função irá criar o livro Z apenas com os cadastros
cLayoutCaracterLayout cadastrado na rotina "Layout Auxiliar" CTBS100 X
cNumOrdemCaracterNumero da ordem do livro X
cNaturezaCaracterNatureza do livro X
dDataIniDataData Inicio da Escrituração X
dDataFimDataData Final da Escrituração X
    lRet(logico)
  • Retorna .T. se o livro foi escriturado com sucesso

O registro I555 referente aos TOTAIS NO LIVRO AUXILIAR COM LEIAUTE PARAMETRIZÁVEL não são atendidos pelo Microsiga Protheus sendo que o mesmo tem que ser customizado pelo cliente.

O layout disponibilizado no portal tambem não tem essa tratativa, o mesmo deverá ser ajustado para atender a necessidade do cliente.
Segue um EXEMPLO de como pode ser montado o arquivo de exportação ECD_LIVROZ.XML

No registro I550, substituir pela seguinte instrução:
        <register id='I550' description='Detalhes do livro razao auxiliar com leiaute parametrizavel'>
            <superior>I500</superior>
            <table>TMPCSX</table>
            <initiating>
                <instruction><![CDATA[ECDQuery("TMPCSX" ,1," SELECT * FROM " + RetSQLTab("CSX") + " WHERE CSX_CODREV = '" + CS0->CS0_CODREV + "' AND " + RetSQLCond("CSX"))]]></instruction>
            </initiating>
            <lines Delimited='|' NumericNull='F' DecimalPoint=',' DateFormat='DDMMYYYY' DateNull='T' StringNull='T'>
                <fields>
                    <field name='REG'          type='C' size='004' dec='0' instruction='"I550"'></field>
                    <field name='RZ_CONT'      type='C' size='000' dec='0' instruction='TMPCSX->CSX_DESCRI'>  </field>
                </fields>
                <count>
                <instruction>aTotal[11]++</instruction>
                <instruction>aTotal[19]++</instruction>
                <instruction>Eval({||cReg := "I550",nScan := aScan(aTotal[15],{|x| x[1] == cReg}),IIf(nScan==0,aadd(aTotal[15],{cReg,1}),aTotal[15][nScan][02]++)})</instruction>
                </count>
            </lines>
            <finishing>
                <instruction><![CDATA[ECDQuery("TMPCSX",2)]]></instruction>
            </finishing>
        </register>
        <register id='I555' description='totalizador do livro razao auxiliar com leiaute parametrizavel'>
            <superior>I550</superior>
            <table>TMPCSY</table>
            <initiating>
                <instruction><![CDATA[ECDQuery("TMPCSY" ,1," SELECT * FROM " + RetSQLTab("CSY") + " WHERE CSY_CODREV = '" + CS0->CS0_CODREV + "' AND " + RetSQLCond("CSY"))]]></instruction>
            </initiating>
            <lines Delimited='|' NumericNull='F' DecimalPoint=',' DateFormat='DDMMYYYY' DateNull='T' StringNull='T'>
                <fields>
                    <field name='REG'          type='C' size='004' dec='0' instruction='"I550"'></field>
                    <field name='RZ_CONT'      type='C' size='000' dec='0' instruction='TMPCSY->CSY_DESCRI'>  </field>
                </fields>
                <count>
                <instruction>aTotal[11]++</instruction>
                <instruction>aTotal[19]++</instruction>
                <instruction>Eval({||cReg := "I555",nScan := aScan(aTotal[15],{|x| x[1] == cReg}),IIf(nScan==0,aadd(aTotal[15],{cReg,1}),aTotal[15][nScan][02]++)})</instruction>
                </count>
            </lines>
            <finishing>
                <instruction><![CDATA[ECDQuery("TMPCSY",2)]]></instruction>
            </finishing>
        </register>

Ista informação é só um EXEMPLO e não tratam todas as situações do usuario, cabendo ao usuario customizar a forma que deseja quebrar.
 

User Function ImportaTeste()                                                          Local cEmp 		:= cEmpAntLocal cArqTxt  := "C:\Arquivo_Intregacao\LAYOUTZ.TXT"Local cLayout	:= "SPE"Local nNumOrdem:= "00054"Local cNatureza:= "TESTE"Local dDataIni := cTod("01/01/09")Local dDataFim := cTod("31/12/09")ECDImpLivro(cEmp, Nil, cArqTxt , cLayout , nNumOrdem , cNatureza, dDataIni,dDataFim)Return
Protheus 10

  • Sem rótulos