Carrgar 2 colunas numa combobox programaticamente

Se eu não estiver enganado, deve ter como carregar por programa (macro) “2 colunas” numa combobox, porque em debug encontro na m/ cbxnatur 1.AllItems.First e AllItens.Second. Com uma duzia de linhas s/manutenção, não justifica tabela!
Agora não encontrei um único exemplo de como fazer .
Alguém tem um exemplo de como isso se faz?
Obrigado

Você deseja mesclar/juntar/concatenar a informação de um registro/linha qualquer de 2 ou mais campos/colunas e mostrar isso em um controle de formulário (Caixa de combinação), assim como é feito com consultas em SQL no LibO Base?

É isso?

1 Like

Sim a ideia é carregar fazer o mesmo que se faz com as consulta SQL; tenho uma coluna
Código (na 1.ª coluna) e
Descritvo (na 2.ª coluna) e depois:
For n = 0 to CbxSelect.ItemCount - 1
s=CbxSelect.AllItems(n).First
If CbxSelect.AllItems(n).Second = CbxSelect.Text Then
iPckd = n
siPckd = CInt ( n )
s= CbxSelect.AllItems(n).First
end if
next n

result = Cint( s ) +/- isto

Certo. Estas colunas estão localizadas onde?

Em Banco de Dados, Planilha do Calc, no próprio writer?

Bom dia, estava a pensar definir um array e carrega-las a partir daí num primeiro ciclo do programa , por exemplo à cabeça da Sub Main um Init()
Ar1(9,1,30,98,70,20,32, 80)
Ar2( Des9,Desc30, Desc98,Desc70…) depois, num cilco
carrega de: Ar1(i) código e de: Ar2(i) descrição monta, as duas colunas da ComboBox.
Atentamente

Acho que estamos com dificuldades de comunicação devido a diferença na língua.
Como dito aqui por você:

.
Repare, o código para alimentar a Caixa de Combinação, usando dois vetores não é difícil.
Já está feito, conforme resposta abaixo.
.
Para encaixar isso no seu arquivo, é necessário que o senhor forneça o arquivo exemplo com os dados que deseja que sejam inseridos na Caixa de Combinação.
.
Sem isso, e sem precisão nas informações, é quase impossível o senhor obter respostas satisfatórias para suas dúvidas, conforme tem ocorrido constantemente. Acaba sendo trabalho dobrado para o senhor, e para as pessoas que tentam auxiliar de alguma maneira.
.
Se o documento que o senhor necessita mexer possui dados confidenciais, basta criar uma cópia com dados fictícios para teste. A partir dele, o senhor pode ir pedindo auxílio, quando e se necessitar.
.
A partir da sua pergunta aqui:

Eu lhe dei uma resposta exemplo aqui:

.
Se não é isso que o senhor deseja, deve indicar na descrição do seu tópico detalhadamente, pelo menos.

.
Seria algo assim ?

Sub AlimentarCbb(oEvent)
Dim oCbb			As Object
Dim sVara()			As Variant
Dim sOrgao()		As Variant
Dim i					As Integer
Dim j					As Integer
Dim s					As String
	
	REM Define os vetores
	sVara = Array("1ª Vara", "2ª Vara", "3ª Vara")
	sOrgao = Array("TRT 1ª Região", "TRF2")
	
	REM Obtem a Caixa de Combinação
	oCbb = oEvent.Source
	
	REM Limpa a Caixa de Combinação
	For i = 0 To oCbb.ItemCount
		oCbb.removeItems(0, oCbb.ItemCount)
	Next
	
	REM Alimenta a Caixa de Combinação
	For i = 0 To uBound(sVara() )
		For j = 0 To uBound(sOrgao() )
			oCbb.addItem(sVara(i) & " - " & sOrgao(j), 0)
		Next j
	Next i
	
End Sub

Arquivo:
Ask_AlimentarCbb.odt (19,0,KB)

Obrigado Felipe Alé,

O resultado será esse. Não sei resolver mas haverá certamente uma forma mais apurado de carregar a lista. Repare o seu código em debug:

Felipe Alé via Ask LibreOffice <noreply@ask.libreoffice.org> escreveu no dia quarta, 28/12/2022 à(s) 00:52:

Depois tem uma cena que eu não consigo perceber como é que você carrega o menu melhor a opção de Menu : PreencherCampos

Sub PreencherCampos()
Dim oFrame As Object, oDispatcher As Object
oFrame = ThisComponent.CurrentController.Frame
oDispatcher = createUnoService(“com.sun.star.frame.DispatchHelper”)
oDispatcher.executeDispatch(oFrame, “.uno:UpdateInputFields”, “”, 0, Array() )
End Sub

Com os meus melhores cumprimentos
Mário Agostinho Reis
919262146

Esta mensagem contém informação de natureza confidencial e é
exclusivamente dirigida ao(s) destinatário(s) indicado(s). Se, por engano,
receber este email agradecemos que não o copie nem o reenvie e que nos
notifique do ocorrido através do email de resposta.

Mário Reis <mariodosreyx@gmail.com> escreveu no dia quinta, 29/12/2022 à(s) 15:17:

Para tentar entender criei um “Command Button” mas ele não faz o que seria suposto fazer!
Eu não consigo perceber como agregar todo os meus campos a um Frame.
Depois tem aquela cena a informação sobre frames que surge nas pesquisas é em ingles enquanto eu tenho o Libra em Portugues!?
Necessito criar um edit para os campos que em princípio virão sempre de uma tabela, mas sempre vai aparecer um ou outro que não tem na tabela!
E, ai dá jeito, poder editar porque o campos são readonly; não sendo enviado o documento em PDF o destinatário pode alterar e a gente não quer isso, como bem se vê.
Na circunstância o meu oDoc = ThisComponent.Drawpage.Forms.GetByName(“ModeloCartaEnviar”) não funciona sem frame
Consegue ajudar-me por favor. Obrigado
Atentamente

Mário Reis <mariodosreyx@gmail.com> escreveu no dia domingo, 1/01/2023 à(s) 15:35: