Esto solucionó el error en tiempo de ejecucion
return IfNil( cContents, "" )
local cDefault := MEMOREAD( "c:\fwh\bitmaps\sea.bmp" )
AEval( aCols, { |a,i| a[ 4 ] := WebPageContents( a[ 4 ] ), ;
If( Empty( a[ 4 ] ), a[ 4 ] := cDefault, nil ) } )
Esto muestra solamente la primer foto faltante, pero si hay muchas, las otras no las muestra
Pruebe este ejemplo:
- Code: Select all Expand view RUN
- #include "Fivewin.ch"
#include "xbrowse.ch"
FUNCTION cmsoft()
LOCAL oDlg1, oBrwTmp,;
aCols := {;
{'VIRTUOSA CLASICA', 1900.00, 'Carne 120 grs. Cheddar, Lechuga, Tomate y Mayonesa, Mostaza y Kétchup. Incluye Papas Fritas.','https://bcnresto.com/img/000010/00010110.jpg'},;
{'VIRTUOSA CLASICA 2', 1900.00, 'Carne 120 grs. Cheddar, Lechuga, Tomate y Mayonesa, Mostaza y Kétchup. Incluye Papas Fritas.','https://bcnresto.com/img/000010/00010114.jpg'},;
{'VIRTUOSA MIX', 1900.00, 'Carne 120 grs. Cheddar, Huevo Bacon y BBQ. Incluye Papas Fritas.','https://bcnresto.com/img/000010/00000020.jpg'},;
{'VIRTUOSA CHEESE ONION', 1900.00, 'Carne 120 grs. Cheddar, Cebolla Caramelizada Bacon y BBQ. Incluye Papas Fritas.','https://bcnresto.com/img/000010/00000021.jpg'},;
{'VIRTUOSA MEGA', 1900.00, 'Carne 120grs. Cheddar, lechuga, pepinos, cebolla picada y salsa mil islas. Incluye papas fritas.','https://bcnresto.com/img/000010/00000022.jpg'},;
{'VIRTUOSA NAPO', 1900.00, 'Carne 120 grs. Jamón, Queso, Tomate y Mayonesa. Incluye Papas Fritas.','https://bcnresto.com/img/000010/00000023.jpg'},;
{'BRAHMA 1 L.', 300.00 , 'Bien fria','https://bcnresto.com/img/000010/00000054.jpg'},;
{'BRAHMA 2 L.', 400.00 , 'Bien fria','https://bcnresto.com/img/000010/00000055.jpg'},;
{'BRAHMA 3 L.', 500.00 , 'Bien fria','https://bcnresto.com/img/000010/00000056.jpg'},;
{'BRAHMA 4 L.', 600.00 , 'Bien fria','https://bcnresto.com/img/000010/00000057.jpg'},;
{'BRAHMA 5 L.', 700.00 , 'Bien fria','https://bcnresto.com/img/000010/00000058.jpg'},;
{'BRAHMA 6 L.', 800.00 , 'Bien fria','https://bcnresto.com/img/000010/00000059.jpg'};
}
local cDefault := MEMOREAD( "c:\fwh21\bitmaps\sea.bmp" )
AEval( aCols, { |a,i| a[ 4 ] := WebPageContents( a[ 4 ] ), ;
If( Empty( a[ 4 ] ), a[ 4 ] := cDefault, nil ) } )
DEFINE DIALOG oDlg1 TITLE "Visor de productos" SIZE 700,700 PIXEL TRUEPIXEL RESIZABLE
@ 20, 20 XBROWSE oBrwTmp SIZE -20,-20 pixel OF oDlg1 ARRAY aCols ;
HEADERS "Producto", "Precio", "Descripcion","Foto";
COLUMNS 1,2,3,4;
SIZES nil, nil, 150,200;
CELL LINES NOBORDER
WITH OBJECT oBrwTmp
:nStretchCol := 3
:nRowHeight := 150
:aCols[4]:cDataType := "P"
:CreateFromCode()
END
ACTIVATE DIALOG oDlg1 CENTERED
RETURN nil
Tambien, ya que en realidad los datos los obtengo de una consulta sql, en caso de usar DATASOURCE en lugar de ARRAY habia intentado esto
- Code: Select all Expand view RUN
:aCols[4]:bStrData := {|| IF(EMPTY(WebPageContents( oQry:url, .f. )),MemoRead(".\logo.jpg"),WebPageContents(oQry:url,.f.)) }
Y obtenia el mismo efecto, solo mostraba en la primer imagen faltante
Por que puede ser?
Agradezco su interes en el tema