Foros del Web » Programación para mayores de 30 ;) » Programación General »

campo nuevo en datagrid

Estas en el tema de campo nuevo en datagrid en el foro de Programación General en Foros del Web. Bueno espero explicarme lo mejor posible para ke me puedan ayudar : tengo una tabla llamada "cartera" con los siguientes campos: Fecha_vencimiento doc_tercero ncheque ncuenta ...
  #1 (permalink)  
Antiguo 16/06/2004, 20:34
 
Fecha de Ingreso: junio-2004
Mensajes: 76
Antigüedad: 20 años, 5 meses
Puntos: 0
campo nuevo en datagrid

Bueno espero explicarme lo mejor posible para ke me puedan ayudar :

tengo una tabla llamada "cartera" con los siguientes campos:

Fecha_vencimiento
doc_tercero
ncheque
ncuenta
titular
Monto
noperacion

en un form tengo un dtagrid llamado "dgDocumentosCartera" el cual tengo enlazado a la tabla con la siguiente consulta:

If Cartera.State = 1 Then Cartera.Close
Cartera.Open "select fecha_vencimiento,doc_tercero,ncheque,ncuenta,titu lar,monto,noperacion from cartera order by fecha_vencimiento desc"
Set dgDocumentosCartera.DataSource = Cartera


En un label llamado lblDias tengo una operacion ke consiste en restar la fecha actual (ke obtengo con la funcion Date) y el campo "Fecha_Vencimiento" del datagrid de la siguiente forma:

FechaActual = Date
FechaVencimiento = CDate(dgDocumentosCartera.Columns(0).Value)
lblDias = "Quedan " & FechaVencimiento - FechaActual


Lo que kiero saber es si puedo crear un campo Dias a la tabla cartera que pueda realizar la operacion de lblDias, algo asi como un campo auxiliar, o poder agregar al datagrid un campo que haga lo que hace el label lblDias.

La idea es mostrar los dias al lado de cada registro en el datagrid, espero haberme explicado bien

Agradeceria cualkier ayuda
  #2 (permalink)  
Antiguo 17/06/2004, 10:33
 
Fecha de Ingreso: junio-2004
Mensajes: 76
Antigüedad: 20 años, 5 meses
Puntos: 0
Ninguna respuesta, es muy importante para mi saber esto
  #3 (permalink)  
Antiguo 17/06/2004, 11:13
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 9 meses
Puntos: 1
Puedes hacerlo en la consulta.

Por que no lo haces en la consulta

Cita:
Cartera.Open "select fecha_vencimiento,doc_tercero,ncheque,ncuenta,titu lar,monto,noperacion from cartera order by fecha_vencimiento desc"
Podria ser así (Utilizando Access):

Código:
SELECT fecha_vencimiento, doc_tercero, ncheque, ncuenta, titular,
monto, noperacion, fecha_vencimiento - Date() AS Dias FROM ....
Y luego lo enlazas al grid.

Saludes
__________________
Leer es Saber, REEL.
Mi Blog

Última edición por reel; 17/06/2004 a las 11:15 Razón: Sin titulo
  #4 (permalink)  
Antiguo 17/06/2004, 16:56
 
Fecha de Ingreso: junio-2004
Mensajes: 76
Antigüedad: 20 años, 5 meses
Puntos: 0
amigo, lo hice de la forma ke me dijiste pero no me funciono, debe ser por ke estoy trabajando con conexion SQL.

= en base a lo tuyo probe algo como esto:

SELECT fecha_vencimiento, doc_tercero, ncheque, ncuenta, titular,
monto, noperacion, fecha_vencimiento - 2 AS Dias FROM ....


y me mostraba el campo Dias restandole dos dias a la fecha por ejemplo

la cosa es ke no me resulta lo ke kiero yo ke es mostrar el campo "Dias", ke contenga la resta de la fecha_vencimiento y la fecha actual
  #5 (permalink)  
Antiguo 18/06/2004, 07:59
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 9 meses
Puntos: 1
Para SQLServer la sentencia SQL es de esta forma:

SELECT fecha_vencimiento, doc_tercero, ncheque, ncuenta, titular,
monto, noperacion, DATEDIFF(day,fecha_vencimiento,GETDATE()) AS Dias FROM ....

La sentencia que brinde anteriormente es para Access.

Saludes
__________________
Leer es Saber, REEL.
Mi Blog
  #6 (permalink)  
Antiguo 18/06/2004, 17:05
 
Fecha de Ingreso: junio-2004
Mensajes: 76
Antigüedad: 20 años, 5 meses
Puntos: 0
Muchas gracias reel, me resulto....

a todo esto, puedo crear un campo en un consulta(asi como el "dias"), pero ke contenga el caption de un label como por ejemplo lblDias.caption.(VISUAL BASIC)

Obviamente este label varia =)

agradeceria si me aclaran esto ultimo, y repito gracias reel

Última edición por Guachalin; 18/06/2004 a las 17:07
  #7 (permalink)  
Antiguo 19/06/2004, 11:34
 
Fecha de Ingreso: junio-2004
Mensajes: 76
Antigüedad: 20 años, 5 meses
Puntos: 0
ninguna recomendacion?
  #8 (permalink)  
Antiguo 21/06/2004, 10:06
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 9 meses
Puntos: 1
Sonrisa Nombre de una columna

Lo que puedes hacer es que al momento de costruir la sentencia SQL agregas el contenido del label:

Código:
StenciaSql = "SELECT fecha_vencimiento, doc_tercero, ncheque,   ncuenta," _
& "titular, monto, noperacion, DATEDIFF(day,fecha_vencimiento,GETDATE()) " _
& "AS & lb.Caption & "] FROM ...." 

Recordset.Open SentenciaSql ....
Ahora si lo anterior no te funciona puedes hacer lo siguiente, talvez te parezca mucho más fácil:

Código:
Datagrid1.columns(1).caption = "Diferencia en días"
Pero en éste último caso creo que también tendrias que cambiar la propiedad width.

Saludes
__________________
Leer es Saber, REEL.
Mi Blog

Última edición por reel; 21/06/2004 a las 10:12 Razón: Visualización y Error en código
  #9 (permalink)  
Antiguo 22/06/2004, 13:19
 
Fecha de Ingreso: junio-2004
Mensajes: 76
Antigüedad: 20 años, 5 meses
Puntos: 0
bueno no es en realidad lo ke kiero, ya ke lo ke contiene el label lblDias no es el nombre del encabezado sino los valores de dias, por ejemplos: 23, 12, 11 dias.....

osea en el lbl dias el valor se obtiene asi:
CDate(dgDocumentosCartera.Columns(0).Value) - Date()

dgDocumentosCartera.Columns(0).Value es el correspondiente al campo fecha_vencimiento
..... y eso kiero irlo mostrando como campos ...no se si se entiende

probe de esta forma pero no me funciono: .....,& lblDias & as Dias FROM.....

Última edición por Guachalin; 22/06/2004 a las 13:24
  #10 (permalink)  
Antiguo 23/06/2004, 08:01
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 9 meses
Puntos: 1
Usa un FlexGrid

Pues la única solución que te puedo brindar es con el uso de un MSFlexGrid, porque con un DBGrid estoy 99% seguro que no se puede.

Crea el Recordset y llena un FlexGrid con los datos de éste (el FlexGrid no lo tienes que enlazar con el Recordset, llénalo a píe osea por código). Depues le puedes agregar una columna al FlexGrid y luego lo recorres cada fila y has el cálculo corresondiente.

Abajo te pongo un ejemplo con el FlexGrid.

Código:
........

FlexGrid.FormatString = " Campo1 | Campo 2 | Campo 3"
FlexGrid.Rows = 1
While not Rs.EOF
     FlexGrid.TextMatrix(FlexGrid.Rows - 1, 0) = Rs("Campo1")
     FlexGrid.TextMatrix(FlexGrid.Rows - 1, 1) = Rs("Campo2")
     FlexGrid.TextMatrix(FlexGrid.Rows - 1, 2) = Rs("Campo3")
     FlexGrid.Rows = FlexGrid.Rows + 1
     Rs.MoveNext
Loop

FlexGrid.Cols = FlexGrid.Cols + 1
.....

For i = 1 To FlexGrid.Rows - 1
     'El calculo necesario
     FlexGrid.TextMatrix(i,3) = 'Resultado del cálculo.
Next
Espero que te sirva.

Saludes
__________________
Leer es Saber, REEL.
Mi Blog
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:58.