• Domingo 28 de Abril de 2024, 22:20

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - javier.gorza

Páginas: [1]
1
Crystal Reports / CrossTab con Crystal 9.0
« en: Jueves 22 de Julio de 2010, 06:38 »
Hola, estoy necesitando ayuda.

Estoy trabajando con Crystal reports 9.0 y utilizo el Wizard para hacer un informe financiero.
La informacion la obtengo de una consulta que me devuelve los siguientes datos.

Tipo                     Lugar                                     Concepto                                           TOTAL

Egre                     Deposito                                 Mercaderias                                         -300
Egre                     Deposito                                 Sueldos y Cargas                                -2200
Egre                     Repartos                                 Extras                                                 -300
Egre                     Repartos                                 Sueldos y Cargas                                  -500
Egre                     Zona1                                     Flete a Zona1                                       -250
Egre                     Zona1                                     Sueldos y Cargas                                  -500
Ingr                      DEPOSITO                               Facturación                                       10000
Ingr                      Reparto                                  Facturación                                           500
Ingr                      Zona1                                     Facturación                                         3000

Ahora bien, cuando muestro el reporte lo veo de la siguiente forma

                                                Deposito                     Reparto                 Zona1                         total
        extras                                         0                           -300                        0                         -300
        Fletes                                          0                               0                   -250                         -250
        Mantenimiento                        -300                               0                        0                         -300
        sueldos                                  -2200                              0                    -500                       -2700
   Egre                                           -2500                          -300                    -750                       -3550

        facturacion                           10000                            500                   3000                       13500
  Ingre                                          10000                            500                   3000                       13500

Total (*1)                                       7500                             200                   2250                        9950

Ahora lo que yo quiero agregarlo y no estoy consiguiendo es lo siguiente:

Debajo del ultimo Total (*1) los siguientes calculos.

% Resultado Neto / Facturacion (10000/2250) = 0.8

Y quedaria asi

Total (*1)                                       7500                             200                   2250                        9950
% Resul / Fact                                  0.8                              0.4                     0.8

Hay forma de hacer esto? De agregar una fila más al informe y que los datos sean de una formula entre ciertos valores de la grilla CrossTab?

desde ya muchas gracias!!!!!!

2
C# / ComboBox, mostrar datos
« en: Domingo 13 de Junio de 2010, 01:31 »
Hola, queria saber si es posible haber lo siguiente.
Tengo una tabla de envases que tiene los siguientes datos, id, descripcion, cantidad.
id   descricpion, cantidad
1    caja             20
2    caja             25
3    caja             30

Luego en un form en donde muestros los envases, quiero mostrarlo en un combobox de la siguiente forma.
Caja x 20
Caja x 25
Caja x 30

La info la tengo en un DataTable que se llama dtEnvases
y pongo lo siguiente:

                if (dtEnvases.Rows.Count > 0)
                {
                    cboEnvases.DataSource = dtEnvases.DefaultView;
                    cboEnvases.ValueMember = "IdEnvase";
                    cboEnvases.DisplayMember = "Descripcion";
                }
Pero no he podido hacer lo que quiero. Se puede?

3
C# / Re: Formulario Base
« en: Viernes 11 de Junio de 2010, 18:44 »
Por si alguien se topa con el mismo problema, acá les paso como lo solucione.

En primer lugar tuve que borrar las referencias en esa propiedad en los archivos designs.cs.
Luego, en el formBase, coloque lo siguiente...

        public frmBase()
        {
            InitializeComponent();
            this.FormBorderStyle = FormBorderStyle.FixedToolWindow;
            this.ShowInTaskbar = false;
            this.StartPosition = FormStartPosition.CenterScreen;
        }

Y listo, eso es todo.
Desde ya muchas gracias a los que respondieron.

4
C# / Re: Diseño de formularios
« en: Jueves 10 de Junio de 2010, 17:04 »
Hola, me gusto mucho tu formulario.
En donde puedo encontrar documentacion para poder diseñar cosas asi?

desde ya muchas gracias!!!!

5
C# / Re: Formulario Base
« en: Jueves 10 de Junio de 2010, 16:56 »
La aplicacion es una aplicacion Windows.
Yo primero cree el formulario Base, FormBase. tiene este codigo

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Cyber.UI
{
    public partial class frmBase : Form
    {
        #region Enum

        public enum EstateForm
        {
            Create,
            Update,
            View
        }

        #endregion

        #region Attributes

        protected EstateForm _stateForm = EstateForm.Create;

        #endregion

        #region Properties

        public EstateForm StateForm
        {
            get
            {
                return _stateForm;
            }
            set
            {
                _stateForm = value;
            }
        }

        #endregion
       
        #region Protected Methods

        protected virtual void ClearForm()
        {

        }
        protected virtual bool IsValidForm()
        {
            return true;
        }

        #endregion

        #region Public Methods

        public void IsDigit(ref KeyPressEventArgs e)
        {
            if (char.IsDigit(e.KeyChar) || e.KeyChar == 'b')
                e.Handled = false;
            else
                e.Handled = true;
        }

        public void IsDecimal(ref KeyPressEventArgs e)
        {
           
            if (char.IsDigit(e.KeyChar) || char.IsPunctuation(e.KeyChar) || e.KeyChar == 'b')
                e.Handled = false;
            else
                e.Handled = true;
        }
        public static void SetFocus(ref KeyPressEventArgs e, Control oControl)
        {
            if (e.KeyChar == 'r')
                oControl.Focus();
        }
        public static void EnabledControl(Control oControl, bool state)
        {
            oControl.Enabled = state;
        }

        #endregion

        #region events

        private void frmBase_Load(object sender, EventArgs e)
        {

        }

        #endregion
    }
}

