Pergunte aqui
0

Caixa de Listagem - Sem Dialog

perguntadas 2018-08-14 22:20:02 +0200

imagem do gravatar de Conrado

updated 2019-03-01 19:18:03 +0200

Pessoal, estou tentando recuperar os valores de um grupo de células (variável a altura) para uma Caixa de Listagem não associada a um dialog, ou seja, direto na planilha.

Segue até onde cheguei para os testes. (já tentei com additem tbm)

Sub CarregarListBox (oEvent)

    Dim oForm, oPlan, ListBox

    oPlan = ThisComponent.Sheets.getByName( "Planilha6" )
    oForm = oPlan.DrawPage.Forms.getByName( "Formulário" )

    oListBox = oForm.getByName("cxListagem2")

    oListbox.listitem = oPlan.getCellByPosition( 3,15 ).String

End Sub
editar alterar tag assinalar como ofensivo fechar mesclar Excluir

2 Respostas

2

respondidas 2018-08-15 23:55:13 +0200

imagem do gravatar de Grafeno

Boa noite,

O método AddItem() irá funcionar com o seguinte código:

Sub CarregarListBox
   Dim oDoc, oForm, oPlan, oListBox

    oDoc = ThisComponent
    oPlan = oDoc.Sheets.getByName( "Planilha6" )
    oForm = oPlan.DrawPage.Forms.getByName( "Formulário" )

    oListBoxModel = oForm.getByName("cxListagem2") 'Model do ListBox'
    oListBox = oDoc.CurrentController.getControl(oListBoxModel) 'View do ListBox'

    oListBoxModel.removeAllItems 'Este método está no Model'
    oListBox.AddItem( oPlan.getCellByPosition( 3,15 ).String,0 ) 'Método no view'
End Sub

O Libreoffice utiliza uma arquitetura que separa as propriedades e os métodos de seus objetos em dois "locais": Model e View. Quando se acessa o controle a partir do Dialogo, é obtido primeiro o seu View. A partir de um formulário (conteiner invisível sobre a planilha/documento) chega-se ao seu Model antes. O método AddItem() fica no view do controle ListBox, então no formulário é preciso do "passo a mais" do código acima.

Atte,

editar assinalar como ofensivo Excluir Link mais

Comentários

1

@Grafeno , Agora entendi como funciona a diferença entre eles. Estava lendo as referências mas pelo jeito não havia entendido. O procedimento de certo. Obrigado mais uma vez.

imagem do gravatar de ConradoConrado ( 2018-08-16 13:36:24 +0200 )editar
0

respondidas 2018-08-15 02:22:35 +0200

imagem do gravatar de joaorochaj

@Conrado, o seu codigo

oListbox.listitem = oPln.getCellByPosition( 3,15 ).String

nao bate com a Variavel

  • oPlan
editar assinalar como ofensivo Excluir Link mais

Comentários

Obrigado @joaorochaj, foi erro de digitação apenas. Mas mesmo assim ele retorna erro de propriedade ou método não encontrado.

imagem do gravatar de ConradoConrado ( 2018-08-15 12:33:32 +0200 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2018-08-14 22:20:02 +0200

Lidas: 71 vezes

Última atualização: Aug 15 '18