Clipper/FiveWin - CONSULTA SOBRE LISTBOX

 
Vista:

CONSULTA SOBRE LISTBOX

Publicado por JOSE (79 intervenciones) el 08/12/2005 20:30:15
Hola amigos del foro tengo esta duda:
iF Bodegas=1
cCampo :={ || {(cExi_Suc)->Ma_Des1,BusStock((cExi_Suc)->Ma_Arti,"1 ")} }
ElseIf bodegas=2
cCampo :={ || {(cExi_Suc)->Ma_Des1,BusStock((cExi_Suc)->Ma_Arti,"1 "),;
BusStock ((cExi_Suc)->Ma_Arti,"2 ")} }
ElseIf Bodegas=3
cCampo :={ || {(cExi_Suc)->Ma_Des1,BusStock((cExi_Suc)->Ma_Arti,"1 "),;
BusStock((cExi_Suc)->Ma_Arti,"2 "),BusStock((cExi_Suc)->Ma_Arti,"3 ")} }
ElseIf bodegas=4
cCampo :={ || {(cExi_Suc)->Ma_Des1,BusStock((cExi_Suc)->Ma_Arti,"1 "),;
BusStock((cExi_Suc)->Ma_Arti,"2 "),BusStock((cExi_Suc)->Ma_Arti,"3 "),;
BusStock((cExi_Suc)->Ma_Arti,"4 ")} }
ElseIf bodegas=5
cCampo :={ || {(cExi_Suc)->Ma_Des1,BusStock((cExi_Suc)->Ma_Arti,"1 "),;
BusStock((cExi_Suc)->Ma_Arti,"2 "),BusStock((cExi_Suc)->Ma_Arti,"3 "),;
BusStock((cExi_Suc)->Ma_Arti,"4 "),BusStock((cExi_Suc)->Ma_Arti,"5 ")} }
Endif

Bueno esto lo hago para mostra si tengo una lo hace si tengo 2 3 4 5 lo hace pero si tengo 20 tendria que repetir 20 veces como se puede hacer una sola variable que sirva para 1 como para n bodegas mostrar eun Listbox
desde ya gracias
Saludos
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

RE:CONSULTA SOBRE LISTBOX

Publicado por Antoni Masana (168 intervenciones) el 09/12/2005 08:09:06
Esto puede solucionar el problema.

Tabla:=array(bodegas+1)
Tabla[1]:={(cExi_Suc)->Ma_Des1
for a=2 to bodegas+1
Tabla[a]:=BusStock((cExi_Suc)->Ma_Arti,ltrim(str(a))+" ")
next
cCampo:={||Tabla}
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

RE:CONSULTA SOBRE LISTBOX

Publicado por Gabrel pascual (913 intervenciones) el 14/12/2005 01:20:48
Va a ser que no, lo que estas construyendo tiene un problema llamado "late bindery", es decir, estas asingado un valor dentro un ciclo que mas tarde vas a convertir en un bloque de codigo, con lo cual, "a" siempre va a valer bodegas+1.

Lo que tienes que hacer es crear el bloque de codigo COMO UNA CADENA DE CARACTERES, por ejemplo asi:

ccampos := "{|| BusStock ..........}

y luego macrosustiuirlo al momento de usarlo:

c := &campos

y eso soluciona el problema.
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