Y uno de los formularios que heredan de este fomulario tiene este codigo.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Cyber.BusinessRule;
using Cyber.BusinessEntities;

namespace Cyber.UI
{
    public partial class frmMarcas : Cyber.UI.frmBase
    {
        #region Private Methods

        private void CargarGrillaMarcas()
        {
            MarcasBusinessRule oMarcaBR = new MarcasBusinessRule();

            try
            {
                List<Marca> lMarcas = oMarcaBR.BuscarMarcas();
                dgvMarcas.DataSource = lMarcas;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }
        }

        private void CargaPantalla()
        {
            MarcasBusinessRule oMarcaBR = new MarcasBusinessRule();

            try
            {
                //verifico que haya una marca seleccionada
                if (dgvMarcas.CurrentRow != null)
                {
                    //busco los datos de la marca
                    Marca oMarca = oMarcaBR.BuscarMarca(Convert.ToInt32(dgvMarcas.CurrentRow.Cells[IdMarca.Name].Value));

                    //Pregunto si la Marca fue encontrada
                    if (oMarca == null)
                        MessageBox.Show("No se encontro datos de la Marca seleccionada", "Busqueda", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    else
                    {
                        txtDescripcion.Text = oMarca.Descripcion;
                    }
                }
            }
            catch (Exception ex)
            {
                CommonBusinessRule.RegistrarError(ex.Message, ex.StackTrace);
                MessageBox.Show("Error en la búsqueda de la marca. " + ex.Message, "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.ClearForm();
            }
           
        }
        #endregion

        #region Protected Methods

        protected override void ClearForm()
        {
            txtDescripcion.Clear();
            txtDescripcion.Focus();
        }

        protected override bool IsValidForm()
        {
            epValidator.Clear();

            if (txtDescripcion.Text == string.Empty)
            {
                epValidator.SetError(txtDescripcion, "");
                MessageBox.Show("Debe Ingresar la descripcion", "Descripción", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                txtDescripcion.Focus();
                return false;
            }
            return true;
        }

        #endregion

        #region Events

        public frmMarcas()
        {
            InitializeComponent();
        }

        private void btnNuevo_Click(object sender, EventArgs e)
        {
            //Limpia la Pantalla
            this.ClearForm();
        }

        private void bttCerrar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void frmMarcas_Load(object sender, EventArgs e)
        {
            try
            {
                //Limpio la pantalla
                this.ClearForm();

                //Cargo la Grilla
                this.CargarGrillaMarcas();

                ////Cargo la Lista
                //this.CargarLista();

            }
            catch (Exception ex)
            {
                CommonBusinessRule.RegistrarError(ex.Message, ex.StackTrace);
                MessageBox.Show("Error en la carga de la grilla. " + ex.Message, "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.Close();
            }
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            MarcasBusinessRule oMarcaBR = new MarcasBusinessRule();
            int resultado = 0;
            try
            {
                //Verifico que los datos del formulario sean validos
                if (this.IsValidForm())
                {
                    //juzgo el estado del formulario
                    switch (this.StateForm)
                    {
                        case EstateForm.Create:
                            try
                            {
                                //registramos la Marca
                                resultado = oMarcaBR.RegistrarMarca(txtDescripcion.Text.Trim());

                                if (resultado == 0)
                                {
                                    MessageBox.Show("Los datos de la Marca no han sido guardados.", "Marca", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                                }
                                else
                                {
                                    MessageBox.Show("Los datos de la Marca Nro. " + resultado.ToString() + " fueron registrado con éxito.", "Marca", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    this.ClearForm();
                                    this.CargarGrillaMarcas();
                                }
                            }
                            catch (Exception ex)
                            {
                                CommonBusinessRule.RegistrarError(ex.Message, ex.StackTrace);
                                MessageBox.Show("Error durante la registración de los datos de la Marca. " + ex.Message, "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                            break;
                        case EstateForm.Update:

                            //actualizo los datos de la Marca
                            if (oMarcaBR.ActualizarMarca(Convert.ToInt32(dgvMarcas.CurrentRow.Cells[IdMarca.Name].Value),txtDescripcion.Text.Trim()) == 0)
                                MessageBox.Show("Los datos de la Marca no fueron actualizados", "Marca", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            else
                            {
                                MessageBox.Show("Los datos de la Marca fueron actualizados con éxito", "Marca", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                this.CargarGrillaMarcas();
                            }
                            break;
                    }
                }
            }
            catch (Exception ex)
            {
                CommonBusinessRule.RegistrarError(ex.Message, ex.StackTrace);
                MessageBox.Show("Error al guardar los datos de la Marca. " + ex.Message, "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void dgvMarcas_Click(object sender, EventArgs e)
        {
            //Cambio de Estado el Formulario
            this.StateForm = EstateForm.Update;

            //Busco los datos de la marca seleccionada y cargo sus datos en el fomulario
            this.CargaPantalla();
        }
    #endregion
    }
}

No se que más puedo poner...

6
C# / Formulario Base
« en: Jueves 10 de Junio de 2010, 15:07 »
Buenos Dias.
Soy nuevo en esto de programar con C# y POO.
Estoy utilizando VS 2008, y me pasa lo siguiente.
He creado un FormBase en donde tengo algo de codigo como validaciones, y a medida que voy creando nuevos formularios voy por Agregar Windows Form, y de ahi Formulario Heredaro, luego selecciono el FormBase.
Hasta ahora, he creado 5 formularios más sin contar el FormBase y funcionaban bien.
Pero ahora mi inconveniente, cambio la propiedad FormBorderStyle del FormBase a FixeDialog, pero en los 5 formularios que son heredado del FormBase, sigue igual, con el mismo comportamiento.
QUe estoy haciendo mal?
Desde ya muchas gracias...

Páginas: [1]