Saldos Dimensiones Financieras

Hilo iniciado por Luis Rivera el 9 de enero de 2015

Viendo 3 entradas - de la 1 a la 3 (de un total de 3)
  • Autor
    Entradas
  • #10875
    RangoLuis RiveraLuis Rivera
    Participante
    APRENDIZ
    999 Rincoins

    Hola ,

    Quisiera saber si alguien sabe como conocer el saldo de una cuenta – dimension por codigo x++, ejemplo tengo una dimension llamada proyecto y quisiera saber cual es el saldo de la cuenta 130505 con dimension 1010 mediante codigo x++.

    De antemano gracias por cualquier colaboracion que me presten.

    #10876
    RangoAntonio Rodríguez RubioAntonio Rodríguez Rubio
    Participante
    APRENDIZ
    999 Rincoins

    Hola,

    En la tabla LedgerTrialBalacenListPageTmp, en el método constructBalances puedes ver un ejemplo de cómo se calculan los saldos para una cuenta.

    En ese método llama a la clase LedgerTrialBalanceDP, que pasándole unos parámetros mediante la clase LedgerTrialBalanceContract, te hace el cálculo.
    A este clase se le puede pasar un MAP con las dimensiones a filtrar.
    El MAP tiene que tener el Key de tipo INT64 para el recId de la dimesión a filtrar y el Value de tipo String, con el value de la dimensión.

    es decir, para tú ejemplo y modificando el método LedgerTrialBalanceListPageTMP::ConstructBalances():
    //declaras el map y las siguientes variables

    Map dimRangeMap = new Map(Types::Int64, Types::String);
    FreeText dimensionRange;
    DimensionAttribute dimensionAttribute;
    MapEnumerator controlMapEnum;

    RecId dimAttrRecId;
    DimensionValue dimensionCriteria;
    #define.Comma(‘,’)
    #define.Equals(‘=’)

    //añades cada una de las dimensiones por las que quieres filtrar.
    dimRangeMap.insert(dimAttrRecId, DimValue);

    //A la clase Contract le pasas los parámetros.

    trialBalanceContract.parmDimensionRangeMap(dimRangeMap);

    // A continuación, le tienes que pasar el rango de dimensiones de la siguiente manera:

    controlMapEnum = dimRangeMap.getEnumerator();

    while (controlMapEnum.moveNext())
    {
    dimAttrRecId = controlMapEnum.currentKey();
    dimensionCriteria = controlMapEnum.currentValue();

    if (dimensionCriteria != ”)
    {
    dimensionAttribute = dimensionAttribute::find(dimAttrRecId);
    if (dimensionRange)
    {
    dimensionRange += #Comma;
    }
    dimensionRange += dimensionAttribute.Name + #Equals;
    dimensionRange += dimensionCriteria;
    }
    }

    trialBalanceContract.parmDimensionRange(dimensionRange);

    Y por último, se hace la llamada al processReport de la DP.

    Espero que te sirva,

    Saludos

    #10877
    RangoLuis RiveraLuis Rivera
    Participante
    APRENDIZ
    999 Rincoins

    Gracias por tu respuesta,

    lo probare espero funcione.

    slds

Viendo 3 entradas - de la 1 a la 3 (de un total de 3)
  • Debes estar registrado para responder a este debate.
Carrito de compra