Já o conhece; 4D View Pro permite-lhe facilmente carregar e exibir dados em folhas de cálculo.
4D v19 R6 traz notícias interessantes. Este post no blogue irá mostrar-lhe a nova funcionalidade de tabela que lhe permite fazer muito mais e beneficiar de propriedades adicionais como cabeçalhos, tamanho da tabela, linha de resumo, ordenação de colunas, filtros, e muito mais. Irá também descobrir como carregar rapidamente dados de classes e colecções de dados. E não perca a demonstração, que fornece um exemplo completo e alguns gráficos visuais como bónus.
Há duas maneiras de criar uma mesa:
- Crie uma tabela vazia e preencha-a célula por célula com os comandos existentes, como VP SET VALUES ou VP SET VALUE
- Criar uma tabela automaticamente a partir de uma colecção contida no contexto dos dados.
Diga olá ao VP CREATE TABLE
povoar manualmente uma mesa
Em primeiro lugar, é necessário criar uma tabela sem fonte. Use a nova tabela de VP CREATE TABLE e passar-lhe como parâmetro o intervalo onde a tabela deve aparecer:
VP CREATE TABLE(VP Cells("ViewProArea"; 1; 1; 3; 4); "EmptyTable")
Cria uma tabela vazia com colunas de nome por defeito:
Agora só temos de preencher a nossa tabela com a ajuda do VP SET VALUES comando:
$data:=New collection
// Titles
$data.push(New collection("First Name"; "Last Name"; "Score"))
// Data
$data.push(New collection("Andrea"; "Butterfield"; "70"))
$data.push(New collection("Faye"; "Back"; "100"))
$data.push(New collection("Shane"; "Frazier"; "50"))
VP SET VALUES(VP Cell("ViewProArea"; 1; 1); $data)
A tabela é agora preenchida com os valores presentes na colecção:
Pode agora filtrar ou ordenar a tabela facilmente:
Povoar uma tabela a partir do contexto dos dados
Para exibir uma selecção de entidade como uma tabela:
precisa de converter a sua selecção de entidade numa colecção e adicioná-la ao contexto de dados da sua folha, definir as colunas, e criar a sua tabela.
Primeiro, deve criar um contexto de dados contendo uma recolha dos dados que precisa de mostrar. No exemplo abaixo, lemos os dados de uma base de dados e convertemo-los numa colecção, depois encapsulamo-los num objecto:
$p:=ds.People.all().toCollection()
$data:=New object
$data.people:=$p
VP SET DATA CONTEXT("ViewProArea"; $data)
Agora que o contexto de dados é criado, definimos quais as colunas a mostrar:
$parameter:=New object
$parameter.tableColumns:=New collection
$parameter.tableColumns.push(New object("name"; "First name"; "dataField"; "Firstname"))
$parameter.tableColumns.push(New object("name"; "Last name"; "dataField"; "Lastname"))
$parameter.tableColumns.push(New object("name"; "Email"; "dataField"; "email"))
$parameter.tableColumns.push(New object("name"; "Birthday"; "dataField"; "Birthday"; "formatter"; "dddd dd MMMM yyyy"))
$parameter.tableColumns.push(New object("name"; "Country"; "dataField"; "Country"))
Tudo o que resta é utilizar o VP CREATE TABLE indicando que queremos mostrar a recolha contida no atributo pessoas do contexto dos dados:
// Table creation
VP CREATE TABLE(VP Cells("ViewProArea"; 1; 1; $parameter.tableColumns.length; 1); "ContextTable"; "people"; $parameter)
// Automatic column sizing
VP COLUMN AUTOFIT(VP Column($area; 0; 4))
Verifique o IDH acima para ver estes comandos em acção. Além disso, não deixe de ler a documentação para mais detalhes!