none
Como generar una cantidad de filas especificas y agregarlas a un datagridview RRS feed

  • Pregunta

  • Buenos dias,

    Tengo un formulario que consta de 4 campos: Fechas de pagos, dias de pago, tiempo de contrato y precio.

    Lo que necesito es:

    Fechas de pagos (es lo que necesito que se auto genere)

    Dias de pago (es un NumericUpDown)

    Tiempo de contrato (es un TextBox)

    Precio (es un TextBox)

    En el formulario el usuario debe de indicar un precio, el dia que quiere que sean sus pagos y el tiempo que quiere,

    Es decir: si pongo en formulario: Precio: 10,000.oo, dias de pago: los dias 1ero, y el tiempo del contrato : 1 año (12 meses),

    necesito que en  el DataGridView se generen 12 filas (12 por el tiempo de contrato solicitado) con las fechas de pago por mes; como dijo que queria los dias primero como dias de pago que sea algo asi:

    01/06/2019   10,000.00

    01/07/2019   10,000.00

    01/08/2019 10,000.00

    etc

    no paso mi codigo por que es que realmente no se ni como empezarlo, si pudieran guiarme o darme un ejemplo lo agradeceria


    samuel

    sábado, 11 de mayo de 2019 14:21

Respuestas

  • Hola

    intenta con esto

    primero puedes usar una clase o un diccionario

     public class Pagos
        {
            public Pagos()
            { }
            public Pagos(DateTime fecha, decimal monto)
            {
                Fecha = fecha;
                Monto = monto;
            }
            public DateTime Fecha { get; set; }
            public decimal Monto { get; set; }
        }

    Luego en el boton que usas para generar las fechas insertas este codigo

    private void Button1_Click(object sender, EventArgs e)
    {
        if (numericUpDown1.Value>0 && numericUpDown1.Value < 29 )
        {
           
            List<Pagos> pagos = new List<Pagos>();
            dataGridView1.DataSource = pagos;
            DateTime Hoy = DateTime.Now;
            int dia = (int)numericUpDown1.Value;
            Hoy = new DateTime(Hoy.Year, Hoy.Month + 1, dia);
            int max = 0;
            decimal monto = 0;
            decimal.TryParse(textBox2.Text, out monto);
            int.TryParse(textBox1.Text, out max);
            for (int i = 0; i < max; i++)
            {
                pagos.Add(new Pagos(Hoy, monto));
                Hoy= Hoy.AddMonths(1);
            }
            dataGridView1.DataSource = pagos.ToList();
        }
    }
    
    delimete el numericupdown de 1 a 28 para que considerara todos los meses

    • Marcado como respuesta Samuel Ignacio sábado, 11 de mayo de 2019 15:30
    sábado, 11 de mayo de 2019 15:08

Todas las respuestas

  • Hola

    intenta con esto

    primero puedes usar una clase o un diccionario

     public class Pagos
        {
            public Pagos()
            { }
            public Pagos(DateTime fecha, decimal monto)
            {
                Fecha = fecha;
                Monto = monto;
            }
            public DateTime Fecha { get; set; }
            public decimal Monto { get; set; }
        }

    Luego en el boton que usas para generar las fechas insertas este codigo

    private void Button1_Click(object sender, EventArgs e)
    {
        if (numericUpDown1.Value>0 && numericUpDown1.Value < 29 )
        {
           
            List<Pagos> pagos = new List<Pagos>();
            dataGridView1.DataSource = pagos;
            DateTime Hoy = DateTime.Now;
            int dia = (int)numericUpDown1.Value;
            Hoy = new DateTime(Hoy.Year, Hoy.Month + 1, dia);
            int max = 0;
            decimal monto = 0;
            decimal.TryParse(textBox2.Text, out monto);
            int.TryParse(textBox1.Text, out max);
            for (int i = 0; i < max; i++)
            {
                pagos.Add(new Pagos(Hoy, monto));
                Hoy= Hoy.AddMonths(1);
            }
            dataGridView1.DataSource = pagos.ToList();
        }
    }
    
    delimete el numericupdown de 1 a 28 para que considerara todos los meses

    • Marcado como respuesta Samuel Ignacio sábado, 11 de mayo de 2019 15:30
    sábado, 11 de mayo de 2019 15:08
  • Muchisimas gracias

    samuel

    sábado, 11 de mayo de 2019 15:30