Genero varios xbrowse en un panel, y los voy creando con una iteración.
Luego quiero que al hacer doble click en uno de las columnas de cualquiera de esos browses, me llame a una funcion.
El problema es que no puedo hacer referencia a que Query y a que Browse hago referencia, porque el indice que voy creando toma el ultimo valor.
Como debería hacerlo?
- Code: Select all Expand view
function PlaceControls( oPanel,oQryOpc,oPadre )
LOCAL nRow := 5,i,oBrwDet:=ARRAY(oQryOpc:RecCount()),oQryDet:=ARRAY(oQryOpc:RecCount()),oFont1
DEFINE FONT oFont1 NAME "TAHOMA" SIZE 0,-10
oQryOpc:GoTop()
i:=1
DO WHILE !oQryOpc:eof()
oQryDet[i]:= oApp:oServer:Query("SELECT * FROM opcionales_det_tempD WHERE idgrupo = "+ClipValue2Sql(oQryOpc:id))
@ nRow, 10 SAY oQryOpc:nombre SIZE 120,24 PIXEL OF oPanel TRANSPARENT
@ nRow+5, 255 SAY IF(oQryOpc:obligatorio,"Obligatorio","Opcional") SIZE 70,24 PIXEL OF oPanel RIGHT TRANSPARENT FONT oFont1
@ nRow+5, 330 SAY "Minimo: "+ALLTRIM(STR(oQryOpc:minimo)) SIZE 60,24 PIXEL OF oPanel RIGHT TRANSPARENT FONT oFont1
@ nRow+5, 390 SAY "Maximo: "+ALLTRIM(STR(oQryOpc:maximo)) SIZE 60,24 PIXEL OF oPanel RIGHT TRANSPARENT FONT oFont1
@ nRow+20,10 XBROWSE oBrwDet[i] DATASOURCE oQryDet[i];
COLUMNS "nombre","precio",IF(oQryOpc:por_cantidad,"cantidad","tilde"),"agotado","minimo","maximo";
HEADERS "Nombre","Precio",IF(oQryOpc:por_cantidad,"Cantidad","Incluir"),"Agotado","Minimo","Maximo";
SIZES 285,50,70,80,80,80;
OF oPanel SIZE 450,190 PIXEL
IF !oQryOpc:por_cantidad
oBrwDet[i]:aCols[3]:SetCheck(nil,.f.)
oBrwDet[i]:aCols[3]:bLDClickData := {|| CambiaChek(oQryDet[I],oBrwDet[I])} //Esto no funciona
oBrwDet[i]:aCols[3]:bKeyDown := {|nKey, nFlags| IF(nKey==13,nil,CambiaChek(oQryDet[i],oBrwDet[i]))} // Esto no funciona
oBrwDet[i]:aCols[3]:nEditType := 1
oBrwDet[i]:aCols[3]:bEditValue:= {|| IF(oQryDet[i]:tilde,.t.,.f.) }
ENDIF
PintaBrw(oBrwDet[i],0)
oBrwDet[i]:CreateFromcode()
nRow += 220
i ++
oQryOpc:Skip()
ENDDO
oPanel:SetRange()
@ nRow,380 BUTTON "ACEPTAR" SIZE 80,40 PIXEL OF oPanel ACTION oPadre:End()
@ nRow, 05 BUTTON "CANCELAR" SIZE 80,40 PIXEL OF oPanel ACTION oPadre:End()
return nil
Agradezco de ante mano cualquier ayuda