Nas janelas PAD as células da Planilha e Ficha são editadas de acordo ao tipo de dado da coluna (ver dicField.dataType e dicDataType.dataType).

Assim, por exemplo, uma coluna boleana (ou lógica) é exibida como um check box e o editor padrão permite marcar ou desmarcar a célula. Já para colunas de tipo data, o editor exibe um calendário, que facilita a seleção.

As formatações para apresentação e edição são especificadas nas colunas displayMask e editMask das tabelas dicField e dicDataType.

Maior detalhe na parametrização é obtida a traves de chaves especificadas na coluna dataEditor (das tabelas dicField e dicDataType) que permite ajustar:

Editor Especializados

EditType especifica um editor especializado. A maior parte dos exemplos foi tomada dos metadados (dicField e dicJoin).

ChaveValoresDescriçãoExemplo
EditTypeboolEditor checkbox, igual que especificar tipo de dado dtBooleaneditType=bool
memo Editor de múltiplas líneas, igual que especificar tipo de dado dtMemo
Chaves complementares:
  • Display, T/F (T) mostra o conteúdo da coluna; (F) mostra um ícone. Valor default especificado em dicConfig DISPLAY_BLOB_FIELDS
  • WordWrap, [T]/F quebra automática de linha
  • MonoFont, T/[F] usa fonte monoespaçada especificado em dicConfig MONO_FONT
editType=memo;
wordwrap=F;
display=T
linkEditor de hiperlinks e e-mail 
spinSeleção numérica usando roleta (duas setas)
Chaves complementares:
  • Max, máximo valor
  • Min, mínimo valor
  • Inc, incremento
editType=spin;
max=2020;
min=1999;
inc=1
listSeleção por lista, o usuário tem que selecionar um item da lista
Chaves complementares:
  • Values, lista de valores, separados por vírgula
  • Descriptions, descrições que serão mostradas na lista, se não especificada, Values é usada
editType=list;
values='=,<>,<,>,<=,>='
comboEditor string com ajuda de lista. O usuário pode ingressar dados ou selecionar um item da lista
Chaves complementares:
  • Values, lista de valores, separados por vírgula
  • Descriptions, descrições que serão mostradas na lista, se não especificada, Values será usada
editType=combo;
values='A,B,C,D,E'
mListSeleção múltipla de lista
Chaves complementares:
  • Values, lista de valores, separados por vírgula
  • Descriptions, descripções que serãm mostradas na lista, se não especificada Value será usada
editType=mList;
values='A,B,C';
descriptions='Rec...,Pr...,Ino...'
dbListSeleção por lista, o usuário tem que selecionar um item da lista obtida de uma tabela
Chaves complementares:
  • Source, nome da tabela ou comando SQL
  • Field, nome da coluna
  • Filter, filtro para restringir os dados. Pode conter variáveis Argow, globais o referencias ao valor de outras colunas (iniciando com :);
editType=dbList;
source=dicDataType;
field=DataType
dbcomboEditor string com ajuda de lista. O usuário pode ingressar dados ou selecionar um item da lista (obtida de uma tabela)
Chaves complementares:
  • Source, nome da tabela ou comando SQL
  • Field, nome da coluna
  • Filter, filtro para restringir os dados. Pode conter variáveis Argow, globais o referencias ao valor de outras colunas (iniciando com :);
editType=dbcombo;
source=dicField;
field=fieldName;
filter=(tableName=:tableDetail)
fileEditor para gerenciar arquivos. O tipo da coluna deve ser blob.
Chaves complementares:
  • Field, especifica o nome de uma coluna onde guardar o nome do arquivo
  • Ext, especifica o nome de uma coluna onde guardar a extensão do nome do arquivo
editType=file;
field=FILE_NAME;
onDemandEditor para aquivos Blob sob demanda.
Usualmente, este editor é especificado numa coluna calculada (computed) sobre o conteudo de uma coluna de tipo blob que não é mostrada (dicField.Hide= 'F').
Exemplo de fórmula (case when ([FOTO_1] is null) then null else 'T' end)
Chaves complementares:
  • Field, especifica o nome de uma coluna Blob. Se estiver em outra tabela, utilizar o formato <tabela>.<Coluna>
  • Filter, especifica o filtro para localizar a coluna. O default é <PK>=<:PK>
editType=onDemand;
field=FOTO_1;
buttonEditor com botões.
Usualmente, este editor é utilizado quando é necessária outra janela para informar o dado da coluna. É possível atribuir uma ação e uma imagen a cada botão. Disponível desde 6.3.
Chaves complementares:
  • Scripts, lista de scripts para executar quando clicado o botão.
  • Resouces, lista de imagens para mostrar no botão (se não especificado é usado [...]).
  • Style, Readonly (somente leitura) ou Full (o botão preenche a célula enteira).
