none
Datagridview en tiempo ejecucion RRS feed

  • Pregunta

  • Tengo un datagrid que tiene unos registros generados desde otro form.

    Los registros que debo hacer es de fechas la pregunta es. Debo usar insert into  ... o update.

    La fila tiene datos traidos de una tabla pero el.resto esta vacio para ser llenado. En tiempo de ejecucion. Finalmente calcular estados y dias. 

    Como calcular fecha proxima segun dias, como calcular los valores de estas fechas.

    Ejemplo por favor

    Saludos

    lunes, 19 de marzo de 2018 1:34

Respuestas

Todas las respuestas

  • "Update o Insert?"  La respuesta está condicionada a la respuesta de la pregunta:  Cuando usted pasa los registros a este nuevo DGV, ¿ya los mandó a base de datos para ser almacenados, aún en blanco?  Si la respuesta es "Sí", entonces UPDATE.  Si la respuesta es "No", entonces INSERT.

    Para agregar o restar días a una fecha, utilice el método AddDays().

    DateTime fecha = DateTime.Now;
    //Agregamos 7 días:
    fecha = fecha.AddDays(7);
    //Ahora "fecha" contiene la nueva fecha.


    Jose R. MCP
    Code Samples

    lunes, 19 de marzo de 2018 5:02
    Moderador
  • Estado colocando para llenar datos y no me guarda. 

    Respecto a los calculos es referentre a celdas los valores de las fechas de estos calcular en otra celda los dias 

    Esto se ve asi de lado izq como derecho hay mas columnas 

    Lo guardo asi:

    Lo que esta en verde por ahora no porque no me sale y me obliga guardar archivo cuando aveces no lo requiero. sino hasta el final 

    Private Sub Guardar_Click(sender As Object, e As EventArgs) Handles Guardar.Click
    
            Dim resultado As Boolean = False
            Dim Myfile As System.IO.FileStream
            Myfile = System.IO.File.OpenRead(Me.txtRuta.Text)
            Dim Arr(Myfile.Length) As Byte
    
            Using cnx As New SqlConnection(ConfigurationManager.ConnectionStrings("cnxString").ToString())
                If contador_para_guardar = 2 Then
                    Try
                        cnx.Open()
                        '' Guardo DataGridView en ejecucion
    
                        Dim textosqeditar As New String(CType("Update CIEnsayo set Codigo=@1,NombreLab=@2,DiasLab=@3,FechaIngreso=@4,FechaAnalisis=@5,FechaDevolucion=@6,FechaEntregaIEGT=@7,FechaEntregaIEGG=@8,FechaEntregaIECliente=@9,DiasTranscurridos=@10,FechaMaxEntrega=@11,EstadoFinal=@12,Resultado=@13,Extension=@14 where Codigo =@1", Char()))
                        Dim cmdp As New SqlCommand(textosqeditar, cnx)
    
                        Dim misBytes() As Byte = File.ReadAllBytes(ar)
    
                        Dim fila As DataGridViewRow
    
                        For Each fila In dgvIEnsayo.Rows
                            If fila.Index = dgvIEnsayo.Rows.Count - 1 Then
                                Exit For
                            End If
                            cmdp.Parameters.Clear()
                            'Ejecucion DGV 
    
                            cmdp.Parameters.AddWithValue("@1", Convert.ToString(fila.Cells("Codigo").Value))
    
                            cmdp.Parameters.AddWithValue("@2", Me.cboLaboratorio.Text)
                            cmdp.Parameters.AddWithValue("@3", Me.cboDias.Text)
                            'cmdp.Parameters.AddWithValue("@2", Convert.ToString(fila.Cells("NombreLab").Value))
                            'cmdp.Parameters.AddWithValue("@3", Convert.ToString(fila.Cells("DiasLab").Value))
    
                            cmdp.Parameters.AddWithValue("@4", Convert.ToString(fila.Cells("FechaIngreso").Value))
                            cmdp.Parameters.AddWithValue("@5", Convert.ToString(fila.Cells("FechaAnalisis").Value))
                            cmdp.Parameters.AddWithValue("@6", Convert.ToString(fila.Cells("FechaDevolucion").Value))
                            cmdp.Parameters.AddWithValue("@7", Convert.ToString(fila.Cells("FechaEntregaIEGT").Value))
                            cmdp.Parameters.AddWithValue("@8", Convert.ToString(fila.Cells("FechaEntregaIEGG").Value))
                            cmdp.Parameters.AddWithValue("@9", Convert.ToString(fila.Cells("FechaMaxEntrega").Value))
                            cmdp.Parameters.AddWithValue("@10", Convert.ToString(fila.Cells("FechaEntregaIECliente").Value))
                            cmdp.Parameters.AddWithValue("@11", Convert.ToString(fila.Cells("DiasTranscurridos").Value))
                            cmdp.Parameters.AddWithValue("@12", Convert.ToString(fila.Cells("EstadoFinal").Value))
    
                            cmdp.Parameters.AddWithValue("@13", misBytes)
                            cmdp.Parameters.AddWithValue("@14", Me.txtExtension.Text)
    
                            cmdp.ExecuteNonQuery()
                            
                            cnx.Close()
                        Next
                        MsgBox("Datos actualizados")
                        pre = 0
                        contador_para_guardar = 0
                        oCommandBuilder = New SqlCommandBuilder(Me.oDataAdapter)
                        oDataAdapter = New SqlDataAdapter("Select Id,Codigo,FechaRecepcion,Cliente,Locacion,Referente,Proyecto,Analisis,NMuestra,Responsable,Conforme,NombreLab,DiasLab,FechaIngreso,FechaAnalisis,FechaDevolucion,FechaEntregaIEGT,EstadoIEGT,FechaEntregaIEGG,EstadoIEGG,DiasTranscurridos,FechaEntregaIECliente,EstadoIECliente,FechaMaxEntrega,EstadoFinal,Extension from CIEnsayo ORDER BY Id", cnx)
                        oDataTable = New DataTable
                        oDataAdapter.Fill(oDataTable)
                        dgvIEnsayo.DataSource = oDataTable
    
                        dgvIEnsayo.Columns(17).Visible = False 'EstadoIEGT
                        dgvIEnsayo.Columns(19).Visible = False 'EstadoIEGG
                        dgvIEnsayo.Columns(22).Visible = False 'EstadoIECliente
    
                    Catch ex As Exception
                        MsgBox(ex.Message)
                        cnx.Close()
                    End Try
                End If
            End Using
        End Sub

    Ese codigo me guarda solo la primera linea mas no las demas lineas si le ingreso datos yo quiero ingresar a las filas que tenga contenido inicial añadir sus fechas y calculos

    Espero me pueda ayudar. A esas fechas es que quiero calcular si ingreso FechaIngreso me calcule la fechaMaximaEstimada que esta en otra columna, Si ingreso FEchaIECliente entonces me calcule los dias transcurridos desde que se ingreso la fechaingreso hasta que se entrgo al cliente y en otra columna estado diga Emitido al Cliente, si por el contrario se me paso los dias y aun no registro nada segun la fecha max el estado diga Informe Retrasado y la fila se pinte rojo.



    lunes, 19 de marzo de 2018 17:19
  • Bueno ya lo estoy haciendo de otra forma.

    Gracias de todos modos

    • Marcado como respuesta Javier Roque lunes, 19 de marzo de 2018 22:19
    lunes, 19 de marzo de 2018 22:18