Jump to content

click.png

click.png

click.png

click.png click.png click.png

click.png click.png click.png

click.png

click.png

click.png

click.png

click.png

click.png

Acbrpaf Java


vasilvei
  • Este tópico foi criado há 3034 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Bom dia eu terminei de fazer o AcbrEAD.java

 

estou tentando desenvolver o AcbrPaf.java, gostaria de uma ajudinha por exemplo estou tentando fazer o metodo:

int PAF_SaveFileTXT_P(int pafHandle, ACBrPAFInterop.RegistroHD1Rec RegistroP1, ACBrPAFInterop.RegistroP2Rec RegistroP2[], int CountP2, String Arquivo);

no caso eu peguei o exemplo do AcbrEcf.java das Aliquotas, mas é um pouco diferente, se você puderem me passar o procedimento desse metodo eu faço os outros e mando para vocês, eu pretendo ajudar manter a implementação do Acbr para o java.

 

o que eu fiz até então criei a classe ACBrPAF.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package jACBrFramework.serial.ecf;

import com.sun.jna.ptr.IntByReference;
import jACBrFramework.ACBrClass;
import jACBrFramework.ACBrException;
import jACBrFramework.interop.ACBrPAFInterop;
import jACBrFramework.interop.ACBrPAFInterop.RegistroHD1Rec;
import jACBrFramework.interop.ACBrPAFInterop.RegistroP2Rec;
import java.nio.ByteBuffer;

/**
 *
 * @author Valde
 */
public final class ACBrPAF extends ACBrClass {

    private RegistroHD1Rec registroHD1Rec;
    private RegistroP2Rec[] registroP2Rec;
    
    public ACBrPAF() throws ACBrException {
    }
    
    

    @Override
    protected void onInitialize() throws ACBrException {
        IntByReference handle = new IntByReference();
        int ret = ACBrPAFInterop.INSTANCE.PAF_Create(handle);
        checkResult(ret);

        setHandle(handle.getValue());
    }

    @Override
    protected void onFinalize() throws ACBrException {
        int ret = ACBrPAFInterop.INSTANCE.PAF_Destroy(getHandle());
        checkResult(ret);

        setHandle(0);
    }

    @Override
    protected void checkResult(int result) throws ACBrException {
        switch (result) {
            case -1:
                String message;

                int LEN = 1024;
                ByteBuffer buffer = ByteBuffer.allocate(LEN);
                int ret = ACBrPAFInterop.INSTANCE.PAF_GetUltimoErro(getHandle(), buffer, LEN);

                message = fromUTF8(buffer, ret);
                throw new ACBrException(message);


            case -2:
                throw new ACBrException("ACBr PAF não inicializado.");
        }
    }
    
    
    private void saveFileTXT_P(){
        
    }
    
    
}

também criei o objeto RegistroP1.java, RegistroP2.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.arena.paf.model;

/**
 *
 * @author Valde
 */
public class RegistroP1 {

    public String RAZAOSOCIAL;
    public String UF;
    public String CNPJ;
    public String IE;
    public String IM;

    public RegistroP1() {
    }

    public RegistroP1(String RAZAOSOCIAL, String UF, String CNPJ, String IE, String IM) {
        this.RAZAOSOCIAL = RAZAOSOCIAL;
        this.UF = UF;
        this.CNPJ = CNPJ;
        this.IE = IE;
        this.IM = IM;
    }

    public String getRAZAOSOCIAL() {
        return RAZAOSOCIAL;
    }

    public void setRAZAOSOCIAL(String RAZAOSOCIAL) {
        this.RAZAOSOCIAL = RAZAOSOCIAL;
    }

    public String getUF() {
        return UF;
    }

    public void setUF(String UF) {
        this.UF = UF;
    }

    public String getCNPJ() {
        return CNPJ;
    }

    public void setCNPJ(String CNPJ) {
        this.CNPJ = CNPJ;
    }

    public String getIE() {
        return IE;
    }

    public void setIE(String IE) {
        this.IE = IE;
    }

    public String getIM() {
        return IM;
    }

    public void setIM(String IM) {
        this.IM = IM;
    }
}

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.arena.paf.model;

/**
 *
 * @author Valde
 */
public class RegistroP2 {

    public String COD_MERC_SERV;
    public String DESC_MERC_SERV;
    public String UN_MED;
    public String IAT;
    public String IPPT;
    public String ST;
    public double ALIQ;
    public double VL_UNIT;
    public boolean RegistroValido;

    public RegistroP2() {
    }

    public String getCOD_MERC_SERV() {
        return COD_MERC_SERV;
    }

    public void setCOD_MERC_SERV(String COD_MERC_SERV) {
        this.COD_MERC_SERV = COD_MERC_SERV;
    }

    public String getDESC_MERC_SERV() {
        return DESC_MERC_SERV;
    }

