Serviço SFDatabases.Datasheet service

O serviço Datasheet permite visualizar o conteúdo das tabelas do banco de dados, bem como os resultados das consultas e instruções SQL usando o Data View do Base. Adicionalmente, este serviço permite:

Invocação do serviço

Antes de usar o serviço Datasheet, a biblioteca ScriptForge precisa ser carregada ou importada:

note

• Macros BASIC precisam carregar a biblioteca ScriptForge usando a seguinte instrução:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Scripts Python exigem uma importação do módulo scriptforge:
from scriptforge import CreateScriptService


Em Basic

O serviço Datasheet pode ser invocado de duas maneiras diferentes dependendo se o arquivo de banco de dados estiver aberto.

O exemplo abaixo considera que o arquivo do banco de dados está aberto, assim o serviço UI pode ser usado para recuperar o documento e o método OpenTable do serviço Database é usado para obter a instância do serviço Datasheet.


    Dim ui As Object, oBase As Object, oSheet As Object
    Set ui = CreateScriptService("UI")
    ' O objeto oBase é uma instância do serviço Base
    Set oBase = ui.GetDocument("C:\Documents\myDB.odb")
    ' O objeto oSheet é uma instância do serviço Datasheet
    Set oSheet = oBase.OpenTable("Customers")
  

No exemplo acima é também possível usar o método OpenQuery do serviço Base para obter uma instância do serviço Datasheet.

Para invocar o serviço Datasheet quando o arquivo do banco de dados não estiver aberto, use os métodos OpenTable, OpenQuery ou OpenSql do serviço Database. O exemplo abaixo usa o método OpenTable para abrir uma tabela que existe no arquivo de banco de dados:


    Dim oDatabase As Object, oSheet As Object
    ' O objeto oDatabase é uma instância do serviço Database
    Set oDatabase = CreateScriptService("Database", "C:\Documents\myDB.odb")
    ' O objeto oSheet é uma instância do serviço Datasheet
    Set oSheet = oDatabase.OpenTable("Customers")
  
Em Python

Os exemplos acima podem ser traduzidos para Python da seguinte maneira:


    from scriptforge import CreateScriptService
    ui = CreateScriptService("UI")
    base_doc = ui.GetDocument(r"C:\Documents\MyFile.odb")
    sheet = base_doc.OpenTable("Customers")
  

    database = CreateScriptService("Database", r"C:\Documents\myDB.odb")
    sheet = database.OpenTable("Customers")
  

Propriedades

As seguintes propriedades estão disponíveis no serviço Datasheet:

Nome

Somente leitura

Tipo

Descrição

ColumnHeaders

Sim

Array de Strings

Retorna um Array com os nomes dos cabeçalhos das colunas em uma folha de dados.

CurrentColumn

Sim

String

Retorna o nome da coluna atualmente selecionada.

CurrentRow

Sim

Integer

Retorna o número da linha atualmente selecionada, começando em 1.

DatabaseFileName

Sim

String

Retorna o nome do arquivo Base no formato FSO.FileNaming.

Filter

Não

String

Especifica um filtro a ser aplicado à folha de dados expresso como uma cláusula WHERE de uma consulta SQL sem a palavra-chave WHERE. Se uma String vazia for fornecida então o filtro Filter ativo é removido.

LastRow

Sim

Integer

Retorna o número de linhas na folha de dados.

OrderBy

Não

String

Especifica a ordem em que os registros são mostrados expresso como uma cláusula ORDER BY de uma consulta SQL sem a palavra-chave ORDER BY. Se uma string vazia for especificada o valor OrderBy ativo é removido.

ParentDatabase

Sim

Objeto

Retorna a instância do serviço Database à qual a folha de dados pertence.

Source

Sim

String

Retorna uma String representando a fonte de dados, a qual pode ser um comando SQL, um nome de tabela ou um nome de consulta.

SourceType

Sim

String

Retorna o tipo da fonte de dados, o qual pode ser um dos seguintes valores: "SQL", "TABLE" ou "QUERY".

XComponent

Sim

Objeto UNO

Retorna o objeto UNO com.sun.star.lang.XComponent que representa a folha de dados.

XControlModel

Sim

Objeto UNO

Retorna o objeto UNO com.sun.star.awt.XControl que representa a folha de dados.

XTabControllerModel

Sim

Objeto UNO

Retorna o objeto UNO com.sun.star.awt.XTabControllerModel que representa a folha de dados.


Métodos

Lista de Métodos no Serviço Datasheet

Activate
CloseDatasheet
CreateMenu

GetText
GetValue
GoToCell

RemoveMenu
Toolbars



Activate

Traz para frente a janela de vista de dados correspondente à instância Datasheet.

Sintaxe:

svc.Activate()

Exemplo:

Em Basic

      oSheet.Activate()
    
Em Python

      sheet.Activate()
    

CloseDatasheet

Fecha a janela de vista de dados correspondente à instância Datasheet.

Sintaxe:

svc.CloseDatasheet()

Exemplo:

Em Basic

      oSheet.CloseDatasheet()
    
Em Python

      sheet.CloseDatasheet()
    

CreateMenu

Cria uma nova entrada de menu na janela de vista de dados e retorna uma instância do serviço SFWidgets.Menu, com a qual itens de menu podem ser adicionados programaticamente.

note

Menus adicionados usando o método CreateMenu são perdidos assim que a janela de vista de dados é fechada.


