Você está na página 1de 81

Utilizao de HTML/Javascript em Datamine Studio 3

vec@datamine.com.br

Programao
Contedo

Noes das linguagens HTML, Javascript e Comandos Datamine; Customizao de processos datamine utilizando processos internos e comandos grficos; Utilizao das bibliotecas DatamineStudio (ScriptHelper) e FSO (FileSystemObject).

Parte prtica

Consiste na criao de um script para a customizao de algum processo que voc utilize no seu dia-a-dia;

Visa a aplicao do aprendizado do curso na prtica.

Introduo
O uso de scripts em conjunto com o Datamine Studio possui diversas vantagens, podemos citar entre as mais importantes:

Utiliza Javascript, uma linguagem simples, prtica (no precisa ser compilada e possui processos muito simples) e largamente utilizada com uma vasta bibliografia gratuita disponvel na Internet;
Possibilita rodar tanto comandos internos quanto comandos grficos no Datamine. Macros por exemplo, s possibilitam rodar processos internos; O uso de uma linguagem de programao como Javascript, potencializa as possibilidades de customizao de processos devido a grande gama de frameworks e bibliotecas disponveis; Javascript pode ser utilizada como ponte entre o Datamine e outros softwares utilizados largamente, como programas do office.

As 3 Linguagens
Para a criao de um script necessrio o conhecimento de 3 linguagens :

HTML
Javascript Datamine

Voc no 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 dvida usar bem a combinao entre estas 3 linguagens junto com conceitos de estrutura de software.

Linguagem HTML
O que HTML?

HTML uma linguagem para descrever as pginas web.

HTML significa Hyper Text Markup Language HTML no uma linguagem de programao, uma linguagem de marcao HTML utiliza tags de marcao para descrever as pginas web

Linguagem HTML
Tags HTML

Tags de marcao HTML so normalmente chamadas de tags HTML

Tags HTML so palavras-chave entre parenteses angulares como <html> Tags HTML normalmente vm em pares, como <b> e </ b> A primeira tag do par a tag de incio, a segunda tag a tag final

Tags de incio e fim tambm so chamadas de tags de abertura e fechamento

Forma geral

<tag attr1=valor1 attr2=valor2.....> Filho </tag>

Linguagem HTML
Documentos HTML = Pginas Web

Documentos HTML contm tags HTML e texto simples Os documentos HTML so tambm chamados de pginas web

O objetivo de um navegador web(como Internet Explorer ou Firefox) interpretar os documentos HTML e exib-los como pginas web no formato de visualizao que estamos familiarizados.

Linguagem HTML

Linguagem HTML
<html> <body> <h1>Meu primeiro ttulo</h1> <p>Meu primeiro pargrafo</p> </body> </html>

Explicao do exemplo acima: O texto entre <html> e </ html> descreve a pgina web O texto entre <body> e </ body> o contedo visvel da pgina O texto entre <h1> e </ h1> exibido como um ttulo O texto entre <p> e </ p> exibido como um pargrafo

Linguagem HTML
Onde pode ser editado?

Qualquer editor de texto simples ou avanado (Notepad, Notepad++, SublimeText,Web Developer,Visual Studio,Eclipse Free Script Editor...) Independente do editor, recomendamos que o escolhido seja sintax highlight

10

Linguagem HTML
Algumas consideraes

A maioria das tags so fechadas com /; Exemplo: <tag incio> Texto </tag fim>; A ordem em que as tags so fechadas importa; Tags HTML no so case sensitive: <P> significa o mesmo que <p>.

Extenso HTM ou HTML?


Voc pode usar qualquer uma das duas, HTM ou HTML; bom sempre adotar padres, ento use s HTM ou s HTML em seus arquivos.

11

Linguagem HTML
Cabealhos
<h1>This is a heading</h1> <h2>This is a heading</h2> <h3>This is a heading</h3>

Pargrafos
<p>This is a paragraph.</p> <p>This is another paragraph.</p>

Links
<a href="http://www.cae.com/mining/">This is a link</a>

Imagens
<img src=cae_logo.jpg" width="104" height="142" />

12

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 pargrafo:

<p>Isso <br />um para<br />grafo com quebras de linha</p>

Comentrios
<!-- This is a comment -->

13

Linguagem HTML
Atributos HTML

Tags HTML podem ter atributos, os quais fornecem informaes adicionais sobre um elemento. Os atributos so sempre especificados na tag inicial. Mais importantes so tag de identificao Os valores dos atributos so sempre encapsulados por aspas duplas. Exemplo:

Links em HTML so definidos com a tag <a>. O endereo do link especificado no atributo href:

<a href="http:// http://www.cae.com/mining ">This is a link</a>

14

Linguagem HTML
Tags de formatao HTML

