Você está na página 1de 61

DATAMINE Latin America Fone: +55 31 225 6855

Rua Antônio de Albuquerque, 717 Fax : +55 31 225 6855


Sala 1003/ CEP 30112-010 E-Mail: info@datamine.com.br
Belo Horizonte, MG
BRASIL

CURSO DE SCRIPTING LANGUAGE


PARA DATAMINE STUDIO
Datamine Latin America Tutorial Script
________________________________________________________________________

Índice:
1 Introdução ao Scripting 4
2 Usando FrontPage 2000 5
? Configurando o FrontPage 5
? Instalando o Microsoft Script Editor 6
3 Primeira Lição: Introdução para salvar, repetir e diálogos simples 7
3.1 Salvando e repetindo um scripting 7
? Começando a gravação do script 7
? Parando a gravação do script 8
? Repetindo o script 8
3.2 Visualizando o script 9
? Visualizando a fonte HTML 9
? Salvando a cópia de referência do Script 10
? Salvando a imagem do logo Datamine 10
? Rodando o Script pelo Internet Explorer 11
3.3 Sintaxe dos comandos Datamine 11
? Colocar quadro 11
? Sintaxe do comando Datamine 12
? Exemplos 12
3.4 Método de Adição de Janelas 13
? Adicionando alert() 13
? Adicionando prompt() 14
? Adicionando confirm() 15
? Sumário 16
4 Segunda Lição - Introdução para ao Script Library Component 17
? Usando o SLC 17
? Browser do arquivo Datamine 18
4.1 Adicionando o Browser de Arquivo de Projeto 19
5 Terceira Lição - Exemplo de Criação de Polígono 21
? Iniciando Datamine Studio 21
5.1 Criando a Interface 22
? Desenhando uma tabela para conter objetos de interface 22
? Adicionando textos e caixas de texto 22
? Adicionando caixas de checagem para seleção de dados 23
? Adicionando botões “OK” e “Cancel” 23
? Especificando nomes e valores para os controles 23
? Arrumando a tabela 24
? Dê à página um título e salve -a 25
? Link com o Padrão Datamine (CSS) 25
5.2 Adicionando o Script 26
? A janela do evento onload 26
? O evento onclick para o botão “OK” 27
? O que este Script faz? 28
5.3 Rodando o Script 30
? “Debugando” seu Script 30
? Sugestões para extensões mais avançadas 31
6 Lição Quatro - Introdução para ler e copiar 32
? Iniciando 32
6.1 Criando a Interface 33
? Criando uma tabela para conter os objetos de interface 33
11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE -2-
Datamine Latin America Tutorial Script
________________________________________________________________________
? Adicionando textos e caixas de textos 33
? Adicionando botões “Browse” 33
? Atribuindo nomes e valores para os comandos 34
? “Link” para as planilhas padrão do Datamine Studio 34
? Dando um título para a página e salvando 35
6.2 Adicionando o Script 36
? A janela evento Onload 36
? A janela evento onunload 37
? O manipulador do botão OK onclik 37
? Os botões de Browse 38
? Rodando o Script 39
? Compilando seu script 39
6.3 Sugestões para extensões adicionais 40
? Copie um único campo 40
? Copiando múltiplos campos 41
7 Quinta Lição - Introdução para rodar uma macro de um script 43
7.1 Exemplo de Macro usando XRUN 44
7.2 Criando a Interface 46
? Atribuir Nomes e Valores para os Controles 47
7.3 Adicionando o Script 48
? Eventos para serem definidos 48
? Métodos do Script Library Component 48
? Microsoft Script Editor (MSE) 49
? Caixa de texto da entrada do arquivo de calares – tbIN1 50
? Botão para escolha do arquivo de colares de entrada - btnBrowseIN1 51
? Botão para selecionar arquivo de saída – btnBrowseOUT1 51
? Criar botão de plotagem – btnCreatePlot 51
? Botão de carregamento padrão – btnLoad 52
? Evento Window onload 52
? Conectando a biblioteca SLC 53
? Janela de Evento onunload 54
? O script completo 54
7.4 Rodando o Script 54
? Edite a Macro 54
? Rodando o Script 55
? Validação 55
8 Sexta Lição - Introdução para Exemplos de Scripts 55
8.1 Criação de um Protótipo de Modelo 56
? Objetos HTML 56
? Métodos SLC 57
? Criando a Wireframe 57
? Comandos com Respostas Interativas 58
? Barra de Progressão 58
? Pontos a serem observados 59
8.2 Exemplo de Macro 2 59
8.3 Acessando Registros e Valores de Campos 60
8.4 O método DCM de menu de Comando 60
? Exemplo Script 61

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE -3-
Datamine Latin America Tutorial Script
________________________________________________________________________

1 Introdução ao Scripting

Datamine Studio traz uma novidade: um modelo de interface que permite a você escrever
scripts usando JavaScript ou VBScript. Estes scripts estão inseridos num documento
HTML, que podem ser carregados para a interface do Datamine Studio para executar
comandos Datamine. Tanto quanto rodar comandos individuais de scripts você também
pode rodar as macros e CL’s que vem sendo ao longo do tempo uma característica da
Datamine Systems.

A linguagem HTML pode ser usada para criar uma interface gráfica simples e mais
compreensiva para scripts. Este pode ser visto como um substituto do comando
!SCREEN, com a vantagem de ser muitas vezes mais poderoso.

A maneira mais fácil para começar a utilizar esta


ferramenta poderosa é gravar um script selecionando
Tools | Start Script Recording na barra de menu do
Datamine Studio. Deste modo, cria-se um documento
HTML simples, com botões de Execute e Help, que
permitem que você execute novamente a seqüência
de comandos registrada.

Contudo, você poderá fazer mais que isso. Você


poderá mudar a interface de maneira que, por exemplo, possa especificar nomes de
arquivos de entrada e saída; especificar campos e valores de parâmetros e adicionar
botões de ação, caixas de texto, caixas de verificação e outros.

Alterações na interface são feitas editando o arquivo HTML. Entretanto, tanto quanto
adicionar uma caixa de texto ou botões de ação, você também deverá definir a ação ou
evento que ocorre quando você entra com dados dentro da caixa de textos ou clica o
botão. Isto é feito usando-se JavaScript ou VBScript. Você pode executar comandos das
janelas de Design ou da Base de Dados utilizando estes scripts asssim como carregando
as funções habituais do programa. Você pode, também, fazer interfaces integradas com
outros sistemas através de scripts (Ex. AutoCad, Excel, Word ou qualquer outro aplicativo
executável).

Estamos fornecendo algumas funções JavaScript úteis para simplificar tarefas como rodar
macros adaptando-as às listas selecionadas. Estas são fornecidas como parte de uma
biblioteca básica “SLC” (Script Library Component), que é descrita mais adiante neste
tutorial.

Este tutorial leva você através de todos os passos de rotinas e execução para projetar sua
própria interface e adicionar os scripts. A finalidade do tutorial não é ensinar HTML e Java
Script. Ambos são softwares de outras empresas, existindo muitos livros e outros recursos
que ensinam a usá-los de forma correta. Este tutorial concentra ferramentas que são
necessárias para criar e administrar páginas HTML, macros e outros arquivos que são

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE -4-
Datamine Latin America Tutorial Script
________________________________________________________________________
usados no Datamine Studio. O seu entendimento do tutorial será bem mais fácil se você
já estiver familiarizado com os conceitos e métodos do JavaScript e HTML.

Dois livros úteis de JavaScript são:

??JavaScript: The Definitive Guide – 3ª edição – Autor: David Flanagan – Publicado


por O’Reilly e Associates, Inc. – ISBN: 1-56592-392-8.

??JavaScript Bible – 3ª edição – Autor: Danny Goodma, Brendan Eich – Publicado


por: IDG Books Worldwide – ISBN: 0-76453-188-3.

Usuários experientes irão reconhecer a disponibilidade de uma interface COM com todos
os comandos Datamine Studio, abrirá enormes possibilidades de integração do Datamine
Studio com outros Softwares dentro do sistema de sua empresa. Comandos do Datamine
Studio podem agora ser acessados e executados remotamente via Internet ou Intranet,
através de qualquer linguagem de programação ou sistemas, incluindo Access Basic,
Sybase PowerBuilder, Borland Delphi, Visual Basic ou C++.

2 Usando FrontPage 2000

Desenvolver páginas HTML e scripts requer mais que apenas um editor de texto. Existe
um grande número de editores HTML utilizáveis comercialmente e/ou como “freeware” ou
“shareware” na internet. Estes produtos se assemelham muito na criação de páginas
HTML, mas quase todos são desenvolvidos apenas para criar HTML para a internet e
poucos têm bom suporte para desenvolver e compilar scripts.

Microsoft FrontPage é a principal corrente da Microsoft em desenvolvimento como


produto para editar páginas HTML. Ele não é muito caro e contêm um bom editor gráfico
HTML e um excelente suporte para o desenvolvimento de scripts. Este é o pacote que
nós recomendamos para o seu uso.

Antes de você completar este tutorial, você necessitará de uma cópia do Microsoft
FrontPage 2000. Para checar se sua versão do FrontPage é a correta, carregue o
FrontPage e selecione Help | About Microsoft FrontPage.

A versão deve ser a 4.0.2.XXXX, similar a seguinte:

??Configurando o FrontPage

Quando se usa o script para enviar informações para um servidor internet ou intranet, os
vários objetos de interface (caixa de texto, caixa verificação, etc), que são usados para
especificar valores, são reunidos numa “figura”. Quando se pressiona o botão de enviar,
11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE -5-
Datamine Latin America Tutorial Script
________________________________________________________________________
os valores especificados por todos os campos numa figura são reunidos e transmitidos.
Isto é indispensável para um usuário de sripting, como mostrado neste tutorial.

Como padrão, o FrontPage automaticamente coloca os campos que você inseriu como
campos de um formulário. Para desabilitar esta função devemos selecionar Tools | Page
Options... desabilitando a segunda opção “Automatically enclose form fields within a
form”, conforme figura abaixo:

??Instalando o Microsoft Script Editor

O editor e compilador de script são manuseados por um componente opcional, que não é
instalado junto com o FrontPage 2000. Ele é chamado de Microsoft Script Editor. Se
você não instalou o script editor, recarregue seu CD do FrontPage e carregue os
componentes: HTML Source Editing e Web Scripting a partir do Office Tools.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE -6-
Datamine Latin America Tutorial Script
________________________________________________________________________

3 Primeira Lição: Introdução para salvar, repetir e diálogos simples

As principais finalidades das duas primeiras lições são:

?? Usar comandos de gravação de script para salvar e reproduzir interativamente.


?? Introduzir três comandos script largamente utilizados: alert(), confirm(), e prompt(),
como simples caixas de diálogo.
?? Utilizar o browser Datamine para selecionar arquivos.

Carregue o Datamine Studio e selecione o Tutorial no help | Scripting Tutorial. Se você


perceber sua falta quando instalar o Datamine Studio, o banco de dados estará no
diretório: c:\database\tutorial.

3.1 Salvando e repetindo um scripting

Como primeira parte da lição, você deverá salvar e repetir a seqüência de comandos do
Datamine para associar e avaliar dados do Downhole Explorer.

??Começando a gravação do script

?? Comece automaticante o script clicando S? na barra de ferramentas, ou


selecionando Tools | Start Script Recording na barra de menus.
?? Quando perguntado pelo nome do arquivo script HTML, entre com o nome
desurvey.
?? Entre com a seguinte seqüência de comandos:

1. !SORTX &IN=_collars &OUT=tempcollars *KEY1=BHID


2. !SORTX &IN=_assays &OUT=tempassays *KEY1=BHID KEY2=FROM
3. !SORTX &IN=_geology &OUT=tempgeology *KEY1=BHID *KEY2=FROM
4. !SORTX &IN=_surveys &OUT=tempsurvey *KEY1=BHID *KEY2=AT
5. !JOIN &IN1=tempcollars &IN2=tempassays &OUT=temp1 *KEY1=BHID
@SUBSETR=1.0
6. !HOLMER &IN1=temp1 &IN2=tempgeology &OUT=temp2 *BHID=BHID
*FROM=FROM *TO=TO
7. !DESURV &IN1=temp2 &IN2=tempsurvey &OUT=holes
8. !DDLIST &IN=holes

Se você errou quando entrou com algum dos oito comandos, não se preocupe. Ignore o
erro e entre com o comando correto.

Os comandos acima possuem a característica de estarem combinados dentro do


HOLES3D, que fornece as mesmas ferramentas para validação de dados. Contudo, eles
ainda são utilizáveis, como mostrado acima.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE -7-
Datamine Latin America Tutorial Script
________________________________________________________________________
??Parando a gravação do script

Termine automaticamente o registro usado clicando em S¦ ou Tools | Stop Script


Recording.

??Repetindo o script

Agora, repita o script que foi salvo usando S? ou selecionando Tools | Run Script.
Quando for pedido o nome do script, selecione desurvey.htm. Assegure-se de que a
Customization Window esteja sendo e xibida e selecione a janela de script::

Clique no botão Execute, e os comandos serão repetidos. Não se preocupe se os


comandos não se repetirem corretamente caso você tenha cometido um erro quando os
registrou. Mostraremos a saída na próxima sessão.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE -8-
Datamine Latin America Tutorial Script
________________________________________________________________________
3.2 Visualizando o script

Primeiramente, clique no botão Help dentro da interface script, na Customization


Window. Este conduz a outra janela, dando uma breve descrição das ferramentas de
scripting do Datamine. Leia a descrição! Desejamos abranger todas essas opções com
detalhes neste tutorial.

??Visualizando a fonte HTML

Como mencionamos anteriormente, iremos utilizar o FrontPage 2000 para editar o script.
Contudo, é possível ver e editar o script usando um editor de texto, embora este não seja
o caminho recomendado para fazê -lo.

Clique com o botão direito dentro do fundo cinza da faixa


script na Customization Windows e você obtêm um
menu. Selecione View Source (Exibir Código Fonte) e
o arquivo HTML, desurvey.htm, que você fez deve ser
carregado no Notepad.

?? Não entre em pânico! O FrontPage2000 e o editor de script Microsoft script


devem fornecer a ferramenta que você necessita para editar este arquivo. Contudo,
ele é útil tendo um visualizador rápido do arquivo para se ver o que está envolvido.
?? As seis primeiras linhas do código HTML contêm o cabeçalho.
?? Então, existem quatro parágrafos de comentários, cada linha começa com //, que
contam para você como o script trabalha. Leia.
?? Entre as duas séries de linhas de comentários começados por //--------estão
algumas linhas do JavaScript. Estas estão iniciando o Datamine Command

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE -9-
Datamine Latin America Tutorial Script
________________________________________________________________________
Mananger e o Browser, dependendo de que método é selecionado, que serão
abordados posteriormente neste tutorial.
?? Então, nós temos alguns comentários a mais que acompanham duas funções
JavaScript – btnExecute_onclick() e btnHelp_onclick(). Estas funções
descrevem qual ação é feita quando os botões Execute e Help são clicados.
?? E, finalmente, existe o código HTML descrevendo a interface – o logo Datamine e
os botões Execute e Help.

??Salvando a cópia de referência do Script

Esperamos que você tenha criado com sucesso sua própria cópia do desurvey.htm.
Contudo, se você precisa ver a cópia referência e/ou salvar a cópia, acesse o arquivo
desurvey.htm presente no tutorial encontrado no DMStudio.

Este deverá abrir uma nova janela e exibirá o Script. Para ver o código atual, você deve
clicar com o botão direito na janela e selecionar View Source (Exibir Código Fonte),
como descrito anteriormente. Se você precisar salvar uma cópia do arquivo selecione File
| Save As na barra de ferramentas do Notepad. Você deverá usar o browser para
navegar para o diretório do projeto Tutorial. Você deverá, também, escolher um nome
para o arquivo. Por exemplo, chame o arquivo de desurvey1.htm. Adicione a
extensão.htm no nome do arquivo e não use a extensão .txt.

Este método de salvar a cópia referência de um arquivo é freqüentemente usado neste


tutorial, portanto faça para que você entenda.

??Salvando a imagem do logo Datamine

O Script executa o logo do Datamine depois do nome do script. Contudo, ele assume que
o Logo Image (dmlogo200x93.gif) está no diretório do seu projeto, o qual não é o caso,
inicialmente. O código HTML que mostra a imagem está perto do fim do arquivo:

<td><img src="dmlogo200x93.gif"
alt="Datamine: The Mining Software" width="100"
height="46"></td>

Para obter a imagem para executar você pode também:


?? Copiar a imagem para o diretório do seu projeto. Você encontrará o arquivo:
dmlogo200x93.gif, no diretório onde está instalado, usualmente, seu Datamine –
c:/Program Files/datamine/DmStudio.140/Scripts/Common/Images

Ou,
?? Adicionar o atalho para o script:

<td><img src="c:/Program Files/datamine/DmStudio.140/Scripts/


Common/Images/dmlogo200x93.gif"
alt="Datamine: The Mining Software" width="100"
height="46"></td>

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 10
-
Datamine Latin America Tutorial Script
________________________________________________________________________
O primeiro é provavelmente o melhor, desde que o arquivo esteja no diretório correto
quando você salvar outros scripts no tutorial. Caso contrário você precisará editar cada
script para salvá-los. Você pode executar o script sem o Logo, mas ele não é irá ficar tão
bonito!

??Rodando o Script pelo Internet Explorer

Em vez de salvar uma cópia do script e rodá-lo na janela Customization Window, no


Datamine Studio, você também pode rodar o Script diretamente na janela do Internet
Explorer. Clique no botão Execute e o script rodará. Você já deve ter o caminho do
Datamine carregado (caminho da cópia). Contudo, ele é o melhor para rodar dentro do
Datamine Studio, com esta flexibilidade você acessa imediatamente todos os comandos
Datamine e ele é mais fácil para executar o script e outra janela windows,
simultaneamente.

3.3 Sintaxe dos comandos Datamine

O JavaScript descrevendo a ação executada quando o botão Execute é clicado está


mostrado abaixo. Você pode ver que cada comando DATAMINE é executado usando a
função dm.comand(). O nome do comando e os arquivos, campos, e parâmetros
correspondentes são entendidos como uma string característica “ie” (&, *, @, {}, ‘ ’), que
está entre parênteses. Se a string se estende para duas ou mais linhas então cada linha é
uma string separada e as strings são ligadas usando o caractere + .

??Colocar quadro

Note que como nas macros, simbologias precedem os arquivos por & (eg &IN), nomes de
campos por * (eg *BHID) e parâmetros por @ (eg @BINS=5). Contudo, existem
diferenças com relação às macros como, por exemplo, o sinal de igual (=) entre o símbolo
e o nome do arquivo atual (eg &IN=_collars) e entre o símbolo e o nome do campo (eg

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 11
-
Datamine Latin America Tutorial Script
________________________________________________________________________
*KEY1=BHID). Os arquivos, campos e parâmetros distribuídos são separados por um ou
mais espaços.

Se você cometeu um erro quando entrou com os comandos você pode editar o
código.Tenha certeza que você guardou a sintaxe correta. Se enquanto entrava com os
comandos você clicou na janela Design (Design Window), você encontrará o comando
dm.command (“select-string”); tendo sido recuperado. Este pode ser deletado.

Se você tiver feito alguma mudança, salve o arquivo antes de sair. Para rodar um script
editado você pode também clicar S? ou selecionar Tools | RunScript, como
anteriormente, ou você pode ainda clicar com o botão direito na caixa cinza da janela do
script. No menu que irá aparecer selecione Refresh e rode novamente clicando no botão
Execute.

??Sintaxe do comando Datamine

A sintaxe completa para um comando Datamine é:

Note que:

?? “....” significa: ‘pode ser repetido um número a qualquer momento’;


?? [name=], significa que o nome do arquivo simbólico é opcional;
?? Datamine Studio usa “&”, “*” e “@” como no Datamine 5;
?? Parâmetros podem ter valores múltiplos, quando apropriado;
?? Nomes de arquivos longos (mais de 20 caracteres) podem ser usados,
enquanto as macros são restritas a oito caracteres.

??Exemplos

Copie os registros do arquivo “collars” para o arquivo “temp” usando o critério de restrição
XCOLLAR>=10200:

dm.command (“copy &in= collars &out=temp {XCOLLAR>10200}”);

3.3.1.1 Abra o arquivo “strings” na janela Design, sem filtro

dm.command (“open-file &strings {}”);

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 12
-
Datamine Latin America Tutorial Script
________________________________________________________________________
Crie uma nova string, na forma de um quadrado, na janela Design:

dm.command (“new-string “ +
“ @point= 0, 0, 0, 1“+
“ @point= 0, 100, 0, 1“+
“ @point= 100, 100, 0, 1“+
“ @point= 100, 0, 0, 1“+
“ @point= 0, 0, 0, 4 “);
dm.command (“cancel-command”);

3.4 Método de Adição de Janelas

Existem três métodos de adição de janelas largamente utilizadas, que podem ser
adicionadas no seu script:

?? alert() – gera uma mensagem de aviso na tela


?? confirm() – pede ao usuário para clicar o botão OK ou Cancel para confirmar ou
recuzar uma operação
?? prompt() – pede ao usuário para entrar com os dados

Todos os três métodos surgem em caixas de diálogo simples.

??Adicionando alert()

O método alert() é usado para executar uma caixa de diálogo contendo o valor de uma
variável ou de um texto, na forma de string. Por exemplo, insira um alert() no começo da
função para mostrar um título. Para fazer este script clique com o botão direito e selecione
View Source, depois adicione o alert() como mostrado abaixo.

Salve o arquivo e retorne para o Datamine Studio. Clique com o botão direito na caixa
cinza do script na Customization Window para executar o menu. Selecione Refresh,
depois Execute.

Você terá a entrada da mensagem “alert”


imediatamente executada. Clique OK para
continuar, rodando o script.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 13
-
Datamine Latin America Tutorial Script
________________________________________________________________________
??Adicionando prompt()

O método prompt() executa uma caixa de diálogo que inclui uma mensagem determinada
por você e um campo para que você possa entrar com os dados. Dois botões, OK e
Cancel lhe dão as opções para:

?? OK – aceita o dado de entrada e continua a operação;


?? Cancel – cancela a operação total.

O método prompt() tem dois argumentos. O primeiro é uma mensagem rápida que é
mostrada na caixa de diálogo. O segundo argumento mostra uma resposta, que é inserida
numa caixa de texto. Se você não tem necessidade de especificar uma resposta basta
inserir duas aspas duplas ““.

O método retorna um valor quando você clica em um dos botões. Clicando o botão
Cancel, retorna um valor null, independente de qual é a caixa de texto. Clicando o botão
OK, retorna o valor da string texto, na caixa de texto.

Use o método prompt() para solicitar o nome do arquivo collars, e armazene o valor na
variável cfile. Você poderá adicionar um texto para checar o valor do cfile. Se cfile está
vazio (“”) ou null então o ‘enter’ terminará a função.

Finalmente, você precisará substituir o arquivo _collars por uma variável no comando
Datamine que irá executar o comando SORTX no arquivo. Observe que cfile é uma
variável, e não deve ser incluída dentro de aspas duplas. Portanto, o argumento para o
comando dm é dividido em três partes separadas pelo sinal de +, como mostrado no
exemplo abaixo. Tenha certeza de que existe um espaço imediatamente em frente a
&OUT=tempcollars, de maneira que arquivos, campos e parâmetros estejam separados.

