The array in COMBOBOX is EMPTY .....
Posted: Sat May 09, 2020 11:00 pm
There I show an example of my programs, it turns out that I define the arrays in a program like PUBLIC (aDim_PRO1: = {}, aDim_PRO2: = {}, aDim_PAR1: = {}, aDim_PAR2: = {}, aDim_LOC1: = {}, aDim_LOC2 : = {}), the first two arrays, I load them first, but then when processing the matches and the locations, empty the arrays and load them with their respective bases, IT DOES NOT BRING ME THE DATA OF THE ARRAY. (I check that it is loaded and it is), but in Combo_PAR AND Combo_LOC, it shows me empty the arrays.
I CAN'T UNDERSTAND WHAT'S HAPPENING-
Help
THANK YOU
-------------------------------------------------------------
Alli muestro un ejemplo de mis programas, resulta que defino los array en un programa como PUBLIC (aDim_PRO1 := {}, aDim_PRO2 := {}, aDim_PAR1 := {}, aDim_PAR2 := {}, aDim_LOC1 := {}, aDim_LOC2 := {}), los dos primeros array, los cargo primero, pero luego al procesar los partidos y las localidades, vaciar los array y los cargo con su respectivas bases, NO ME TRAE LOS DATOS DEL ARRAY. (reviso que este cargado y lo esta), pero en Combo_PAR Y Combo_LOC, me muestra vacio los array.
NO LOGRO ENTENDER QUE PASA-
Ayuda
GRACIAS
.........................................................
#include "hmg.ch"
#include 'Prog1.prg'
#include 'Prog2.prg'
#include 'Prog3.prg'
.
.
Prog1() (I call the Variable Declaration Program)
.
MiArea('PRO',1)
&cPRO->(DBGoTop())
DO WHILE !(&cPRO->(EOF()))
AADD( aDim_PRO1, &cPRO->PRO )
AADD( aDim_PRO2, &cPRO->NOM )
&cPRO->(DBSkip())
ENDDO
&cPRO->(DBGoTop())
*
DEFINE WINDOW Main_0 AT 0,0 WIDTH nW HEIGHT nH ;
MAIN BACKCOLOR CLR_AZUL_PANTALLA ;
ON RELEASE {|| Cerrar_Tablas() } ;
NOMAXIMIZE NOSIZE NOSYSMENU NOCAPTION
Prog2()
Prog3()
END WINDOW
ACTIVATE WINDOW Main_0
RETURN NIL
**********
-------- Prog1.prg (I define variables)
.
PUBLIC aDim_PRO1 := {}, aDim_PRO2 := {}, aDim_PAR1 := {}
PUBLIC aDim_PAR2 := {}, aDim_LOC1 := {}, aDim_LOC2 := {}
RETURN NIL
**********
-------- Prog2.prg
.
Util_Cargar()
.
RETURN NIL
**********
-------- Prog2.prg
FUNCTION Util_Cargar()
.
Util_Datos()
.
RETURN NIL
FUNCTION Util_Datos()
LOCAL Y := 518
LOCAL X := 187
*
@ 0,0 TEXTBOX Txt_PRO OF Main_0 FIELD &cPDIR->PRO INVISIBLE
@ 0,0 TEXTBOX Txt_PAR OF Main_0 FIELD &cPDIR->PAR INVISIBLE
@ 0,0 TEXTBOX Txt_LOC OF Main_0 FIELD &cPDIR->LOC INVISIBLE
*
@ Y,X COMBOBOX Combo_PRO OF Main_0 WIDTH 210 HEIGHT 220 ;
ITEMS aDim_PRO2 VALUE VAL(This.Txt_PRO.Value);
FONT 'ARIAL' SIZE 12 BOLD UPPERCASE ;
FONTCOLOR FColorGet BACKCOLOR BColorGet ;
DISPLAYEDIT AUTOCOMPLETE SHOWDROPDOWN (.T.) ;
ON GOTFOCUS ( _Ver(.T.) ) ;
ON ENTER {|| ( _Valid('Combo_PRO'), ;
_Ver(.F.), ;
This.Combo_PAR.Setfocus ) }
@ Y,X LABEL Lbl_PRO_1 OF Main_0 FONT 'Arial' SIZE 11 BOLD
Y +=30
*
*------ Partido ------
*
@ Y,X COMBOBOX Combo_PAR OF Main_0 WIDTH 210 HEIGHT 220 ;
ITEMS aDim_PAR2 VALUE VAL(This.Txt_PAR.Value);
FONT 'ARIAL' SIZE 12 UPPERCASE ;
BOLD FONTCOLOR FColorGet BACKCOLOR BColorGet ;
DISPLAYEDIT AUTOCOMPLETE SHOWDROPDOWN (.T.) ;
ON GOTFOCUS ( _Ver(.T.) ) ;
ON CLOSEUP {|| ( _Valid('Combo_PAR'), ;
_Ver(.F.), ;
This.Combo_LOC.Setfocus ) }
@ Y,X LABEL Lbl_PAR_1 OF Main_0 FONT 'Arial' SIZE 11 BOLD
Y +=30
*
*------ Localidad ------
*
@ Y,X COMBOBOX Combo_LOC OF Main_0 WIDTH 210 HEIGHT 220 ;
ITEMS aDim_LOC2 VALUE VAL(This.Txt_LOC.Value);
FONT 'ARIAL' SIZE 12 UPPERCASE ;
BOLD FONTCOLOR FColorGet BACKCOLOR BColorGet ;
DISPLAYEDIT AUTOCOMPLETE SHOWDROPDOWN (.T.) ;
ON GOTFOCUS ( _Ver(.T.) ) ;
ON CLOSEUP {|| ( _Valid('Combo_LOC'), ;
Paci_Ver(.F.), ;
This.Txt_DOM.Setfocus ) }
@ Y,X LABEL Lbl_LOC_1 OF Main_0 FONT 'Arial' SIZE 11 BOLD
Y +=30
RETURN NIL
FUNCTION Paci_Valid(cObj)
/*
cCode == '70' // Provincia -----------> PRO
INDEX ON PRO TO ('tab\HCI07001.cdx')
cCode == '71' // Partidos ------------> PAR
INDEX ON PRO+PAR TO ('tab\HCI07101.cdx')
cCode == '72' // Localidad -----------> LOC
INDEX ON PRO+PAR+LOC TO ('tab\HCI07201.cdx')
SELECT(cPDIR)
SET RELATION TO &cPDIR->PRO INTO &cPRO
SET RELATION TO &cPDIR->PRO+&cPDIR->PAR INTO &cPAR
SET RELATION TO &cPDIR->PRO+&cPDIR->PAR+&cPDIR->LOC INTO &cLOC
*/
LOCAL nVal := GetProperty( cForm, cObj, 'Value' )
*
IF cObj=='Combo_PRO'
IF nVal>0
SETPROPERTY( cForm, 'Txt_PRO', 'Value', aDim_PRO1[nVal] )
SETPROPERTY( cForm, 'Lbl_PRO_1','Value', aDim_PRO2[nVal] )
aDim_PAR1 := {}
aDim_PAR2 := {}
MiArea('PAR',1)
&cPAR->(DBSeek((aDim_PRO1[nVal])))
DO WHILE !(&cPAR->(EOF())) .AND. aDim_PRO1[nVal]==&cPAR->PRO
AADD( aDim_PAR1, &cPAR->PAR )
AADD( aDim_PAR2, &cPAR->NOM )
&cPAR->(DBSkip())
ENDDO
&cPAR->(DBGoTop())
ENDIF
ELSEIF cObj=='Combo_PAR'
IF nVal>0
SETPROPERTY( cForm, 'Txt_PAR', 'Value', aDim_PAR1[nVal] )
SETPROPERTY( cForm, 'Lbl_PAR_1','Value', aDim_PAR2[nVal] )
aDim_LOC1 := {}
aDim_LOC2 := {}
MiArea('LOC',1)
&cLOC->(DBSeek((This.Txt_PRO.Value)+aDim_PAR1[nVal]))
DO WHILE !(&cLOC->(EOF()))
IF (This.Txt_PRO.Value)==&cLOC->PRO ;
.AND. (This.Txt_PAR.Value)=&cLOC->PAR
AADD( aDim_LOC1, &cLOC->LOC )
AADD( aDim_LOC2, &cLOC->NOM )
ENDIF
&cLOC->(DBSkip())
ENDDO
&cLOC->(DBGoTop())
ENDIF
ELSEIF cObj=='Combo_LOC'
IF nVal>0
SETPROPERTY( cForm, 'Txt_LOC', 'Value', aDim_LOC1[nVal] )
SETPROPERTY( cForm, 'Lbl_LOC_1','Value', aDim_LOC2[nVal] )
ENDIF
ENDIF
DO EVENTS
*
RETURN
**********
I CAN'T UNDERSTAND WHAT'S HAPPENING-
Help
THANK YOU
-------------------------------------------------------------
Alli muestro un ejemplo de mis programas, resulta que defino los array en un programa como PUBLIC (aDim_PRO1 := {}, aDim_PRO2 := {}, aDim_PAR1 := {}, aDim_PAR2 := {}, aDim_LOC1 := {}, aDim_LOC2 := {}), los dos primeros array, los cargo primero, pero luego al procesar los partidos y las localidades, vaciar los array y los cargo con su respectivas bases, NO ME TRAE LOS DATOS DEL ARRAY. (reviso que este cargado y lo esta), pero en Combo_PAR Y Combo_LOC, me muestra vacio los array.
NO LOGRO ENTENDER QUE PASA-
Ayuda
GRACIAS
.........................................................
#include "hmg.ch"
#include 'Prog1.prg'
#include 'Prog2.prg'
#include 'Prog3.prg'
.
.
Prog1() (I call the Variable Declaration Program)
.
MiArea('PRO',1)
&cPRO->(DBGoTop())
DO WHILE !(&cPRO->(EOF()))
AADD( aDim_PRO1, &cPRO->PRO )
AADD( aDim_PRO2, &cPRO->NOM )
&cPRO->(DBSkip())
ENDDO
&cPRO->(DBGoTop())
*
DEFINE WINDOW Main_0 AT 0,0 WIDTH nW HEIGHT nH ;
MAIN BACKCOLOR CLR_AZUL_PANTALLA ;
ON RELEASE {|| Cerrar_Tablas() } ;
NOMAXIMIZE NOSIZE NOSYSMENU NOCAPTION
Prog2()
Prog3()
END WINDOW
ACTIVATE WINDOW Main_0
RETURN NIL
**********
-------- Prog1.prg (I define variables)
.
PUBLIC aDim_PRO1 := {}, aDim_PRO2 := {}, aDim_PAR1 := {}
PUBLIC aDim_PAR2 := {}, aDim_LOC1 := {}, aDim_LOC2 := {}
RETURN NIL
**********
-------- Prog2.prg
.
Util_Cargar()
.
RETURN NIL
**********
-------- Prog2.prg
FUNCTION Util_Cargar()
.
Util_Datos()
.
RETURN NIL
FUNCTION Util_Datos()
LOCAL Y := 518
LOCAL X := 187
*
@ 0,0 TEXTBOX Txt_PRO OF Main_0 FIELD &cPDIR->PRO INVISIBLE
@ 0,0 TEXTBOX Txt_PAR OF Main_0 FIELD &cPDIR->PAR INVISIBLE
@ 0,0 TEXTBOX Txt_LOC OF Main_0 FIELD &cPDIR->LOC INVISIBLE
*
@ Y,X COMBOBOX Combo_PRO OF Main_0 WIDTH 210 HEIGHT 220 ;
ITEMS aDim_PRO2 VALUE VAL(This.Txt_PRO.Value);
FONT 'ARIAL' SIZE 12 BOLD UPPERCASE ;
FONTCOLOR FColorGet BACKCOLOR BColorGet ;
DISPLAYEDIT AUTOCOMPLETE SHOWDROPDOWN (.T.) ;
ON GOTFOCUS ( _Ver(.T.) ) ;
ON ENTER {|| ( _Valid('Combo_PRO'), ;
_Ver(.F.), ;
This.Combo_PAR.Setfocus ) }
@ Y,X LABEL Lbl_PRO_1 OF Main_0 FONT 'Arial' SIZE 11 BOLD
Y +=30
*
*------ Partido ------
*
@ Y,X COMBOBOX Combo_PAR OF Main_0 WIDTH 210 HEIGHT 220 ;
ITEMS aDim_PAR2 VALUE VAL(This.Txt_PAR.Value);
FONT 'ARIAL' SIZE 12 UPPERCASE ;
BOLD FONTCOLOR FColorGet BACKCOLOR BColorGet ;
DISPLAYEDIT AUTOCOMPLETE SHOWDROPDOWN (.T.) ;
ON GOTFOCUS ( _Ver(.T.) ) ;
ON CLOSEUP {|| ( _Valid('Combo_PAR'), ;
_Ver(.F.), ;
This.Combo_LOC.Setfocus ) }
@ Y,X LABEL Lbl_PAR_1 OF Main_0 FONT 'Arial' SIZE 11 BOLD
Y +=30
*
*------ Localidad ------
*
@ Y,X COMBOBOX Combo_LOC OF Main_0 WIDTH 210 HEIGHT 220 ;
ITEMS aDim_LOC2 VALUE VAL(This.Txt_LOC.Value);
FONT 'ARIAL' SIZE 12 UPPERCASE ;
BOLD FONTCOLOR FColorGet BACKCOLOR BColorGet ;
DISPLAYEDIT AUTOCOMPLETE SHOWDROPDOWN (.T.) ;
ON GOTFOCUS ( _Ver(.T.) ) ;
ON CLOSEUP {|| ( _Valid('Combo_LOC'), ;
Paci_Ver(.F.), ;
This.Txt_DOM.Setfocus ) }
@ Y,X LABEL Lbl_LOC_1 OF Main_0 FONT 'Arial' SIZE 11 BOLD
Y +=30
RETURN NIL
FUNCTION Paci_Valid(cObj)
/*
cCode == '70' // Provincia -----------> PRO
INDEX ON PRO TO ('tab\HCI07001.cdx')
cCode == '71' // Partidos ------------> PAR
INDEX ON PRO+PAR TO ('tab\HCI07101.cdx')
cCode == '72' // Localidad -----------> LOC
INDEX ON PRO+PAR+LOC TO ('tab\HCI07201.cdx')
SELECT(cPDIR)
SET RELATION TO &cPDIR->PRO INTO &cPRO
SET RELATION TO &cPDIR->PRO+&cPDIR->PAR INTO &cPAR
SET RELATION TO &cPDIR->PRO+&cPDIR->PAR+&cPDIR->LOC INTO &cLOC
*/
LOCAL nVal := GetProperty( cForm, cObj, 'Value' )
*
IF cObj=='Combo_PRO'
IF nVal>0
SETPROPERTY( cForm, 'Txt_PRO', 'Value', aDim_PRO1[nVal] )
SETPROPERTY( cForm, 'Lbl_PRO_1','Value', aDim_PRO2[nVal] )
aDim_PAR1 := {}
aDim_PAR2 := {}
MiArea('PAR',1)
&cPAR->(DBSeek((aDim_PRO1[nVal])))
DO WHILE !(&cPAR->(EOF())) .AND. aDim_PRO1[nVal]==&cPAR->PRO
AADD( aDim_PAR1, &cPAR->PAR )
AADD( aDim_PAR2, &cPAR->NOM )
&cPAR->(DBSkip())
ENDDO
&cPAR->(DBGoTop())
ENDIF
ELSEIF cObj=='Combo_PAR'
IF nVal>0
SETPROPERTY( cForm, 'Txt_PAR', 'Value', aDim_PAR1[nVal] )
SETPROPERTY( cForm, 'Lbl_PAR_1','Value', aDim_PAR2[nVal] )
aDim_LOC1 := {}
aDim_LOC2 := {}
MiArea('LOC',1)
&cLOC->(DBSeek((This.Txt_PRO.Value)+aDim_PAR1[nVal]))
DO WHILE !(&cLOC->(EOF()))
IF (This.Txt_PRO.Value)==&cLOC->PRO ;
.AND. (This.Txt_PAR.Value)=&cLOC->PAR
AADD( aDim_LOC1, &cLOC->LOC )
AADD( aDim_LOC2, &cLOC->NOM )
ENDIF
&cLOC->(DBSkip())
ENDDO
&cLOC->(DBGoTop())
ENDIF
ELSEIF cObj=='Combo_LOC'
IF nVal>0
SETPROPERTY( cForm, 'Txt_LOC', 'Value', aDim_LOC1[nVal] )
SETPROPERTY( cForm, 'Lbl_LOC_1','Value', aDim_LOC2[nVal] )
ENDIF
ENDIF
DO EVENTS
*
RETURN
**********