Texto em negrito <b> ou <strong> Texto sublinhado <u> Texto em itlico <i> Texto grande <big> Texto enfatizado <em> Texto pequeno <small> Texto subscrito <sub> Texto sobrescrito <sup>

15

Linguagem HTML
Tabelas
<table border="1"> <tr> <th>Cabealho 1</th> <th>Cabealho 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>

16

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>

17

Linguagem HTML
Formulrios

Os formulrios HTML so usados para transmitir dados para um servidor. Um formulrio pode conter elementos de entrada, como campos de texto, checkboxes, botes de radio, botes e muito mais. A tag <form> usada para criar um formulrio HTML:
<form> . input elements . </form>

18

Linguagem HTML
Formulrios

Text
<form> Nome Completo: <input type="text" name=nome" /><br /> Endereo <input type="text" name=endereco /> </form>

Password
<form> senha: <input type="password" name="pwd" /> </form>

19

Linguagem HTML
Formulrios

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" /> Eu tenho um carro<br /> <input type="checkbox" name=veiculo" value=carro" /> Eu tenho uma moto </form>

20

Linguagem HTML
Formulrios

Select
<select> <option value="volvo">Volvo</option> <option value="saab">Saab</option> <option value="mercedes">Mercedes</option> <option value="audi">Audi</option> </select>

Textarea

<input type=textarea>

21

Linguagem HTML
Formulrios

Boto <td><input type="button" value=Boto"></td>

22

Linguagem HTML
Exerccios:

Criar uma pagina com uma tabela de funcionrios de uma empresa com as colunas de nome, cargo, setor e tempo de empresa;(Minimo 3 funcionrios) Crie na mesma pgina do exerccio anterior um formulrio com nome de funcionario, data de nascimento, sexo (feminino e masculino), formao acadmica , setor ,cargo e benefcios. Como no exemplo mostrado Para casa: Formate a pgina com o formulrio criado dentro de uma tabela

23

Linguagem Javascript
O que Javascript?

Javascript uma linguagem de programao leve, comumente embutida diretamente em pginas HTML; Javascript uma linguagem interpretada (significa executar scripts sem compilao preliminar); Largamamente utlizada em aplicaes web para dar dinamicidade as pginas carregadas. Todos podem usar o Javascript sem a aquisio de uma licena. O interpretador da linguagem vem imbutido nos navegadores.

24

Linguagem Javascript
Java e Javascript so a mesma coisa?

No! Java e Javascript so duas linguagens totalmente diferentes em conceito e design. Java uma linguagem de programao poderosa e muito mais complexa est na mesma categoria de linguagens como C++.

25

Linguagem Javascript
Onde o script geralmente se encontra na pgina HTML?
<head> <script language=javascript> function nomeDaFuncao1() { cdigo a ser executado } function nomeDaFuncao2() { cdigo a ser executado }

</script>
</head>

26

Linguagem Javascript
Declarando variveis:

Voc declara variveis em Javascript com a palavra-chave var


var numero; var carBrand;

Depois da declarao mostrada acima, as variveis esto vazias. Entretanto, voc pode associar valores s variveis quando as declara.
var numero = 5; var carBrand = Volvo;

27

Linguagem Javascript
Tipos Bsicos Numero: Var num=5; Texto: Var text = texto ou var text = texto Booleano Var boolean = true;

28

Linguagem Javascript
Operadores

Aritmticos
-, +, *, /, %, ++, --

Comparao
===, ==, <, >, !=, <=, >=

Lgicos
&&, ||, !

29

Linguagem Javascript
Sintaxe
// comentrio at o fim da linha /* bloco de comentrio */ O terminador de instrues ; Blocos de instrues definidos por { }

30

Linguagem Javascript
Sintaxe

If
if (condio) { cdigo a ser executado se condio verdadeira }

If ... Else
if (condio) { cdigo a ser executado se condio verdadeira } else { cdigo a ser executado se condio no verdadeira }

31

Linguagem Javascript
Sintaxe

If ... else if ... else


if (condio1) { cdigo a ser executado se condio1 verdadeira } else if (condio2) { cdigo a ser executado se condio2 verdadeira } else { cdigo a ser executado se condio1 e condio2 no so verdadeiras }

32

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; }

33

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));

34

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());

35

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>

36

Linguagem Javascript - Eventos


Evento

Em computao um evento uma ao ou ocorrencia detectado por um programa que por sua vez delega ,caso especificado, uma ao ou conjunto de aes que so executadas no momento o mesmo ocorre

Um clique de mouse um exemplo de evento como ao O final do carregamento de uma pgina HTML um evento que uma ocorrncia.

No caso dos scripts feitos com javascript e HTML so os navegadores WEB os responsveis por escutar os eventos

37

Linguagem Javascript - Eventos


So os eventos os responsveis por ligar aes tomadas pelo usurio nas pginas HTML com cdigo javascript:

