Você está na página 1de 5

Base de Conhecimento SchuF Fetterolf do Brasil

KB-1111_0002

Assunto/Subject:
Salvar a ultima seleo de List Box, Check Box, Radio Button, etc em arquivos MathCAD

Palavra(s) Chave(s)/Keyword:
MathCAD
Metadata
Salvar ListBox

Autor/Author:
Angelo Fabrcio Leinat / AFL / Engenharia de Produto / Projetista
Participantes/Participants
Angelo Fabrcio Leinat / AFL / Engenharia de Produto / Projetista

Referncia Bibliogrfica/Bibliographical Reference:


PTC Express - Making Custom Controls Persistent, Abril 2008,
www.imakenews.com/ptcexpress/e_article001061554.cfm

Anexos/Attachments:
KB-1111_0002-A
KB-1111_0002-B

Data/Date:
18/11/2011
Pgina |1 de 5

Base de Conhecimento SchuF Fetterolf do Brasil


KB-1111_0002

1. Introduo
1.1. Em arquivos MathCAD quando se utilizado os recursos de Control (List Box, Check Box, Radio Button, etc.) a
ultima seleo deste itens no automaticamente salva junto ao arquivo, sendo assim na prxima vez que o
arquivo for aberto todas as selees voltam ao incio da lista (posio 0). Para que seja guardado esta posio
devemos utilizar o recurso de Metadata.
2. Metadata
2.1. O MathCAD verso 13 15 tem a capacidade de acessar o Metadata da folha e fornecer uma maneira de
armazenar o estado dos controles e restaur-los quando a planilha for aberta numa prxima vez.
O Metadata nada mais que uma lista de itens que so incorporados e armazenados em uma planilha.
Os arquivos de MathCAD, assim como a maioria de arquivos do Windows, podem acessar os Metadatas atravs
do menu Arquivos/Propriedades (Veja Figura 1)

Figura 1

Para manipular o Metadata dos arquivos MathCAD devemos utilizar o recurso VBScript do Controle que
queremos salvar.
3. Criando um exemplo prtico
3.1. Para o nosso exemplo iremos criar um arquivo simples contendo apenas uma List Box, contudo o mesmo pode
ser utilizado em qualquer um dos outros controles tendo como base os mesmos parmetros.
3.2. Crie um arquivo novo no MathCAD e insira uma List Box conforme Figura 2.

Pgina |2 de 5

Base de Conhecimento SchuF Fetterolf do Brasil


KB-1111_0002

Figura 2

3.3. Acesse o Script da List Box, a seguinte janela dever aparecer conforme Figura 3:

Figura 3

Ser descrito abaixo a alterao no script do comando para criar a nossa caixa de seleo e ter acesso a salvar
sua posio no Metadata. Ser comentado em verde cada passo utilizado:
Pgina |3 de 5

Base de Conhecimento SchuF Fetterolf do Brasil


KB-1111_0002

Rem Initialize List Box


ListBox.ResetContent()
Rem Add Strings here as needed
ListBox.AddString("1")
ListBox.AddString("2") 'Aqui inserido os itens da List Box
ListBox.AddString("3")
Rem Initialize Selection If desired
ListBox.CurSel = 0
'Inicializa a lista na posio 0
Set metadata = worksheet.metadata 'Interface com o Metadata
Set items = metadata.customitems 'Coleo de itens salvos no Metadata
For each item in items 'Looping que procura na lista de itens salvos
If (item.name = "ListBoxState") Then 'Se encontrar o estado...
ListBox.CurSel = item.value
'...sete conforme a seleo
End If
Next
Sub ListBoxEvent_Start()
End Sub
Sub ListBoxEvent_Exec(Inputs,Outputs)
Outputs(0).Value = ListBox.GetText(ListBox.CurSel)
End Sub
Sub ListBoxEvent_Stop() 'Define o Metadata Object
MsgBox "Setting MetaData Now." 'Opcional, apenas para visualizar que a
manipulao do Metadata comeou
Set myMetadata = CreateObject("Mathcad.CustomMetadataItem")
' Seta o Tipo, Nome, e Valor do Metadata
myMetadata.Type = mcCMTText
'Tipo de valor salvo, neste caso, Texto
myMetadata.Name = "ListBoxState"
'Guardar o nome estado do atual selecionado
myMetadata.Value = ListBox.CurSel 'Seleo atual
Worksheet.Metadata.AddCustomItem myMetadata 'Criar os itens customizados
End Sub
Sub ListBox_SelChanged()
ListBox.Recalculate()
End Sub
Sub ListBox_DblClick()
ListBox.Recalculate()
End Sub

3.4. Feche a edio do Script, insira um Argumento de sada, selecione um dos itens da lista que no seja o primeiro,
salve e feche o arquivo. Abra novamente, se tudo ocorreu normalmente o ultimo item da lista selecionado
dever retornar.
4. Na pasta de anexos, h dois arquivos contendo o material original da PTC que descreve este procedimento e um
exemplo funcional (KB-1111_0002-A e KB-1111_0002-B)
5. Um ponto importante a ser ressaltado que durante a execuo do Script o MathCAD fica ocupado, levando um
tempo para terminar todos os comandos, sendo assim, utilize este recurso apenas quando for realmente
necessrio para evitar lentido durante os clculos.
Pgina |4 de 5

Base de Conhecimento SchuF Fetterolf do Brasil


KB-1111_0002

6. Para a verso 15 do MathCAD, quando se utiliza mais de um recurso de controle necessrio nome-los
diferente, pois caso contrrio o software apenas registrar o estado do ultimo controle e quando aberto todos
os demais controles sero setados igualmente. Para renomear os controles siga a instruo abaixo:
6.1. Clique com o boto direito sobre o Controle e selecione Properties:

6.2. Na janela que se abre alterar o campo "Name used for this in the script" com o nome escolhido para o comando:

6.3. No esquea de utilizar o mesmo nome dentro do Script de Comandos:

Pgina |5 de 5