Salve o arquivo texto, atualize o script (refresh) e execute-o. Após o alert() que mostra o
título, o prompt() irá executar a caixa de diálogo.

Para aceitar o nome do arquivo _collars, clique OK. Neste instante o script irá rodar e
executar o comando Datamine.
11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 14
-
Datamine Latin America Tutorial Script
________________________________________________________________________

Você pode, agora, adicionar rapidamente outros quatro arquivos, usando os nomes:

?? assays – afile
?? geology – gfile
?? survey – sfile
?? holes – hfile

Não esqueça de substituir o nome de todos os arquivos (_assays, _geology, etc) pelos
nomes das variáveis correspondentes (afile, gfile etc). Em todas é necessária a
declaração do comando dm.

??Adicionando confirm()

O método confirm() executa um diálogo que inclui uma mensagem específica e


acrescenta dois botões, Cancel e OK. É similar ao prompt(), exceto que a única resposta
é para um clique em um do dois botões. O método retorna o valor Booleano verdadeiro se
OK é clicado ou falso se Cancel. Você pode adicionar o código para a ação, de acordo
com o botão que for clicado. Por exemplo, use confirm() para mostrar o nome de um
arquivo que está sendo selecionado, e para terminar a operação clicando em Cancel.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 15
-
Datamine Latin America Tutorial Script
________________________________________________________________________
\n é um comando que ao ser inserido dentro de um texto começará uma nova linha.

O ! em frente de confirm() inverte o valor Booleano. Por exemplo, se clicar Cancel, o valor
de confirm() será falso. Contudo, adicionando ! a resposta tornar-se-á verdadeira. Então,
a ação será retornada e a operação terminará. O diálogo confirm() será como:

??Sumário

Os métodos alert() e confirm() são particularmente úteis para compilar um script. Embora,
o método prompt() possa ser usado para entrar com um valor, ele é, certamente, um
caminho grosseiro para fazer uma interface atrativa, como veremos em seguida. Para ver
o script completo, contendo alert(), prompt() e confirm() clique no botão desurvey.htm
encontrado no tutorial de script encontrado no Datamine Studio.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 16
-
Datamine Latin America Tutorial Script
________________________________________________________________________

4 Segunda Lição - Introdução para ao Script Library Component

A SLC (Script Library Component) básica do Datamine proporciona uma série de funções
JavaScript úteis para simplificar tarefas semelhantes como acessar o Browser, rodar
macros e criar listas de opções. Para ver um sumário das propriedades e métodos
associados com o SLC vá ao manual de script encontrado no Help do Datamine Studio
abra a seção “Introduction to the Script Library Component” e clique no botão SLC, que se
encontra na página. Escolha uma propriedade ou um método da lista para exibir os
detalhes correspondentes. Nós usaremos algumas dessas propriedades e métodos em
outra etapa deste tutorial.

Na lição anterior, Visualizando o Script, sua atenção estava voltada para os comentários
que são incluídos no script, quando você usa salvar automaticamente. Datamine Studio é
operado por um script via dois objetos ActiveX: o Datamine Command Manager (ou
DMC), e o Project File Browser (dmBrowser). Um script salvo automaticamente inclui o
código para iniciar os dois objetos, que criam uma conexão entre script e o seu projeto
Datamine. O método default, (method = 1), inicia o DMC e o dmBrowser Active X.

Alternativamente, se você quizer customizar o script, você deve preferir usar o SLC. Ao
iniciar o SLC, o DMC e o dmBrowser são iniciados automaticamente para você, e
adicionalmente, o SLC proporciona um número de “funções convenientes” que fazem a
customização do script facilmente. Para usar o SLC você deve instalá-lo do CD de
instalação do Datamine Studio. Ele não está instalado como padrão, então você deve
selecionar a opção para instalá-lo. Você deve, também, rodar a versão 5, ou superior do
Internet Explorer.

??Usando o SLC

Primeiro faça uma cópia do script (desurvey.htm) que você criou no exercício anterior, e
nomeie o novo script como: desurvey2.htm. Então, edite o novo script e altere o method =
1 para method = 2, assim, você pode usar a livraria.