38

Linguagem Javascript - Eventos


A identificao das tags HTML so importantes porque dessa forma podemos acessar os atributos dessas tags no cdigo javascript. por esse recurso que possvel por exemplo executar um comando Datamine utilizando o arquivo de entrada digitado por um usurio em um campo de formulrio.

39

Linguagem Javascript
Funes

Uma funo e um bloco de cdigo que executa isoladamente do outros ela pode ou no retornar um valor a sua chamada , para a ligao dos nossos eventos podemos chamar uma funo. Veremos depois como podemos utiliza-las em diversos eventos

40

Linguagem Javascript - DOM


Document Object Model

Com Javascript e possvel criar e destruir dinamicamente cdigo HTML na pgina em que o cdigo est sendo utilizado , isso til quando queremos atualizar dinamicamente uma tabela com os dados que o usurio inseriu em um formulrio Cada elemento de uma HTML pode ser recuperado no cdigo atravs das funes document.getElementById, document.getElementsByName, document.getElementsByTagName

41

Linguagem Javascript - DOM

possivel ainda escrever os filhos internamente de tags html em tempo de execuo atravs do atributo innerHTML

42

Linguagem Javascript
Exerccios:

Criar um evento de clique de boto com o ltimo exerccio que mostra todos os valores no formulrio que so do tipo texto em um alert. Crie uma lista HTML vazia abaixo do formulrio e quando o usurio clicar no boto a mesma deve ser atualizada com o nome inserido no formulrio.

Desafio: Ao invs de atualizar a lista vazia, atualizar a tabela com nome cargo e setor.

43

Estrutura dos arquivos Datamine


Strings Pontos Wireframes (TR e PT) Modelo de Blocos

Drillholes

44

Estrutura dos arquivos Datamine


Strings

Campos de formatao
Campos estruturais

45

Estrutura dos arquivos Datamine


Estrutura de um arquivo de strings
2

4
1

PVALUE 1 5 PTNs

46

Estrutura dos arquivos Datamine


Estrutura de um arquivo de strings
2

2
1 1 3 3

PVALUE 1 3 PTNs PVALUE 2 3 PTNs

47

Estrutura dos arquivos Datamine


Pontos

48

Estrutura dos arquivos Datamine


Wireframes

Os wireframes so compostos por 2 arquivos:

PT- Informao dos pontos da triangulao TR- Triangulao

49

Estrutura dos arquivos Datamine


Triangulao (*pt)

Campos estruturais

50

Estrutura dos arquivos Datamine


Triangulao (*tr)

Arquivo PT
51

Campos estruturais

Estrutura dos arquivos Datamine


Modelo de Blocos

52

Linguagem Datamine

Comandos de design

Opes de manipulao de arquivos (processos internos)

53

Gravando e executando scripts no DM Studio 3


Exerccio 1:

Abrir o projeto Scripting Tutorial.Start Point localizado em C:\Database\DMTutorials\Projects\S3ScriptTut\ProjFiles\Standard\ Iniciar a gravao 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 gravao do script e execut-lo na aba Customization

54

Entendendo os scripts no DM Studio 3


As cinco primeiras linhas de cdigo HTML contm informaes de cabealho. As prximas trs linhas contm algumas variveis que vo ser usadas dentro do script. Na sequncia da declarao das variveis, esto as trs funes principais que fazem a maioria dos trabalhos:

AutoConnect(): cria instncias de objetos chamados oDmApp e oScript que permite a conexo com o Studio 3 e utilizao da biblioteca auxiliar de script, respectivamente; btnExecute_onClick(): executa a sequncia de comandos que foram gravados; btnHelp_onClick(): executa o arquivo de ajuda.

No final est o cdigo HTML que descreve a interface.

55

Mtodos de exibio de janela simples


Existem trs mtodos que so normalmente utilizados:

alert() exibe uma mensagem ao usurio confirm() solicita que o usurio clique em um boto OK ou Cancelar para confirmar ou cancelar uma operao prompt() solicita que o usurio digite uma sequncia de texto ou valores

Todos esses mtodos exibem um dilogo simples na tela que so chamados de popup

56

Criando interface para pesquisa de arquivo DM


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; }

57

Criando interface para pesquisa de arquivo DM


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); }

58

Criando interface para pesquisa de arquivo DM


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

59

Criando interface para pesquisa de arquivo DM


function btnBrowse1_onclick() { tpInputFile.value = DisplayBrowser() oScript.makeFieldsPicklist(tbInputFile.value, selFields);

}
function btnOK_onclick(){ if (tpInputFile.value != && tbOutputFile.value != ) { var theCommand = copy &in= + tbInputFile.value + &out= + tbOutputFile.value + *f1= + selFields.value + @keepall=1; } if (tbRetrieval.value != ) theCommand += {+ tbRetrieval.value + }; oDmApp.ParseCommand(theCommand); }

