4D v16Chamar Tabelas e Métodos 4D |
||||||||||
|
4D v16
Chamar Tabelas e Métodos 4D
Chamar Tabelas e Métodos 4D
O modo de acesso as tabelas 4D as que são feitas referência em Wakanda depende de como está integrado o catálogo externo, o qual se definiu em Wakanda durante sua conexão a aplicação remota (ver Integrar ao modelo ativo ou utilizar um modelo dedicado):
Quando se fusiona ao modelo ativo, as tabelas 4D referenciadas na aplicação Wakanda podem ser utilizadas diretamente no código JavaScript do lado do servidor (SSJS) como propriedades do objeto ds, ao igual que os datastore classes locais. Nota: o objeto ds contém o armazém (datastore) atual da aplicação Wakanda. var emp = ds.Empregados.query("idade> :1",30); // recupera uma coleção de registros da tabela Employees // sua idade é maior que 30 na variável emp Do lado do cliente também pode aproveitar os mecanismos automáticos das fontes de dados (datasources) baseadas nas classes de dados e associadas aos widgets. Por exemplo, se associar a fonte de dados "employees" a um widget de tipo 'Grid', pode mostrar a lista de empregados automaticamente: Quando a tabela está associada a uma fonte de dados, também pode ser acessado a seus dados utilizando esta fonte de dados. Por exemplo, para ordenar a coleção de registros da fonte de dados dos "employees", pode escrever: sources.employees.orderBy("idade"); //ordena a coleção dos empregados por sua idade Para obter mais informação sobre como trabalhar com as classes de dados, consulte a documentação de Wakanda. As tabelas 4D referenciadas se utilizam no código JavaScript do lado do servidor como propriedades do catálogo onde se localizaram quando foi criado o link. O nome deste catálogo é o que passou no parâmetros de conexão Remote datastore name (diálogo de conexão de Wakanda Studio) ou em nomeLocal (métodos JavaScript). var emp2 = my4Dstore.Employees.query("age > :1", 30); // Procurar nos registros da tabela Employees // No link "my4Dstore" Nota de implementação: do lado do cliente, utilizando um modelo dedicado na versão atual de 4D Mobile não permite o acesso as classes remotas no momento. Os métodos 4D referenciados na aplicação Wakanda podem ser utilizados diretamente no código JavaScript como propriedades dos objetos classe de dados, coleção de entidades ou entidade em função de seu alcance definido do lado 4D (ver o parágrafo Tabela pais e alcance dos métodos projeto). Aqui está a correspondência entre os objetos Wakanda e o alcance dos métodos projeto:
Nota: os métodos 4D também podem ser chamados do lado do cliente pelas fontes de dados (ver mais à frente), neste caso todos os métodos estão disponíveis, e a fonte de dados aplica automaticamente a coleção atual ou a entidade atual dependendo do contexto. Por exemplo, se realizar uma pesquisa com o método query (ver seção anterior), Wakanda devolve uma coleção de entidades. Pode executar qualquer método de projeto 4D cujo alcance declarado seja "seleção atual". Os métodos 4D podem ser chamados por código JavaScript de três formas:
Da mesma forma que com os métodos estandarte, você pode passar parâmetros durante a chamada, que se recebem na ordem nos parâmetros $1,$2, etc. Da mesma forma, o método pode devolver um resultado na variável $0. Exemplo: Você quer lhe dar um aumento de 5% aos empregados cujo salário é menor que 1500.
Também pode devolver uma seleção 4D diretamente como uma coleção Wakanda utilizando o comando MOBILE Return selection. Por exemplo: //método projeto FindCountries Ao chamar a um método 4D por meio do link de Wakanda:
Tenha em conta que depois de executar um método via 4D Mobile, o contexto 4D se restabelece:
Deve ter a certeza de que o alcance do método 4D corresponde ao tipo de objeto Wakanda que está chamando, caso contrário o erro "TypeError: 'undefined' is not a function" é devolvido por Wakanda. Por exemplo, dado o método 4D "getcursel" que contém o seguinte código: $0:=Records in selection([Table_1]) Dado o método run do lado Wakanda var tt = ds.Table_1.query("Field_2 = 'a*'").getcursel(); O método query() devolve uma coleção. Se o alcance do método getcursel foi definido como "Registro atual", Wakanda devolve o seguinte erro:
|
PROPRIEDADES
Produto: 4D
HISTÓRIA
ARTICLE USAGE
4D Mobile ( 4D v16) |
||||||||