Sintaxe:

svc.CreateMenu(menuheader: str, opt before: any, opt submenuchar: str): obj

Parâmetros:

menuheader: Nome do novo menu.

before: Este argumento pode ser o nome de uma entrada existente no menu antes da qual o novo menu será posicionado ou um número expressando a posição do novo menu. Se este argumento estiver em branco o novo menu será colocado na última posição.

submenuchar: Delimitador usado em árvores de menu (Padrão=">")

Exemplo:

Em Basic

      Dim oMenu As Object
      Set oMenu = oSheet.CreateMenu("Meu Menu", Before := "Dados")
      With oMenu
          .AddItem("Item 1", Command := ".uno:About")
          ' ...
          .Dispose()
      End With
    
Em Python

      menu = sheet.CreateMenu("Meu Menu", before="Dados")
      menu.AddItem("Item 1", command=".uno:About")
      # ...
      menu.Dispose()
    
tip

Leia a página de ajuda do serviço Menu para aprender mais sobre como criar menus, submenus e associar comandos a eles.


GetText

Retorna o texto em uma dada coluna da linha atual.

note

Este método não muda a posição do cursor na janela de vista de dados.


Sintaxe:

svc.GetText(column: any): str

Parâmetros:

column: O nome da coluna como uma String or a posição da coluna (começando em 1). Se uma posição maior que o número de colunas for dada, a última coluna é retornada.

Exemplo:

Em Basic

      oSheet.GetText("FirstName")
    
Em Python

      sheet.GetText("FirstName")
    

GetValue

Retorna o valor em uma dada coluna da linha atual como um tipo de dados Basic válido.

Os tipos que podem ser retornados são: String, Integer, Long, Single, Double, Date e Null.

Tipos binários são retornados como um valor Long indicando o comprimento do campo binário.

Um valor Empty é retornado se o valor requerido não pode ser recuperado.

note

Este método não muda a posição do cursor na janela de vista de dados.


Sintaxe:

svc.GetValue(column: any): any

Parâmetros:

column: O nome da coluna como uma String or a posição da coluna (começando em 1). Se uma posição maior que o número de colunas for dada, a última coluna é retornada.

Exemplo:

Em Basic

      oSheet.GetValue("Address")
    
Em Python

      sheet.GetValue("Address")
    

GoToCell

Move o cursor para a linha e coluna especificadas.

note

Este método não muda a posição do cursor na janela de vista de dados.


Sintaxe:

svc.GoToCell(opt row: int, opt column: any): bool

Parâmetros:

row: Número da linha como um valor numérico começando em 1. Se a linha requerida exceder o número existente de linhas, o cursor é movido para a última linha. Se este argumento não for especificado, então a linha não é modificada.

column: O nome da coluna como uma String ou a posição da coluna (começando em 1). Se a coluna requerida exceder o número existente de colunas, o cursor é movido para a última coluna. Se este argumento não for especificado, então a coluna não é modificada.

Exemplo:

Em Basic

      ' Move o cursor para a coluna "UltimoNome" na linha 4
      oSheet.GoToCell(4, "UltimoNome")
      ' Move o cursor para a terceira coluna da linha atual
      oSheet.GoToCell(Column := 3)
      ' Move o cursor uma linha para baixo deixando-o na mesma coluna
      oSheet.GoToCell(Row := oSheet.CurrentRow + 1)
      ' Move o cursor para a última coluna da última linha
      Dim LastColumn As Integer : LastColumn = UBound(oSheet.ColumnHeaders) + 1
      oSheet.GoToCell(oSheet.LastRow, LastColumn)
    
Em Python

      sheet.GoToCell(4, "UltimoNome")
      sheet.GoToCell(column=3)
      sheet.GoToCell(row=sheet.CurrentRow + 1)
      sheet.GoToCell(sheet.LastRow, len(sheet.ColumnHeaders))
    

RemoveMenu

Remove uma entrada do menu da janela de vista de dados com base em seu nome.

note

Este método é capaz de remover menus que pertencem à interface de usuário padrão e menus que foram adicionados programaticamente com o método CreateMenu. A remoção de menus padrão não é permanente e eles serão restaurados após a janela ter sido fechada e aberta novamente.


Sintaxe:

svc.RemoveMenu(menuheader: str): bool

Parâmetros:

menuheader: Nome do menu a ser removido, sensível à caixa. O nome não deve incluir o caractere til ("~").

Exemplo:

Em Basic

      oSheet.RemoveMenu("Data")
    
Em Python

      sheet.RemoveMenu("Data")
    

Toolbars

Este método retorna uma lista de nomes de barras de ferramentas disponíveis no documento ou uma instância do serviço SFWidgets.Toolbar.

Sintaxe:

svc.Toolbars(opt ToolbarName: str): uno
svc.Toolbars(): str[0..]

Parâmetros:

ToolbarName: O nome de uma das barras de ferramenta disponíveis.

Exemplo:

Em Basic

    Dim oToolbar As Object
    Set oToolbar = oDoc.Toolbars("myToolbar")
  
Em Python

    a_list = doc.Toolbars()
  
warning

Todas as rotinas ou identificadores do ScriptForge em Basic que possuem o caractere "_" como prefixo são reservadas para uso interno. Elas não devem ser usadas em macros escritas em Basic ou em Python.


♥ Doe para nosso projeto! ♥