Baixe o app para aproveitar ainda mais
Prévia do material em texto
Utilização de HTML/Javascript em Datamine Studio Rafael A. Souza rafael.souza@dataminesoftware.com Programação • Conteúdo • Noções das linguagens HTML, Javascript e processos Datamine; • Customização de processos Datamine utilizando processos internos e comandos gráficos; • Utilização das bibliotecas DatamineStudio (ScriptHelper) e FSO (FileSystemObject). • Parte prática • Visa a aplicação do aprendizado do curso na prática. Introdução • O uso de scripts em conjunto com o Datamine Studio possui diversas vantagens, podemos citar entre as mais importantes: • Utiliza Javascript, uma linguagem simples, prática (não precisa ser compilada e possui processos muito simples) e largamente utilizada com uma vasta bibliografia gratuita disponível na Internet; • Possibilita rodar tanto comandos internos quanto comandos gráficos no Datamine. Macros por exemplo, só possibilitam rodar processos internos; • O uso de uma linguagem de programação como Javascript, potencializa as possibilidades de customização de processos devido a grande gama de frameworks e bibliotecas disponíveis; • Javascript pode ser utilizada como ponte entre o Datamine e outros softwares utilizados largamente, como programas do office. As 3 Linguagens • Para a criação de um script é necessário o conhecimento de 3 linguagens: HTML Javascript Datamine API • Você não precisa ser expert nessas linguagens para criar um script, mas quanto mais conhecimento tiver nelas, melhor e mais organizado seu script será. • Um script eficiente, sem dúvida usará bem a combinação entre estas 3 linguagens junto com conceitos de estrutura de software. Linguagem HTML • O que é HTML? • HTML é uma linguagem para descrever as páginas web. • HTML significa Hyper Text Markup Language • HTML não é uma linguagem de programação, é uma linguagem de marcação • HTML utiliza tags de marcação para descrever as páginas web Linguagem HTML • Tags HTML • Tags de marcação HTML são normalmente chamadas de tags HTML • Tags HTML são palavras-chave entre parenteses angulares como <html> • Tags HTML normalmente vêm em pares, como <b> e </ b> • A primeira tag do par é a tag de início, a segunda tag é a tag final • Tags de início e fim também são chamadas de tags de abertura e fechamento • Forma geral • <tag attr1=“valor1” attr2=“valor2”.....> Filho </tag> Linguagem HTML • Documentos HTML = Páginas Web • Documentos HTML contém tags HTML e texto simples • Os documentos HTML são também chamados de páginas web • O objetivo de um navegador web(como Internet Explorer ou Firefox) é interpretar os documentos HTML e exibí-los como páginas web no formato de visualização que estamos familiarizados. Linguagem HTML Linguagem HTML <html> <body> <h1>Meu primeiro título</h1> <p>Meu primeiro parágrafo</p> </body> </html> Explicação do exemplo acima: O texto entre <html> e </ html> descreve a página web O texto entre <body> e </ body> é o conteúdo visível da página O texto entre <h1> e </ h1> é exibido como um título O texto entre <p> e </ p> é exibido como um parágrafo Linguagem HTML • Onde pode ser editado? • Qualquer editor de texto simples ou avançado (Notepad, Notepad++, SublimeText, Web Developer, Visual Studio, Eclipse Free Script Editor...) • Independente do editor, recomendamos que o escolhido seja sintax highlight Linguagem HTML • Algumas considerações • A maioria das tags são fechadas com “/”; • Exemplo: <tag início> Texto </tag fim>; • A ordem em que as tags são fechadas importa; • Tags HTML não são case sensitive: <P> significa o mesmo que <p>. • Extensão HTM ou HTML? • Você pode usar qualquer uma das duas, HTM ou HTML; • É bom sempre adotar padrões, então use só HTM ou só HTML em seus arquivos. Linguagem HTML • Cabeçalhos <h1>This is a heading</h1> <h2>This is a heading</h2> <h3>This is a heading</h3> • Parágrafos <p>This is a paragraph.</p> <p>This is another paragraph.</p> • Links <a href="http:\\www.dataminesoftware.com">This is a link </a> • Imagens <img src=“dm_logo.jpg" width="104" height="142" /> Linguagem HTML • Linhas <hr /> • Quebra de linha Use a tag <br /> se você quiser uma quebra de linha (uma nova linha), sem iniciar um novo parágrafo: <p>Isso é <br />um para<br />grafo com quebras de linha</p> • Comentários <!-- This is a comment --> Linguagem HTML • Atributos HTML • Tags HTML podem ter atributos, os quais fornecem informações adicionais sobre um elemento. Os atributos são sempre especificados na tag inicial. • Mais importantes são tags de identificação • Os valores dos atributos são sempre encapsulados por aspas duplas. • Exemplo: • Links em HTML são definidos com a tag <a>. O endereço do link é especificado no atributo href: <a href=" http://www.dataminesoftware.com ">This is a link</a> Linguagem HTML • Tags de formatação HTML • Texto em negrito <b> ou <strong> • Texto sublinhado <u> • Texto em itálico <i> • Texto grande <big> • Texto enfatizado <em> • Texto pequeno <small> • Texto subscrito <sub> • Texto sobrescrito <sup> Linguagem HTML • Tabelas <table border="1"> <tr> <th>Cabeçalho 1</th> <th>Cabeçalho 2</th> </tr> <tr> <td>linha 1, coluna 1</td> <td>linha 1, coluna 2</td> </tr> <tr> <td>linha 2, coluna 1</td> <td>linha 2, coluna 2</td> </tr> </table> Linguagem HTML • Atributo Style em HTML • Utilizado para definir fonte (como tipo, tamanho e cor), cor de plano de fundo, alinhamento entre outros. <h1 style="text-align:center">This is a heading</h1> <p style="background-color:green">This is a paragraph.</p> <p style="font-family:arial;color:red;font-size:20px;">A paragraph.</p> Linguagem HTML • Formulários • Os formulários HTML são usados para transmitir dados para um servidor. Um formulário pode conter elementos de entrada, como campos de texto, checkboxes, botões de radio, botões e muito mais. • A tag <form> é usada para criar um formulário HTML: <form> . input elements . </form> Linguagem HTML • Formulários • Text <form> Nome Completo: <input type="text" name=“nome" /><br /> Endereço <input type="text" name=“endereco /> </form> • Password <form> senha: <input type="password" name="pwd" /> </form> Linguagem HTML • Formulários • Radio <form> <input type="radio" name="sex" value=“masculino" /> Masculino<br /> <input type="radio" name="sex" value=“feminino" /> Feminino </form> • Checkbox <form> <input type="checkbox" name=“veiculo" value=“moto" /> I have a bike<br /> <input type="checkbox" name=“veiculo" value=“carro" /> I have a car</form> Linguagem HTML • Formulários • Select <select> <option value="volvo">Volvo</option> <option value="saab">Saab</option> <option value="mercedes">Mercedes</option> <option value="audi">Audi</option> </select> • Textarea <textarea rows="10" cols="10"></textarea> Linguagem HTML • Formulários • Botão <td><input type="button" value=“EXECUTAR"></td> Linguagem HTML • Exercícios: • Criar uma pagina com uma tabela de funcionários de uma empresa com as colunas de nome, cargo, setor(Minimo 3 funcionários). • Crie na mesma página do exercício anterior um formulário com nome de funcionario, data de nascimento, sexo (feminino e masculino), formação acadêmica , setor ,cargo e benefícios. Como no exemplo mostrado. • Para casa: Formate a página com o formulário criado dentro de uma tabela. Linguagem Javascript • O que é Javascript? • Javascript é uma linguagem de programação leve, comumente embutida diretamente em páginas HTML; • Javascript é uma linguagem interpretada (significa executar scripts sem compilação preliminar); • Largamente utilizada em aplicações web para dar dinamicidade as páginas carregadas. • Todos podem usar o Javascript sem a aquisição de uma licença. • O interpretador da linguagem vem embutido nos navegadores. Linguagem Javascript • Java e Javascript são a mesma coisa? • Não! Java e Javascript são duas linguagens totalmente diferentes em conceito e design. Java é uma linguagem de programação poderosa e muito maiscomplexa feita para desenvolvimento de grandes sistemas - está na mesma categoria de linguagens como C++. Linguagem Javascript • Onde o script geralmente se encontra na página HTML? <head> <script language=“javascript”> function nomeDaFuncao1() { … código a ser executado } function nomeDaFuncao2() { …código a ser executado } </script> </head> Linguagem Javascript • Declarando variáveis: • Você declara variáveis em Javascript com a palavra-chave var var numero; var carBrand; • Depois da declaração mostrada acima, as variáveis estão vazias. Entretanto, você pode associar valores às variáveis quando as declara. var numero = 5; var carBrand = “Volvo”; Linguagem Javascript • Tipos Básicos • Número: Var num = 5; • Texto: Var nome = “datamine” ou var nome = ‘datamine’ • Booleano: Var decide = true; Var decide = false; Linguagem Javascript • Operadores • Aritméticos -, +, *, /, %, ++, -- • Comparação ===, ==, <, >, !=, <=, >= • Lógicos &&, ||, ! Linguagem Javascript • Sintaxe // comentário até o fim da linha /* bloco de comentário */ O terminador de instruções é ; Blocos de instruções definidos por { } Linguagem Javascript • Sintaxe • If if (condição) { código a ser executado se condição é verdadeira } • If ... Else if (condição) { código a ser executado se condição é verdadeira } else { código a ser executado se condição não é verdadeira } Linguagem Javascript • Sintaxe • If ... else if ... else if (condição1) { código a ser executado se condição1 é verdadeira } else if (condição2) { código a ser executado se condição2 é verdadeira } else { código a ser executado se condição1 e condição2 não são verdadeiras } Linguagem Javascript • Sintaxe • Loop for for (variavel=incial;variavel<=final;variable=iteracao) { code to be executed } • Loop while while (variable<=endvalue) { code to be executed variable = variable + 1; } Linguagem Javascript • Evento • Em computação um evento é uma ação ou ocorrência detectado por um programa que por sua vez delega ,caso especificado, uma ação ou conjunto de ações que são executadas no momento em que o mesmo ocorre. • Um clique de mouse é um exemplo de evento como ação • O final do carregamento de uma página HTML é um evento que é uma ocorrência. • No caso dos scripts feitos com javascript e HTML são os navegadores WEB os responsáveis por “escutar” os eventos Linguagem Javascript • Funções • Uma função é um bloco de código que executa isoladamente dos outros, ela pode ou não retornar um valor a sua chamada. Para a ligação dos nossos eventos podemos chamar uma função. Veremos depois como podemos utiliza-las em diversos eventos Linguagem Javascript • Objeto Math • round alert(Math.round(4.7)); • max alert(Math.max(0,150,30,20,38)); • min alert(Math.min(0,150,30,20,38)); • floor alert(Math.floor(4.7)); • pow alert(Math.pow(4,2)); Linguagem Javascript • Objeto String • length var txt = "Hello World!"; document.write(txt.length); • toLowerCase e toUpperCase var txt="Hello World!"; document.write(txt.toLowerCase() + "<br />"); document.write(txt.toUpperCase()); Linguagem Javascript • Objeto String • split <script type="text/javascript"> var str="How are you doing today?"; document.write(str.split() + "<br />"); document.write(str.split(" ") + "<br />"); document.write(str.split("") + "<br />"); document.write(str.split(" ",3)); </script> Linguagem Javascript • Objeto Lista Listas são estruturas nativas do Javascript que servem para guardar uma coleção de objetos: Ex: var lista = [] ou var lista = new Array(); var lista = [1,2,3]; var lista = [“João”,2,true]; Listas não precisam guardar objetos do mesmo tipo. Além disso podemos crescer a lista dinamicamente. Linguagem Javascript • Objeto Lista É possível saber o tamanho de uma lista através do atributo length: Ex: var lista = [4,5,6]; document.write(lista.length) >>”3” Para inserir um item na lista utilizamos o método push Ex: var lista = [1,2,3]; lista.push(4) >> [1,2,3,4] Para remover itens utiliza-se o pop ou splice Ex: var lista = [1,2,3]; lista.pop() >> [1,2] ou lista.splice(0,2) >> [3] Linguagem Javascript • Objeto Lista Podemos concatenar duas listas através do método concat Ex: var lista1 = [1,2,3]; var lista2 = [4,5,6]; lista1.concat(lista2) >>[1,2,3,4,5,6] Para listas de strings existe o método join que concatena os items da lista por outra string. Ex: var lista1 = [“a”,”b”,”c”]; lista1.join(“-”) >>”a-b-c” Linguagem Javascript • São os eventos os responsáveis por ligar ações tomadas pelo usuário nas páginas HTML com código javascript: Linguagem Javascript • A identificação das tags HTML são importantes porque dessa forma podemos acessar os atributos dessas tags no código javascript. É por esse recurso que é possível por exemplo executar um comando Datamine utilizando o arquivo de entrada digitado por um usuário em um campo de formulário. Métodos de exibição de janelas • Existem três métodos que são normalmente utilizados: • alert() – exibe uma mensagem ao usuário • confirm() – solicita que o usuário clique em um botão OK ou Cancelar para confirmar ou cancelar uma operação • prompt() – solicita que o usuário digite uma sequência de texto ou valores • Todos esses métodos exibem um diálogo simples na tela que são chamados de popup Linguagem Javascript - DOM • Document Object Model • Com Javascript e possível criar e destruir dinamicamente código HTML na página em que o código está sendo utilizado , isso é útil quando queremos atualizar dinamicamente uma tabela com os dados que o usuário inseriu em um formulário • Cada elemento de uma HTML pode ser recuperado no código através das funções document.getElementById, document.getElementsByName, document.getElementsByTagName Linguagem Javascript - DOM • É possível ainda escrever os filhos internamente de tags html em tempo de execução através do atributo innerHTML Linguagem Javascript • Exercícios: • Criar um evento de clique de botão com o último exercício que mostra todos os valores no formulário que são do tipo texto em um alert. • Crie uma lista HTML vazia abaixo do formulário e quando o usuário clicar no botão a mesma deve ser atualizada com o nome inserido no formulário. • Desafio: Ao invés de atualizar a lista vazia, atualizar a tabela com nome cargo e setor. FSO - FileSystemObject • Biblioteca disponibilizada pela Microsoft para que possamos gerenciar os arquivos e pastas no sistema operacional Ex: var fso = new ActiveXObject("Scripting.FileSystemObject"); • Basicamente existem dois componentes que podem ser manipulados com o FSO. • Pastas • Arquivos FSO - FileSystemObject FSO - FileSystemObject FSO - FileSystemObject • Lendo informações em um arquivo TXT FSO - FileSystemObject • Inserindo informações em um arquivo TXT Exemplo: Criar e Deletar Pastas Exemplo: Manipulação de Arquivos FSO - FileSystemObject • Exercicio 1: Escrever um script com um botão que cria uma pasta no endereço que está definido em uma caixa de texto, e um botão de deletar a pasta. • Exercicio 2: Crie um arquivo com uma lista de 5 nomes e um script que lê esses nomes colocando o mesmo em uma lista ordenada na página web do script • Desafio: Crie um script que lê os dados do arquivo cliente e crie uma tabela html com tais dados. Estrutura dos arquivos Datamine • Strings • Pontos • Wireframes (TR e PT) • Modelo de Blocos • Drillholes Estrutura dos arquivos Datamine • Strings Campos de formatação Campos de coordenadas Campos estruturais Estrutura dos arquivos Datamine • Estrutura de um arquivo de strings 1 2 3 4 5 PVALUE 1 – 5 PTNs Estrutura dos arquivos Datamine • Estrutura de um arquivo de strings 1 2 3 2 3 PVALUE 1 – 3 PTNs PVALUE 2 – 3 PTNs 1 Estrutura dos arquivos Datamine • Pontos Estrutura dos arquivos Datamine • Wireframes • Os wireframes são compostos por 2 arquivos: • PT- Informação dos pontosda triangulação • TR- Triangulação Estrutura dos arquivos Datamine Arquivo PT Arquivo TR Estrutura dos arquivos Datamine • Modelo de Blocos Linguagem Datamine Opções de manipulação de arquivos (processos internos) Comandos de design Gravando e executando Scripts • Exercício 1: • Abrir o projeto Scripting Tutorial.Start Point localizado em C:\Database\DMTutorials\Projects\S3ScriptTut\ProjFiles\Standard\ • Iniciar a gravação de um script • Executar os comandos • MGSORT (para os arquivos de collar, assay, lithology e survey) • JOIN (arquivos tempcollars e tempassays→ temp1) • HOLMER (arquivos temp1 e templith→ temp2) • DESURV (arquivos temp2 e tempsurvey→ dholes) • DDLIST (dholes) • Parar a gravação do script e executá-lo na aba Customization Entendendo os scripts no DM Studio 3 • As primeiras linhas de código HTML contém informações de cabeçalho. As próximas linhas contém algumas variáveis que vão ser usadas dentro do script. • Na sequência da declaração das variáveis, estão as três funções principais que fazem a maioria dos trabalhos: • AutoConnect(): cria instâncias de objetos chamados oDmApp e oScript que permite a conexão com o Studio 3 e utilização da biblioteca auxiliar de script, respectivamente, é ativada com o evento de carregamento de página; • btnExecute_onClick(): executa a sequência de comandos que foram gravados, onde posteriormente será editado; • btnHelp_onClick(): executa o arquivo de ajuda. • No final está o código HTML que descreve a interface. Formato de um processo DM • Quando gravamos um script automaticamente no studio 3 , por exemplo um mgsort, o formato do comando dentro do script é: oDmApp.ParseCommand("mgsort &IN=ttemp1 &OUT=ttemp3 *KEY1=PVALUE *KEY2=PTN {FLAG=2}"); Sintaxe: nome do comando & - nome de arquivo * - nome de campo @ - parâmetro {} campo Criando interface para pesquisa var oDmApp = null; var oScript = null; var oDmBrowser; function window_onload() { AutoConnect(); } function AutoConnect() { oScript = new ActiveXObject(“DatamineStudio.ScriptHelper”); oScript.initialize(window); oDmApp = oScript.getApplication(); if (oDmApp== null) return false; else return true; } Criando interface para pesquisa function btnOK_onclick() { if (tpInputFile.value != “” && tbOutputFile.value != “”) var theCommand = “copy &in=“ + tbInputFile.value + “ &out=“ + tbOutputFile.value; if (tbRetrieval.value != “”) theCommand += “ {“+ tbRetrieval.value + “}”; oDmApp.ParseCommand(theCommand); } Criando interface para pesquisa function DisplayBrowser() { oDmBrowser = oDmApp.ActiveProject.Browser; oDmBrowser.TypeFilter = oScript.DmFileType.dmNothing; oDmBrowser.Show(false); return oDmBrowser.FileName; } function btnBrowse1_onclick() { tpInputFile.value = DisplayBrowser() } function btnBrowse2_onclick() { tpInputFile.value = DisplayBrowser() } Tipos de Arquivos dmString dmPoint dmWireframe dmWireframePoint dmBlockModel dmDrillHole Gravando e executando Scripts • Exercício 1: • Crie um formulário com um botões de browser para cinco arquivos, collar, assay, survey ,litoe uma saída desejada; • Ordene cada arquivo de entrada por BHID • Crie um arquivo de furos único com as 3 entradas e o comando HOLES3D • Atualize os furos na tela com um comando via script Acessando registros • Biblioteca DmTableADO var oDmFile = new ActiveXObject("DmFile.DmTableADO"); oDmFile.Open(oDmApp.ActiveProject.Folder +"\\”+arquivo_saida.value+”.dm",true); oDmFile.MoveFirst(); var teor = oDmFile.GetColumn(3); oDmFile.MoveNext(); var tonelagem = oDmFile.GetColumn(2); oDmFile.Close(); alert(“Tonelagem = “ + tonelagem + “\n Teor = “ + teor + “”); var nRecs = oDmFile.GetRowCount(); Prática de Exercícios • Exercício 1: • Escrever um script para entrar com um arquivo de strings e calcular o comprimento da string. Prática de Exercícios • Exercício 2: • Criar script para calcular tonelagem de minério e teor médio de um modelo de blocos, segundo um filtro pré-determinado em uma caixa de texto. oScript.makeFieldsPicklist(Text2.value, Select11); Alameda Oscar Niemeyer, 360 | 7° andar Nova Lima - MG | Brasil | 34.000-000 Tel.: +55 (31) 3264 9377 www.dataminesoftware.com
Compartilhar