Pergunte aqui

Histórico de revisões [voltar]

clique para ocultar/mostrar a revisão 1
Versão inicial

Você pode, por exemplo, definir este campo como texto (VARCHAR), mas usar duas macros para lidar com ele. Uma macro irá obter a URL (caminho) do arquivo, enquanto outra abrirá esse arquivo (URL armazenada) no leitor pdf padrão do sistema. A URL é armazenada como um texto na tabela.

Arquivo de exemplo:


O formulário do arquivo acima contém:

  • 1 caixa de texto chamada txtCaminho, vinculada ao campo que receberá o link (url) na tabela.
  • 2 botões de pressão.


O primeiro botão de pressão deve ter a macro abaixo associada ao seu evento Executar ação. Ela irá obter a url do arquivo pdf que o usuário selecionar na janela.

Sub cmdSelecionar_click( oEvento )
REM Evento > Executar ação
Dim oForm As Object, oCaminho As Object, oArquivo As Object
Dim sPdf As String

   oForm = oEvento.Source.Model.Parent
   oCaminho = oForm.getByName("txtCaminho")

   sPdf = EscolherPDF( "LO BASE - Escolher PDF" )
   If Len(sPdf) > 0 then
      oCaminho.BoundField.updateString( sPdf ) 
   End If
End Sub


Function EscolherPDF(sTitulo as string) as String
Dim s As Object
   s = createUnoService( "com.sun.star.ui.dialogs.FilePicker" )
   s.initialize( Array(com.sun.star.ui.dialogs.TemplateDescription.FILEOPEN_SIMPLE) )
   s.appendFilter( "Arquivos PDF","*.pdf" )
   s.setTitle( sTitulo )
   s.setLabel( com.sun.star.ui.dialogs.CommonFilePickerElementIds.PUSHBUTTON_OK, sBouton )
   s.setMultiSelectionMode( False )
   If s.Execute = com.sun.star.ui.dialogs.ExecutableDialogResults.OK Then
      EscolherPDF = s.files(0)
   Else
      EscolherPDF = ""
   End If
End Function


O segundo botão de pressão deve ter a macro abaixo associada ao seu evento Aprovar ação. E para funcionar, é preciso ainda que sua propriedade Ação seja alterada a para Abrir documento/página da web.

Sub cmdAbrir_click( oEvento )
REM Evento > Aprovar ação
REM => Alterar a propriedade "Ação" para "Abrir documento/
REM    página da web
Dim oForm As Object, oCaminho As Object

   oForm = oEvento.Source.Model.Parent
   oCaminho = oForm.getByName("txtCaminho")

   If FileExists( oCaminho.Text ) Then
      oEvento.Source.Model.TargetURL = oCaminho.Text
   End If
End Sub


Atte,