// ------------------------------------------------------------------------
var method = 2;
var dm = null;
if (method == 1) { // Initialise the DCM and browser ActiveX Objects

Note que para selecionar o método 2, as duas linhas do código de inicialização são:

dm = new ActiveXObject("dmLib");
dm.initialize(self);

A variável “dm” é apenas um nome usado no script. Ele não tem que ser “dm”. Na
verdade, em alguns exemplos posteriores, nós usaremos “dmlib”.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 17
-
Datamine Latin America Tutorial Script
________________________________________________________________________
??Browser do arquivo Datamine

No exemplo seguinte usaremos o Browser para selecionar arquivos ao invés da janela


usada no método prompt(). Este é o mesmo Browser que você usa quando carrega
arquivos Datamine.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 18
-
Datamine Latin America Tutorial Script
________________________________________________________________________
4.1 Adicionando o Browser de Arquivo de Projeto

O Browser de Arquivo de Projeto Datamine é acessado usando o método browseForFile().


Existem três argumentos para este método.

1. O tipo do arquivo:

As opções são:

typeAny typePen typeString

typeBlast typePlot typeSurveys

typeCollars typePoints typeVariogram

typeDownhole typeResults typeWfp

typeHoles typeRosette typeWft

typeModel typeSection

Se o arquivo requerido não é do tipo especificado, então você deverá usar o


typeAny

2. O nome do arquivo padrão:

Use null ou ““, se não existe um padrão apropriado

3. Permitir um novo nome de tabela (verdadeiro ou falso)

Verdadeiro se um novo nome de arquivo pode ser especificado e Falso se o


usuário selecionar um arquivo existente.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 19
-
Datamine Latin America Tutorial Script
________________________________________________________________________
Substitua o método prompt() pelo arquivo Browser, para um dos cinco arquivos. Por
exemplo:

function btnExecute_onclick()
{
alert("This script desurveys downhole data.");

var cfile = dm.browseForFile (dm.typeCollars, "_collars",


false);
var afile = dm.browseForFile (dm.typeDownhole, "_assays",
false);
var gfile = dm.browseForFile (dm.typeDownhole,
"_geology", false);
var sfile = dm.browseForFile (dm.typeSurveys, "_surveys",
false);
var hfile = dm.browseForFile (dm.typeHoles, "_holes",
true);
if (hfile == "" || hfile == null) return;

if (!confirm("The input files you have selected are:"

Note que não há necessidade de testar se os primeiros quatro arquivos estão vazios ou
null, porque ao marcar o terceiro argumento como “falso” asseguramos que o arqui vo já
existe. Entretanto o arquivo de saída pode ser um novo arquivo (true), e assim
precisamos testar o valor do hfile.

No Tutotial de Script encontrado no Help do Datamine Studio, na seção “Adding the


Project File Browser” você pode encontrar o arquivo desurvey2.htm já editado.

Note que os nomes de todos os métodos e propriedades são sensitivos a


maiúscula. Por isso, o método browseForFile deve ter dois F’s maiúsculos e a
propriedade typeCollars deve ter uma letra C maiúscula.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 20
-
Datamine Latin America Tutorial Script
________________________________________________________________________
5 Terceira Lição - Exemplo de Criação de Polígono

Esta lição introduz muitas das idéias a respeito do Datamine Studio Scripting, e
desenvolve um exemplo muito útil, passo a passo. Você estará desenvolvendo um nova
interface com caixas de texto e botões, e adicionalmente, um Script. A partir de agora
você estará usando Microsoft FrontPage 2000 e o Microsoft Script Editor (MSE) como
descrito na introdução deste tutorial. Certifique-se de que ambos estão instalados.

O Datamine Studio contém um processo chamado CONPOL, para encontrar uma


envoltória convexa ao redor de uma série de pontos. O Script desenvolvido neste tutorial
integra o processo CONPOL com a tela de Design do Datamine Studio, de maneira que
qualquer seleção de dados de pontos ou strings correntemente na tela de Design possa
ser passado para CONPOL, e o polígono resultante carregado de volta para dentro da
janela de Design. O Script processa coordenadas X e Y, projetadas em uma vista plana.

??Iniciando Datamine Studio

Crie alguns dados de pontos na janela de Design do Datamine Studio. Escolha duas ou
três cores diferentes para os dados de pontos.

Provavelmente você está rodando este tutorial do Help | Scripting Tutorial, menu
Datamine Studio. Isto significa que se você minimizar o Datamine Studio então o tutorial é
minimizado também. Se você quiser você pode rodar uma versão independente deste
tutorial dando dois clicks no arquivo script_tutorial.chm que se encontra no diretório
onde foi previamente instalado o Datamine Studio, geralmente é: c:/Program files/
datamine/DmStudio.140. Isto permitirá a você minimizar o Datamine Studio enquanto roda
FrontPage 2000.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 21
-
Datamine Latin America Tutorial Script
________________________________________________________________________
5.1 Criando a Interface

No canto inferior esquerdo da janela FrontPage estão três abas: Normal, HTML e Preview
ou Visualização. A aba Normal é onde projetamos a forma HTML, e a aba Preview ou
Visualização é onde podemos visualizar o que projetamos tão bem como operar controles
e comandos. Usamos a vista HTML somente quando estamos adicionando o Script na
página.

Esta é a interface que criaremos.

??Desenhando uma tabela para conter objetos de interface

Com a aba Normal selecionada, selecione Table | Insert | Table... e especifique uma
tabela com cinco linhas e duas colunas.

Ao invés de Table | Insert | Table... você pode usar Table | Draw Table... e
efetivamente desenhar as linhas separando as linhas e duas colunas. Esta característica
é particularmente utilizada se você deseja desenhar tabelas com arranjos complexos de
células.

??Adicionando textos e caixas de texto

Em seguida, adicionaremos duas caixas de texto no topo de duas células do lado direito
da tabela. O texto descrevendo o conteúdo destas caixas vai para o topo de duas células
do lado esquerdo.

Mova o cursor para a célula mais alta no lado esquerdo e digite “Distância - Extensão”.
Então mova para a segunda linha, a coluna e digite “Filtro”. Agora nós adicionaremos as
duas caixas de texto. Posicione seu cursor no topo da célula mais alta do lado direito, e
selecione Insert | Form | One-Line Text Box. O FrontPage inserirá a caixa de texto.
Agora insira outra caixa de texto no lado direito da coluna, próximo da célula de “Filtro”.

Você pode preferir utilizar os elementos do formulário como uma barra de

ferramentas. Para fazer isto, selecione Insert | Form,


então arraste o menu para transformá-lo em uma barra de ferramentas.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 22
-
Datamine Latin America Tutorial Script
________________________________________________________________________
??Adicionando caixas de checagem para seleção de dados

Insira a caixa de checagem (Insert | Form | Check Box ou ) dentro da 3ª célula a


direita e adicione o texto “Inclusão de pontos” ao seu lado.

Insira outra caixa de checagem dentro da célula de baixo, com o texto “Inclusão de dados
de strings”.

??Adicionando botões “OK” e “Cancel”

Finalmente, adicionamos dois botões de função (Insert | Form | Push Button ou )


para as duas células na última linha. Não se preocupe com os rótulos dos botões por
enquanto (eles dirão “Button ou Botão” como padrão); nós o editaremos mais tarde. A
interface deveria agora ser como mostrada abaixo. Dependendo da situação das células
padrão você deve ou não ter uma margem ao redor de cada célula. Nós lidaremos com
isto mais tarde.

??Especificando nomes e valores para os controles

Antes que você faça alguma coisa acontecer, precisamos destinar nomes e valores
iniciais para todos os controles da interface. Os nomes podem ser qualquer coisa que
você deseje, mas lembre-se que letras maiúsculas e minúsculas são distintas (OK é
diferente de Ok). Uma boa idéia é fixar os nomes dos controles com duas ou três letras
que identificam o tipo de controle, exemplo “btnOK” ou botão “OK”, ou “tbSelectedFile”
para uma caixa de texto que contenha o nome do arquivo selecionado.

Existem três caminhos para especificar um nome para um controle:

1 – Selecione-o com o mouse e pressione Alt-Enter.


2 – Clique com o botão da direita para exibição do contexto menu, e selecione Form Field
Properties... ou Propriedades do campo do Formulário...
3 – Dê dois cliques no controle.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 23
-
Datamine Latin America Tutorial Script
________________________________________________________________________
Não importa qual método você use, todos podem ser visualizados na caixa Properties
dialog. Faça isto primeiro para a caixa de texto “Distância - Extensão”. Especifique o
nome tbExtension e posicione o valor inicial para “0”.

Certifique-se do uso dos nomes exatos para os controles como dados no texto.

Em seguida, designe o nome tbFilter (tb de text box) e nenhum valor inicial para a
segunda caixa de texto. Então, designe o nome cbIncludePoints (cb de check box) para a
caixa de verificação “Incluir os pontos”, e selecione “Checked” (ou verificado) como o
“Initial state” (Estágio Inicial). Nomeie a segunda caixa de verificação cbIncludeStrings e
deixe o “Initial State” como “Not Checked” (Não verificado).

Finalmente, nomeie o botão da esquerda como “btnOK” e estabeleça o Valor/Rótulo para


“OK” ( ), e nomeie o botão da direita como “btnCancel” e estabeleça seu Valor/Rótulo para
“Cancel”.

??Arrumando a tabela

Agora você pode melhorar o aspecto da tabela. Este passo não é absolutamente
necessário, mas aperfeiçoará a integração visual com o Datamine Studio, e fará a
interface funcionar melhor se a janela Script no Datamine Studio for redimensionada.

Todos os melhoramentos no layout da tabela podem ser feitos com um clique com o
botão direito do mouse, e mudando os valores nos diálogos resultantes. Contudo esta
lição lhe dará alternativas de comando do menu.

Primeiro selecione todas as células da tabela, clicando e arrastando o mouse com o botão
esquerdo pressionado. Selecione Table | Properties | Cell e desative as caixas “Specify
Width” e “Specify Height”, para permitir o browser selecionar a melhor largura e altura
para as células.

A tabela e a largura e altura da célula somente serão ajustadas se você usar a


opção “Draw Table”, ou se você redimensionar a tabela por outra forma qualquer.

Em seguida, selecione toda a tabela (coloque o ponteiro do mouse dentro da tabela e


selecione Table | Select | Table... sim, isto é diferente de selecionar todas as células da
tabela!), e então selecione Table | Properties | Table. Mude o alinhamento da tabela, o
tamanho da borda, a largura e altura mínima para igualar ao exemplo abaixo:

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 24
-
Datamine Latin America Tutorial Script
________________________________________________________________________
Alinhando como “center” manteremos a tabela no centro da janela do Script quando esta
for redimensionada.

Especificando o tamanho da borda para zero ocultaremos as linhas entre as colunas e


linhas, mas a estrutura da tabela colocará as coisas em seus lugares devidos.

Não verificando a largura e altura mínima permitirá o redimensionamento da tabela para o


menor tamanho possível.

Finalmente, realce a linha da base das células (clique e arraste o mouse) e selecione
Table | Properties | Cell. Mude o alinhamento Horizontal para o Centro, para centralizar
os botões nas células.

??Dê à página um título e salve-a

A interface está quase completa. Você deveria dar à página HTML um nome (Clique com
o botão direito, selecione Page Properties... e com um título como “Polygon Script”), e
então salve a página no mesmo diretório do Datamine Studio Project, com o nome
“polygon.htm”.

??Link com o Padrão Datamine (CSS)

Novamente isto não é necessário, mas linkar sua página HTML com o Padrão Datamine
será muito melhor para a integração visual do sistema com o script.

O padrão Datamine é mantido em um arquivo chamado , este arquivo pode


ser aberto no Tutorial de Scripiting encontrado no Help do Datamine Studio, na seção Link
to the Datamnie Studio Standart Style Sheet no botão dmstyle.css. Ele deve ser
colocado no mesmo diretório em que está o script elaborado anteriormente
(polygon.htm). Se você necessitar de uma cópia, clique e abra o arquivo, selecione todo
o texto e cole em outro arquivo chamado dmstyle.css que pode ser criado no Notepad.

Para linkar o Padrão Datamine com a página HTML, seleciona Format | Style Sheet
Links..., e pressione Add e localize o arquivo dmstyle.css.

Agora clique na aba Preview para ver como ficará sua interface.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 25
-
Datamine Latin America Tutorial Script
________________________________________________________________________
5.2 Adicionando o Script

O primeiro passo está completo: temos uma interface para usuário HTML, junto com
todos os ‘ganchos’ para o script.

Lembre-se, o importante aspecto novo do Datamine Studio é que ele pode ser
programado. A linguagem Script usada não é uma parte do Datamine Studio – você pode
usar uma das inúmeras linguagens de programação padronizadas: JavaScript, VBScript,
PerlScript, PowerBuilder’s PowerScript, etc. As duas linguagens que favorecem o
FrontPage são VBScript e JavaScript.

Ao contrário das macros e menus, scripts são geralmente constituídos por um número de
eventos manipuláveis, pequenas janelas do script são executadas pelo brownser quando
algum evento relevante ocorre. Somente dois eventos são manipulados neste script.

?? Quando a janela carrega, um evento denominado Window Onload e executado


fazendo conexões com o Datamine Command Manager (o “DCM”).
?? Quando o botão OK é pressionado, um evento denominado Onclick é executado
fazendo com que o script salve e processe pontos e/ou strings na janela de Design
do Datamine Studio.

??A janela do evento onload

Depois de realizarmos a interface gráfica em HTML podemos entrar com os eventos.


Clique primeiro na aba Normal do Frontpage, então selecione Tools | Macro | Microsoft
Script Editor do menu. Uma nova janela aparecerá, mostrando seu arquivo em HTML.

Como você estará usando o Microsoft Script Editor freqüentemente é uma boa idéia
adiciona-lo como um botão na barra de ferramentas. Selecione Tools | Customize e na
caixa de diálogo Customize selecione a tabela de comandos. Do painel de categorias

selecione Tools, e role os comandos até o ícone do Microsoft Script Editor ser
mostrado. Arraste o ícone e coloque-o em uma barra de ferramentas – por exemplo, barra
de ferramentas contendo os botões e caixas de texto.

Agora configure o Microsoft Script Editor para utilizar o Java


Script: selecione View | Property Pages, ou pressione Shift –
F4. Mude a linguagem padrão de Client Scripts para JavaScript,
e pressione “OK”. Você precisará fazer isto toda vez que usar o
Script Editor em um documento diferente. O Script Editor não
salva JavaScript como Default.

Agora, na barra de menu, selecione View | Toolbox, e View |


Other Windows | Script Outline. Você deve observar uma lista
de objetos que você adicionou para sua interface (btnCancel,
btnOK, etc). Clique duas vezes em “Window”, e dois cliques no
evento onload: o evento é escolhido toda vez que seu
documento é carregado para dentro do browser. O Script Editor insere uma linha de

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 26
-
Datamine Latin America Tutorial Script
________________________________________________________________________
comando em HTML necessário para conter seu Script, e define uma função
Window_onload ().

(Se o título diz Sub Window_onload(), o FrontPage ainda está configurado para usar
VBScript. Pressione Shift – F4 e mude-o antes de prosseguir).

Agora podemos entrar com o código JavaScript para ser executado quando este evento
ocorre. Primeiro precisa-se estabelecer a conecção entre o Script e a Datamine Studio
Scripting Library Component (“SLC”). Em termos de programação, precisamos criar um
inicializador para a SLC. Este é feito conforme a linha de comando abaixo:

dmlib = new ActiveXObject("dmLib");

Se você está lendo este documento on-line, copie as linhas JavaScript e cole na
janela de trabalho, usando Paste as HTML do menu Edit do FrontPage para
passar para seu documento HTML.

A linha de comando cria uma variável (global), chamada “dmlib”, através da qual nos
comunicaremos com o Datamine Studio. Consulte um manual JavaScript se você não
entendeu isto. Em seguida, precisamos dizer à biblioteca para iniciar-se. Entre com uma
segunda linha de código, que diz:

dmlib.initialize(self);

Observe que o programa do editor de Script ajuda você, mostrando uma lista de métodos
e propriedades disponíveis na biblioteca. Quando executado, o método inicial tentará
conectar a seção corrente executando o Datamine Studio. Portanto devemos antes de
rodá-lo estar com o Datamine Studio aberto.

??O evento onclick para o botão “OK”

Agora dê dois cliques em btnOK e dois cliques no evento onclick. Outra definição de
função, chamada btnOK_onclick(), é inserida. O Script Editor também modifica a HTML
que cria o botão OK, de maneira que esta função é chamada quando o evento é
escolhido. Role para a base do HTML para encontrar o comando <input> para o botão OK
observando o que tem foi inserido, se você está interessado.

Quando o botão é pressionado, o Script deve salvar o ponto e/ou dados da string,
processa-los usando CONPOL e outros comandos, e recarregar o polígono resultante de
volta para a Design Window do Datamine Studio. Este código é extremamente confiável,
mas razoavelmente extenso sendo mostrado na caixa abaixo. Se você estiver on-line
pode copiar o comando bastando apenas selecionar as linhas de comando com o mouse
e no menu que irá aparecer, ao se clicar na seleção com o botão direito, escolher a opção
“Copy”. Coloque a cursor dentro do corpo da função btnOK_onclick(), e use “Copy and
Paste with HTML” para adicionar o texto. Certifique-se que o código foi digitado
corretamente, como mostrado.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 27
-
Datamine Latin America Tutorial Script
________________________________________________________________________

dmlib.command("delete-file '_tmp*' 'Y'"); // Remove temporary work files

if (cbIncludePoints.checked) // Create file from point data with XP and YP


only
{
dmlib.command("write-points &_tmp001 {" + tbFilter.value + "}");
dmlib.command("close-file &_tmp001");
dmlib.command("extra &in=_tmp001 &out=_tmp002 " +
"'XP=XPT YP=YPT erase(XPT,YPT,ZPT,COLOUR,SYMBOL) go'");
}

if (cbIncludeStrings.checked) // Create file from string data with XP and YP


only
{
dmlib.command("write-all-strings &_tmp003 {" + tbFilter.value + "}");
dmlib.command("close-file &_tmp003");
dmlib.command("extra &in=_tmp003 &out=_tmp004 " +
"'erase(ZP,PTN,PVALUE,COLOUR,SYMBOL,LSTYLE) go'");

if (cbIncludePoints.checked) // Append string coordinates to point


coordinates
{
dmlib.command("append &IN1=_tmp002 &IN2=_tmp004 &OUT=_tmp005");
dmlib.command("copy &IN=_tmp005 &OUT=_tmp002");
} else
dmlib.command("copy &IN=_tmp004 &OUT=_tmp002");
}

// All X,Y coordinates are in _tmp002. Now run CONPOL.

var command = "conpol &IN=_tmp002 &PERIMOUT=_tmp001 *X=XP *Y=YP";

if (tbExtension.value != "")
command += " @EXTDIS=" + tbExtension.value;
dmlib.command(command);
dmlib.command("proper &PERIMIN=_tmp001 &PERIMOUT=_tmp002 @TOL=0.000001
@CLOSE=1");
dmlib.command("get-all-strings &_tmp002 {}"); // load new polygon into
Design Window
dmlib.command("delete-file '_tmp*' 'Y'"); // Remove temporary work files

Depois de você adicionar o script para seu documento HTML, salve-o e feche a janela do
Editor de Script. A janela do FrontPage reaparecerá, mas agora seu Script foi adicionado
para o mesmo. Selecione a tabela HTML e role-a até o topo para verificá-la.

??O que este Script faz?

O evento manipulador btnOK_onClick() cria e usa vários arquivos temporários, todos


chamados “_tmp00n”, que são ambos deletados ao início e fim do script.

Se a caixa de verificação “Inclusão de Pontos” é verificada, o script escreve todos os


dados de pontos para um arquivo, usando o filtro especificado na caixa de texto “Filtro”.
Este arquivo é então processado pelo EXTRA para remover todos os campos XP e YP.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 28
-
Datamine Latin America Tutorial Script
________________________________________________________________________
Se a caixa de verificação “Inclusão de Pontos” é acionada, o script escreve as strings para
outro arquivo, novamente usando qualquer filtro que seja especificado, e usa o comando
EXTRA para remover e renomear campos. Se ambas caixas de verificação foram
especificadas, ele junta ambos os dados em um arquivo.

Em seguida, o Script roda o comando CONPOL. Note como o comando básico é


designado para uma variável JavaScript, e o valor para o parâmetro EXTDIS é adicionado
caso seja apropriado.

O CONPOL não fecha o polígono resultante. Portanto o Script usa PROPER para fechar
recarregando antes o polígono para dentro da Janela de Design do Datamine Studio.

Finalmente, o Script apaga todos os arquivos temporários criados durante a execução.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 29
-
Datamine Latin America Tutorial Script
________________________________________________________________________

5.3 Rodando o Script

Certifique-se de que você salvou o Script por completo. Se você quer usar a versão de

referência então faça uma cópia do arquivo dentro da sua base de


dados do Tutorial. Você pode rodá-lo por dois caminhos. Primeiro você pode ir ao
Datamine Studio e selecionar Tools | Run | Script especificando o nome do arquivo
HTML que você tinha criado. Este é o modo como normalmente seria rodado, sendo este
o caminho que você pode utilizar para verificar se a interface HTML está dentro do
Datamine Studio. Mas para uma visão rápida, há outro caminho para rodar o Script.
Selecione a tabela Preview em FrontPage. Este é um meio conveniente de verificar que
tudo está rodando como você esperava, sem ter que se lembrar de salvar o arquivo,
alterne para o Datamine Studio e recarrega o arquivo cada vez que você fizer uma
mudança.

Se você está rodando seu Script da aba Preview do FrontPage, lembre-se que
você também deve ter o Datami ne Studio rodando!

??“Debugando” seu Script

Debugging com alert()

A Microsoft traz um meio sofisticado para verificar se seu script está certo ou não, sendo
de longe o melhor caminho para entender onde um script está tendo erros. Mas para este
exemplo, a mais simples ajuda “debugging” é a chamada JavaScript alert(). Usando o
comando alert() você pode mostrar mensagens e os valores da variáveis em caixas de
mensagens, a qual será criada em algum ponto durante a execução do seu script. Por
exemplo, para verificar o valor da caixa de texto do Filtro utilizado, você pode adicionar a
declaração seguida no topo do procedimento do polígono criado, ou com o evento
manipulador btnOK_onClick, conforme a linha de comando abaixo:

alert("The current filter is " + tbFilter.value);

Quando executado esta declaração produz uma caixa de mensagem como a seguinte:

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 30
-
Datamine Latin America Tutorial Script
________________________________________________________________________
5.3.1.1.1.1.1 Debugging com o Microsoft Script Editor

Uma discussão completa de como usar o Microsoft Script Editor para o debugging está
fora do alcance deste tutorial. Para maiores detalhes, consulte o Help on-line.

Contudo, para dar uma amostra do que é possível, vamos estudar alguns dos aspectos
disponíveis. Primeiro ative o Script Editor do FrontPage, selecionando Tools | Macro |
Microsoft Script Editor...

Para iniciar o debugging, selecione Debug | Start no Script Editor. Isto executa o Script
Editor reconfigurando-o, e inicia a janela Internet Explorer contendo sua HTML e o Script.

Você pode retornar ao Script Editor a qualquer hora, e inserir um “breakpoint” em uma
linha particular. Para inserir um breakpoint, clique na barra cinza na margem à esquerda
da janela, para a linha onde você quer que a execução seja interrompida. Por exemplo,
quebre a primeira linha do evento manipulador bntOK_onClick(), conforme a figura abaixo:

Quando a execução alcançar o breakpoint, ela parará o processo e o controle é retornado


para o Script Editor. Você pode observar os valores das variáveis em simples passos
através do Script, mudando o fluxo da execução e os valores das variáveis. Todos os
detalhes são dados pelo Script Editor on-line help.

Para finalizar o debugging, selecione Debug | Detach All Proceses do menu Script
Editor.

??Sugestões para extensões mais avançadas

Este exemplo funcional é designado para ser uma lição instrutiva. O Script resultante tem
um número de limitações. Você poderia tentar algumas das seguintes melhorias:
?? Use filtros separados para pontos e strings
?? Permita ao usuário especificar um valor para o parâmetro @MAXLEN em CONPOL
?? Faça o Script funcionar em um plano horizontal
?? Faça o Script funcionar em qualquer plano

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 31
-
Datamine Latin America Tutorial Script
________________________________________________________________________
6 Lição Quatro - Introdução para ler e copiar

Nesta lição introduziremos o Project File Browser


O Browser é uma interface gráfica dentro do projeto Datamine Studio. Ele é um controle
Active X, ou seja, um componente do software que pode ser anexado em qualquer
Datamine Studio, ou, independentemente, para um script que você criou.

Esta lição cria um script para copiar um arquivo com critério de restrição opcional. Ele usa
o project File browser através do Datamine Studio Library Component. Obviamente, este
exemplo pode ser facilmente estendido para transportar alguns arquivos processados ao
longo do caminho, ou, por exemplo, para criar um script que lê múltiplos arquivos de
entrada e cria um ou mais arquivos de saída.

??Iniciando

Inicie o Datamine Studio. Como visto em todas as lições anteriores, você deverá iniciar o
Datamine Studio de forma que ele seja capaz de responder quando requisitado. Inicie o
FrontPage 2000. Use a versão correta e configure-o corretamente como descrito na lição
anterior. Você poderá, também, usar o Microsoft Script Editor.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 32
-
Datamine Latin America Tutorial Script
________________________________________________________________________
6.1 Criando a Interface

Será criada uma interface com três caixas de texto e três botões.

??Criando uma tabela para conter os objetos de interface

Como na lição anterior, criaremos uma tabela para conter a caixa de texto, botões e
textos associados. No FrontPage escolha a aba normal e selecione o menu suspenso:
Table | Insert | Table… e especifique uma tabela com cinco linhas e três colunas. Não se
preocupe com o layout ou estilo dos parâmetros. Trataremos disso depois.

??Adicionando textos e caixas de textos

Na célula mais alta à esquerda (posição inicial do cursor), digite “Copy a File”. Você pode
realçar o texto e selecionar negrito na barra de ferramentas, se você quiser. Depois
selecione Insert | Horizontal Line no menu do FrontPage.

Agora, precisamos unir todas as células na linha do alto. Use o mouse para realçar a linha
do alto da célula, clique com o botão direito e selecione Merge Cells.

Depois posicione o ponteiro do mouse na célula da esquerda, na segunda linha, e digite


“Input file”. Em seguida, pressione o botão seta (para baixo) para mover para a terceira
linha e digite “Output file”. Pressione o botão seta de novo (dentro da terceira linha) e
digite “Retrieval criteria”.

Agora, nós adicionaremos as duas caixas de texto que irão conter os nome dos arquivos
de entrada e saída. Posicione o cursor na segunda linha, coluna do meio e selecione
Insert | Form | One-Line Text Box ou.......... O FrontPage irá inserir a caixa de texto.
Agora insira outra caixa de texto na célula abaixo, próximo do “Output file”.

Finalmente, insira outra caixa de texto na quarta linha, coluna do meio. Esta é onde você
entrará com o critério de retenção.

??Adicionando botões “Browse”

Agora, adicione botões na coluna da direita, nas linhas dois e três. Não se preocupe com
os botões rotulados, por agora (eles irão dizer “Button”, por default), nós o fixaremos
depois. Finalmente, adicione outro botão dentro da célula do meio, última linha.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 33
-
Datamine Latin America Tutorial Script
________________________________________________________________________

Agora, clique com o botão direito na tabela, selecione Table Properties... e escolha
borda tamanho zero (0). Depois selecione a célula do meio da linha de base, clique com o
botão direito, selecione Cell Properties... e escolha o alinhamento horizontal das células
para “center”. Faça o mesmo para as células da primeira linha.

??Atribuindo nomes e valores para os comandos

Agora, precisamos atribuir nomes para cada um dos controles, e escolher os botões
rotulados. Atribuímos nomes individuais de maneira que possamos nos referir a cada
controle no script.

Para atribuir um nome para um controle, selecione-o com o mouse e execute o comando
Properties (pressione Alt-Enter + clique com o botão direito e selecione “Form Fields
Properties...” ou clique duas vezes). Atribua o nome tbInputFile para a primeira caixa de
texto, tbOutputFile para a segunda e tbRetrieval para a terceira caixa de texto.

Depois, atribua os nomes btnBrowse1 e btnBrowse2 para os dois primeiros botões, e


escolha o rótulo ou valor para “Browse...”. Finalmente, atribua o nome btnOk para a linha
da base, e escolha o rótulo OK. Se você colocar dois espaços de cada lado do texto
(“OK”), ele produzirá um botão amplo. A interface mostrada, agora, é como esta:

??“Link” para as planilhas padrão do Datamine Studio

Você poderá linkar planilhas estilo padrão do Datamine Studio, dmstyle.css, para
promover a integração visual do script. Você já terá criado o arquivo dmstyle.css como
descrito na previous lesson.

Para linkar as planilhas estilo, selecione Format | Style Sheet Links... pressione Add,
depois use o brower para selecionar a planilha estilo padrão Datamine, dmstyle.css.

Agora clique na faixa Preview, para ver como ficou a interface completa.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 34
-
Datamine Latin America Tutorial Script
________________________________________________________________________

??Dando um título para a página e salvando

A interface, agora, está quase completa. Você deve dar um nome HTML para a página
(clique com o botão direito, selecione Page Properties... e entre com um título, como:
“Browser example”), e depois, salve a página no seu tutorial, no diretório do projeto, com
o nome “copyfile1.htm”.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 35
-
Datamine Latin America Tutorial Script
________________________________________________________________________
6.2 Adicionando o Script

O primeiro passo, fazer a interface HTML, está completo. Agora, precisamos transmiti-lo e
adicionar o script que fará as coisas acontecerem.

Lembre-se que os scripts são, usualmente, compostos por um número de eventos


manipuláveis. Estes são pequenas secções do script que são executados quando algum
evento relevante ocorre. Este script responde pra os seguintes eventos:

?? Quando carrega a janela (um evento onload), o script faz a conecção com o
Datamine Script Library Component (SLC).
?? Quando outro botão “Browse” é pressionado (um evento onclick), o script executa
uma chamada do SLC, que executa o botão browser, esperando por uma seleção
e cópia do nome de alguma tabela selecionada dentro da caixa de texto
correspondente.
?? Quando o botão OK é pressionado (outro evento onclick), um script verifica se
ambos os arquivos foram especificados, adiciona qualquer critério de retenção que
tenha sido especificado e depois executa o comando copiar o arquivo do Datamine
Studio, outra vez pelo SLC.

??A janela evento Onload

Como na lição anterior, o script é introduzido, editado e compilado usando o Microsoft


Script Editor. Da tabela normal da página do FrontPage, selecione Tool | Macro |
Microsoft Script Editor ou .

Configure o Script Editor para JavaScript: selecione View


Property Page, ou clique no painel HTML e pressione Shift-
F4. Estabeleça a linguagem script default para scripts client
para Javascript e pressione OK.

Agora, do menu, selecione View | Other Windows | Script


Outline. Nesta janela, selecione Client Objects & Events. Você
verá agora, uma lista de objetos que você adicionou para a sua
interface.

Dê um clique duplo na janela e outro no evento onload; o


evento que aparece como o seu documento está carregado
dentro do browser. O Script Editor insere o HTML necessário para conter seu script, e
define uma função janela_onload.

Lembre-se de que se aparecer “Sub window _onload()”, o FrontPage está configurado pra
usar VBScript. Clique no painel HTML, e pressione Shift-F4 e repita o procedimento
anterior.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 36
-
Datamine Latin America Tutorial Script
________________________________________________________________________
Quando a janela carregar, precisamos estabilizar a conecção entre o script e o SLC, e
inicializá-lo. Isto é feito com os seguintes comandos do JavaScript:

dmlib = new ActiveXObject("dmLib");


dmlib.initialize(self);

Você pode entrar com o código diretamente ou marcar o texto acima e selecionar Copy
com o menu gerado com o botão direito. Depois mova para a janela do Script Editor e
clique o cursor na linha vazia entre as linhas “function window_onload() {“and”}”. Clique
com o botão direito no menu e selecione “paste como HTML”.

??A janela evento onunload

Depois crie um evento manipulador onunload, e insira a seguinte linha de código dentro:

dmlib.unLoadDmLib();

Isto descarrega corretamente o SLC e libera qualquer memória alocada por ele quando a
janela é descarregada (quando ela é substituída por outra página HTML).

??O manipulador do botão OK onclik

Agora, clique duplamente no btnOk e no evento onclick. Outra função definida, chamada
btn_onclick() é inserida.

Quando o botão é pressionado, o script deve verificar que os nomes dos arquivos de
entrada e saída tenham sido especificados e assim, executar o comando para copiar o
arquivo, opcionalmente com o conteúdo do critério de retenção.

Entre com a declaração JavaScript dentro do corpo da função btnOk_onclick(), usando


Copy e Paste, como HTML se você estiver lendo este on-line. De outro modo, não deixe
de digitar o código exatamente como mostrado.

if (tbInputFile.value != "" && tbOutputFile.value != "") {


var theCommand = "copy &in=" + tbInputFile.value +
" &out=" + tbOutputFile.value;

if (tbRetrieval.value != "")
theCommand += " {" + tbRetrieval.value + "}";

dmlib.command(theCommand);
}

O valor de cada caixa de texto (a propriedade “valor”) de cada caixa de texto é verificada
para ver se ele é uma string característica cheia. Se outra faltar, o script não é feito.
11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 37
-
Datamine Latin America Tutorial Script
________________________________________________________________________

De outro modo, um comando Datamine Studio é construído pelo sequenciamento de


quatro sub-strings (dois pedaços fixos mais o valor contido em ambas caixas de texto).
Então, se alguma coisa é adicionada dentro da caixa de texto do critério de retenção, esta
é adicionada no fim do comando executado, depois de um par de aspas dupla ({“ e “}”).

Finalmente, o comando construído é passado para o SLC, e por conseqüência executado


no Datamine Studio.

??Os botões de Browse

Cada botão do browse deve executar mais ou menos as mesmas funções pra adicionar
ou atualizar o valor em uma das caixas de texto. O SLC contém uma função específica
para fazer isso.

Primeiro adiciona-se um manipulador onclick para o primeiro botão browse, e insira o


código a seguir:

tbInputFile.value = dmlib.browseForFile(dmlib.typeAny, null, false);

O método browseForFile usa o browser do Datamine Studio para abrir um arquivo


Datamine. O nome do arquivo é retornado, e este nome é inserido dentro da propriedade
.value da caixa de texto tbInputFile.

O primeiro argumento especifica o tipo de arquivo que deve ser selecionado. O SLC
permite você selecionar todos os modelos permitidos; dmlib.typeAny permitirá ao usuário
escolher algum tipo de arquivo. Alternativamente, dmlib.typeModel obriga o usuário a
selecionar um arquivo de modelo de blocos.

Se você quer permitir o usuário para selecionar mais que um tipo de arquivo, você pode
adicionar valores diferentes juntos. Para encontrar o valor digitado de alguma categoria,
aplica-se , e seleciona-se o arquivo digitado apropriado na caixa Properties.
O valor digitado é exibido na caixa de valor.

O segundo argumento especifica o valor padrão para o nome da tabela, e o terceiro


argumento (que pode ser verdadeiro ou falso) especifica onde o nome da nova tabela
pode ser introduzido. Se for false, então uma tabela do arquivo de projeto existente deve
ser selecionada.

Finalmente, adicione um manipulador onClick para o segundo botão de browse, com o


seguinte código:

tbOutputFile.value = dmlib.browseForFile(dmlib.typeAny, null,


true);

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 38
-
Datamine Latin America Tutorial Script
________________________________________________________________________
Depois você deve adicionar o script no seu documento HTML, salvá-lo e fechar a janela
do editor de Scripts. A janela FrontPage irá reaparecer, mas agora o seu script está
adicionado a ele. Selecione a faixa HTML e role para o topo para checar isto.

??Rodando o Script

Certifique que você tenha salvado o script completo. Se você precisar usar a versão
original, então faça uma cópia como dentro do diretório do seu tutorial.

Você pode executar o script de duas formas: primeiro você deve entrar no Datamine
Studio e selecionar Tools | Run | Script especificando o nome do arquivo HTML que
você tinha criado. Este é o modo como normalmente seria rodado, sendo este o único
modo para você verificar se a interface HTML está correta dentro do Datamine Studio.
Mas para uma visão rápida, há outro caminho para rodar o Script... selecione a tabela de
Preview no FrontPage. Está é uma maneira conveniente de verificar que tudo está
funcionando da maneira que você esperava, sem ter de se lembrar de salvar o arquivo,
alternar para o DMStudio e recarregar o arquivo cada vez que você fizer uma mudança.

Se você está rodando seu Script direto do Preview do FrontPage, lembre-se que
você também deve ter o Datamine Studio rodando!

??Compilando seu script

Use o método descrito na lição anterior para compilar o seu script.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 39
-
Datamine Latin America Tutorial Script
________________________________________________________________________

6.3 Sugestões para extensões adicionais

O objetivo dessa lição é aprender a desenhar a interface e estabelecer eventos


manipuladores. Contudo, o script resultante tem um número de limitações. Você pode
experimentar os seguintes melhoramentos por você mesmo.

??Copie um único campo

Isto muda o comando “Copy” do Datamine para uma cópia seletiva ou “selcopy”. Primeiro,
você precisa inserir uma linha adicional dentro da tabela HTML e adicionar um elemento
selecionado (Insert | Form | Drop-Down Menu ou. ) para ele. Dê ao elemento o
nome “selFields”. A fim de especificar a largura do objeto selecionado (que está
inicialmente vazio), você precisará usar a barra de ferramentas “Positioning” (View |
Toolbars | Positining no menu). Realce o objeto selecionado, e entre com o tamanho de
115 pixeles na caixa de largura do barra de ferramentas do Positioning.

A interface mostrada deve se parecer como:

A fim de preencher a lista com os nomes dos campos no arquivo de entrada, use o
método SLC makeFieldsPicklist() dentro do evento manipulador onclick do btnBrowse1. O
código do evento manipulador completo pode ser, agora, mostrado como:

function btnBrowse1_onclick() {
tbInputFile.value = dmlib.browseForFile(dmlib.typeAny, null,false);
dmlib.makeFieldsPicklist(tbInputFile.value, selFields); }

makeFieldsPicklist() possui dois argumentos: o nome do arquivo da tabela e o nome da


lista selecionada onde os nome serão adicionados. É possível adicionar um terceiro

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 40
-
Datamine Latin America Tutorial Script
________________________________________________________________________
argumento opcional para esse método, que dará o valor padrão a ser exibido. O valor que
falta não precisa, necessariamente, ser o nome de um campo do arquivo.

Finalmente, nós precisamos modificar o manipulador onclick para o botão “OK”, btnOk. O
comando “copy” se tornará um “selcopy”, e nós precisamos adicionar o nome do campo
selecionado para o comando. O novo código visualizado é como este:

function btnOK_onclick() {
if (tbInputFile.value == "" || tbOutputFile.value == "") {
alert("Missing file name");
return;
}

var theCommand = "selcop &in=" + tbInputFile.value +


" &out=" + tbOutputFile.value +
" *f1=" + selFields.value;

if (tbRetrieval.value != "")
theCommand += " {" + tbRetrieval.value + "}";

dmlib.command(theCommand);
}

A versão de referência de pode ser visualizada e salvada na base de


dados do projeto do seu Tutorial.

??Copiando múltiplos campos

As mudanças para a interface do usuário são fáceis: no diálogo Properties para um


elemento selecionado, estabeleça a altura para quatro linhas, e cheque o botão
transmissor “Alow multiples selections”. A interface do usuário ficará parecida com esta:

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 41
-
Datamine Latin America Tutorial Script
________________________________________________________________________
Nenhuma mudanças é necessária no script, fora o código adicionado para extrair os
valores dos ítens selecionados no objeto selecionado. Isto é feito com mudanças
adicionais no manipulador onclick para o btnOk.

O código requer um maior conhecimento do JavaScript e do próprio objeto selecionado. O


código completo para a versão final do manipulador onclick será:

function btnOK_onclick() {
if (tbInputFile.value == "" || tbOutputFile.value == "") {
alert("Missing file name");
return;
}

var theCommand = "selcop &in=" + tbInputFile.value + " &out=" +


tbOutputFile.value;

// Extract selected options from multiple-select menu


var opts = selFields.options.all; // "opts" is the collection
of all options
var fieldNum = 0;
for (var i = 0; i < opts.length; i++) // opts.length is the
total number of options
if (opts(i).selected)
theCommand += " *f" + (++fieldNum) + "=" +
opts(i).value;

if (fieldNum == 0) {
alert("No fields selected.");
return;
}

if (tbRetrieval.value != "")
theCommand += " {" + tbRetrieval.value + "}";
dmlib.command(theCommand);
}

A versão de referência de pode ser visualizada e salva na base de dados


do projeto de seu Tutorial.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 42
-
Datamine Latin America Tutorial Script
________________________________________________________________________

7 Quinta Lição - Introdução para rodar uma macro de um script

Você já pode ter macros que você usará para rodar sequências de comandos
DATAMINE. As entradas para estas macros são usualmente feitas pelos comandos
PROMPT ou SCREEN. Contudo, como você mesmo já deve ter percebido, a interface
HTML propicia uma maneira muito mais atrativa, compreensiva e fácil para criar uma
entrada de arquivos, campos, parâmetros e outras variáveis.

Uma boa notícia é que para tirar vantagem da sua interface HTML você não precisa
converter sua Macro inteira para Script. Você pode simplesmente alterar sua interface
para HTML e passar os valores das variáveis para sua macro. Portanto, as únicas
mudanças que você deve fazer em sua macro é remover os comando de PROMPT ou
SCREEN e substituir os comandos para ler os valores das variáveis que você entrar
através da interface HTML. Ao final da macro você pode passar os valores das variáveis
de volta para o Script.

A linguagem Script usa o arquivo “var” para transferir variáveis e seus valores entre o
script e a macro. Este é o arquivo já usado pelos comandos VARLOAD e VARSAVE para
salvar informações dentro do Datamine. É também o arquivo usado em versões mais
antigas destes comandos, STKPAR e STKSAV. Os métodos varload() e varsave(), trazem
funções equivalentes em scripting, e são incluídos como parte da Script Library
Component. Há também um método runMacro() na biblioteca para facilitar rodar uma
macro de um script. O exemplo seguinte usará todos estes trés métodos.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 43
-
Datamine Latin America Tutorial Script
________________________________________________________________________

7.1 Exemplo de Macro usando XRUN

Para este exemplo adicionaremos uma interface HTML em uma macro que cria um plano
de localização de collares. A Macro usa uma técnica padrão para posicionar valores
ausentes e sugestões. Os principais passos são:

1. Defina os valores padrões para substituição das variáveis;


2. Teste se o arquivo “var” existe, e neste caso, substitua os valores iniciais pelos
valores salvos;
3. Use PROMPT para definir valores correntes, com padrões como definidos nos
passos anteriores.
4. Crie e posicione um arquivo plot.
5. Salve as variáveis substituídas.

Examine a macro encontrada no Tutorial de Scripting localizado no


Datamine Studio, ou direto no arquivo do diretório Database.

Você verá que cinco substituições de variáveis são sugeridas, conforme abaixo:

??$COLLFILE# - Arquivo de entrada de colares;


??$PLOTFILE# - Arquivo de saída de plotagem;
??$VALUE# - Campo para ser anotado;
??$TITLE# - Título do arquivo de plotagem;
??$NUMBER# - Numero de referência da plotagem

Removeremos estas entradas da macro e criaremos um script com interface HTML que
rodará a macro.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 44
-
Datamine Latin America Tutorial Script
________________________________________________________________________
Salve uma cópia da macro collar1a.mac como arquivo collar1.mac em seu diretório do
projeto Tutorial. Então rode a macro retirando todos os valores padrões dos ‘prompts’. A
Macro criará e exibirá a localização do collar:

O texto na janela OutPut Window deveria começar como este:

Macros found in this file


=========================
M1 Collar plot macro with hardcoded limits

Create Collar Plot


------------------
______________________________

Substitution variables loaded:


------------------------------
collars file: _collars
plot file: colplot1
value field: BHID
title: Collar Location Plan
number: 1
______________________________

PROTOP TIME >14:57:13

Observe que os valores das cinco variáveis substituídas são mostrados. Depois que o plot
foi criado a variável $NUMBER# foi incrementada por 1, e as variáveis foram salvas no
arquivo var collplot.var. O novo valor está mostrado na janela de OutPut Window:

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 45
-
Datamine Latin America Tutorial Script
________________________________________________________________________

DISPLA TIME >14:57:15


_____________________________

Substitution variables saved:


-----------------------------
collars file: _collars
plot file: colplot1
value field: BHID
title: Collar Location
Plan
number: 2
_____________________________

DELETE TIME >14:57:17


>>> FILE _TEMP1 UNLINKED

A principal razão para incrementar o valor de $NUMBER# é demonstrar como o novo


valor pode ser passado da macro para o Script.

7.2 Criando a Interface

Agora usaremos o FrontPage para criar uma interface onde serão colocadas as variáveis
substituídas requeridas para rodar a Macro. Inicie um novo arquivo (File | New | Page |
Normal Page ou ) e insira uma tabela de 7 linhas e 3 colunas para criar uma
interface como a mostrada abaixo. Os métodos usados para posicionar uma
interface são descritos nas lições anteriores.

A caixa de entrada “Field to annotate” é um menu de opções. Este conterá uma lista de
nomes de todos os campos do arquivo de Input Collars.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 46
-
Datamine Latin America Tutorial Script
________________________________________________________________________
Para ajustar a largura da caixa de menu de opções (Field to annotate) você precisará usar
a barra de ferramentas de Posicionamento. Você poderá expô-la selecionando View |
Toolbars e selecionando o verificando o item Posicionamento. Uma largura de 150 é
conveniente.

Como padrão, valores introduzidos dentro da caixa de texto são justificados à esquerda.
Isto é apropriado para valores alfa -numéricos, mas você pode preferir valores numéricos
justificados à direita. Para fazer isto clique duas vezes na caixa de texto Plot Number para
expor o diálogo Text Box Properties e selecione Style | Format | Paragraph | Alignment:
Right.

??Atribuir Nomes e Valores para os Controles

Atribua nomes para as caixas de texto, botões e listas de opções como a seguir:

Description Type Name

Input collars file name Text Box tbIN1


Browse for collars file Push Button btnBrowseIN1
Field to annotate Drop Down DdFieldsIN1
Output plot file name Text Box tbOUT1
Browse for output file Push Button btnBrowseOUT1
Plot title Text Box TbPlotTitle
Plot number Text Box tbPlotNumber
Create plot Push Button btnCreatePlot
Load defaults Push Button BtnLoad

Você pode usar Format | Style Sheet Links... para linkar o estilo de folha para o padrão
Datamine (dmstyle.css). Salve o arqui vo em seu diretório do Tutorial como
collar_plot_1.htm.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 47
-
Datamine Latin America Tutorial Script
________________________________________________________________________

7.3 Adicionando o Script

??Eventos para serem definidos


A coluna 4 da tabela seguinte mostra os eventos que precisamos associar com as caixas
de texto e botões. Mais detalhes são mostrados nas seções abaixo:

Description Type Name Event

Input collars file name Text Box tbIN1 onpropertychange

Push
Browse for collars file btnBrowseIN1 onclick
Button

Field to annotate Drop Down ddFieldsIN1

Output plot file name Text Box tbOUT1

Push
Browse for output file btnBrowseOUT1 onclick
Button

Plot title Text Box tbPlotTitle

Plot number Text Box tbPlotNumber

Push
Create plot btnCreatePlot onclick
Button

Push
Load defaults btnLoad onclick
Button

??Métodos do Script Library Component

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 48
-
Datamine Latin America Tutorial Script
________________________________________________________________________
O evento manipulador que vamos criar utiliza os métodos da biblioteca e propriedades
resumidas na tabela. Mais detalhes são dados nas seções abaixo:

Type Name Description

method makeFieldsPicklist() Populate a select list with the names of the fields in a Datamine file

method browseForFile() Browse for a file table in the current Datamine Studio project

method runMacro() Execute a Datamine macro, then return to the script

method varsave() Save values to be used as substitution variables in a macro

method varload() Load values from a macro "!VARLOAD" file

method initialize() Initialize the Datamine Studio Script Library Component.

property typeCollars Type code for Datamine Studio Collars file.

property typePlot Type code for Datamine Studio Plot file.

property projectFolder The folder that contains the current Datamine Studio project

??Microsoft Script Editor (MSE)

Abra o Microsoft Script Editor (Tools | Macro | Microsoft Script Editor ou ) e


confirme que você está criando em JavaScript, e não em VBScript. (View | Property
Pages | General | Default scripting language | Client: JavaScript).
Para expor a lista de objetos que estão incluídos na interface HTML selecione View |
Other Windows | Script Outline.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 49
-
Datamine Latin America Tutorial Script
________________________________________________________________________

??Caixa de texto da entrada do arquivo de calares – tbIN1

Dê um duplo click no ítem tbIN1 encontrado no menu Script Outline (Estrutura do Script),
pressione em seguida o sinal +, para mostrar a lista de eventos, e dê um duplo clique em
onpropertychange. Essa escolha é melhor do que o evento onchange porque o
onchange é somente ativado se o valor na caixa de texto é mudado manualmente –
diretamente por digitação na caixa. O evento onpropertychange é ativado quando
qualquer propriedade (no caso a propriedade valor) necessita de mudanças.

O script que é executado quando o nome do arquivo de entrada muda usa o método
makeFieldsPicklist() para criar a lista dos nomes dos campo como mostrado abaixo:

function tbIN1_onpropertychange() {
if (event.propertyName =="value")
dm.makeFieldsPicklist (tbIN1.value, ddFieldsIN1, "BHID");
}

O primeiro argumento é o valor, o segundo é o nome contido no menu suspenso e o


terceiro é o valor default.

Copie o Javascript da caixa acima (excluíndo a primeira e última


linha) e cole no corpo do seu documento HTML, no Microsoft
Script Editor. Quando colar não esquecer de colar como HTML.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 50
-
Datamine Latin America Tutorial Script
________________________________________________________________________
??Botão para escolha do arquivo de colares de entrada - btnBrowseIN1

Adicione um evento onclick para abrir o browse de seleção do arquivo de colares,


clicando duas vezes no item btnBrowseIN1 na janela Script Outline do MSE. Isto irá abrir
o browser de arquivos.

function btnBrowseIN1_onclick() {
tbIN1.value = dm.browseForFile(dm.typeCollars, null,
false);
}

Os argumentos do método browseForFile() são:

1. Tipo de arquivo requerido: Arquivo de colares


2. Nome do arquivo padrão: Entre null para o default. Observe que o nome do padrão
somente será mostrado na caixa de diálogo Browse, e não será mostrado na caixa
de texto tbIN1.
3. Permitir a especificação de um novo arquivo (true or false): Neste exemplo nós
especificaremos false porque o arquivo já existe.

Copie as linhas de comando acima e cole no corpo de seu arquivo HTML.

??Botão para selecionar arquivo de saída – btnBrowseOUT1

Adicione um evento onclick para a seleção do arquivo de saída. Isso irá trazer o arquivo
via browser.
function btnBrowseOUT1_onclick() {
tbOUT1.value = dm.browseForFile(dm.typePlot, null, true);
}

Observe que desta vez o terceiro argumento do browseForFile() é true – Nós queremos
permitir que seja especificado o nome para o novo arquivo. Copie o Javascript acima e
cole no seu script.

??Criar botão de plotagem – btnCreatePlot

Adcione um evento onclick para que, ao clicar no botão de plotagem, o mesmo execute a
função btnCreatePlot_onclick().

function btnCreatePlot_onclick() {
dm.varsave(varfile, false);
dm.runMacro("collar1b.mac", "M1");
}

Este evento usa o método varsave() para salvar os valoes das variáveis para o arquivo
var. Os argumentos do varsave() são:
11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 51
-
Datamine Latin America Tutorial Script
________________________________________________________________________

1. O nome (caminho) do arquivo var a ser salvo


2. Mesclar (true) ou escrever por cima do arquivo var (false)

O evento também usa o método runMacro() para rodar a macro. Os argumentos são:

1. O nome do arquivo da macro


2. O nome da função da macro

Copie o JavaScript e cole-o em seu script.

??Botão de carregamento padrão – btnLoad

Adcionar um evento onclick para o botão de carregamento padrão.

function btnLoad_onclick() {
dm.varload(varfile);
}

Este evento usa o método varload() para carregar os valores das variáveis do arquivo var.
O argumento do varload() é:

1. O nome do arquivo a ser carregado

Copie o Javascript e cole no seu script.

??Evento Window onload

Adicione uma janela de evento onload. Este evento executa uma função tão logo a página
seja aberta, podendo desta forma ser utilizada para a inicialização. Quatro tarefas de
inicialização são necessárias para que se carregue o script fazendo com que ele rode
corretamente.

1. Definir o nome do arquivo var transformando variáveis entre o script e a macro. O


caminho é descrito criando uma string texto combinando as propriedades do
diretório de trabalho e o nome do arquivo definido neste exercício como
collplot.var.Observe que \\ é requerida na frente do nome, porque uma simples \
significa um caractere.
2. Definir o objeto (variáveis) cujos valores serão salvos no arquivo var. Nós fazemos
isso adicionando uma propriedade “macro” para os objetos. Existem caminhos
alternativos para definir os valores como veremos mais tarde.
3. Estabelecer o valor inicial (i.e padrão) para a caixa de texto. O valor padrão pode
também ser estabelecido usando Format | Properties no FrontPage, entrando
com o valor padrão em Value/label.
4. Estabelecer o valor inicial dos campos. Isto é requerido porque temos definido um
nome de um arquivo padrão (_collars). Se omitirmos este ítem o campo não será
preenchido com o valor da tbIN1.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 52
-
Datamine Latin America Tutorial Script
________________________________________________________________________
function window_onload () {

// define the name of the file to save variables


varfile = dm.projectFolder + "\\collplot.var";

// define the variables to be saved in the varfile and the


// equivalent substitution variables in the macro.
tbIN1.macro = "COLLFILE";
tbOUT1.macro = "PLOTFILE";
ddFieldsIN1.macro = "VALUE";
tbPlotTitle.macro = "TITLE";
tbPlotNumber.macro = "NUMBER";

// set default values for variables


tbPlotNumber.value = 1;
tbIN1.value = "_collars";
tbOUT1.value = "collplot";
tbPlotTitle.value = "Collar Location Plan";

// set initial values for the fields picklist


dm.makeFieldsPicklist (tbIN1.value, ddFieldsIN1, "BHID");

Copie o Javascrip acima e cole no seu script.

??Conectando a biblioteca SLC

Os eventos definidos por nós usam métodos da biblioteca SLC (Script Library
Component) e temos nos referido a ela utilizando o objeto dm. Por exemplo, dm.varsave()
e dm.browseForFile(). Antes que estes métodos possam ser usados precisamos
estabelecer uma conexão entre o script e a SLC. Sua iniciação é feita utilizando o evento
Window onload. Entretanto para fazer isso do evento window onload nos precisaremos
definir dm como uma variável global. Essa prática não é recomendada se esta variável for
utilizada por outra biblioteca. Portanto definiremos dm para ser local em nosso script
colocando suas definições no início do script conforme pode ser visto abaixo:

<SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>


<!--

// connect to the SLC


var dm = new ActiveXObject("dmLib");
dm.initialize(self);

function tbIN1_onpropertychange() {

Copie o Javascript e cole ele no seu script.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 53
-
Datamine Latin America Tutorial Script
________________________________________________________________________

??Janela de Evento onunload

A adição deste evento no script é sempre necessária uma vez que se utilizou o recurso da
janela de evento onload. A função deste evento é simplesmente liberar a memória
alocada quando a página foi carregada.

function window_onunload() {
dm.unLoadDmLib();
dm = null
}

??O script completo

Um exemplo completo do script pode ser observado clicando no botão


que se encontra nesta seção no Tutorial de Scripting localizado no Help do Datamine
Studio. Quando abrir este arquivo clique em File | Save As e salve o arquivo em seu
diretório de trabalho.

7.4 Rodando o Script

Você deve ter um arquivo collar_plot_1.htm no seu diretório do projeto Tutorial

??Edite a Macro

Antes de você rodar o script você precisará editar uma Macro e remover as declarações
de !PROMPT. O método runMacro() que você tem especificado no collar_plot_1.htm
chamam a macro collplot1b.mac. Portanto copie collplot1a.mac para collplot1b.mac e
remova as declarações !PROMPT. Você também pode remover o código inicial da macro
que estabelece valores ausentes para variáveis substitutas como todos os valores que
são estabelecidos no script. Alternativamente abra a versão referente da macro no
Notepad e clique no botão e use File | Save As para salvá-lo no seu
diretório do projeto Tutorial.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 54
-
Datamine Latin America Tutorial Script
________________________________________________________________________
??Rodando o Script
Rode o Datamine Studio e selecione Tools | Run Script da barra de Menu principal. Todos
os defaults são estabelecidos e tudo o que você
precisa fazer é clicar no Create Plot button.

Quando o script está rodando clique em Load


Defaults button. Este irá carregar as variáveis do
arquivo var que foram criadas pela Macro.
Observe que o número da plotagem mudou de 1
para 2.

??Validação

Não incluímos nenhuma validação em valores que entraram na interface do Script.


Valores nulos ou impróprios podem causar problemas quando a macro está rodando.
Validações podem ser feitas em JavaScript, mas não fazem parte deste exercício.

8 Sexta Lição - Introdução para Exemplos de Scripts

Uma das melhores maneiras de aprender a escrever seu próprio Script é observar alguns
exemplos. Esta seção contém vários Scripts que ilustraram diferentes aspectos da
linguagem scripting.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 55
-
Datamine Latin America Tutorial Script
________________________________________________________________________
8.1 Criação de um Protótipo de Modelo

Este exemplo de Script traz uma interface para definir os


parâmetros do protótipo de modelo. Então crie um modelo de wireframe ao redor do
protótipo de modelo, e carregue o wireframe no visualizer. Use ambos os comandos no
database e Design Window.

??Objetos HTML

Os objetos HTML e os eventos correspondentes usados pelo Script são como a seguir:

Description Type Name Event

Model file name Text Box tbModel


Browser Push Button btnBrowse onclick

X Origin Text Box tbOriginX onchange

Y Origin Text Box tbOriginY onchange

Z Origin Text Box tbOriginZ onchange


X Cell Size Text Box tbCellSizeX onchange

Y Cell Size Text Box tbCellSizeY onchange

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 56
-
Datamine Latin America Tutorial Script
________________________________________________________________________
Z Cell Size Text Box tbCellSizeZ onchange

Number of Cells in X Text Box tbNumCellsX onchange

Number of Cells in Y Text Box tbNumCellsY onchange

Number of Cells in Z Text Box tbNumCellsZ onchange


Maximum X Text Box tbMaxX

Maximum Y Text Box tbMaxY

Maximum Z Text Box tbMaxZ


Sub-cell Selection Check Box cbSubcells

Run Script Push Button btnOK onclick

??Métodos SLC

Os métodos SLC usados pelo Script são os seguintes:

Type Name Description

method initialize() Initialize the Datamine Studio Script Library Component.

method unLoadDmLib() Release a connection to the Script Library Component

method command() Execute a Datamine Studio command

method browseForFile() Browse for a file table in the current Datamine Studio project

??Criando a Wireframe

O Wireframe é criado para definir uma string fechada ao redor de cada uma das seis
faces do modelo retangular fechando-o. Os campos dos modelos são numerados como
ilustrados aqui:

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 57
-
Datamine Latin America Tutorial Script
________________________________________________________________________

??Comandos com Respostas Interativas

Se você grava um comando de base de dados tal como PROTOM que tem respostas
interativas então as respostas serão gravadas em aspas simples(‘ ‘). Estas aspas simples
são opcionais e podem ser removidas. Contudo você deve incluir um espaço entre cada
resposta interativa como é ilustrado no Script. Um espaço é inserido em uma String
característica como “ ”.

??Barra de Progressão

Você pode adicionar uma barra de progressão dentro do seu Script usando Insert /
Advanced / Active X Control / Microsoft Progress Bar Control, version 6. Se o Active
X Control é invalidado então tente usando o Microsoft Script Editor como a seguir:

1. Clique o cursor exatamente após a expressão </table>


2. Selecione View | Toolbox e clique com o botão direito na área cinza no painel
caixa de ferramentas.
3. Selecione customizar a caixa de ferramentas
4. Verifique o ítem Microsoft Progress Bar, version 6.

Para o início da função principal defina a variável (delta) e estabeleça um número igual de
vezes que você irá atualizar o monitor (ex. 7). Expresso em forma de porcentagem.
Inicialize o valor de ProgressBar1.value. Para o fim da função você deve resetar o valor
para zero, para limpar a barra. Por exemplo:

var delta = 100 / 7;


ProgressBar1.Value = 0;

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 58
-
Datamine Latin America Tutorial Script
________________________________________________________________________
Você pode também especificar quantos caracteres gostaria de conter em cada caixa de
texto. Sendo nesta também inserido um fundo (“background”). No início da função
principal defina a variável (delta) e faça que ela seja igual ao número de vezes que você
atualizará o monitor (eg.7). Expresse como porcentagem. Inicie o valor do Progress Bar.
Então você terá que inserir o número correto (eg.7) de atualização do Progress Bar no
código:

ProgressBar1.Value += delta;

Este é um atalho para adicionar delta ao valor corrente de ProgressBar1.Value. Ao final


da função você deverá resetar o valor para zero.

ProgressBar1.Value = 0;

??Pontos a serem observados

O máximo de caracteres nas caixas podem ser limitados. Podendo também conter uma
imagem de fundo estipulada pelo usuário.

8.2 Exemplo de Macro 2

No exemplo anterior ao rodar uma macro de um Script, todas as variáveis que foram
incluídas por ou através de uma macro (usando varsave e varload) foram especificadas
usando uma caixa de textos. Uma propriedade foi então adicionada para o nome de cada
caixa de texto e as variáveis seriam escritas pelo arquivo var. Se você quer transferir as
variáveis que são calculadas dentro do Script ao invés das especificadas pelo usuário, há
um meio alternativo de fazer isto como ilustrado pelo Script e
macro .

Neste exemplo o cálculo das dimensões de plot são definidas dentro do Script e as
variáveis são incluídas pela macro. Há várias outras diferenças do exemplo anterior,
portanto examine o Script e a macro cuidadosamente.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 59
-
Datamine Latin America Tutorial Script
________________________________________________________________________

8.3 Acessando Registros e Valores de Campos

Este exemplo de Script mostra como acessar o valor de um campo


de um registro selecionado no arquivo Datamine. Use o attach Table(), método para
definir um objeto de tabela, ou então a propriedade openrecords() para criar um registro
Active X Data Object (ADO) dispostos no objeto de tabela. Este pode ser usado para
manipular as propriedades do conjunto de registros. Para favorecer a informação em ADO
recorra ao www.microsoft.com/data/ado.

O Datamine OLEDB provider permite a leitura e a atualização de registros existentes. Não


permite a criação de novos registros ou novos arquivos.

8.4 O método DCM de menu de Comando

Em todos os exemplos anteriores os comandos para Design Window têm sido acessados
através do método de comando DCM ou do SLC básico. As sintaxes de ambos são
identificadas. Por exemplo:

dm.command (“protom & OUT= newmodel @ROTMOD=0”+”


‘N’ ‘Y’ ‘100’ ‘200’ ‘300’ ‘10’ ‘12’ ‘15’ ‘24’ ‘20’ ‘10’’’);
dm.command (“open-model-file & model1 ‘1.0’ ‘yes’’’);

Em cada caso o conjunto completo de arquivos, campos, parâmetros e respostas


interativas devem ser incluídos na String que foi enviada pelo método de comando para o
Datamine Command Manager (DCM). Se você quer pedir auxílio ao Datamine command
do Script, mas você quer que respostas interativas sejam propriamente interativas ao
invés de pré-especificadas, então você deve usar o método menuCommand do DCM ao
invés do método command. Por exemplo:

DCM.menuCommand (“protom & OUT (newmodel), @ ROTMOD = 0”);


DCM.menuCommand (“open-model-file”);

No primeiro exemplo você será questionado interativamente pelo modelo de origem,


tamanho das células, etc, e pelo comando open-model-file você será questionado a entrar
com o nome do arquivo usando o browser de projeto, e então a densidade padrão e a
seleção de campo com diálogo interativo.

Observe que a sintaxe para o argumento do método menuCommand é diferente para o


método Command. O método menuCommand usa a mesma sintaxe como as macros.
Portanto especificações de arquivos e campos usam ao invés de sinais iguais, e o
delimitador é uma vírgula ao invés de um espaço.

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 60
-
Datamine Latin America Tutorial Script
________________________________________________________________________
??Exemplo Script

O Script anexado Display Plot dá um exemplo de uso do método menuCommand. A


interface permite que você selecione o arquivo plot Datamine usando o Browser e
superpondo-o no Design Window. Fornece botões para zoom e pan.

Os comandos zoom-graphics e pan-graphics requerem interação com usuário. Zoom-


graphics precisa que o usuário selecione um canto do retângulo de zoom e dirigir o cursor
ao canto oposto da diagonal, e Pan-graphics requer dois pontos a serem selecionados.
Portanto estes dois comandos são invocados usando o método menu Command. Observe
que o cursor não muda

11º Workshop DATAMINE do Brasil & 3º Conferencia Latino Americana de Usuarios DATAMINE - 61
-