Tabla de Contenidos



Explicación del código

Imagen estanteria

IMPORTANTE


Código de la colección PictureMAP

Código Explicación
show-no-data=“false” No muestra el mensaje de que no hay datos si no hay datos.
type=“Z” Indica el tipo de datos de la propiedad..
viewmode=“picturemap” Indica que el contents en vez de aparecer en modo “GRID” se verá como una imagen sensible en algunos puntos.
method=“executenode(reservar)“ Al pulsar sobre un libro se indica que se va a reservar y cambia su estado.
method=”executenode(entregar)“ Al pulsar sobre un libro se indica que se va a entregar y cambia su estado.

Ejemplo de código de la colección de PictureMAP:


En esta colección maquetamos la pantalla del móvil, es decir, distribuimos la pantalla según la información que se quiera mostrar.


<coll name="PictureMAP" title="PictureMAP"
sql="" objname="PictureMAP" updateobj="PictureMAP" progid="ASData.CASBasicDataObj" filter="" sort="" notab="true" show-no-data="false">
  <group name="General" id="1">
    <frame name="F1" width="100%" height="100%" align="top|center">
		  <!-- Contents de la estantería para seleccionar pulsando un libro, viewmode="picturemap" -->
		  <prop name="@contentLibros" type="Z" contents="contentLibros" imgbk=".\icons\estanteria.png" viewmode="picturemap" width="800px" />
		  <contents name="contentLibros" src="estanteriaLibros" />
 
		  <!-- Contents para ver los datos del libro seleccionado (Filtramos por MAP_ID), apunta a la misma tabla que el anterior -->
		  <prop name="@detalles" locked="true" type="Z" xdisablevisible="MAP_ESTADO=''" contents="detalles" width="800px" height="300px" mask="0" />
		  <contents name="detalles" src="estadoLibros" filter="t1.ID=##FLD_MAP_ID##" />
 
		  <!-- Botones para marcar el libro como Reservado ó Disponible -->
		  <prop name="MAP_RESERVAR" type="B" disablevisible="MAP_ESTADO='Reservado' OR MAP_ESTADO=''" caption="RESERVAR" method="ExecuteNode(reservar)" forecolor="#000000" labelwidth="5" width="300px" height="90px" visible="7" lmargin="30px" tmargin="10%" />
		  <prop name="MAP_ENTREGAR" type="B" disablevisible="MAP_ESTADO='Disponible' OR MAP_ESTADO=''" caption="ENTREGAR" method="ExecuteNode(entregar)" forecolor="#000000" labelwidth="5" newline="false" width="300px" height="90px" visible="7" lmargin="30px" tmargin="10%" />
 
		  <!-- Campos NO visibles, se rellenan de valor desde el content estanteriaLibros cuando pulsamos uno de los libros. -->
		  <prop name="MAP_ID" type="T" visible="0" />
		  <prop name="MAP_ESTADO" type="T" visible="0" onchange="Refresh" />
 
		</frame>
  </group>
 <!--IMPORTANTE: deben introducirse datos en la base de datos para poder visualizar las imágenes-->
  <reservar show-wait-dialog="false" refresh-props="MAP_RESERVAR,MAP_ENTREGAR,MAP_ESTADO">
    <action name="runscript">
      <script language="VBScript">
  			Dim obj
  			Set obj=appdata.GetCollection("estanteriaLibros")("ID",cstr(This("MAP_ID")))
			If not obj is nothing Then
				obj("ESTADO")="Reservado"
				obj.save
			End If
			obj=Nothing
			this("MAP_ESTADO")="Reservado"
  	  </script>
    </action>
  </reservar>
 
  <entregar show-wait-dialog="false">
    <action name="runscript">
      <script language="VBScript">
  			Dim obj
  			Set obj=appdata.GetCollection("estanteriaLibros")("ID",cstr(This("MAP_ID")))
			If not obj is nothing Then
				obj("ESTADO")="Disponible"
				obj.save
			End If
			obj=Nothing
			this("MAP_ESTADO")="Disponible"
  		</script>
    </action>
  </entregar>
 
<salir show-wait-dialog="false">
	<action name="runscript">
	  <script language="VBScript">
			Appdata.FailWithMessage -8100,"##EXIT##"
		</script>
	</action>
</salir>
</coll>


Código Explicación
sql=“SELECT t1.* FROM ##PREF##estanterialibros t1” Consulta que devuelve la información de los libros.
dependent=“false” Indica que los objetos que pertenecen a esta colección deberán chequear si el objeto propietario está grabado o no para grabarse ellos.
check-owner=“false” Indica que la colección debe revisar si el propietario está grabado en disco antes de ejecutar un loadall en caso de tratarse de una colección de contenido.

Ejemplo de código de la colección de estanterialibro:


En esta colección indicamos lo que queremos mostrar en el primer contens de la colección PictureMAP


 <coll name="estanteriaLibros" title="estanteriaLibros"
sql="SELECT t1.* FROM ##PREF##estanterialibros t1" objname="estanteriaLibros" updateobj="estanteriaLibros" progid="ASData.CASBasicDataObj" filter="" sort="" dependent="false" check-owner="false">
 <group name="General" id="1">
  	<prop name="ID" title="Codigo" type="T" visible="0" labelwidth="0" />
  	<prop name="CODIGO" title="Codigo" type="T" visible="0" labelwidth="0" />
  	<prop name="TITULO" title="Titulo" labelwidth="0" type="T" visible="7" />
  	<prop name="AUTOR" title="Autor" labelwidth="0" type="T" visible="7" />
  	<prop name="ESTADO" title="Estado" labelwidth="0" type="T" visible="7" />
  	<prop name="XCOORD" type="N" xcoord="true" visible="7" />
  	<prop name="YCOORD" type="N" ycoord="true" visible="7" />
	<prop name="ICONBIG" width="126" height="168" type="T" size="250" icon-big="true" visible="7" />
	<prop name="RADIO" type="N" circle-radius="true" visible="7" />	
  	<prop name="ICONOFF" width="126" height="168" type="T" size="250" icon-mark="true" visible="7" />
    <prop name="ICONON" width="126" height="168" type="T" size="250" icon-touch="true" visible="7" />
  </group>
  <selecteditem>
  	<action name="runscript">
  		<script language="VBSCript">
  			this.OwnerCollection.OwnerObject("MAP_ID")=This("ID")
  			this.OwnerCollection.OwnerObject("MAP_ESTADO")=This("ESTADO")
  		</script>
  	</action>
  </selecteditem>
 </coll>



Código Explicación
sql=“SELECT t1.ID,t1.CODIGO AS MAP_CODIGO,t1.TITULO AS MAP_TITULO,t1.AUTOR AS MAP_AUTOR,t1.ESTADO FROM ##PREF##estanterialibros t1” Nos devuelve el estado en el que se encuentra el libro.
show-toolbar=“false” Por defecto true. Si lo ponemos a false en una colección cuando la utilizamos como contents no aparecen los botones de nuevo, editar … aunque se permite la edición y la creación de nuevos. Para bloquearlo seria con locked=“true”.
cell-bgcolor=”#FFFFFF” Permite definir el color de fondo por defecto de las celdas.

Código de la colección estadolibros


En esta colección indicamos lo que queremos mostrar en el segundo contens de la colección PictureMAP



<coll name="estadoLibros" title="estadoLibros" sql="SELECT t1.ID,t1.CODIGO AS MAP_CODIGO,t1.TITULO AS MAP_TITULO,t1.AUTOR AS MAP_AUTOR,t1.ESTADO  FROM ##PREF##estanterialibros t1" objname="estanterialibros" cell-bgcolor="#FFFFFF" show-toolbar="false" updateobj="estanterialibros" progid="ASData.CASBasicDataObj" filter="" sort="" check-owner="false" dependent="false" show-no-data="false">
	<group name="General" id="1">
	     <prop name="MAP_CODIGO" type="T" visible="0" />
	     <prop name="MAP_TITULO" type="T" text-border="false" labelbox="false" visible="7" labelwidth="6" title="TITULO:" labelfont-bold="true" />
	     <prop name="MAP_AUTOR" type="T" text-border="false" labelbox="false" visible="7" labelwidth="6" title="AUTOR:" labelfont-bold="true" />
	     <prop name="ESTADO" type="T" text-border="false" labelbox="false" visible="7" labelwidth="6" title="ESTADO:" labelfont-bold="true" />
	</group>
 
 
  </coll>