<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
hola Fran:<BR>
Agradecerte por la ayuda prestada<BR>
<BR>
atte.<BR>
Robert Zavaleta<BR>
<BR> <BR>> Date: Wed, 16 Sep 2009 09:50:55 +0200<BR>> From: fpenarru@gmail.com<BR>> To: gvsig_desarrolladores@listserv.gva.es<BR>> Subject: Re: [Gvsig_desarrolladores] fichas automatizadas<BR>> <BR>> Hola Elder.<BR>> <BR>> Hay que habilitar una extensión que lleva gvSIG desactivada por defecto <BR>> (Ventana | Preferencias | General -> Extensiones -> <BR>> com.iver.cit.gvsig.TagExtension) y reiniciar. En la toolbar Mapa <BR>> aparecen 2 iconos azules (solo cuando hay algo seleccionado en un <BR>> layout). El del símbolo + añade un tag a cualquier elemento del mapa. <BR>> Esto sirve para marcar los campos que queremos rellenar. Al abrir el <BR>> layout, se recorren todos los elementos comprobando su tag. Si lo <BR>> encuentra, sustituye la cadena con lo que toca, o situa el extent del <BR>> FFrameView en el sitio correcto, etc.<BR>> <BR>> Solo un apunte al código que te han pasado. Si tienes muchos tags, es <BR>> preferible no usar esa función getFFrameByTag (salvo por motivos de <BR>> claridad en el código,eso sí), porque entonces recorres todos los <BR>> FFrames cada vez que buscas un tag. Yo prefiero dar una sola pasada por <BR>> todos los FFrames y dentro del bucle comprobar si el FFrame tiene tag, y <BR>> caso de que lo tenga, asignar el valor correspondiente. Es decir, un <BR>> bucle con unos cuantos IF dentro. Si tienes pocos tags, da igual, no se <BR>> pierde casi tiempo.<BR>> <BR>> Ejemplo:<BR>> <BR>> LayoutContext lc = newLayout.getLayoutContext();<BR>> IFFrame[] frames = lc.getFFrames();<BR>> for (int i=0; i < frames.length; i++) {<BR>> if (frames[i].getTag() != null) {<BR>> if (frames[i].getTag().equalsIgnoreCase("FECHA")) {<BR>> FFrameText txtFecha = (FFrameText) frames[i];<BR>> txtFecha.clearText();<BR>> <BR>> SimpleDateFormat df = new <BR>> SimpleDateFormat("dd/MM/yyyy");<BR>> txtFecha.addText(df.format(new Date()));<BR>> }<BR>> if (frames[i].getTag().equalsIgnoreCase("ESCALA")) {<BR>> FFrameText txtEscala = (FFrameText) frames[i];<BR>> txtEscala.clearText(); <BR>> txtEscala.addText("1/" + scale);<BR>> }<BR>> if (frames[i].getTag().equalsIgnoreCase("TITULO")) {<BR>> FFrameText txtTitulo = (FFrameText) frames[i];<BR>> txtTitulo.clearText(); <BR>> txtTitulo.addText(title);<BR>> }<BR>> ... etc<BR>> <BR>> Saludos<BR>> Fran Peñarrubia<BR>> www.scolab.es<BR>> <BR>> <BR>> Elder Robert Zavaleta Veneros escribió:<BR>> ><BR>> > Hola Cesar muy agradecido por tu respuesta, pero tengo una unica duda<BR>> > cuando creo mi plantilla(.gvt) he inserto textos,vista no se como <BR>> > configurarlos para que la<BR>> > getFFrameByTag("provinciatag",layout, frames) reconozca el primer <BR>> > parametro "provinciatag"<BR>> > <BR>> > mas claro que es "provinciatag", supongo que debe ser una texto al <BR>> > cual le asigno<BR>> > un valor por codigo, como puedo hacer para configurar ese parametro en <BR>> > mi plantilla(.gvt) y para que despues lo<BR>> > llame desde codigo<BR>> > <BR>> > por ejemplo:<BR>> > <BR>> ><BR>> > IFFrame texto=getFFrameByTag("provinciatag",layout, frames);<BR>> ><BR>> > ((FFrameText)texto).clearText();<BR>> ><BR>> > ((FFrameText)texto).addText("PROVINCIA :"+fg.getProvincia());<BR>> ><BR>> > <BR>> ><BR>> > en ese codigo asignas el valor de que te da fg.getProvincia()); ha <BR>> > provinciatag<BR>> ><BR>> > como lo configuro en mi plantilla.<BR>> ><BR>> > <BR>> > Atte.<BR>> > Robert Zavaleta<BR>> <BR>> _______________________________________________<BR>> gvSIG_desarrolladores mailing list<BR>> gvSIG_desarrolladores@listserv.gva.es<BR>> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores<BR>                                            <br /><hr />Windows Live™: Keep your life in sync. <a href='http://windowslive.com/explore?ocid=TXT_TAGLM_WL_t1_allup_explore_012009' target='_new'>Check it out!</a></body>
</html>