Hilo iniciado por Luis Rivera el 9 de enero de 2015
-
AutorEntradas
-
enero 9, 2015 a las 2:57 pm #10875
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.
enero 12, 2015 a las 1:48 pm #10876Hola,
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 variablesMap 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
enero 13, 2015 a las 2:30 am #10877Gracias por tu respuesta,
lo probare espero funcione.
slds
-
AutorEntradas
- Debes estar registrado para responder a este debate.
