FoxPro/Visual FoxPro - Grid pierde la señal de registro actual

 
Vista:
sin imagen de perfil
Val: 120
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Grid pierde la señal de registro actual

Publicado por elhabraque (57 intervenciones) el 14/06/2019 20:00:37
En un formulario con dos grid relacionados, cuando pasa del grid principal al secundario pierde la señal del registro actual, mientras que cuando se mueven los registros en el grid principal se muestran sin problemas, como muestra la imagen

Ejemplo

¿Hay algún parámetro o valor que pueda evitar este efecto que se muestra en la siguiente imagen?
En este ejemplo, el grid que tiene el foco es el secundario y el principal ha perdido la señal de registro actual.

Ejemplo-2
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Mauricio Antonio
Val: 547
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Grid pierde la señal de registro actual

Publicado por Mauricio Antonio (1518 intervenciones) el 14/06/2019 20:08:41
eso es normal amigo, el grid principal es el que manda.Pero puedes probar poniendo en el segundo grid readonly = .T
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Leonardo Daniel A.
Val: 1.085
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Grid pierde la señal de registro actual

Publicado por Leonardo Daniel A. (442 intervenciones) el 14/06/2019 22:29:19
hola, porque no intentas ponerle un color al registro seleccionado.. revisa este codigo que encontre en una pagina.... crean una propiedad en el formulario (inRecno) para guardar el registro activo... en tu caso tendrias que crear 2.. una para el primer grid y una para el segundo... y poner el codigo en los 2 grids.. claro cambiando el nombre de esa propiedad


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
PUBLIC oform1
 
oform1=NEWOBJECT("form1")
oform1.Show
RETURN
 
 
    **************************************************
*-- Form:         form1 (c:\drop\form1.scx)
*-- ParentClass:  form
*-- BaseClass:    form
*-- Time Stamp:   08/24/02 08:34:11 PM
*
DEFINE CLASS form1 AS form
 
 
    DoCreate = .T.
    Caption = "Form1"
    inrecno = 0
    Name = "Form1"
 
 
    ADD OBJECT grid2 AS grid WITH ;
        Height = 200, ;
        Left = 24, ;
        Top = 24, ;
        Width = 320, ;
        Name = "Grid2"
 
 
    PROCEDURE Load
        CREATE CURSOR myCursor (name c(20),address c(20),town c(20))
        INSERT INTO myCursor (name, address,town) VALUES ("paul","13","Montreal")
        INSERT INTO myCursor (name, address,town) VALUES ("john","14","Montreal")
        INSERT INTO myCursor (name, address,town) VALUES ("frank","15","Montreal")
        GO top
    ENDPROC
 
 
    PROCEDURE grid2.Init
        DODEFAULT()
        WITH THIS
           .SetAll("DynamicBackColor", ;
               "IIF(recno(This.RecordSource)=ThisForm.inRecno, ;
                    RGB(0,255,255),RGB(255,255,192))","COLUMN")
           ** Header will be set in different color
           .SetAll("BackColor", RGB(255,192,192),"Header")
        ENDWITH
    ENDPROC
 
 
    PROCEDURE grid2.AfterRowColChange
        LPARAMETERS nColIndex
        DODEFAULT()
        ThisForm.inRecNo = IIF(EOF() OR BOF(),0,RECNO())
        This.Columns(This.ActiveColumn).Text1.BackColor = RGB(0,255,255)
        This.Refresh()
    ENDPROC
 
 
ENDDEFINE
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 120
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Grid pierde la señal de registro actual

Publicado por elhabraque (57 intervenciones) el 26/08/2019 11:35:59
Actualización del problema: he encontrado la causa de esta situación.

Utilizo constantemente el LockScreen para que la pantalla se dibuje y vuelque en una única pasada y evitar saltos en el formulario y la lentitud en la presentación de los datos en las rejillas.
He encontrado que precisamente el LockScreen hace desaparecer la señal del registro del grid principal, tanto en los movimientos entre rejillas del mismo formulario como al acceder al formulario ABM asociado a cada grid.

¿Alguien tiene alguna idea de cómo evitar este problema, ya que me gustaría conservar la funcionalidad del LockScreen porque hace que los formularios se muestren más ágilmente y con mejor presentación?

No puedo utilizar la función que sugiere Leonardo porque en la mayoría de los formularios con varios grid vinculados ya utilizo código de color para el BackColor y el ForeColor que indican estados distintos de cada registro. Por eso utilizo DynamicFontBold para marcar con negrita el registro actual, como quizás se puede apreciar en los gráficos que adjunté.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar