﻿function jDataset(pDataSet){

    var retornoNaja;
    var dataSet;

    var filterData = new Array(); //alterado {} -> new Array() . Wagner
    
    this.addFilter = function(pJFiltro)
    {
        if(filterData==null){
        };
        filterData.push(pJFiltro);
    };
    
    this.clearFilters = function()
    {
        filterData = new Array(); //alterado {} -> new Array() . Wagner        
    };
    
    
    this.delFilter = function(pNomeFiltro)
    {
        for(var i=0;i<filterData.length;i++)
        {
            if(filterData[i].Nome==pNomeFiltro){
                filterData.pop(i);
                break;
            };        
        };
    };
    
    this.filter = function(pNomeTabela,pNomeCampo,pOnOff, pNomeFiltro) //-- add pNomeFiltro . Wagner
    {
        for(var i=0;i<filterData.length;i++)
        {
            if(filterData[i].NomeTabela==pNomeTabela){
                if(filterData[i].Nome==pNomeFiltro){
                    dataSet.tables[pNomeTabela].filter(filterData[i].Campo,filterData[i].ValorDe, filterMode.contains, caseType.CIAI); //-- Alterado 'filterMode.greaterOrEquals, caseType.CIAI' -> 'filterMode.equals, caseType.CSAS'
                };
            };
            //filter(pFiltro.Campo, pFiltro.ValorDe, filterMode.greaterOrEquals, caseType.CIAI)            
        };
    };
    
    this.filterTable = function(pNomeTabela,pNomeCampo,pValorCampo){
        
        //dataSet.tables[pNomeTabela].unfilter();
        dataSet.tables[pNomeTabela].filter(pNomeCampo,pValorCampo,filterMode.contains, caseType.CIAI);
    };

    this.unFilterTable = function(pNomeTabela){
        
        dataSet.tables[pNomeTabela].unfilter();
    };
    
    this.sort = function(pNomeTabela, pColuna, pReverse)
    {
        dataSet.tables[pNomeTabela].sort(pColuna, pReverse);
    };
    
    this.getDataTable = function(pNomeTabela)
    {
        return dataSet.tables[pNomeTabela];
    };
    
    this.getTotRegs = function(pNomeTabela)
    {
        return dataSet.tables[pNomeTabela].rows.length;       
    };
    
    this.findRow = function(pNomeTabela,pNomeCampo,pValorCampo)
    {
        return dataSet.tables[pNomeTabela].indexOf(pNomeCampo,pValorCampo);
    };
    
    this.getDrValue = function(pNomeTabela,pNumRow,pNomeCampo)
    {
        var retVal;
        try{
            retVal = dataSet.tables[pNomeTabela].rows[pNumRow][pNomeCampo].toString();
        }
        catch(e){
            retVal = "";
        };
            
        return retVal;
    };
    
    this.setDrValue = function(pNomeTabela,pNumRow,pNomeCampo,pConteudo)
    {
        dataSet.tables[pNomeTabela].rows[pNumRow][pNomeCampo] = pConteudo; 
    };

    this.getDrValueAsDecimal = function(pNomeTabela,pNumRow,pNomeCampo)
    {
        return dataSet.tables[pNomeTabela].rows[pNumRow][pNomeCampo].toString("0.00");
    };
    
    this.constructor = new function()
    {
        dataSet = pDataSet;
    };
};

