Sigo molestando.
Tengo un problema, debo cargar dinamicamente un Combobox con un arreglo, en una rutina, para cada fecha seleccionada en el calendario.
El problema es que el arreglo se carga con datos desde una DBF en la rutina, proceso que se realiza correctamente, pero no se Actualiza el Combobox, siempre mantiene el dato con el que ingreso la primera ves que inicio el programa. He intentado varias formas vistas en el foro, pero no soluciona el problema.
Esperando poder solucionar mi problema, les saluda muy atte.
Antonio.
Dejo el Código para ver si algún maestro me puede ayuda:
- Code: Select all Expand view
#include "FiveWin.ch"
#include "xbrowse.ch"
#include "colores.ch"
#include "dtpicker.ch"
#include "calendar.ch"
REQUEST HB_Lang_ESWIN, HB_CODEPAGE_ESWIN
FUNCTION Cua_caj1()
Local oSay,oDlg,oSay1,oSay2,oSay3,oSay4,oBot1,oBtn1,oSay10,oSay11,oSay12,oSay13
Local oFiltra,nFiltra,oFont,oFont1,oFont2
Local nResu1:=1,cResu,oXbrore
Local aFiltra:= {}
Local dFecha:=Date(),oFecha
Private Ing_xbro:=0
Private nTot_vale:=0,nTot_gen:=0
Public oIngre ,Mensa:="",cFiltra:="",In1:=0,Tegre:=0,Galle:=0,Bb1:=0
Private aResu:= {},oResu
SET DELETED ON
HB_LangSelect( "ESWIN" )
HB_SetCodePage( "ESWIN" )
SET DATE TO BRITISH
SET EPOCH TO 1980
SET DATE FORMAT "DD/MM/YYYY"
AADD( aResu,{ "TODO","TODOS "}) <== Arreglo del Combobox que cargo con un dato iniciar el programa
REDEFINE DTPICKER oFecha VAR dFecha ID 103 OF oDlg FONT oFont2 PICTURE "@d" UPDATE ;
ON CHANGE IF(!Proce_Cua(dFecha,cFiltra,@aResu),(MsgStop(Mensa),.F.), (oIngre:Refresh(),oSay:Refresh(),oFiltra:Refresh(),oResu:Refresh(),oXbrore:Refresh(),oSay13:Refresh(), .T.) )
** Aqui Selecciono una Fecha y mando a la Rutina Proce_cua(), se llena el Arreglo aResu(), Pero NO SE ACTUALIZA en el Combobox ID 220, aun cuando paso el arreglo por referencia.
REDEFINE COMBOBOX oResu VAR nResu1 ITEMS ArrTranspose(aResu)[2] ID 220 OF oDlg COLORS nRGB(9, 11, 10), nRGB(73, 250, 202) Update; <===== Necesito que este Combobox se llene Dinamicamente dependiendo de la fecha
ON CHANGE ((cResu:=ArrTranspose(aResu)[1][oResu:nAt])
ACTIVATE DIALOG oDlg CENTERED ON INIT (oIngre:SetFocus())
Static FUNCTION Proce_Cua(dFecha,cFiltra,aResu)
.......
.......
.......
// Aqui se Carga el Arreglo aResu()
Sele e
DbGotop()
asize( aResu, 0 )
AADD( aResu,{ "TODO","TODOS "}) // Agrego un Dato Inicial
Do While !Eof()
AADD( aResu,{ e->Cod_cua,e->Nom_cua})
e->(DbSkip())
Enddo
oResu:Update()
oResu:Refresh()
// Aqui he comprobado que el Arreglo viene Cargado con 10 Registros
Return .t.