Grid editable

Hola buenas.
Necesito de su ayuda, tengo una grid que se llena de datos de un cursor tomados de varias tablas.
Asumamos que mi grid es de 7 campos
Formados así:
Nombre asignatura nota 1 nota 2 nota 3 nota 4 promedio
en la grid muestro los datos nombre y asignatura, se cargan automáticos, y los demás campos (nota1, nota2... Notan) debo de llenarlos manualmente y posterior mente guardar esos datos de mi grid a una tabla, el promedio debe de calcularce automáticamente según valla introduciendo las notas.
El asunto es que mi grid debe de ser editable desde nota 1 a nota 4, las demás columnas deshabilitadas, debe de guardar todos los datos incluyendo las notas y al volver a jecutar la forma las notas que ya estén introducidas deben de deshabilitarse también quedando así solo las notas que están en blanco...
Espero me aya dado a entender con lo que necesito, y también espero que me ayuden
mi correo es [email protected]
gracias de antemano.
1

1 Respuesta

98.900 pts. Hola ... Estudio Ingenieria en Sistemas, con...
Te mande un ejemplo de como se hace.
Hola gracias por tu respuesta, lo probare en mi aplicación aver que tal funciona. Ahora tengo otro problemita, este sistema estará en 3 pc diferentes y cada una de ellas con resolución diferente, como puedo cambiar auotmaticamente la resoluciion del monitor. En otras palabras antes de que cargue la forma principal que cambie la resolicion automáticamente y luego al salir de sistema que la restaure.
mmm mandame tu correo y te lo envío ...
*!* sintaxis changeres(tnwidth, tnheight)
do case
case sysmetric(1)=640 and sysmetric(2)=480
  lancho=sysmetric(1)
  lalto =sysmetric(2)
 case sysmetric(1)=800 and sysmetric(2)=600
  lancho=sysmetric(1)
  lalto =sysmetric(2)
 case sysmetric(1)=1024 and sysmetric(2)=768
  lancho=sysmetric(1)
  lalto =sysmetric(2)
 case sysmetric(1)=1280 and sysmetric(2)=1024
  lancho=sysmetric(1)
  lalto =sysmetric(2)
otherwise
  messagebox([la resolucion del monitor es desconocida])
Endcase
changeres(800,600)
messagebox([la resolucion fue cambiada a 800 * 600 pixeles])
changeres(lancho,lalto)
 messagebox([la resolucion fue retornada a su modo original ]+alltrim(str(lancho))+[ * ]+alltrim(str(lalto))+[ pixeles])
*!* valor devuelto: llretval
*!* argumentos: tnwidth, tnheight
*!* tnwidth especifica la nueva anchura de la pantalla en pixels
*!* tnheight especifica la nueva altura de la pantalla en pixels
function changeres
    lparameters tnwidth, tnheight
    local lnwidth, lnheight, lnmodenum, lcdevmode
    *!* valores
    lnmodenum  = 0
    lcdevmode  = replicate(chr(0), 156)
    lnwidth    = iif(empty(tnwidth), 800, tnwidth)
    lnheight   = iif(empty(tnheight), 600, tnheight)
    *!* instrucciones declare dll para cambiar resolución
    declare integer enumdisplaysettings   in win32api string lpszdevicename, integer imodenum, string @lpdevmode
    declare integer changedisplaysettings in win32api string @lpdevmode , integer dwflags
    *!* bucle para obtener todos los modos disponibles
    do while enumdisplaysettings(null, lnmodenum, @lcdevmode) <> 0
        lnmodenum = lnmodenum +1
    enddo
    *!* configurar la structura devmode
    lcdevmode = stuff(lcdevmode,  41, 4, longtostr(1572864))
    lcdevmode = stuff(lcdevmode, 109, 4, longtostr(tnwidth))  && ancho
    lcdevmode = stuff(lcdevmode, 113, 4, longtostr(tnheight))  && alto
    *!* cambiar resolucion
    changedisplaysettings(@lcdevmode, 1)
endfunc
*!* convierte un long integer a un 4-byte character string
*!* sintaxis: longtostr(lnlongval)
*!* valor devuelto: lcretstr
*!* argumentos: lnlongval
*!* lnlongval especifica el long integer a convertir
function longtostr
    lparameters lnlongval
    local lncnt, lcretstr
    lcretstr = ''
    for lncnt = 24 to 0 step -8
        lcretstr = chr(int(lnlongval/(2^lncnt))) + lcretstr
        lnlongval = mod(lnlongval, (2^lncnt))
    next
    return lcretstr
Endfunc
El ejemplo de la grid amigo no me funciono, tienes alguna otra idea de como puedo obtener un grid editable
¿Por qué no te funciona?
¿Te debió funcionar o no te permitió correr?
Si no me corrió, emmmm me enviaras el ejemplo de ajustar la resolución del monitor que mencionaste.
Saludos
El de grilla ya me funciono bien pero ahora me da otro problema. Como es actualizable dependiendo mi selección, la primera vez que selecciono algo la grid esta perfecto pero cuando selecciono otra cosa se pierde la configuración de la grid, ¿qué podrá ser?
Lo único que debes de hacer es limpiar el grid
thisform.grid1.recordsource = ""
y despues de eso si ya lo refrescas con un select
o no se
select * from tabla into cursor cu1
thisform.grid1.recordsource = "cu1"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas