Ayuda con grid y check

bueno, tengo un grid al que le he colocado un check, me guarda y todo me va bien, incluso me muestra todo lo que he guardado, solo quiero que el check cuando esta en 1 el caption= "Si", pero si esta en 0 el caption= "No" lo hago en el evento click del check y me funciona, pero una vez que guarda y vuelvo a ver lo que he guardado, todos me aparecen o "Si" o "No" estén o no estén checados, como podría resolver esto? Digamos es que un check con doble caption... Se podrá? No se, con alguna propiedad? Ya sea del check o de la column del grid de verdad quisiera que me ayudaran, de antemano muchas gracias...

2 Respuestas

Respuesta
1

Espero poder ayudarte.

A ver je je viene algo enredada la cosa... pero si no mal entiendo, cuando guardas el valor del check (0 - 1, según sea) en el campo, no te muestra correctamente el valor de dicho campo en el grid mediante el check. ¿Es así?

De ser así, tal vez el problema es de "Refrescamiento". Después de guardar, coloca un

THISFORM. Refresh

Mmmm asegurate de que el grid este correctamente "enlazado" con tu tabla o cursor.

A algunos usuarios les ha ocurrido lo mismo que a ti, pero con controles textos en lugar de checks en los grids. Una solución que implementaron fue reenlazar el grid con la tabla, después de hacer el UPDATE de los datos. Proba colocar una linea de enlace después que finalices el guardado de los datos... algo así:

**--

THISFORM.Grid1.RecordSource = "tabla1"

THISFORM.Refresh

**--//

Bien... avisame si no te funciona para que veamos mas a detalle el problema.

Estoy a la orden para ayudarte en lo que pueda!

Un abrazo!

no, a ver, si guarda y si muestra el valor de dicho check, solo que, por ejemplo, si yo al check lo checo, estaría en value 1, me gustaría que su caption fuese "Si", pero si el check no esta checado, su value es 0 y su caption sea "No" y que quede así, para que cuando yo vuelva a verificar la información el check me diga si es "Si" o "No" según su value... gracias por responder...

Ahhh ya comprendí! Disculpame man! Estaba algo enredada la cosa ja ja! Es sencillo.

Para condicionar el caption de tu check, debes validar su valor y modificar la etiqueta.

Para que, al inicial el grid, podas ver el cambio según el valor que tiene el check, anda al evento INIT del CHECK1 y coloca un código como éste (vos modifícalo según tus controles grid y columna):

**--

DO CASE

CASE THISFORM.Grid1.Column1.Check1.Value = 0

THISFORM.Grid1.Column1.Check1.Caption = "No"

CASE THISFORM.Grid1.Column1.Check1.Value = 1

THISFORM.Grid1.Column1.Check1.Caption = "Si"

ENDCASE

**--

THISFORM.Refresh

**--//

Así mismo, coloca el código en el evento click del mismo check... así le decís a fox que cuando el valor del check sea 1, el caption marque "SI" y cuando sea 0, marque "No".

Bien... espero esto sea la solución al problema. De no ser así, avisame para cooperarte y resolver cualquier duda. Estoy a la orden para lo que necesites.

Un abrazo!

Desde Managua, Nicaragua!

Ravenn :D :D :D

eres lo mejor, voy a probar este a ver je je gracias, aunque ya lo había resuelto por el dinamyc current control, aunque me costo, me salio, pero no como quiero, voy a probar a ver como me funciona este....

tengo es una nueva duda, veras...

tengo varios textbox y algunos editbox, lo que quiero es que todos se sitúen a la izquierda cuando reciban el foco y que no me permita darles espacio con las flechas direccionales, solo con la barra espaciadora... se podrá lograr esto?
otra cosa es que cuando los editbox son alimentados por una información de una tabla, me ubique el cursor al inicio a la izquierda y no donde clique el cursor del mouse.
y una mas es que los textbox sean alimentados con teclas del ordenador y no con espacios con las tecla de dirección, solo que los espacios los reciba con la barra espaciadora; por ejemplo, crea un form y crea un textobox y ejecuta el form, verás que al pulsar la barra de dirección derecha solo se llena con espacios vacíos, bueno, yo quiero que solo se puedan llenar con letras o números o espacios con la barra, si le coloco un lastkey no me deja navegar entre las letras que ya he escrito y no es lo correcto, que mas podría hacer? muchas gracias por la ayuda ofrecida...

Para que el control text reciba el cursor hacia la izquierda cuando inicie, en el evento INIT del mismo text o editbox... coloca esto

KEYBOARD '{home}'

Para bloquear las teclas direccionales en el control, coloca en el evento KeyPress del text o edit, un código como este:

**--Direccionales izquierda - derecha
IF nKeyCode = 19 OR nKeyCode = 4
Nodefault
ENDIF

Eso debe solucionar je je! Si no es así, avisame para ver que hacemos!

exacto, pero imagina que en un textbox editas tu nombre como raben, siendo raven, entonces, al navegar, obligado tienes que usar el mouse y no es lo correcto, también debiera ser con las teclas direccionales, solo no quiero es que las direccionales hagan el trabajo de la barra espaciadora, otra cosa, como hago para colocar el puntero en un editbox? osea, digamos que guardaste en la tabla la palabra skill, que significa habilidad, skill tiene 5 letras, me gustaría que el puntero quede en el 6to espacio, con selstart puedo hacerlo, pero no puedo navegar entre las letras y al hacer click al editbox, me coloca el puntero al inicio, porque el selstart=0 me gustaría que lo colocara donde esta la ultima letra.

gracias por responder, saludos...

no me sirvió el do case, no importa, acá te regalo un código que va en el dinamic current control de la columna, sirve para usar dos o mas controls en una columna...

='iif(tabla o cursor.campo=0,"check1","check2")'

si son tres controls, ejemplo que sea un textobox, seria algo así...

='iif(tabla o cursor.campo=1,"text",iif(tabla o cursor.campo=0,"check1","check2"))'

¿El bloqueo de las direccionales te funciono a como te dije? Así:

Para bloquear las teclas direccionales en el control, coloca en el evento KeyPress del text o edit, un código como este:

**--Direccionales izquierda - derecha
IF nKeyCode = 19 OR nKeyCode = 4
Nodefault
ENDIF

¿

? Me quede con la duda! Je je! Avisame.

Para colocar el puntero en un editbox o algún control que reciba entrada de datos, basta con hacer referencia al objeto y colocar SETFOCUS, así:

Imaginate que al guardar, dando click en un botón, queremos que el puntero o cursor de escritura se coloque en un text3 (por ejemplo), entonces, en el evento click de dicho botón, al final del código, colocas una linea así:

**--

THISFORM.Text3.SetFocus

**--

THISFORM.Refresh

**--//

Y así podes hacer para el editbox, grids, columnas, textos, comboboxes... etc!

Mmmm para que el puntero te quede al final de la palabra (6to lugar) dentro del text, podrías usar esto:

KEYBOARD '{END}'

Lo que no se es en que momento es que necesitas que el cursor se sitúe al final. ¿En qué momento o evento o método es? Es decir, ¿cuándo reciba el enfoque? Imagino que si! De ser así, coloca este código en el evento GOTFOCUS del control text!

jajajaja casi he logrado resolver todas las dudas, un setfocus no me ayuda, lo mejor fue un selstart, una funcioncita que me conseguí por ahí... olvidemosno de esto... cualquier otra duda que necesite resolver, te comento, para no darle espacios con las direecionales, lo mejor es un selstart=len(alltrim(thisform.txt.value)) en dicha tecla, gracias por la ayuda, saludos y feliz día...

tengo una tabla con campos numéricos, en los que guardo números, valga la redundancia... como hago, para cambiar campos a caracteres? por ejemplo, si se le escribe un "si" en un campo previo, se colocan números, pero si se le coloca un "no", que toda la fila de esa tabla lleve un no, donde debieran ir números... ah y no puedo cambiarla a caracteres porque lleva números y se hacen operaciones, gracias por la respuesta...

Espero andes bien! :) :) :)

A ver... viene un poco enredada la pregunta je je! Aclarame un poco ésto: " si se le escribe un "si" en un campo previo, se colocan números, pero
si se le coloca un "no", que toda la fila de esa tabla lleve un no,
donde debieran ir números"

Y con gusto te ayudare! :) :) :D :) Si quieres, y seria mejor, finalizá esta pregunta porque ya esta nueva duda no concuerda con el titulo inicial y abrí una nueva pregunta para mi en donde me expliques mejor como es el asunto! :) :) Así tendremos una mejor atención para no hacer el hilo tan extenso y que otros usuarios que tengan tu misma inquietud, tengan una mejor post consulta je je!

Bien! Saludos! :D

Un abrazo!

Desde Managua, Nicaragua!

Respuesta
1

¿Resolviste la duda?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas