{{indexmenu_n>1}} ====== CAMPO MAPEADO CON OTRA COLECCIÓN ===== \\ Propiedad de tipo MAPEADA\\ \\ \\ Propiedad de tipo IDENLACE con otra colección.\\ \\ \\ Cliente Contacto \\ ==== mapcol="coleccion" | mapfld="campo" | default-mapcol="coleccion"==== \\ |**mapcol:** Indica que esta propiedad está enlazada con otra colección, o sea, que esto es un campo clave en la relación de muchos a uno.| \\ Ejemplo de código:\\ En este ejemplo se indica que la propiedad cuyo nombre es IDTIPO es númerica y está enlazada con una colección llamada "[[wiki:2.-desarrollo-app:2.3.-entender_un_mapping:a.-estructura_xml:5.-nodo-prop:tiposusuario]]".\\ \\ El campo que se usa para enlazar esta propiedad con la colección externa se indica mediante el atributo 'mapfld'.\\ \\ El valor de este atributo debe ser el nombre de una colección válida dentro de la aplicación. Si la colección no está definida la interfase de usuario puede provocar un error al intentar enlazar esta propiedad con cualquier otra.\\ \\ Para este valor, se puede usar la macro ##OWNERCOLL## indicando que se está refiriendo a la colección en la cual está definido el objeto propietario de este objeto. \\ \\ Si la propiedad está declarada en una colección de detalles de documentos, la colección propietaria sería la colección de documentos de la cual está es contents.\\ \\ La capa de datos sustituye el nombre de esta macro cuando se pide el valor de esta propiedad, por lo que la colección tiene que estar siendo usada como contents. \\ \\ En caso de que la colección se obtenga directamente de la aplicación y no como una colección de contenido, el resultado de esta macro se obtendrá del atributo //default-mapcol// en caso de que esté definido dicho atributo, de lo contrario será una cadena vacía.\\ \\ |**default-mapcol:** Este atributo se utiliza para completar el anterior cuando la colección que contiene este propiedad se utiliza como colección base y no como colección de contenido.| \\ En este caso el atributo //mapcol// devolverá el valor que tenga este atributo. \\ \\ En el ejemplo siguiente se muestra este comportamiento:\\ \\ \\ En este ejemplo, la colección “**Recibos**” se ha declarado para usarse como colección de contenido en la colección “**Documentos**”. Cuando esto se hace así, el atributo //mapcol// devuelve el nombre “Documentos” por ser esta su colección propietaria.\\ \\ En caso de que la colección “Recibos” se obtenga directamente de la aplicación y no como contenido de “Documentos”, el atributo //mapcol// devolverá el valor “Facturas” que es el valor por defecto.\\ \\ |**mapfld:** Indica que campo de la colección externa es el que se usa para enlazarla con esta propiedad. En el ejemplo anterior, la propiedad IDTIPO está enlazada con la colección “TiposUsuario” a través del campo ID. | \\ Las propiedades que contienen esta pareja suelen ser propiedades de enlace solamente, por lo que suelen ser invisibles en la edición (visible=”0”). \\ ==== linkedto="campo" | linkedfield="campo" ==== \\ Estos atributos indican que la propiedad se ha obtenido mediante un enlace con una colección externa. Se define para aquellas propiedades que comienzan con el prefijo MAP_ para indicar que proceden de un enlace entre tablas. \\ \\ El valor de **linkedto** debe ser el campo que se ha usado para enlazarlo con la colección externa, tal como indica el ejemplo siguiente:\\ \\ Este atributo se utiliza en combinación con el atributo **linkedfield** para indicar el enlace con otra colección. En este caso se indica que el campo **MAP_TIPOUSER** está enlazado mediante el campo **IDTIPO** con la colección “TiposUsuario”. El campo que le corresponde a la propiedad **MAP_TIPOUSER** es el de la propiedad **ETIQUETA** de la colección destino. El programa no utiliza esta relación para leer los datos, ya que esto lo hace la sentencia SQL, sino para hacer actualizaciones en cascada, como se describe más adelante.\\ \\ Otro uso que tiene el atributo //linkedto// es definir el nombre de la propiedad a la cual está enlazada una propiedad de tipo “bitmapped”, como se describe más adelante. \\ \\ La sección Controles por Tipo **[[wiki:2.-desarrollo-app:2.3.-codigo:b.-controles-xone:3.-controles-por-tipo:start]]** contiene una explicación detallada de como construir enlaces usando los atributos anteriormente explicados.\\ \\ ==== showinline="true/false" ==== \\ Muestra la colección enlazada a través del atributo mapcol como un desplegable.\\