示例#1
0
 private void btnBorrar_Click(object sender, EventArgs e)
 {
     // Si tenemos registros en la tabla y...
     // el usuario me confirma que realmente quiere borrar el registro.
     if ((dataGridView.RowCount > 0) &&
         (MessageBox.Show("¿Realmente quiere borrar el producto seleccionado?",
                          "Confirmación",
                          MessageBoxButtons.YesNo,
                          MessageBoxIcon.Question) == DialogResult.Yes))
     {
         // Creamos una instancia de la clase CProductosBD.
         CProductosBD productosBD = new CProductosBD();
         // Obtenemos la clave principal del producto a borrar.
         productosBD.Producto_id = Convert.ToInt32(dataGridView.CurrentRow.Cells[0].Value);
         // Si el producto se borra correctamente.
         if (productosBD.Borrar())
         {
             // Obtenemos la fila actual.
             int rowIndex = dataGridView.CurrentCell.RowIndex;
             // Recargamos y vamos a la fila actual, que corresponderá al siguiente producto.
             Recargar(rowIndex);
         }
         else
         {
             // Sino se ha podido borrar, mensaje de error.
             MessageBox.Show("Al borrar el producto.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     }
 }
示例#2
0
        private void Recargar(int rowIndex = 0)
        {
            // Instanciamos la clase CProductosBD.
            CProductosBD productosBD = new CProductosBD();

            // Recargamos el DataGridView asociando el DataSource con los datos devueltos.
            dataGridView.DataSource = productosBD.Seleccionar();
            // Si tenemos datos...
            if (dataGridView.RowCount > 0)
            {
                // Comprobamos que la fila que nos indican no es superior a la cantidad de filas que tenemos.
                // Si es así, nos posicionamos en la última fila.
                if (rowIndex >= dataGridView.RowCount)
                {
                    rowIndex = dataGridView.RowCount - 1;
                }
                // Si nos indican una fila negativa, nos posicionamos en la primera.
                if (rowIndex < 0)
                {
                    rowIndex = 0;
                }
                // Nos posicionamos en la fila indicada.
                dataGridView.CurrentCell = dataGridView[1, rowIndex];
            }
        }
示例#3
0
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            // Verificamos que todo es correcto antes de proseguir.
            if (!Correcto())
            {
                return;
            }
            // Por defecto, indicamos que se pulsa el botón OK.
            //DialogResult = DialogResult.OK;
            // Instanciamos la clase CProductodBD.
            CProductosBD productosBD = new CProductosBD();

            // Le pasamos a cada una de las propiedades los valores correspondientes.
            productosBD.Producto     = txtProducto.Text;
            productosBD.Categoria_id = (int)cbCategorias.SelectedValue;
            productosBD.Marca_id     = (int)cbMarcas.SelectedValue;
            productosBD.Precio       = Convert.ToDouble(txtPrecio.Value);
            productosBD.Codigo       = Convert.ToInt32(txtCodigo.Value);
            // Si estamos insertando...
            if (Producto_id == 0)
            {
                // Insertamos y verificamos que todo ha ido bien.
                if (productosBD.Insertar())
                {
                    Producto_id  = productosBD.Producto_id;
                    DialogResult = DialogResult.OK;
                }
                else
                {
                    MessageBox.Show("Al insertar el producto.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    // Si no se ha podido insertar, devolvemos Cancel.
                    //DialogResult = DialogResult.Cancel;
                }
            }
            else
            {
                // y sino, estamos modificando.
                // Indicamos el producto a modificar.
                productosBD.Producto_id = Producto_id;
                // Verificamos que si ha habido un error.
                if (!productosBD.Editar())
                {
                    MessageBox.Show("Al modificar el producto.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                    // Si no se ha podido modificar, devolvemos Cancel.
                    //DialogResult = DialogResult.Cancel;
                }
                else
                {
                    DialogResult = DialogResult.OK;
                }
            }
        }
示例#4
0
        private void FProductosModificar_Load(object sender, EventArgs e)
        {
            // Instanciamos las clases CCategoriasBD y CMarcasBD.
            CCategoriasBD categoriasBD = new CCategoriasBD();
            CMarcasBD     marcasBD     = new CMarcasBD();

            // Obtenemos todos los registros de la tabla.
            cbCategorias.DataSource = categoriasBD.Seleccionar();
            // Mostramos el valor del campo categoría.
            cbCategorias.DisplayMember = "categoria";
            // Indicamos que le valor seleccionado es la clave primaria.
            cbCategorias.ValueMember = "categoria_id";

            // Para las marcas hacemos lo mismo que para las categorías.
            cbMarcas.DataSource    = marcasBD.Seleccionar();
            cbMarcas.DisplayMember = "marca";
            cbMarcas.ValueMember   = "marca_id";
            // Si me indican un producto en concreto, es que queremos modificarlo.
            if (Producto_id != 0)
            {
                // Instanciamos la clase CProductosBD.
                CProductosBD productosBD = new CProductosBD();

                // Buscamos el producto.
                productosBD.Seleccionar(Producto_id);
                // Mostramos la clave primaria.
                txtId.Text = Convert.ToString(productosBD.Producto_id);
                // El código del producto.
                txtCodigo.Value = productosBD.Codigo;
                // El nombre del producto.
                txtProducto.Text = productosBD.Producto;
                // Buscamos en el ComboBox el índide de la categoría seleccionada.
                cbCategorias.SelectedIndex = cbCategorias.FindStringExact(productosBD.Categoria);
                // cbCategorias.SelectedValue = productosBD.Categoria_id;
                // Otra forma de asignar el índice.
                // cbMarcas.SelectedIndex = cbMarcas.FindStringExact(productosBD.Marca);
                cbMarcas.SelectedValue = productosBD.Marca_id;
                // Y finalmente, el precio.
                txtPrecio.Value = Convert.ToDecimal(productosBD.Precio);
                // Indicamos que estamos modificando.
                Text = "Productos :: Modificar";
            }
        }
示例#5
0
        private const float milimetro = 2.83465f; // 1 milímetro son 2.83465 puntos de pantalla.
        public void Imprimir()
        {
            Document document = new Document();                         // Documento PDF.

            document.SetPageSize(iTextSharp.text.PageSize.A4.Rotate()); // Tamaño de la hoja A4.
            document.SetMargins(10f * milimetro,                        // Margen derecho 10 mm ó 1 cm.
                                10f * milimetro,                        // Margen izquierdo 10 mm ó 1 cm.
                                30f * milimetro,                        // Margen superior 30 mm ó 3 cm.
                                10f * milimetro);                       // Margen inferior 10 mm ó cm.

            try
            {
                // Guardaremos el contenido en un fichero "test.pdf"
                PdfWriter pdfWriter = PdfWriter.GetInstance(document, new FileStream(Filename, FileMode.Create));
                pdfWriter.PageEvent = new HeaderFooter(); // Indicamos nuestro pie de página personalizado.
            }
            catch (Exception ex)
            {
                // En caso de nos poder guardar en "test.pdf" lanzamos excepción.
                throw new Exception("Al guardar el fichero \"" + Filename + "\".\n\n" + ex.Message);
            }

            document.Open(); // Abrimos el documentos.

            try
            {
                CProductosBD productos     = new CProductosBD();               // Creamos el objeto productos.
                DataRow[]    rows          = productos.Seleccionar().Select(); // Seleccionamos todos los productos.
                PdfPTable    tProductos    = new PdfPTable(5);                 // Tabla para mostrar los productos.
                PdfPCell     celdaCabecera = new PdfPCell();                   // Celda para la cabecera.
                PdfPCell     celdaDerecha  = new PdfPCell();                   // Celda para alineación derecha.
                tProductos.WidthPercentage = 100f;                             // La tabla tendrá una anchura del 100%

                //Tabla personalizada
                //float[] widths = new float[] {50f,20f,10f,10f,10f} va con porcentajes
                //tProductos.SetWidths(widths);

                celdaDerecha.HorizontalAlignment  = Element.ALIGN_RIGHT;            // La celda derecha pues eso a la derecha.
                celdaDerecha.FixedHeight          = 7f * milimetro;
                celdaCabecera.HorizontalAlignment = Element.ALIGN_CENTER;           // La cabecera se alinean al centro,
                celdaCabecera.BackgroundColor     = new BaseColor(Color.LightGray); // con el fondo en gris claro
                celdaCabecera.FixedHeight         = 7f * milimetro;                 // y una altura de celda de 7 mm.
                celdaCabecera.Phrase = new Phrase("Código");                        // Título de la celda código.
                tProductos.AddCell(celdaCabecera);                                  // Añadimos la celda.

                celdaCabecera.Phrase = new Phrase("Producto");
                tProductos.AddCell(celdaCabecera);

                celdaCabecera.Phrase = new Phrase("Categoría");
                tProductos.AddCell(celdaCabecera);

                celdaCabecera.Phrase = new Phrase("Marca");

                tProductos.AddCell(celdaCabecera);

                celdaCabecera.Phrase = new Phrase("Precio");
                tProductos.AddCell(celdaCabecera);
                tProductos.HeaderRows = 1; // La primera fila, la cabecera, se repetirá en cada nueva página.
                                           // Para cada una de las filas de nuestra consulta...
                for (int i = 0; i < rows.Count(); i++)
                {
                    celdaDerecha.Phrase = new Phrase(rows[i]["Codigo"].ToString());        // Código.
                    tProductos.AddCell(celdaDerecha);                                      // Observar que no lo insertamos directamente porque
                                                                                           // lo queremos alinear a la derecha.
                    tProductos.AddCell(rows[i]["Producto"].ToString());                    // Producto.
                    tProductos.AddCell(rows[i]["Categoría"].ToString());                   // Categoría.
                    tProductos.AddCell(rows[i]["Marca"].ToString());                       // Marca.
                    celdaDerecha.Phrase = new Phrase(rows[i]["Precio"].ToString() + " €"); // Precio.
                    tProductos.AddCell(celdaDerecha);
                }
                document.Add(tProductos); // Añadimos la tabla al documento.
            }
            catch (Exception ex)
            {
                // En caso de error lanzamos la excepción con el error que se ha producido.
                throw new System.Exception("Al generar el archivo \"" + Filename + "\".\n\n" + ex.Message);
            }
            finally
            {
                document.Close(); // y lo cerramos.
            }
        }