Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde!
É possível extrair o conteúdo do editor de script do QlikView de forma automática? Via macro ou até mesmo outro tipo de rotina?
Minha ideia é criar uma rotina para que seja exportado apenas o script, em diversos documentos.
Obrigado!
Marcelo, você pode usar a macro abaixo
PS: A tabela TB01 possui duas colunas: a primeira com o caminho completo e nome da aplicação e a segunda só com o nome do qvw, por exemplo:
ColunaA ColuneB
C:\Arquivos\Aplicacao1.qvw Aplicacao1.qvw
sub abrirAplicacao(NomeApp, ordem)
set App = ActiveDocument.GetApplication
set novaApp = App.OpenDoc (NomeApp)
set docprop = novaApp.GetProperties
'Cria o arquivo txt e copia o script do documento para ele
Set oFS = CreateObject("Scripting.FileSystemObject")
strXmlFile = "F:\Scripts\Aplicações\"&ordem&".txt"
Set objXMLFile = oFS.OpenTextFile(strXmlFile, 2, True, 0)
objXMLFile.WriteLine docprop.Script
objXMLFile.WriteLine "&&"& ordem &"&&"
novaApp.CloseDoc
end sub
sub exportarScript
set table = ActiveDocument.GetSheetObject( "TB01" )
w = table.GetColumnCount
h = table.GetRowCount
set CellMatrix = table.GetCells2(0,0,w,h)
for RowIter=1 to h-1 'linha 0 e o nome das colunas
abrirAplicacao CellMatrix(RowIter)(0).Text, CellMatrix(RowIter)(1).Text
next
end sub
Marcelo, você pode usar a macro abaixo
PS: A tabela TB01 possui duas colunas: a primeira com o caminho completo e nome da aplicação e a segunda só com o nome do qvw, por exemplo:
ColunaA ColuneB
C:\Arquivos\Aplicacao1.qvw Aplicacao1.qvw
sub abrirAplicacao(NomeApp, ordem)
set App = ActiveDocument.GetApplication
set novaApp = App.OpenDoc (NomeApp)
set docprop = novaApp.GetProperties
'Cria o arquivo txt e copia o script do documento para ele
Set oFS = CreateObject("Scripting.FileSystemObject")
strXmlFile = "F:\Scripts\Aplicações\"&ordem&".txt"
Set objXMLFile = oFS.OpenTextFile(strXmlFile, 2, True, 0)
objXMLFile.WriteLine docprop.Script
objXMLFile.WriteLine "&&"& ordem &"&&"
novaApp.CloseDoc
end sub
sub exportarScript
set table = ActiveDocument.GetSheetObject( "TB01" )
w = table.GetColumnCount
h = table.GetRowCount
set CellMatrix = table.GetCells2(0,0,w,h)
for RowIter=1 to h-1 'linha 0 e o nome das colunas
abrirAplicacao CellMatrix(RowIter)(0).Text, CellMatrix(RowIter)(1).Text
next
end sub
Apenas para explicar...
Para exportar o script, a macro deve abrir o QVW e depois exporta-lo
Muito bom!
Era isso mesmo que procurava!
Obrigado.
Já precisei fazer isso uma vez
Com sua ajuda, estou criando uma aplicação para "gerenciar" versões de scripts.
Em um outro código, a macro obtêm uma listagem completa de todas as pastas onde trabalhado com desenvolvimento.
Além disso, obtenho o tamanho dos arquivos e a data de atualização de cada arquivo.
A ideia é criar um app para "versionamento de scripts", sem ação alguma de outros usuários.
A cada "x" minutos esse script será executado e realizará apenas o backup dos arquivos que "trocaram de versão" (que foram modificados).
Não sei se fui muito claro, mas essa é a ideia : )
Yuri, seria muito complexo pedir para a macro salvar as versões em pastas separadas? Se não existir a pasta, cria com nome do documento.
Consegui...
Sub VerificaPastas
'ActiveDocument.ClearAll
Set fso = CreateObject("Scripting.FileSystemObject")
set Files=ActiveDocument.Fields("File Name 2").GetPossibleValues
for i=0 to Files.Count-1
ActiveDocument.Fields("File Name 2").Select Files.Item(i).Text
NomePasta = "C:\Temp\1\" & ActiveDocument.Fields("File Name 2").GetPossibleValues.Item(0).Text
If Not fso.FolderExists(NomePasta) Then
fso.CreateFolder (NomePasta)
End If
Next
ActiveDocument.ClearAll
End Sub
Marcelo, você já tentou utilizar o SVN do próprio QlikView?
Estou realizando estudo disso, e lá gera os arquivos para scripts e até os objetos, relatórios, bookmarks, etc.
Para isso, basta apenas criar a pasta nome da aplicação-prj, e lá vai ser criado todos os arquivos.
Tem algum material que você possa me indicar?