• Lunes 7 de Julio de 2025, 04:49

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.


Temas - lugarda

Páginas: [1]
1
C# / obtener campo Lob(Oracle)
« en: Martes 31 de Mayo de 2011, 17:11 »
Hola a todos, tengo una tabla en Oracle10g donde guardo las especificaciones de un documento y este campo es de tipo BLOB.
Estoy haciendo un programa en C# donde estoy intentando obtener estas especificaciones a traves de un OracleDataReader, pero no logro encontrar método que me permita hacerlo, lo intenté con GetString pero obviamente me saca error. Si alguien me puede dar una pista , se los agradeceria mucho.
Adjunto el pedazo de código que tengo.
Monica.

Código: C#
  1.  
  2.  internal long obtenerPurc_ReqLnBinary(string codigoRequisicion, int lineaNo)
  3.         {
  4.             long especificaciones;
  5.             try
  6.             {
  7.                 using (OracleCommand consulta = this.conexionOracle.CreateCommand())
  8.                 {
  9.                     consulta.CommandText = (@" select bits  
  10.                                                from purc_req_ln_binary
  11.                                                where purc_req_id=:codigoRequisicion and purc_req_line_no=:lineaNo");
  12.                     consulta.Parameters.Add(new OracleParameter(":codigoRequisicion", OracleType.VarChar)).Value = codigoRequisicion;
  13.                     consulta.Parameters.Add(new OracleParameter(":lineaNo", OracleType.Int32)).Value = lineaNo;
  14.                     using (OracleDataReader cursor = consulta.ExecuteReader())
  15.                     {
  16.                         while (cursor.Read())
  17.                         {
  18.                             especificaciones= cursor.IsDBNull(0) ? null : cursor.GetString(0);   }
  19.                     }
  20.                 }
  21.             }
  22.             catch (Exception e)
  23.             {
  24.                 ExcepcionLafrancol ex = new ExcepcionLafrancol(e.Message);
  25.                 ex.TipoExcepcion = e.GetType().ToString();
  26.                 ex.Source = "Purc_Req_Ln_BinaryAD - [obtenerPurc_ReqLnBinary()]";
  27.                 ex.Anotaciones = "Error en consulta de requisiciones";
  28.                 throw ex;
  29.             }
  30.             return especificaciones;
  31.  
  32.  

2
C# / Adicionar una fila al perder el foco de una celda
« en: Martes 12 de Abril de 2011, 19:46 »
Hola amigos, hoy tengo un caso que me tiene dando vueltas.

Tengo un DataGridWiew con dos columnas (colNit, colNombre). La columna colNit es editable y la colNombre es no Editable.
Hice un método que me permite en el evento ColumnHeaderMouseDoubleClick, hacer una consulta de los nits existentes en la base de datos y poder seleccionar uno.
Cuando selecciono el Nit de mi consulta, en la celda de la columna colNit se despliega el nit seleccionado. Hasta alli todo funciona perfecto.

Esoty intentando que una vez el nit se despliegue en la celda colNit, inmediatamente se inserte una fila nueva sin tener que editar la celda . Intente usar el evento CellLeave para adicionar una fila pero me dice que la operacion Add no se puede utilizar en el evento CellLeave.

Si alguno me puede dar alguna idea de como lograr este efecto se los agradezco muchisimo.

Moni.

3
C# / Obtener el tipo de un Datasource
« en: Miércoles 2 de Marzo de 2011, 17:01 »
Hola a Todos, tengo el siguiente caso:
Tengo en un WinForm un Datagridview. El método que me carga el datasource de este , es una Lista asi:
Código: C#
  1.  
  2. public List<Purc_RequisitionTR> obtenerPurc_Requisition(Purc_RequisitionTR paramRequisicion,ControlConsulta controlconsulta)
  3.         {
  4.             return new Purc_RequisitionAD(conexionOracle).obtenerPurc_Requisition(paramRequisicion,controlconsulta);
  5.         }
  6. dvReq_Line.DataSource = new Purc_RequisitionNG(conexionOracle).obtenerPurc_ReqLine(DetalleReq, ControlConsulta.ConsultaLlave);
  7.  
  8. Hasta alli todo funciona muy bien.
  9. Hice un método para Limpiar todos los objetos que estan contenido en  la WinForm,
  10. El problema que tengo es que mi método me limpia correctamente un DataGridView cuando el DataSource se ha cargado con un DataTable, pero si se ha cargado con una List<> (como describo en mi ejemplo), allí ya saca error y es obviamente porque lo estoy condicionando.
  11. Adjunto mi código del método limpiar , para que se den una idea de lo que intente hacer , pero lo deje en comentario porque no es lo óptimo.
  12. Si me dan una idea de como puedo  cambiar el typeof(System.Collections.Generic.List<Purc_Req_lineTR>)) , ya que haciendolo de esta manera , queda amarrado al una lista específica y la idea es poner este código en una libreria que pueda servir a cualquier desarrollador.
  13. Gracias por la ayuda
  14. public static void limpiaForm(Control objContenedor)
  15.         {
  16.             // para cada control contenido en la colección
  17.             foreach (Control obj in objContenedor.Controls)
  18.             {
  19.                 // si tiene hijos, recórrelos de forma recursiva
  20.                 if (obj.HasChildren) limpiaForm(obj);
  21.                 if (obj is TextBox) ((TextBox)obj).Text = "";
  22.                 if (obj is CheckBox) ((CheckBox)obj).Checked = false;
  23.                 if (obj is RadioButton) ((RadioButton)obj).Checked = false;
  24.                 if (obj is ComboBox) ((ComboBox)obj).Text = null;
  25.                 if (obj is ListBox) ((ListBox)obj).Items.Clear();
  26.                 // cambie la forma de limpiar el dataGridView para que pintara correctamente las columnas predefinidas
  27.                 // si se quiere volver a cargar los datos de la base de datos. Si es un DataGridView que no tiene
  28.                 //predefinido el DataSource , el DataSource de mentenerse null
  29.                 if (obj is DataGridView)
  30.                 {
  31.                     if (((DataGridView)obj).DataSource != null)
  32.                     {
  33.                        
  34.              //string tipo = ((DataGridView)obj).DataSource.GetType().ToString();
  35.                         //if (((DataGridView)obj).DataSource.GetType() == typeof(System.Collections.Generic.List<Purc_Req_lineTR>))
  36.                         //{
  37.                         //    MessageBox.Show("lo encontro");
  38.  
  39.                         //}
  40.  
  41.                         DataTable dt;
  42.                         dt = (DataTable)(((DataGridView)obj).DataSource);
  43.                         dt.Rows.Clear();
  44.                     }
  45.                     else
  46.                     {
  47.                         ((DataGridView)obj).Rows.Clear(); ;
  48.                     }
  49.                 }
  50.             }
  51.         }
  52.  
  53.  

4
C# / Desplegar dato en un combobox
« en: Viernes 18 de Febrero de 2011, 16:15 »
Hola a todos, tengo un pequeño lio con un ComboBox. Aclaro estoy desarrollando en C# . El caso es el siguiente.

Tengo un WinForm que tiene por objeto ingresar ordenes de compra a la base de datos.
En ella tengo un ComboBox , el cual cargo el Datasource con la lista de Usuarios autorizados, en el Load de la forma. Hasta alli todo perfecto.

Para hacer el ejemplo mas ilustrativo, hice una orden de compra 0001 hace unos dias y en ese momento salve la orden con el usuario autorizado "MONICA", el cual lo seleccione de la lista del combobox.
Hoy consulto por mi pantalla esta orden de compra 0001, pero el usuario "MONICA" ya no es usuario autorizado y  en el DataSource del Combo ya no sale y por ende al momento de mostrar el dato en el combo no se ve.

La pregunta es, como hago para que el Text del Combobox, ese usuario se muestre?

Ojala me puedan dar una idea como resolverlo, la verdad he buscado en las ayudas pero en lo que he buscado , siempre me encuentro con la misma advertencia ; " combobox que tenga definido Datasource, no es posible adicionar Items."
Gracias

5
Oracle / devolver el valor de una secuencia
« en: Jueves 13 de Enero de 2011, 16:00 »
Hola a todos, estuve buscando la forma de recuperar el valor de la secuencia de una tabla (la cual uso como llave) , inmediatamente despues que ejecuto la sentencia INSERT.

Se me ocurrió hacerlo con un SELECT MAX(ID) FROM TABLA INTO :ULTIMO, pero me parece algo ineficiente. Si alguien tiene una forma mas efectiva para poder recuperar el ID (que es la secuencia de la tabla) , despues de hacer el insert, les agradezco mucho que me cuenten, seria de gran ayuda.

Buen dia.

Monica.

6
C# / Restar un dia a una fecha
« en: Jueves 6 de Enero de 2011, 16:28 »
Hola a todos.. es algo sencillo pero esoty bloqueda hoy.. como hago para restarle un dia a la fecha del sistema , en c#?

Hice una función donde obtengo el dia, mes y año en variables separadas , para hacer la resta sobre la variable de dia, pero se vuelve dispendioso , ya que no todos los meses son de 30 dias y me toca evaluar el mes antes de restar.

Hya alguna forma sencilla de hacerlo sin tener que dar tantas vueltas?

gracias por l idea que me puedan dar.

7
C# / Generar PDF a partir de reportviewer
« en: Lunes 3 de Enero de 2011, 21:10 »
Hola a todos, tengo un pequeño inconveniente y lo pongo en el foro para ver si me dan alguna idea:

Desarrolle en c# un programa para generar un informe a partir de un reportviewer con informacion de la base de datos y me lo despliega en pantalla. Hasta alli todo va super. Lo que quiero es que el informe no lo despliegue en pantalla , sino que automaticamente se genere el archivo en PDF y se almacene fisicamente en una carpeta de mi disco.
Estuve revisando algunos ejemplos que encontré para generar archivos PDF haciendo uso de la libreria iTextSharp, pero la desventaja que tengo es que solo podria usar esta libreria , si los datos los estuviera leyendo de un archivo tipo texto y mi  informe se genera, es leyendo info de la base de datos directamente.

Bueno si alguien me puede dar una idea se los agradezco mucho. Por lo pronto voy a tratar de encontrar solucion.

Moni.

8
C# / Unwanted pagebreaks when exported to PDF or printed
« en: Viernes 10 de Diciembre de 2010, 20:49 »
I have a report with some opening text, a table, and some closing text.  The number of rows in the table can vary.

When the report is exported to Excel or printed, the opening text is printed, then a pagebreak is inserted and the table starts on the second page.  I want the everything to be continous with any pagebreaks occuring in the middle of the table.

I've tried modifying the body and page size.  I've tried dragging the controls to the left and making them smaller.

Any ideas on how to stop the unwanted pagebreaks from occuring?

Thank's

9
C# / Obtener indice de una celda en un DataGridView
« en: Sábado 14 de Agosto de 2010, 00:18 »
Hola a todos , tengo un método para agregar filas en un DataGridView de acuerdo a la cantidad de registros que obtengo en una List.
El punto es que necesito saber como obtener el indice de la fila que acabo de insertar con  dataGridView2.Rows.Add, pues lo necesito para asignar a la columna 2 que es tipo ComboBoxCell un DataSource.

Si alguien me puede ayudar se los agradezco mucho

Código: C#
  1.  
  2. private void MostrarDatos()
  3.         {
  4.             List<AdminSaldoDetTR> llistarAdmin = new AdminSaldoNG().listarFacturasAdmin(conexionOracle,tbcampoConsulta, tbConsecutivo.Text);
  5.             foreach (AdminSaldoDetTR admintr in llistarAdmin)
  6.             {
  7.                 dataGridView2.Rows.Add(admintr.Nolinea, admintr.Factura, null, null, null, admintr.DocumentoReferencia,
  8.                     admintr.ValorAsignado, admintr.SaldoFactura, admintr.CodigoDivision,admintr.SubConcepto,
  9.                     admintr.DocumentoCruce,admintr.Estado);
  10.          ((DataGridViewComboBoxCell)dataGridView2.Rows[Indice].Cells[2]).DataSource = ltDivision;
  11.             }
  12.        }
  13.        
  14.  

10
C# / DataGridView con columnas tipo DataGridViewComboBox
« en: Martes 10 de Agosto de 2010, 17:04 »
Hola a todos, por favor ayudenme con este caso, la verdad esoty un poco desesperada con el manejo de los Datagridview, aunque ya han sido muchos los inconvenientes que he logrado superar. Pero les pido me ayuden con este caso que estoy perdida.
tengo mi DatagridView con dos columnas. Una es tipo TexBox y la otra es  DataGridViewComboBox. Ya logre hacer el proceso para salvar en mi base de datos (oracle) los datos qu habia registrado en el DataGrdiView.
supongan que ayer salve mis datos y hoy quiero simplemente abrir  mi WinForm y se desplieguen en mi DatagridView, la información que salve ayer.
El problema que tengo es que no se como mostrar los datos que corresponden a la columna  DataGridViewComboBox.

1. Lo primero que hice fue crear un método para cargar el DataSource de mi DataGridView (listarFacturasAdmin) . El método me devuelve un DataTable.
2. En el Load de mi Form, cargo el DataSource del DataGridView2.

Cuando corro mi programa, me dice "Se produjo la siguiente excepcion en DataGridView:System.ArgumentException:El Valor del DataGridViewComboBoxCell no es válido.
En verdad agradezco si me pueden ayudar con este lio.
Código: C#
  1.  
  2.  private void frmAdmonSaldos_Load(object sender, EventArgs e)
  3.         {
  4.             try
  5.             {
  6.                     Cursor.Current = Cursors.WaitCursor;
  7.                     dataGridView2.DataSource = new CarteraNG().listarFacturasAdmin(conexionOracle, tbcampoConsulta, consecutivo);
  8.              }
  9.             catch (Exception ex)
  10.             {
  11.                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  12.             }
  13.         }
  14.  
  15.  

11
C# / borrar fila en DataGridView
« en: Jueves 5 de Agosto de 2010, 20:39 »
Hola , chicos alguno me puede dar una idea de como puedo borrar una fila de un DataGridView cuando le doy doble click sobre la cabecera de una fila?. Supongo que debo hacerlo en el evento RowHeaderMouseDoubleClick, el punto es que no logro encontrar la intruccion en c# para borrar la fila. Me dan un empujoncito por favor?

Código: C#
  1.  
  2.  private void dataGridView2_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
  3.         {
  4.            
  5.         }
  6.  
  7.  

12
C# / problema con DataGridViewComboBoxColumn
« en: Jueves 5 de Agosto de 2010, 17:52 »
Hola, alguien sabe como puedo resolver el siguiente caso?. He buscado y probado con varios eventos y no logro el objetivo. Tengolo siguiente:

Tengo un DataGridView que tiene tres columnas , dos son del tipo TextBox (colLineaNo, colFactura) y otra es del  tipo DataGridViewComboBoxColumn (colDivision).
Antes de continuar , aclaro que el objetivo de este DataGridView es que el usuario digite información y seleccione del colDivision el dato que corresponda.
Esta columna tiene como DataSource un enlace de datos a la base de datos. Hasta alli todo bien.
El punto es que cuando hago click sobre la columna colDivision , sin haber desplegado la lista , se selecciona automaticamente el primer valor que contenga la lista y para rematar cuando esta celda pierde el foco , nuevamente queda en blanco.

El evento donde cargo la lista de colDivision es RowsAdded.

Código: C#
  1.  
  2. private void dataGridView2_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
  3.         {
  4.              foreach (DataGridViewRow fila in dataGridView2.Rows)
  5.             {
  6.                 ((DataGridViewComboBoxCell)fila.Cells[2]).DataSource = new obtenerDivisiones(new DivisionTR);
  7.                 ((DataGridViewComboBoxCell)fila.Cells[2]).ValueMember = "Codigo";
  8.                 ((DataGridViewComboBoxCell)fila.Cells[2]).DisplayMember = "Nombre";
  9.                 fila.Cells[0].Value = fila.Index;
  10.             }
  11.            
  12.         }
  13.  
  14.  
  15.  

13
C# / Validar campos Nulos en un DataGridView
« en: Miércoles 4 de Agosto de 2010, 21:07 »
hola a todos, les cuento que sigo con el tema de los DataGridView. Ya he podido superar varios inconvenientes que se me han presentado en mi programa , gracias a la ayuda del Foro y otras cosas que he encontrado en la documentación. Ahora estoy construyendo la acción que necesito para el evento Click del Boton Salvar. Pense que ya lo tenia listo, pero se me olvidó un pequeño detalle y es que no se como verificar que todas las filas tengan los campos llenos, antes que se ejecute lo que tengo en el evento click.
Gracias de antemano si alguien me da alguna idea.

El código que habia hecho en el evento click es el siguiente.
Código: C#
  1.  
  2. private void bSalvar1_Click_1(object sender, EventArgs e)
  3.         {
  4.                 //en el textbox se obtiene el consecutivo que se la va asignar al documento
  5.                 tbConsecutivo.Text = new VisualMaestrosNG(conexionOracle).obtenerConsecutivo("AD");
  6.                // aqui se recorre el DataGridView para llenar la lista de campos que van al insert sobre la base de datos
  7.                foreach (DataGridViewRow row in dataGridView2.Rows)
  8.                 {
  9.                     ltAdminSaldo = new List<AdminSaldoTR>();
  10.                     adminSaldo = new AdminSaldoTR();
  11.                     if (!string.IsNullOrEmpty(row.Cells["colFacturaS"].FormattedValue.ToString()) )
  12.                     {
  13.                         adminSaldo.Codigo = tbConsecutivo.Text;
  14.                         adminSaldo.Nolinea = Convert.ToInt32(row.Cells["colLineaNo"].Value.ToString());
  15.                         adminSaldo.CodRecibo = tbRecibo.Text;  
  16.                         adminSaldo.Factura=row.Cells["colFacturaS"].Value.ToString();
  17.                         adminSaldo.SaldoFactura = saldofactura;
  18.                         adminSaldo.ValorAsignado = Convert.ToDecimal(row.Cells["colVlorAsignaS"].Value.ToString());
  19.                         adminSaldo.SubConcepto =Convert.ToInt32(row.Cells[4].Value.ToString());                        
  20.                         adminSaldo.CodigoDivision = Convert.ToInt32(row.Cells[3].Value.ToString());
  21.                         adminSaldo.DocumentoReferencia = row.Cells["colDocReferencia"].Value.ToString();
  22.                         adminSaldo.FechaCreacion = Convert.ToDateTime(tbFechaCrea.Text);
  23.                         adminSaldo.UsuarioCreacion = tbUsuCrea.Text;
  24.                         ltAdminSaldo.Add(adminSaldo);
  25.                   // el método hace la insercion de los datos por cada fila.
  26.                         new CarteraNG().insertaAdminSaldo(conexionOracle, ltAdminSaldo);
  27.                     }
  28.                 }
  29.             }
  30.             else
  31.             {
  32.                 MessageBox.Show(Generales.mensajeError(4), "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Error);
  33.             }
  34.  
  35.         }
  36.  
  37.  

14
C# / Limpiar un DataGridViewTextBoxColumn con la tecla Delete
« en: Viernes 30 de Julio de 2010, 22:52 »
Hola a todos, despues de mucho luchar con los DataGridView , ya he ido superando los obstaculos que se me han presentado. Ahora se me presenta un pequeño inconveniente y es que quiero borrar algo que digitado en una celda de mi DataGridView , presionando la tecla Delete cuando el foco se encuentra en dicha celda, pero no funciona tan simple :(  . Estuve buscando alguna propiedad o evento pero no logro encontrar nada que me de alguna pista.

Si alguno me puede ayudar , se lo agradezco mucho.

15
C# / Comparar Cells de DataGridView diferentes
« en: Martes 27 de Julio de 2010, 21:12 »
Hola a todos, necesito un ayudita y es que necesito comparar dos celdas de DataGridView distintas . En verdad he buscado mucho en internet pero no logro encontrar la forma o el evento desde donde pueda hacer esta verificación.

Si alguno me puede ayudar se los agradezco mucho.

16
C# / Cargar DataSource a un DataGridViewComboBoxColumn
« en: Jueves 22 de Julio de 2010, 17:19 »
Hola chicos, hoy estoy negada con este caso.Tengo una dataGridView para insertar registros que posteriormente serán guardados en la base de datos. Este tiene dos columnas colFactura que es DataGridViewTextBoxColumn y colDivision que es del tipo DataGridViewComboBoxColumn. El punto es que necesito cargar colDivision con DataTable, pero esoty buscando en la documentacion por internet y no logro encontrar algo que me de una idea.
Se que en la propiedades que estan en Edit Column , Esta la propiedad para definir el DataSource, pero alli no veo la forma de decirle que llame al método listaDivisiones().

Si Alguno me puede ayudar , se los agradeceré como siempre.

Código: C#
  1.  
  2. public DataTable listarDivisiones()
  3.         {
  4.             DataTable dt = new DataTable();
  5.             OracleDataAdapter adaptador = new OracleDataAdapter();
  6.             try
  7.             {
  8.                 using (OracleCommand consulta = conexionOracle.CreateCommand())
  9.                 {
  10.                     consulta.CommandText = (@"Select ncoddivision,sdescripcion from tbdivision_est");;
  11.                     adaptador.SelectCommand = consulta;
  12.                     adaptador.Fill(dt);
  13.                 }
  14.             }
  15.             catch (Exception ex)
  16.             {
  17.                 throw e;
  18.             }
  19.             return dt;
  20.         }
  21.  
  22.  

17
C# / formato numerico a una celda de un DataGridView
« en: Lunes 19 de Julio de 2010, 17:47 »
Hola chicos, tengo un problemilla y se los cuento a ver si alguno de ustedes me puede ayudar:
Te un DataGridView con columnas númericas. Se que en la propiedad Format del  DataGridViewCellStyle puedo determinar el formato numerico. Hasta allí todo va muy bien. El inconveniente que se me presentó, es que cuando digito un valor en la columna que le he pusto formato numérico, no respeta el formato que le dí así que intente darselo nuevamente con el siguiente código pero no me funcionó:
[code=csharp]
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
 {
                foreach (DataGridViewRow row in dataGridView1.Rows)
                {
                                          row.Cells["colVlorAsigna"].Style.Format = "##,##.00";
                }
}
            code]

18
C# / asignar a un Textbox datos de comboBox
« en: Viernes 9 de Julio de 2010, 21:35 »
Hola a todos, bueno aqui va un problemita nuevo que tengo:
Hice un Form con un comboBox que tiene como DataSource un DataTable que toma los datos de la base de datos, como lo muestro en el código.
Código: C#
  1.  public DataTable listarConceptos()
  2.         {
  3.             DataTable dt = new DataTable();
  4.             OracleDataAdapter adaptador = new OracleDataAdapter();
  5.             try
  6.             {
  7.                 using (OracleCommand consulta = conexionOracle.CreateCommand())
  8.                 {
  9.                     consulta.CommandText = (@"select codigo,descripcion,cuenta,fecha from tbsubconceptos where nconcepto='30' ");                                  
  10.                     adaptador.SelectCommand = consulta;
  11.                     adaptador.Fill(dt);
  12.                 }
  13.             }
  14.             catch (Exception ex)
  15.             { throw ex;
  16.             }
  17.             return dt;
  18.         }
  19.  

y en el evento Click del comboBox asigne el codigo como ValueMember y descripcion como Display Member. Quiero hacer lo siguiente cuando selecciono algun item del comboBox y es desplegar en dos TextBox (TextBoxCuenta y TextBoxFecha) los datos cuenta y fecha que estan en el DataSource, pero no se como hacerlo.
Código: C#
  1.  private void cmbConceptos_Click(object sender, EventArgs e)
  2.         {
  3.             cmbConceptos.DataSource = new BasicoNG().listarConceptos(conexionOracle);
  4.             cmbConceptos.ValueMember = "codigo";
  5.             cmbConceptos.DisplayMember = "descripcion";            
  6.         }
  7.  
  8.  
Me pueden dara alguna idea de como resolverlo?. Como abrán podido darse cuenta soy super novata en la programación de c# y gracias a ustedes he aprendido muchisimo.

19
C# / Limpiar Datagridview
« en: Jueves 8 de Julio de 2010, 15:57 »
Hola amigos , tengo un DataGridview al cual le he predefinido tres columas factura,Valor y una tercera columna del tipo DataGridViewCheckBoxColumn. Cuando hago el Load de la Form que contiene el  DataGridViex se cargan los datos del DataSource de la base de datos . En esta misma Form tengo  un boton Limpiar para que limpie todos los controles (Textbox, ComboBox,dataGridView) .

Tengo el siguiente método para recorrer todos los controles y limpiarlos , dependiendo del tipo que sean. El problema que tengo es que para el DataGridview no me pinta de nuevo las columnas que predefiní . como hago para que despues que limpie los datos del DataGridView me pinte de nuevo las columnas que habia predefinido inicialmente.

Si alguno tiene un tip que me pueda ayudar , se los  agradezco muchisimo.

Ahh y gracias chicos por todas las ayudas que me han brindado.

Código: C#
  1.  
  2.  
  3. public static void limpiaForm(Control objContenedor)
  4.         {
  5.           // para cada control contenido en la colección
  6.            foreach (Control obj in objContenedor.Controls)
  7.            {
  8.              // si tiene hijos, recórrelos de forma recursiva
  9.                if (obj.HasChildren) limpiaForm(obj);
  10.                if (obj is TextBox)     ((TextBox)obj).Text = "";
  11.                if (obj is CheckBox)    ((CheckBox)obj).Checked = false;
  12.                if (obj is RadioButton) ((RadioButton)obj).Checked = false;
  13.                if (obj is DataGridView) ((DataGridView)obj).DataSource = null;
  14.           }
  15.        }
  16.  
  17.  private void bLimpiar_Click(object sender, EventArgs e)
  18.         {
  19.             limpiaForm(this);
  20.            }
  21.  
  22.  
  23.  

20
C# / sumar y restar celdas de un DataGridview
« en: Jueves 1 de Julio de 2010, 21:22 »
Hola todos, tengo este caso:
1. Un datagridview con tres columnas Factura, saldo y una tercer columna Estado que es del tipo DataGridViewTextBoxColumn.
2. Tambien tengo un textbox para deplegar la suma de la columna saldo pero solo de las filas cuya celda Estado tenga el check.

El problema que tengo es que al quitar el check, vuelve y suma el dato de la celda Saldo en vez de restarlo.
Alguien tiene alguna idea de como logro que reste el valor en el textbox si le quito el check a la celda estado=
Gracias por la ayuda
Código: C#
  1.  
  2.  
  3.  double sumatoria = 0;
  4.          private void sumaSaldosFactura()
  5.         {
  6.             foreach (DataGridViewRow row in dataGridView1.Rows)
  7.             {
  8.                 bool chequeo=Convert.ToBoolean(row.Cells[5].Selected);
  9.                 if (chequeo)
  10.                 {
  11.                     sumatoria += sumatoria + Convert.ToDouble(row.Cells[4].Value);
  12.                 }
  13.                
  14.             }
  15.             tbSumatoria.Text = Convert.ToString(sumatoria);    //aqui se graba el total
  16.             tbSumatoria.Text = (double.Parse(tbSumatoria.Text)).ToString("#,#.00");
  17.            
  18.         }
  19.  
  20.         private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
  21.         {
  22.              sumaSaldosFactura();
  23.         }
  24.  
  25.  

21
C# / Llenar columnas de Datagridview con datos
« en: Miércoles 30 de Junio de 2010, 16:55 »
Hola a todos,
tengo un datagridview con tres columnas predefinidas y quiero cargar estas columnas con los datos que obtengo de datatable, pero cuando corro el programa, en el Datagridview no se cargan los datos en las columnas predefinidas sino en unas nueva.
Código: C#
  1.  
  2.  
  3.  public partial class frmAdmonSaldos : Form
  4.     {
  5.         private OracleConnection conexionOracle;
  6.         public frmAdmonSaldos(OracleConnection conexionOracle, string tbcampoConsulta)
  7.         {
  8.             InitializeComponent();
  9.             this.conexionOracle = conexionOracle;
  10.             this.tbcampoConsulta = tbcampoConsulta;
  11.         }
  12.         private void frmAdmonSaldos_Load(object sender, EventArgs e)
  13.         {
  14.             try
  15.             {
  16.                 if (!string.IsNullOrEmpty(tbcampoConsulta))
  17.                 {
  18.                     Cursor.Current = Cursors.WaitCursor;
  19.                    dataGridView1.DataSource = new listarFacturasAdmin(conexionOracle, tbcampoConsulta);
  20.                     dataGridView1.AutoResizeColumns();
  21.                 }
  22.                 else throw new Excepcion("Número de recibo no puede ser nulo");
  23.             }
  24.             catch (Excepcion ex)
  25.             {
  26. MessageBox.Show(ex.reporteExcepcion(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  27.  
  28. }
  29. }
  30.                
  31.  
  32. public DataTable listarFacturasAdmin(string tbcampoConsulta)
  33.         {
  34.             DataTable dt = new DataTable();
  35.             OracleDataAdapter adaptador = new OracleDataAdapter();
  36.             try
  37.             {
  38.                 using (OracleCommand consulta = conexionOracle.CreateCommand())
  39.                 {
  40.                     consulta.CommandText=(@"Select r.invoice_id as Factura,total_amount as Valor,total_amount-paid_amount as Saldo,
  41.                                                        null as AdminSaldo,null as CodAmin
  42.                                                From receivable r, cash_receipt_line cl, cash_receipt cs
  43.                                                 Where cs.check_id=:tbcampoConsulta and r.invoice_id=cl.invoice_id and cs.check_id=cl.check_id
  44.                                                         and total_amount-paid_amount !=0");
  45.                     consulta.Parameters.Add(new OracleParameter(":tbcampoConsulta", OracleType.Char)).Value = tbcampoConsulta;
  46.                     adaptador.SelectCommand = consulta;
  47.                     adaptador.Fill(dt);
  48.                 }
  49.             }
  50.             catch (Exception ex)
  51.             {
  52.                 throw e;
  53.             }
  54.             return dt;
  55.         }
  56.  
  57.  public DataTable listarFacturasAdmin(OracleConnection conexionOracle, string tbcampoConsulta)
  58.         {
  59.            return new AdminSaldoAD(conexionOracle).listarFacturasAdmin(tbcampoConsulta);
  60.         }
  61.  
  62.  
  63.  
  64.  
  65.  

22
C# / Fijar el tamaño de un Button
« en: Jueves 24 de Junio de 2010, 19:01 »
Hola chicos,
estoy creando Components de tipo Button para  dejarlos como estandar en una dll. Necesito encontrar la propiedad de la clase Button que me permita bloquear el cambiarle el tamaño que yo estoy predefiniendo. Me pueden por favor ayudar.

23
C# / Permitir solo un punto en un textbox
« en: Miércoles 23 de Junio de 2010, 17:49 »
Hola a todos, estoy progamando en C#, tengo un textbox  que solo acepta numeros, el backspace y el punto, con el siguiente método. Sin embargo tengo aun un problema y es que  no he logrado validar que solo acepte un punto. Alguno de ustedes me puede dar alguna idea, se los agradezco muchisimo.
Código: C#
  1.  
  2. private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
  3.         {
  4.             validaNumeroPunto(e);
  5.         }
  6.  
  7.         public void validaNumeroPunto(KeyPressEventArgs en)
  8.         {
  9.             if (!char.IsDigit(en.KeyChar) && en.KeyChar != (char)Keys.Back && en.KeyChar != 46)
  10.                 en.Handled = true;
  11.         }
  12.  
  13.  

24
C# / Permitir solo un punto en un TextBox
« en: Miércoles 23 de Junio de 2010, 17:36 »
Hola a todos, estoy progamando en C#, tengo un textbox  que solo acepta numeros, el backspace y el punto, con el siguiente método. Sin embargo tengo aun un problema y es que  no he logrado validar que solo acepte un punto. Alguno de ustedes me puede dar alguna idea, se los agradezco muchisimo.
Código: C#
  1.  
  2. private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
  3.         {
  4.             validaNumeroPunto(e);
  5.         }
  6.  
  7.         public void validaNumeroPunto(KeyPressEventArgs en)
  8.         {
  9.             if (!char.IsDigit(en.KeyChar) && en.KeyChar != (char)Keys.Back && en.KeyChar != 46)
  10.                 en.Handled = true;
  11.         }
  12.  
  13.  

Páginas: [1]