hola,

gracias a todos por las respuestas.

si me imagine que por ahi falta explicar algo mas de base, mas conceptual a 
donde apunte.

resulta que la idea es teniendo el mes poder sacar la posicion donde tengo que 
trabajar, aqui es dodne se une la consulta anterior de variables con esta de 
meses.

La idea es, teniendo el mes con el que quiero actuar poder descrubrir donde 
debo insertar el dato.

No puse la implementacion, pero esto seria algo asi:

internal abstract class ExcelMonthPosition
{

    private ExcelVariablePosition excelVariablePosition = new 
ExcelVariablePosition();

    public abstract string MonthColumn { get; }
    public abstract string Avance { get; }
    public abstract List<string> HideColumns { get; }


    public string GetMonthLabel()
    {
        ...
    }


    public string
 GetCartera()
    {
        ...
    }


        public string GetAvanceByVariable(VariableIdEnum var)
        {
            string excelRow = excelVariablePosition.GetValueByType(var);

            return string.Format("{0}{1}", this.Avance, excelRow);
        }


}

internal class ExcelPosition
{

    private short MonthCount = 1;
    
    public ExcelMonthPosition GetNextMonth()
    {
        ExcelMonthPosition excelMonthPosition = 
this.GetMonthByNumber(MonthCount);

        MonthCount++;

        return excelMonthPosition;
    }

    public ExcelMonthPosition GetMonthByNumber(short monthNumber)
    {
        ExcelMonthPosition excelMonthPosition = null;

        switch
 (monthNumber)
        {
            case 1:
                excelMonthPosition = new ExcelMonth1Position();
                break;
            case 2:
                excelMonthPosition = new ExcelMonth2Position();
                break;
            case 3:
                excelMonthPosition = new ExcelMonth3Position();
                break;
            case
 4:
                excelMonthPosition = new ExcelMonth4Position();
                break;
            case 5:
                excelMonthPosition = new ExcelMonth5Position();
                break;
            case 6:
                excelMonthPosition = new ExcelMonth6Position();
                break;
            case 7:
                excelMonthPosition = new
 ExcelMonth7Position();
                break;
            case 8:
                excelMonthPosition = new ExcelMonth8Position();
                break;
            case 9:
                excelMonthPosition = new ExcelMonth9Position();
                break;
            case 10:
                excelMonthPosition = new ExcelMonth10Position();
               
 break;
            case 11:
                excelMonthPosition = new ExcelMonth11Position();
                break;
            case 12:
                excelMonthPosition = new ExcelMonth12Position();
                break;
        }

        return excelMonthPosition;
    }

}    


En negrita es lo que agregue, como veran la clase abstract es la que 
verdaderamente tiene la utilidad solo que el resultado que devuelve dependera 
de cual es su concreta instanciada, si es mes1..mesN las posiciones cambiaran
o sea el metodo GetAvanceByVariable() arrojara diferentes valores, ya que la 
propeidad Avance cambia als coordenas por mes.

Luego para usarlo solo hago:

ExcelPosition excelPosition = new ExcelPosition();
ExcelMonthPosition excelMonthPosition = excelPosition.GetNextMonth();

string avancePosition = 
excelMonthPosition.GetAvanceByVariable(VariableIdEnum.Facturacion);


Como veran el GetNextMonth() me da un mes X, pero me da un concreto del mes con 
el que tengo que trabajar, igualemtne yo siempre trabajo con la funcionalidad 
de la clase abstracta, pero lo quee sta devuelva estara determinado por el mes 
concreto.

Entonces con ese concreto y pasandole el enum de la variable es que armo la 
coordenada de la celda de excel.
Por las letras y numeros que doy de ejemplo no se fijen, tme dos al azar, no 
son correctas, estas pueden variar, pero asm alla de este particular cada mes 
define sus propias columnas a utilizar.

La idea es generar la intersepcion entre variable que define la row y mes que 
define la columna.

buenoe spero se entienda un poco mas la finalidad.
gracias por la ayuda.

saludos



      Yahoo! Cocina

Encontra las mejores recetas con Yahoo! Cocina.


http://ar.mujer.yahoo.com/cocina/

Responder a