60

Criando interface para pesquisa de arquivo DM


function btnOK_onclick(){

if (tpInputFile.value == || tbOutputFile.value == ) { alert(Por favor, informe os arquivos de entrada e sada); return; }


var theCommand = copy &in= + tbInputFile.value + &out= + tbOutputFile.value; var opts = selFields.options.all; var fieldNum = 0; for (var i = 0; i < opts.length; i++) if (opts(i).selected) theCommand += *f + (++fieldNum) + = + opts(i).value if (fieldNum == 0){ alert(Nenhum campo selecionado.); return; } if (tbRetrieval.value != ) theCommand += {+ tbRetrieval.value + }; oDmApp.ParseCommand(theCommand); }
61

Adicionando tabela e acessando registros


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();

62

Prtica de Exerccios
Exerccio 1:

Criar script para calcular tonelagem de minrio e teor mdio de um modelo de blocos, segundo um filtro pr-determinado em uma caixa de texto.

63

Prtica de Exerccios
Exerccio 2:

Escrever um script para criar uma string de 3 pontos no qual as coordenadas dos pontos (XP, YP e ZP) so inseridas atravs de caixas de texto e calcular o comprimento da string.

64

Prtica de Exerccios
Exerccio 3:

Pegar script da avaliao do modelo de blocos, usar o adicionar tabela para ler o arquivo gerado e mostrar os valores em uma janela alert.

65

Prtica de Exerccios
Exerccio 4:

Mostrar o resultado do exerccio anterior na prpria janela do script.

66

FSO FileSystemObject

Habilita uma maior interao com outros aplicativos, sendo possvel:

Adicionar, mover, mudar, criar e deletar arquivos e pastas (diretrios)

67

FSO FileSystemObject

68

FSO FileSystemObject

69

Exemplo: copiar arquivos de um diretrio


var fso = new ActiveXObject("Scripting.FileSystemObject"); var diretorioTxt = pathTxt.value.replace(/\\/g, "/") + "/"; var pasta = fso.getfolder(diretorioTxt); var pathProject = oDmApp.ActiveProject.Folder.replace(/\\/g, "/") + "/"; var arquivos = new Enumerator(pasta.Files);

for (i=0;!arquivos.atEnd();arquivos.moveNext()){ if(arquivos.item().type=="Documento de texto"){ fso.CopyFile(diretorioTxt+arquivos.item().name, pathProject); fso.DeleteFile(pathProject+arquivos.item().name); } }

70

FSO FileSystemObject
Exerccio 1:

Escrever um script com um boto que cria um folder no endereo que est definido em uma caixa de texto, e um boto de deletar o folder.

var fso = new ActiveXObject("Scripting.FileSystemObject"); fso.CreateFolder (nome do folder);

71

FSO FileSystemObject
Exerccio 2:

Escrever um script com um boto que cria um arquivo TXT dentro do folder definido na caixa de texto.

var s = fso.CreateTextFile(pathProject+arq_out.value+".txt", true); s.Close();

72

FSO FileSystemObject
Inserindo informaes em um arquivo TXT

73

FSO FileSystemObject
Exerccio 3:

Escrever um script que cria um arquivo de texto dentro do folder especificado em uma caixa de texto, com o texto inserido atravs de outra caixa de texto.

74

FSO FileSystemObject
Exerccio 4:

Escrever um script que cria um arquivo de texto dentro do folder especificado em uma caixa de texto, com o texto inserido atravs de vrias outras caixas de texto.

75

FSO FileSystemObject
Lendo informaes em um arquivo TXT

76

FSO FileSystemObject
Exerccio 5:

Escrever um script que leia um txt criado e mostre os valores.

77

FSO FileSystemObject
Exerccio 6:

Criar um arquivo TXT com os valores de TON e Teor do script de modelo de blocos criado no exerccio 3 da seo Prtica de Exerccios

78

Script Legenda
Funes:

CreateLegend(sLegendName) addFilterLegendItem(oLegend, sItemDesc, sFilter, sColor) addRangeItem(oLegend, sItemDesc, sFrom, sTo, sColor) ApplyLegend(sLegendName, sLegendColumn, sDataType)

getNumOverlays(sDataType)
getOverlay(sDataType,num) removeCurrentLegend(overlay) setLegend(overlay, sLegendName, sLegendColumn, sDataType) displayLegend(sLegendName)

79

Script Legenda
Exerccio 7:

Criar um script de legenda utilizando as funes do slide anterior

80

CAE Mining Datamine Brasil Alameda da Serra, 360 7o. Andar Nova Lima MG CEP 34000-000 Tel: +55/31 32649377 Fax: +55/31 32649377 www.datamine.co.uk

81