    public void setDESC_MERC_SERV(String DESC_MERC_SERV) {
        this.DESC_MERC_SERV = DESC_MERC_SERV;
    }

    public String getUN_MED() {
        return UN_MED;
    }

    public void setUN_MED(String UN_MED) {
        this.UN_MED = UN_MED;
    }

    public String getIAT() {
        return IAT;
    }

    public void setIAT(String IAT) {
        this.IAT = IAT;
    }

    public String getIPPT() {
        return IPPT;
    }

    public void setIPPT(String IPPT) {
        this.IPPT = IPPT;
    }

    public String getST() {
        return ST;
    }

    public void setST(String ST) {
        this.ST = ST;
    }

    public double getALIQ() {
        return ALIQ;
    }

    public void setALIQ(double ALIQ) {
        this.ALIQ = ALIQ;
    }

    public double getVL_UNIT() {
        return VL_UNIT;
    }

    public void setVL_UNIT(double VL_UNIT) {
        this.VL_UNIT = VL_UNIT;
    }

    public boolean isRegistroValido() {
        return RegistroValido;
    }

    public void setRegistroValido(boolean RegistroValido) {
        this.RegistroValido = RegistroValido;
    }
}

Por gentileza se puderem me ajudar a implementação do private void saveFileTXT_P() da classe AcbrECF.java eu me viro com o resto.

 

Obrigado!

Link to comment
Share on other sites

É +/- isso:?

    private void saveFileTXT_P(RegistroHD1Rec registroHD1Rec, RegistroP2Rec[] registroP2Rec, String arquivo) throws ACBrException {

        int ret = ACBrPAFInterop.INSTANCE.PAF_SaveFileTXT_P(getHandle(), registroHD1Rec, registroP2Rec, registroP2Rec.length, toUTF8(arquivo));
        checkResult(ret);

    }
Link to comment
Share on other sites

eu fiz isso:

   public void saveFileTXT_P(RegistroP1 registroP1, RegistroP2[] registroP2, String arquivo, int countP2) throws ACBrException {

        ACBrPAFInterop.RegistroHD1Rec recordP1 = new ACBrPAFInterop.RegistroHD1Rec();
        
        recordP1.CNPJ = registroP1.getCNPJ().toCharArray();
        recordP1.IE = registroP1.getIE().toCharArray();
        recordP1.IM = registroP1.getIM().toCharArray();
        recordP1.RAZAOSOCIAL = registroP1.getRAZAOSOCIAL().toCharArray();
        recordP1.UF = registroP1.getUF().toCharArray();
       
        ACBrPAFInterop.RegistroP2Rec[] array = new ACBrPAFInterop.RegistroP2Rec[countP2];
        
        for (int i = 0; i < countP2; i++) {
            ACBrPAFInterop.RegistroP2Rec record = new ACBrPAFInterop.RegistroP2Rec();
            record.COD_MERC_SERV = registroP2[i].getCOD_MERC_SERV().toCharArray();
            record.ALIQ = registroP2[i].getALIQ();
            record.DESC_MERC_SERV = registroP2[i].getDESC_MERC_SERV().toCharArray();
            record.IAT = registroP2[i].getIAT().toCharArray();
            record.ST = registroP2[i].getST().toCharArray();
            record.IPPT = registroP2[i].getIPPT().toCharArray();
            record.UN_MED = registroP2[i].getUN_MED().toCharArray();
            record.VL_UNIT = registroP2[i].getVL_UNIT();
            record.RegistroValido = registroP2[i].isRegistroValido();
            array[i] = record;
        }

       // this.aliquotas = array;

        int ret = ACBrPAFInterop.INSTANCE.PAF_SaveFileTXT_P(getHandle(), recordP1, array, countP2, toUTF8(arquivo));//ECF_PafMF_MFD_Espelho_COO(getHandle(), COOInicial, COOFinal, toUTF8(CaminhoArquivo));
        checkResult(ret);

    }

e deu esse erro:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x19735f57, pid=2572, tid=4548
#
# JRE version: 7.0_17-b02
# Java VM: Java HotSpot(TM) Client VM (23.7-b01 mixed mode windows-x86 )
# Problematic frame:
# C  [ACBrFramework32.dll+0x5f57]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# E:\Projeto Arena\Projeto_Win\Arena\hs_err_pid2572.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
Link to comment
Share on other sites

  • 1 month later...

Olá, estou tentando utilizar o ACBrFramework, porem está acontencendo o mesmo erro do colega de cima, já instalei todas as versões do java e o erro persiste, nao sei o que posso fazer para resolver o problema, estou ultilizando a dll ACBrFramework.dll, nao encontrei a outra dll ACBrFramework_JNI.dll, nao sei se tem que colocar junto....

Link to comment
Share on other sites

  • Este tópico foi criado há 3034 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.