No entiendo la relación, el método insertNewByName, hasta ahora, no he encontrado problemas, el problema tratado en el hilo de correos es el metodo moveByName
Saludos Mauricio El 7 de agosto de 2008 13:33, Alexandro Colorado <[EMAIL PROTECTED]>escribió: > tengo un codigo que hace esta generacion ciclica de hojas de calculo. > > http://www.slideshare.net/jza/programacion-de-bases-de-datos-en-ooobasic/ > > en la diapositiva 9 > > While Result.next() > oDoc.getSheets().insertNewByName(x,1) > oSheets(1).getCellbyPosition(2,2).SetString(Result.getString(z)) > Wend oCon.close() > > > > On Thu, 07 Aug 2008 12:58:57 -0500, Mauricio Baeza < > [EMAIL PROTECTED]> wrote: > > Veamos... >> >> Creo una hoja nueva que tienes tres hojas >> >> A) Hoja1(0), Hoja2(1) y Hoja3(2) >> >> Los números entre parentesis son sus indices, es decir, la posición que se >> maneja desde OOo Basic, ejectuamos las ordenes en el orden que dices, >> primero, intentamos mover a la posicion 4, ojo, que no existe >> >> ThisComponent.getSheets().moveByName( "Hoja1", 4 ) >> >> Con lo que resulta >> >> B) Hoja2(0) Hoja3(1) Hoja3_2(2) Hoja1(3) >> >> Como veras, movio la "Hoja1" a la posicion 3, pero inserto una copia de la >> "Hoja3" como "Hoja3_2", lo cual no me parece correcto, despues dices... >> >> ThisComponent.getSheets().moveByName( "Hoja1", 2 ) >> >> Y nos quedan las hojas correctamente >> >> C) Hoja2(0) Hoja3(1) Hoja1(2) Hoja3_2(3) >> >> Luego: >> >> ThisComponent.getSheets().moveByName( "Hoja1", 1 ) >> >> E) Hoja2(0) Hoja1(1) Hoja3(2) Hoja3_2(3) >> >> Depues >> >> ThisComponent.getSheets().moveByName( "Hoja1", 0 ) >> >> F) Hoja1(0) Hoja2(1) Hoja3(2) Hoja3_2(3) >> >> Luego, de nuevo a la posicion 4, ojo, esta posicion sigue sin existir >> >> ThisComponent.getSheets().moveByName( "Hoja1", 4 ) >> >> G) Hoja2(0) Hoja3(1) Hoja3_2(2) Hoja1(3) >> >> Simplemente la mueve al final, que es lo menos que esperaria cuando se le >> pasa una posicion que no exista, por ultimo, hacemos.. >> >> ThisComponent.getSheets().moveByName( "Hoja1", 1 ) >> >> Que deja las hojas >> >> H) Hoja2(0) Hoja1(1) Hoja3(2) Hoja3_2(3) >> >> >> Resumiendo >> >> A) Correcto >> B) Incorrecto, crea una hoja que no pedimos y posicion al final las hojas >> C) Correcto >> D) Correcto >> E) Correcto >> F) Correcto >> G) Incorrecto/correcto, es decir, no mueve a la posicion que queriamos, >> por >> que no existe, pero me parece correcto que por lo menos te la deje al >> final >> y no te provoque un error, por supuesto, esto pasa por que ya no tenemos >> las >> 3 hojas iniciales, sino 4, con la que se creo en el paso B >> H) Correcto >> >> >> Como podemos observar, las unicas inconsistencias se suceden cuando >> queremos >> mover una hoja existente a una posición inexistente, en todas mis pruebas >> a >> resultado que: >> >> Si Posicion es mayor al número de hojas, la aplicación falla, en una de >> tantas pruebas el archivo me lo recupero solo con las insertadas, por lo >> que >> especulo que al insertar las nuevas hojas es donde falla, de hecho, creo >> que >> esto no" deberia" de hacerlo >> >> Si Posicion es igual o menor al número de hojas, lo hace correctamente, de >> ahí la importancia de validar siempre que Posicion sea menor o igual al >> número de hojas >> >> If Posicion <= oHojas.getCount() Then >> >> Tal vez te estes confundiendo con la posicion visual y la posicion interna >> (index), este, siempre empieza en cero... >> >> Saludos >> >> Mauricio >> >> >> >> >> El 7 de agosto de 2008 1:31, francisco f. <[EMAIL PROTECTED]> >> escribió: >> >> El Miércoles, 6 de Agosto de 2008 20:57, Mauricio Baeza escribió: >>> > Hola... >>> > >>> > No entiendo cuando dices que a vece empieza en 0 y a veces en 1, eso no >>> he >>> > podido reproducirlo, >>> > >>> > tienes alguna linea de codigo para comprobarlo? >>> > >>> > Gracias y saludos >>> > >>> > Mauricio >>> En una hoja nueva ejecutas la orden esta dichosa >>> ThisComponent.getSheets().moveByName( "Hoja1", 4 ) >>> te pasa la hoja 1 a la posicion cuatro, cuando deberia ser la 5 ya que se >>> empieza desde 0 >>> cambias la posicion a la 2 >>> ThisComponent.getSheets().moveByName( "Hoja1", 2 ) >>> te pasa la hoja a la posicion 2 cuando deberia ser la 3 >>> luego pasas la hoja a 1 >>> ThisComponent.getSheets().moveByName( "Hoja1", 1 ) >>> y pasa la hoja al principio >>> >>> si luego haces posicion 0 >>> ThisComponent.getSheets().moveByName( "Hoja1", 0 ) >>> deja la hoja como esta >>> luego pones >>> ThisComponent.getSheets().moveByName( "Hoja1", 4 ) >>> la pasa a posicion 4, que seria internamente la 3 >>> y si ya pones otra vez a posicion 1 >>> ThisComponent.getSheets().moveByName( "Hoja1", 1 ) >>> te deja la hoja en posicion 2 >>> >>> si te das cuenta, despues de todo este lio >>> que con la misma orden de mover a posicion 1 >>> te deja la hoja en dos posiciones distintas. >>> >>> Con lo cual la numeracion ¿empieza en o ó en 1? >>> Fallar seguro que falla >>> >>> >>> acabo de releer lo que he escrito y casi no me entero de lo que pone. >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >>> >>> >> >> > > > -- > Alexandro Colorado > CoLeader of OpenOffice.org ES > http://es.openoffice.org > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- _______________________________ Todo lo que no es dado es perdido