editType=button;
scripts=btn.getValue, btn.delete;
resources= bmp_plus, bmp_del;

Modificadores

Para alterar algumas caracteristicas dos editores, utilize as chaves:

ChaveValoresDescriçãoExemplo
Colunas String
align L,R,C Alinhamento da colunaalign=R
pwdChar * Edição de senhaspwdChar=*
editCase U/L Caracteres maiúsculos (U) ou minúsculos (L)editCase=U
trim T/F Remove espaços e caracteres de control das colunas string antes de salvar (ver DEFAULT_TRIM_STRING).trim=F
display T/F Mostra o conteúdo de colunas memo (dtSting ou dtMemo, não funciona em dtBlob). Na ficha, pode aumentar altura da linhadisplay=F
size n Tamanho da coluna calculadasize=128
validChars chars Limita os caracteres validos. Pode especificar conjuntos (0..9, a..z) e hexadecimal de dois dígitos (#20 = ' '). O ponto (.) é considerado decimalSeparator, para permitir ponto, use #2E.validChars=0..9,-
Colunas Numéricas
max n Limita o numero a máximo nmax=100
min n Limita o numero a mínimo nmin=0
Colunas Imagem/Memo
wordWrap T/F Quebra automática de linhawordWrap=F
display T/F Mostra a imagem das colunas tipo dtGraphic (não funciona em dtBlob). Na ficha, pode aumentar altura da linhadisplay=T
monoFont T/F Usa fonte monoespaçada (ver MONO_FONT)display=T
Colunas Boolean
toggle F Double click, ou espaço, altera o valortoggle=T
Colunas Pivot
pivotArea Column,
Data,
Filter,
Row,
None
Especifica a área onde a coluna sera exibidapivotArea=Row
pivotAreaIndex n Índice da coluna em relação as outras da mesma área.pivotAreaIndex=2
pivotOrder Asc/Desc Ordem de classificação do valor da colunapivotOrder=Asc

Cores e visibilidade

Para criar uma coluna mas não mostrar a coluna na planilha nem ficha use: hidden=T/F. É equivalente a atribuir false em sf.db.<dataset>.row[<nome>].hidden:= false; no evento onShow.

Para alterar as cores das colunas, de acordo ao valor da célula, use as chaves:

ChaveValoresDescriçãoExemplo
fontColors cor1,cor2,cor3,cor4 Cores da fontefontColors=clBlue,clRed,clGray,clOlive
backColors Cores do fundobackColors=,,,clSilver
headerColor cor Cor do cabeçalhoheadColor=clBtnHighlight
base número (usar ., ,, /, ou ' para fazer do mesmo tipo que a coluna, ou iniciar com :<col> para usar o valor de da col)Base de comparação
(Se omitido, ver tabela abaixo).
base=2.5
base='D'
base=:TOTAL
ref coluna referênciaColuna para obter valor (se não for a própria)ref=CREDITO_DEBITO

Comportamento:

Tipo de ColunaValoresDescrição
Numérica maior-que, menor-que, igual-a, nulo >base, <base, =base e NULL (padrão 0)
Data posterior,anterior,hoje,nulo comparado com base e NULL (padrão "hoje")
String normal,,,nulo se não é especificado base
maior-que, menor-que, igual-a, nulo >base, <base, =base e NULL
Boolean verdadeiro,false,,nulo  

Nome das cores.

  • Cores básicas:
    Black, Maroon, Green, Olive, Navy, Purple, Teal, Gray, Silver, Red, Lime, Yellow, Blue, Fuchsia, Aqua, White.
  • Cores Windows:
    ScrollBar, Background, ActiveCaption, InactiveCaption, Menu, Window, WindowFrame, MenuText, WindowText, CaptionText, ActiveBorder, InactiveBorder, AppWorkSpace, Highlight, HighlightText, BtnFace, BtnShadow, GrayText, BtnText, InactiveCaptionText, BtnHighlight, 3DDkShadow, 3DLight, InfoText, InfoBk.
  • Cores Especificas:
    $RRGGBB (red,green,blue)

Edição

Quando allowEdit=F a coluna se comporta (para o usuário) como uma coluna somente leitura (dicField.readOnly = 'T'), mas o valor pode ser mudado com valores default (dicField.defaultValue) ou dentro de scripts.

Uma coluna pode mudar, dinamicamente, de editável a somente leitura alterando, via script, o valor de allowEdit e allowInsert da coluna (ver TArField) que tem o valor inicial parametrizado com allowEdit= T/F e allowInsert=T/F

Para não criar o editor, utilize showInput=T/F.