Cargar imágenes desde la BD
Para cargar imágenes de las que guardamos su ruta en la BD, creamos en nuestra colección un campo invisible de tipo texto RUTA, y un campo botón que llamaremos MAP_IMAGEN.
<prop name="IMAGEN" group="1" type="T" size="255" visible="7" title="Invisible" fieldsize="10" /> <button name="MAP_IMAGEN" group="1" caption=" " locked="true" locking="true" visible="true" labelwidth="20" img="##FLD_IMAGEN##" bgcolor="#FFFFFF" text-bgcolor-disabled="#FFFFFF" />
Creación de la Colección Películas
Esta será la colección de la que obtendremos los datos, y la ruta de la imagen para poder visualizarlas en nuestra colección Entrada.
<coll name="Peliculas" notab="true" title="Peliculas" fontsize="8" sql="SELECT t1.ID,t1.IDCOMUNIDAD,t1.IDPROVINCIA,t1.IDLOCALIDAD, t1.IDGENERO,t1.IDDIRECTOR,t1.IDCLASIFICACION,t1.TITULO,t1.OPCION, t1.IMAGENFOTO,t1.IMAGENRUTA,t1.SINOPSIS,t1.AÑO,t2.NOMBRE AS MAP_COMUNIDAD, t3.NOMBRE AS MAP_PROVINCIA,t4.NOMBRE AS MAP_LOCALIDAD,t6.NOMBRE AS MAP_DIRECTOR,t5.NOMBRE AS MAP_GENERO,t7.NOMBRE AS MAP_CLASIFICACION,t1.DISPONIBLE FROM ((((((##PREF##Peliculas t1 LEFT OUTER JOIN ##PREF##Comunidades t2 ON t1.IDCOMUNIDAD=t2.ID) LEFT OUTER JOIN ##PREF##Provincias t3 ON t1.IDPROVINCIA=t3.ID) LEFT OUTER JOIN ##PREF##Localidades t4 ON t1.IDLOCALIDAD=t4.ID) LEFT OUTER JOIN ##PREF##Generos t5 ON t1.IDGENERO=t5.ID) LEFT OUTER JOIN ##PREF##Directores t6 ON t1.IDDIRECTOR=t6.ID) LEFT OUTER JOIN ##PREF##Clasificacion t7 ON t1.IDCLASIFICACION=t7.ID)" objname="Peliculas" updateobj="Peliculas" filter="" sort="" progid="ASData.CASBasicDataObj"> <group name="General" id="1" /> <!-- ENLACE CON LA COLECION PROVINCIAS POR LA ID PARA OBTENER EL NOMBRE DE LA PROVINCIAS--> <prop name="IDCOMUNIDAD" group="1" type="N" visible="0" fieldsize="10" size="10" mapcol="Comunidades" mapfld="ID" /> <prop name="IDPROVINCIA" group="1" type="N" visible="0" fieldsize="10" size="10" mapcol="Provincias" mapfld="ID" filter="IDCOMUNIDAD=##FLD_IDCOMUNIDAD##" /> <prop name="IDLOCALIDAD" group="1" type="N" visible="0" fieldsize="10" size="10" mapcol="Localidades" mapfld="ID" filter="IDPROVINCIA=##FLD_IDPROVINCIA##" /> <prop name="IDGENERO" group="1" type="N" visible="0" title="Genero" fieldsize="10" size="10" mapcol="Generos" mapfld="ID" /> <prop name="IDDIRECTOR" group="1" type="N" visible="0" title="Director" fieldsize="10" size="10" mapcol="Directores" mapfld="ID" /> <prop name="IDCLASIFICACION" group="1" type="N" visible="0" title="Clasificacion" fieldsize="10" size="10" mapcol="Clasificacion" mapfld="ID" /> <!-- GRUPO 1 --> <prop name="TITULO" group="1" type="T" visible="3" title="Titulo" fieldsize="10" size="30" /> <prop name="OPCION" group="1" type="N" vidible="1" title="Opcion" fieldsize="10" size="10" onchange="refresh" visible="" /> <prop name="MAP_IMAGEN" group="1" type="NC" visible="1" title="Imagen del movil" fieldsize="10" size="10" onchange="refresh" /> <prop name="MAP_FHOTO" group="1" type="NC" visible="1" title="Imagen por foto" fieldsize="10" size="10" newline="false" onchange="refresh" /> <prop name="IMAGENFOTO" group="1" type="PH" visible="1" title="Foto" fieldsize="10" size="255" disablevisible="OPCION=0 or OPCION=1" onchange="refresh" /> <prop name="IMAGENRUTA" group="1" type="IMG" visible="1" title="Imagen" labelwidth="0" fieldsize="10" size="255" disablevisible="OPCION=0 or OPCION=2" onchange="refresh" /> <prop name="MAP_RUTA" group="1" type="AT" visible="1" title="Ruta" fieldsize="10" size="255" disablevisible="OPCION=0 or OPCION=2" onchange="refresh" /> <prop name="SINOPSIS" group="1" type="T" visible="1" title="Sinopsis" fieldsize="10" size="100" lines="5" /> <prop name="AÑO" group="1" type="T" visible="3" title="Año De Estreno" fieldsize="10" size="10" onchange="refresh" /> <prop name="MAP_COMUNIDAD" group="1" type="T" visible="1" title="Comunidad" fieldsize="10" size="25" linkedto="IDCOMUNIDAD" linkedfield="NOMBRE" onchange="refresh" /> <prop name="MAP_PROVINCIA" group="1" type="T" visible="1" title="Provincia" fieldsize="10" size="30" linkedto="IDPROVINCIA" disableedit="IDCOMUNIDAD=0" linkedfield="NOMBRE" onchange="refresh" /> <prop name="MAP_LOCALIDAD" group="1" type="T" visible="1" title="Localidad" fieldsize="10" size="10" linkedto="IDLOCALIDAD" disableedit="IDPROVINCIA=0" linkedfield="NOMBRE" onchange="refresh" /> <prop name="MAP_DIRECTOR" group="1" type="T" visible="1" title="Director" fieldsize="10" size="10" linkedto="IDDIRECTOR" linkedfield="NOMBRE" onchange="refresh" /> <prop name="MAP_GENERO" group="1" type="T" visible="3" title="Genero" fieldsize="10" size="10" linkedto="IDGENERO" linkedfield="NOMBRE" onchange="refresh" /> <prop name="MAP_CLASIFICACION" group="1" type="T" visible="1" title="Clasificacion" fieldsize="10" size="10" linkedto="IDCLASIFICACION" linkedfield="NOMBRE" onchange="refresh" /> <prop name="DISPONIBLE" group="1" type="NC" visible="3" title="Disponible" fieldsize="10" size="1" /> </coll>
Creación de la Colección Entrada
Esta colección será en plan catálogo, donde visualizaremos como si fuese un videoclub las diferentes películas disponibles:
<coll name="Entrada" title="Entrada" fontsize="8" sql="SELECT t1.ID FROM ##PREF##Entrada t1" objname="Entrada" updateobj="Entrada" filter="" sort="" progid="ASData.CASBasicDataObj" notab="true"> <group name="Pelis" id="1" /> <frame name="General" align="center" width="100%" height="50%" /> <frame name="ImagenPelis" frame="General" width="100%" height="100%" /> <frame name="Cargando" align="center" width="100%" height="20%" /> <frame name="Carga" frame="Cargando" width="100%" height="100%" /> <prop name="MAP_TITULO" type="T" visible="1" title="Titulo" group="1" fieldsize="10" size="15" /> <prop name="MAP_IMAGEN" type="IMG" frame="ImagenPelis" labelwidth="0" visible="1" group="1" fieldsize="10" size="255" ximg="##FLD_MAP_IMAGEN##"/> <prop name="MAP_BOTON_ANT" type="B" visible="1" lmargin="4" title="ATRAS" group="1" labelwidth="9" fieldsize="10" size="15" method="ExecuteNode (ANTERIOR)" disableedit="MAP_BUTOM_ACTIVATE=0" /> <prop name="MAP_BOTON_SIG" type="B" visible="1" title="SIGUIENTE" group="1" labelwidth="9" fieldsize="15" size="15" method="ExecuteNode (SIGUIENTE)" newline="false" disableedit="MAP_BUTOM_ACTIVATE=1" /> <prop name="MAP_BOTON" type="B" visible="1" lmargin="10" title="Alquilar" group="1" labelwidth="9" fieldsize="10" size="15" method="ExecuteNode (click)" /> <prop name="MAP_BANDERA" type="N" visible="0" title="BANDERA" group="1" fieldsize="10" size="15" /> <prop name="MAP_BUTOM_ACTIVATE" type="N" visible="0" title="visible" group="1" fieldsize="10" size="15" /> <prop name="MAP_CARGA" type="IMG" visible="1" title="visible" group="1" labelwidth="0" fieldsize="10" size="15" path="##APP##\icons\cargando.gif" /> <create> <action name="runscript"> <script language="VBScript"> RecogerDatosColeccionSiguiente </script> </action> <action name="setval" field="MAP_BUTOM_ACTIVATE" value="0" /> </create> <click> <action name="runscript"> <script language="VBScript"> Dim dato 'pb1 LlamarColeccion("Peliculas") 'dato=pb1.This.contents.("TITULO")Obtener un campo de una coleccion 'Appdata.FailWithMessage -11822,dato </script> </action> </click> <SIGUIENTE> <action name="runscript"> <script language="VBScript"> RecogerDatosColeccionSiguiente </script> </action> </SIGUIENTE> <ANTERIOR> <action name="runscript"> <script language="VBScript"> RecogerDatosColeccionAtras </script> </action> </ANTERIOR> </coll>
Funciones
Función recogerdatoscoleccionatras
En esta función se recorrerá la base da datos de la colección películas, ordenado de manera descendente, con la condición de ID menor al que estaba , y cogerá el primer registro que esté, si no recoge ningún registro significará que ya no hay más .
function RecogerDatosColeccionAtras() Dim i,col,sFilter set col=appData.GetCollection("Peliculas") col.sort="t1.ID DESC" i=this("MAP_BANDERA") sFilter="t1.ID<"+i col.filter=sFilter col.startBrowse if not col.currentItem is nothing then AsignarDatos(col.currentItem) col.movenext if col.currentItem is nothing then this("MAP_BUTOM_ACTIVATE")=0 else this("MAP_BUTOM_ACTIVATE")=2 end if end if col.endBrowse end function
Función recogerdatoscoleccionsiguiente
Esta función será igual que la anterior, pero ordenado de manera ascendente.
function RecogerDatosColeccionSiguiente() Dim i,col,sFilter set col=appData.GetCollection("Peliculas") col.sort="t1.ID ASC" i=this("MAP_BANDERA") sFilter="t1.ID>"+i col.filter=sFilter col.startBrowse if not col.currentItem is nothing then AsignarDatos(col.currentItem) col.movenext if col.currentItem is nothing then this("MAP_BUTOM_ACTIVATE")=1 else this("MAP_BUTOM_ACTIVATE")=2 end if end if col.endBrowse end function
Función asignardatos
Con esta función recogeremos los datos que queramos del registro recogido.
function AsignarDatos(obj) this("MAP_ID")=obj("ID") this("MAP_TITULO")=obj("TITULO") this("MAP_BANDERA")=obj("ID") if obj("IMAGENFOTO")="" then this("MAP_IMAGEN")=obj("IMAGENRUTA") else this("MAP_IMAGEN")=obj("IMAGENFOTO") end if end function