Y me pregunto.....
que pasará cuando un usuario muy básico se lie con esto?.
Atte.
Alberto R. Herrera Núñez
Depto. Informática Area Soporte
Comercial e Industrial
ROLEC
Panamericana Norte Km 15 1/2
Esq. Av. Patricia Viñuela 10500
Correo : [EMAIL PROTECTED]
Internet : www.rolec.cl
Por favor tome en cuenta el medio ambiente antes de imprimir este
mensaje de correo electrónico
-----Mensaje original-----
De: Alexandro Colorado <[EMAIL PROTECTED]>
Responder a: [email protected]
Para: [email protected]
Asunto: Re: [usr] Error en código...
Fecha: Thu, 07 Aug 2008 13:33:25 -0500
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]
>>
>>
>
>