Módulo TQSGRID

O TQSGrid é uma ferramenta para confecção de tabelas (ou planilhas) em desenho DWG. Ele permite que o programador crie tabelas formatando células com atributos, em vez de calcular coordenadas e separar linhas e colunas. A tabela abaixo é gerada pelo programa TSTGRID.py distribuído como exemplo.

63ab81c57929a1391e7b436875a745f3.png

Este módulo permite também que as tabelas sejam salvas em formato HTML para visualização em browser, e em formato LST com delimitador, que pode ser importado por planilhas.

Modo de funcionamento

O elemento básico da planilha são as células; elas são distribuídas em linhas e colunas numeradas a partir de zero. As células recebem atributos, que podem ser definidos por célula, coluna, linha ou para a tabela inteira. Os atributos assumidos por uma célula dependem donde foram definidos atributos, com a pesquisa também nesta ordem. Você pode misturar a forma de definir atributos, de maneira que o programa assumirá aquele que achar primeiro.

Você cria uma tabela com uma chamada como:

from TQS import TQSGrid

griddwg = TQSGrid.GridDwg ()

Depois dimensiona o número de linhas e colunas, e cria atributos para as células, como em:

griddwg.format.columns= numcolunas

griddwg.format.lines = numlinhas

atrib = TQSGrid.GridDwgAttrib (griddwg)

griddwg.attrib.SetAttribGrid (attrib)

O preenchimento das células será feito com chamadas como:

griddwg.format.SetCell (0, 1, "Pos")

E finalmente você salva o DWG ou outros formatos:

griddwg.file.SaveAsDwg (nomdwg)

griddwg.file.SaveAsLst (nomlst)

griddwg.file.SaveAsHtml (nomhtm)

Atributos de uma célula

Os atributos de uma célula são definidos por um objeto tipo GridDwgAttrib:

atrib = TQSGrid.GridDwgAttrib (griddwg)

TQSGrid.GridDwgAttrib (griddwg)

Cria um objeto tipo GridDwgAttrib, para ser usado como atributo de tabela

Retorna: o objeto GridDwgAttrib criado.

level

Nível de desenho

hText

Altura de texto, cm. A escala padrão do desenho é criado é 1:1.

iHorizontalAlignment

Alinhamento de texto GridDwgAttrib.ALIN_Hxxxx, definidos a seguir:

GridDwgAttrib.ALIN_HINVAL

Alinhamento inválido

GridDwgAttrib.ALIN_HESQ

Alinhamento horizontal à esquerda

GridDwgAttrib.ALIN_HCEN

Alinhamento horizontal central

GridDwgAttrib.ALIN_HDIR

Alinhamento horizontal à direita

iVerticalAlignment

Alinhamento de texto GridDwgAttrib.ALIN_Vxxxx, definidos a seguir:

GridDwgAttrib.ALIN_VINVAL

Alinhamento inválido

GridDwgAttrib.ALIN_VINF

Alinhamento vertical inferior

GridDwgAttrib.ALIN_VCEN

Alinhamento vertical central

GridDwgAttrib.ALIN_VSUP

Alinhamento vertical superior

cellHeight

Altura da célula, cm

cellWidth

Largura da célula, cm

cellFormat

Formato da célula, na convenção da linguagem C, família de rotinas tipo printf. Tem que bater o tipo usado. Ex: “%7.2f” para um número real, “%05d” para um número inteiro. Se não definido, um padrão será usado. A definição de um formato inválido poderá causar invasão de memória.

Atributos das células com TQSGrid.attrib

Atributos podem ser associados às células, colunas, linhas ou tabela inteira, sendo que o programa usa por célula o primeiro atributo que achar, nesta ordem. Os atributos são fornecidos como um objeto GridDwgAttrib.

attrib.SetAttribGrid (attrgrid)

Define os atributos gerais do grid

attrib.SetAttribLine (line, attrgrid)

Define os atributos da linha com line= 0..lines-1

attrib.SetAttribColumn (column, attrgrid)

Define os atributos da coluna com column= 0..columns-1

attrib.SetAttribCell (line, column, attrgrid)

Define os atributos da célula com a linha line= 0..lines-1 e a coluna column= 0..columns-1

Formatação e preenchimento com TQSGrid.Format

Estas rotinas definem o tamanho do grid e permitem mesclar linhas e colunas, assim como definir o valor das células.

Propriedades de dimensionamento da tabela

Podem ser lidos ou gravados, definem o tamanho da tabela.

format.columns

Número de colunas do grid.

format.lines

Número de linhas do grid.

Métodos de formatação e preenchimento

São as rotinas que permitem juntar colunas dentro de linhas, ou linhas dentro de colunas, e o de definição de valores de células.

format.MergeLine(line, startColumn, endColumn)

Mistura as colunas startColumn a endColumn inclusive da linha line.

As linhas misturadas não têm linha divisória.

format.MergeColumn(column, startLine, endLine)

Mistura as linhas startLine a endLine inclusive, da coluna column.

As colunas misturadas não têm linha divisória.

format.SetCell(line, column, val)

Valor de uma célula. Pode ser inteiro, real ou texto.

Programa TSTGRID.py para teste do TQSGrid

Este programa gera o desenho mostrado no início do capítulo. Ele gera 3 arquivos de saída:

TSTDWGGRID.DWGTabela em DWG, para leitura pelos editores EAG.
TSTDWGGRID.HTMTabela em HTML, para leitura por browsers.
TSTDWGGRID.LSTTabela em listagem, delimitada, para leitura por planilhas.

Note que atualmente os browsers têm dificuldade para interpretar tabelas com mesclagem de linhas ou colunas. Para ver corretamente o arquivo HTML em um browser, é necessário tirar toda a mesclagem dos programas. Alternativamente o programa NTQSHTM.EXE distribuído com o TQS visualiza corretamente este arquivo.