• Jueves 2 de Mayo de 2024, 03:27

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 - lugarda

Páginas: [1] 2 3
1
C# / Re: obtener campo Lob(Oracle)
« en: Miércoles 1 de Junio de 2011, 18:44 »
Gracias por tu respuesta, lo probe y  nome funcionó.
Asi que busque la forma de traer el campo ya convertido desde el select hacia mi aplicacion. Adjunto el código:
Código: C#
  1.  
  2. consulta.CommandText = (@" select purc_req_id,purc_req_line_no,
  3.                                                      UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(bits, 4000,1))
  4.                                               from purc_req_ln_binary
  5.                                               where purc_req_id=:codigoRequisicion ");
  6.  
  7.  

Sin embargo de verdad agradezco tu ayuda.

2
C# / Re: obtener campo Lob(Oracle)
« en: Martes 31 de Mayo de 2011, 22:24 »
Hola tiene letras y/o numeros.

3
C# / Re: obtener campo Lob(Oracle)
« en: Martes 31 de Mayo de 2011, 21:36 »
Muchas gracias por responder tan pronto. Mientras recibia respuesta del foro , seguí investigando y encontré un artículo donde encontré algo similiar a lo que necesito pero en mi caso lo que hay almacenado en este campo es texto y para ser sincera no se como convertir lo que esta almacenado en este campo , de tal manera que lo pueda ver por pantalla.
Si me puedes dar una idea de como usar el FileStream que me sugieres , te lo agradezco mucho. Por favor no creas que es pereza de investigar, solo es que mañana debo entregar el programa y aun me falta mucho.
Gracias.

Código: C#
  1.  
  2. if (oraImgReader.GetValue(2).ToString() != "")
  3. {
  4.                         // Fetch the BLOB data through OracleDataReader using OracleBlob type
  5.                         OracleBlob blob = oraImgReader.GetOracleBlob(2);
  6.                         // Create a byte array of the size of the Blob obtained
  7.                         Byte[] byteArr =  new Byte[blob.Length];
  8.                         // Read blob data into byte array
  9.                         int i = blob.Read(byteArr,0,System.Convert.ToInt32(blob.Length));
  10.                         // Get the primitive byte data into in-memory data stream
  11.                         MemoryStream memStream = new MemoryStream(byteArr);
  12.                         // Attach the in-memory data stream to the PictureBox
  13.                         picEmpPhoto.Image = Image.FromStream(memStream);
  14.                         // Fit the image to the PictureBox size
  15.                         picEmpPhoto.SizeMode = PictureBoxSizeMode.StretchImage;
  16.  }
  17.  
  18.  

4
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.  

5
C# / Re: Obtener el tipo de un Datasource
« en: Viernes 15 de Abril de 2011, 17:44 »
Hola, gracias por la respuesta.
Si ya lo habia probado , pero el problema es que si lo hago de esta forma me elimina las columnas que habia formateado.

Voy a seguir buscando . No puedo creer que esto no se pueda hacer, ya que limitaria a que los datagridview solo se puedan cargar con DataTable.

Gracias de nuevo.

6
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.

7
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.  

8
C# / Re: Desplegar dato en un combobox
« en: Viernes 18 de Febrero de 2011, 16:35 »
Hola a todos, ya resolví mi problema , le cambie la propiedad DropDownStyle que estaba en DropDownList , la deje en DropDown; de esta manera ya me muestra el ususario así ya no este en Datasource del combobox.

9
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

10
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.

11
C# / Re: Restar un dia a una fecha
« en: Jueves 6 de Enero de 2011, 18:20 »
Super...mas sencillo de lo que me imagine..
muchas gracias por tu ayuda  :D .

12
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.

13
C# / Re: Generar PDF a partir de reportviewer
« en: Martes 4 de Enero de 2011, 17:56 »
Gracias por tu respuestas. La tendré en cuenta cuando use Cristal.
Por lo pronto te cuento que yo estoy trabajando con ReportViewer y lo solucioné  usando  reportViewer1.LocalReport.Render , asi:

Código: C#
  1.  
  2. private void frmReporte_Load(object sender, EventArgs e)
  3.         {
  4.  
  5.             DateTime fecha = Convert.ToDateTime("26/11/2010");
  6.             List<string> lista = new GenMailNotasNG().notas_cliente(conexionOracle,fecha);
  7.             foreach (string nota in lista)
  8.             {
  9.                 this.reportViewer1.ProcessingMode = ProcessingMode.Local;
  10.                 this.reportViewer1.LocalReport.ReportPath = pathReportes;
  11.                 try
  12.                 {
  13.                     this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("dsReporte_dtNota",
  14.                            new GenMailNotasNG().obtenerNota(conexionOracle,nota)));                }
  15.                 catch (Exception ex)
  16.                 {
  17.                     MessageBox.Show(ex.Message + "n" + ex.Source, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  18.                 }
  19.                 finally
  20.                 {
  21.                     this.reportViewer1.RefreshReport();
  22.                     byte[] bytes = reportViewer1.LocalReport.Render("PDF", null, out mimeType,
  23.                         out encoding, out extension, out streamids, out warnings);
  24.                     FileStream fs = new FileStream(@"c:\tmp\"+nota+@".pdf", FileMode.Create);
  25.                     fs.Write(bytes, 0, bytes.Length);
  26.                     fs.Close();
  27.                 }
  28.             }
  29.  
  30.  

14
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.

15
C# / Re: Unwanted pagebreaks when exported to PDF or printed
« en: Viernes 10 de Diciembre de 2010, 22:00 »
Hi, Thank you for trying to help me.
I can not give my code because the problem is in the ReporViewer parameters. Really I think that the problem is page configuration in the ReportViewer, but not be as fix it.

16
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

17
C# / Re: Obtener indice de una celda en un DataGridView
« en: Viernes 20 de Agosto de 2010, 23:35 »
Bueno chicos, le di tantas vueltas al asunto que la única forma que encontré para solucionarlo , fue recorrer el DataGridView cada que inserto una fila , así:
Código: C#
  1.  
  2.  private void MostrarDatos()
  3.         {
  4.             //obtener los datos de la tabla maestra tbadmin_saldo
  5.             List<AdminSaldoTR> lobtenerAdmin = new AdminSaldoNG().obtenerAdminSaldo(conexionOracle, tbcampoConsulta, tbConsecutivo.Text);
  6.             foreach (AdminSaldoTR adminsaldo in lobtenerAdmin)
  7.             {
  8.                 tbFechaCrea.Text = adminsaldo.FechaCreacion.ToString();
  9.                 tbUsuCrea.Text = adminsaldo.UsuarioCreacion;
  10.                 tbEstado.Text = adminsaldo.Estado;
  11.                 tbFechaModifica.Text = adminsaldo.FechaModifica.ToString();
  12.  
  13.                 tbUsuarioModifica.Text = adminsaldo.UsuarioModifica;
  14.             }
  15.  
  16.             List<AdminSaldoDetTR> llistarAdmin = new AdminSaldoNG().listarFacturasAdmin(conexionOracle,tbcampoConsulta, tbConsecutivo.Text);
  17.             foreach (AdminSaldoDetTR admintr in llistarAdmin)
  18.             {
  19.                 dataGridView2.Rows.Add(admintr.Nolinea, admintr.Factura, null, null, admintr.ValorAsignado,admintr.DocumentoReferencia,
  20.                 admintr.ValorAsignado, admintr.SaldoFactura, admintr.CodigoDivision,admintr.SubConcepto,
  21.                 admintr.DocumentoCruce,admintr.Estado,admintr.FechaCreacion,admintr.UsuarioCreacion);
  22.                 foreach (DataGridViewRow fila in dataGridView2.Rows)
  23.                 {
  24.                     if (!fila.IsNewRow)
  25.                     {
  26.                         ((DataGridViewComboBoxCell)dataGridView2.Rows[fila.Index].Cells[2]).DataSource = ltDivision;
  27.                         ((DataGridViewComboBoxCell)dataGridView2.Rows[fila.Index].Cells[2]).ValueMember = "Codigo";
  28.                         ((DataGridViewComboBoxCell)dataGridView2.Rows[fila.Index].Cells[2]).DisplayMember = "Nombre";
  29.                         ((DataGridViewComboBoxCell)dataGridView2.Rows[fila.Index].Cells[2]).Value =
  30.                         Convert.ToInt32(dataGridView2.Rows[fila.Index].Cells[8].Value);
  31.                         ((DataGridViewComboBoxCell)dataGridView2.Rows[fila.Index].Cells[3]).DataSource = ltSubconcepto;
  32.                         ((DataGridViewComboBoxCell)dataGridView2.Rows[fila.Index].Cells[3]).ValueMember = "CodigoSubconcepto";
  33.                         ((DataGridViewComboBoxCell)dataGridView2.Rows[fila.Index].Cells[3]).DisplayMember = "Descripcion";
  34.                         ((DataGridViewComboBoxCell)dataGridView2.Rows[fila.Index].Cells[3]).Value =
  35.                              Convert.ToInt32(dataGridView2.Rows[fila.Index].Cells[9].Value);
  36.                     }
  37.                 }
  38.             }
  39.         }
  40.  
  41.  
  42.  
espero le sirva a alguien.
hasta pronto.

18
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.  

19
C# / Re: DataGridView con columnas tipo DataGridViewComboBox
« en: Miércoles 11 de Agosto de 2010, 18:58 »
hola uiii que es esta dicha ...  :rolleyes: gracias por tu pronta respuesta.
 Estuve revisando este punto y mi comboBox es tipo string y el dato que esoty recuperando es string. Se que el DataGridViewComboBox, al igual que un comboBox tiene las propiedades ValueMember ,DisplayMember y Value que es finalmente dato que muestra en la celda. Sin embargo no logré ponerlo a funcionar, por mas que busque en internet alternativas , no encontre nada que me diera mas pistas.
Hice algunos cambios y fué cargar los datos en una lista lmostrarAdmin y crear un método que recorra la lista para ir adicionando filas al DataGrdiView, pero sigo con el mismo problema. Los datos que tiene el problema son admintr.Nombredivision,admintr.Nombresubconcepto y estos campos son string.

Por la premura de tiempo , me toco hacer algo que supongo que no es la mejor solución y es que cree otro DataGridView para desplegar los datos despues de salvados para poder mostrarlos en pantalla donde las dos columnas que me reciben estos datos son Text y con esto resolví el problema. Asi que por ahora me toca jugar con dos DataGridView; una para insertar y otra para simplemente desplegar.

Si se te ocurre algo no dudes en avisarme.
muchas gracias.

Código: C#
  1.  
  2.  private void MostrarDatos()
  3.         {
  4.             List<AdminSaldoTR> lmostrarAdmin = new CarteraNG().listarFacturasAdmin(conexionOracle, tbcampoConsulta, consecutivo);
  5.  
  6.             foreach (AdminSaldoTR admintr in lmostrarAdmin)
  7.             {
  8.                 dgDespliegue.Rows.Add(admintr.Nolinea, admintr.Factura,admintr.Nombredivision,admintr.Nombresubconcepto, admintr.DocumentoReferencia, admintr.ValorAsignado);
  9.                 tbFechaCrea.Text = admintr.FechaCreacion.ToShortDateString();
  10.                 tbUsuCrea.Text = admintr.UsuarioCreacion;
  11.                 cmbEstado.Text = admintr.Estado;
  12.             }
  13.             dataGridView2.Enabled = false;
  14.         }
  15.  
  16.  

20
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.  

21
C# / Re: Validar campos Nulos en un DataGridView
« en: Lunes 9 de Agosto de 2010, 14:54 »
hola, gracias por tu respuesta. Jajaja me hiciste reir con eso que estoy mas avanzada ... si supieras los dolores de cabeza que he tenido aprendiendo c#. Te cuento que revise tu respuesta y pensando un poco , no es necesario recorrer filas y despues columnas ya que con el foreach sobre filas puedo recorrer cada fila y sobre cada fila validar las columnas que quiero verificar que no sean nulas. Estuve tambien preguntandole a un amigo y al parecer la la unica forma que hay es hacer el ciclo de verificacion. Finalmente hice un método que devuelve un bool y me recorre el DataGridView para verificar las celdas que necesito. Te copio el código que hice.
Oye en serio gracias por contestar, pues son pocos los casos que he puesto y alguien me ha respondido. Es muy chevere cuando recibir respuestas del foro.
Gracias.

Código: C#
  1.  
  2.  private bool celdasNullEnDataGridView2()
  3.         {
  4.             bool bVacia=false;
  5.             foreach (DataGridViewRow row in dataGridView2.Rows)
  6.             {
  7.                 if  (!row.IsNewRow &&  
  8.                     (string.IsNullOrEmpty(row.Cells["colFacturaS"].FormattedValue.ToString()) ||
  9.                      string.IsNullOrEmpty(row.Cells["colDivision"].FormattedValue.ToString()) ||
  10.                      string.IsNullOrEmpty(row.Cells["colSubConcepto"].FormattedValue.ToString()) ||
  11.                      string.IsNullOrEmpty(row.Cells["colDocReferencia"].FormattedValue.ToString()) ||
  12.                      string.IsNullOrEmpty(row.Cells["colVlorAsignaS"].FormattedValue.ToString())))
  13.                 { bVacia = true;}
  14.             }
  15.             return bVacia;
  16.         }
  17.  
  18.  

22
C# / Re: borrar fila en DataGridView
« en: Jueves 5 de Agosto de 2010, 21:18 »
Hola, ustedes dira que estoy perdiendo la razon . Pero curiosamente cuando despues de mucho buscar y no encontrar soluciones por mis propios medios , es que recurro a consultarles a mis compañeros del foro. Lo mejor del cuento es que cuando pongo el caso en el foro, se me alumbra a ratos el "bombillo" (como decimos jocosamente en colombia) y encuentro la solución; aqui les comparto lo que hice.
Gracias a los que tuvieron la intension de por lo menos revisar mis preguntas jejejej.. al parecer esas buenas intensiones son las que me dan buena energia para no darme por vencida.
Hasta la proxima.

Código: C#
  1.  
  2. private void dataGridView2_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
  3.         {
  4.             if (!dataGridView2.Rows[e.RowIndex].IsNewRow)
  5.             {
  6.                 dataGridView2.Rows.RemoveAt(e.RowIndex);
  7.             }
  8.         }
  9.  
  10.  
  11.  

23
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.  

24
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.  

25
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.  

Páginas: [1] 2 3