Como editar registros a partir de uma ligação de captura.

Como editar registros a partir de uma ligação de captura.

Neste artigo, veja como criar uma ligação para editar um registro a partir de uma consulta utilizada em uma ligação de captura.
Não podemos utilizar a ligação de edição neste caso, pois o botão para editar não estará disponível quando acessamos a grid para a captura de um valor.

Levando em consideração que o link de captura já está configurado, siga os passos abaixo para configurar a consulta(utilizada na captura) e o formulário(utilizado na edição do registro)

Aplicação de Consulta

Na aplicação de consulta, iremos criar um link para a edição do registro utilizando a macro sc_link.

Adicionando a imagem de edição na aplicação

Primeiramente devemos adicionar a imagem que será utilizada na consulta para simbolizar o botão de edição.
Por que adicionar as imagens na opção Imagens Extras da Aplicação?
Sempre devemos adicionar as imagens que serão utilizadas em códigos. Isso garante que ao realizar a publicação, a imagem será envia e além disso está armazenada no mesmo diretório, tanto na publicação como no ambiente de desenvolvimento, fazendo com a imagem não fique quebrada após a publicação.

1 - No menu lateral na aplicação de consulta, acesse: Aplicação > Configurações


2 - Na opção Imagens Extras da Aplicação clique no ícone para adicionar uma imagem: 

3 - No gerenciador de imagens, clique em Projeto > Icons


4 - Clique em Arquivo > Upload e selecione o ícone que irá representar o botão de editar registro.


As imagens adicionadas serão armazenadas neste diretório ../_lib/img/
Ao realizar o upload, alguns prefixos são adicionados ao nome da imagem, de acordo com o diretório onde será armazenada.

As Imagens podem ser salvas nos diretórios: Público, Projeto e Usuário.

  • Público - sys__NM__
  • Projeto - grp__NM__
  • Usuário - usr__NM__

Dentro de cada diretório existem alguns sub-diretórios: background images, button images, general images, icons e menu images.

  • background images - bg__NM__
  • button images - btn__NM__
  • general images - img__NM__
  • icons - ico__NM__
  • menu images - menu_img__NM__
Ao salvar uma imagem com o nome contract.png no diretório Projeto > Icons, como no tutorial, o nome da imagem deve está desta forma:
grp__NM__ico__NM__contract.png


Criando um campo virtual

Devemos criar um camp para receber o link de redirecionamento para o formulário.
1 - Clique na opção Novo Campo


2 - Defina o nome do campo que deve ser do tipo texto.

3 - Remova a label do campo e defina o alinhamento do título como na imagem abaixo.


Evento onScriptInit

Neste evento, iremos resetar o valor da variável global que será passada para o formulário.
Desta forma, garantimos que a variável sempre estará sem valor clicarmos no registro que será editado.



Código utilizado no evento
  1. // Reseta a variável global que será passada como parâmetro para o formulário.
  2. sc_reset_global([id_customer]);

Evento onRecord

No evento onRecord, iremos definir o link usando a macro sc_link e a imagem que será exibida no campo criando anteriormente, usando a tag img.
Para mais detalhes sobre a macro sc_link, acesse nossa documentação.




Código utilizado no evento
As imagens inseridas na opção Imagens Extras da Aplicação serão armazenadas no diretório ../scriptcase/app/projeto_name/_lib/img
Desta forma, para atribuirmos uma imagem a um campo, devemos usar a tag img informando o diretório da imagem e o nome desta forma:
../_lib/img/grp__NM__ico__NM__contract.png

  1. // Define a imagem que irá representar o botão de editar o registro.
  2. {link} = '<img src="../_lib/img/grp__NM__ico__NM__contract.png">';

  3. // Lembrando que o parâmetro id_customer será recebido como variável global no formulário.
  4. sc_link (link, form_customers.php, id_customer = {customerid}, "Clique aqui para editar o registro", "_self");

Aplicação Formulário

Na aplicação de formulário, iremos adicionar uma variável global no SQl da aplicação alem de um validação no evento onApplicationInit.

Configuração do SQL

Nas configurações do SQL do formulário, que será chamado para editar o registro, adicione uma variável global. No exemplo, estamos usando a variável [where]


Evento onApplicationInit

Neste evento, que é executado antes da montagem do SQL da aplicação, deve ser definido o valor da variável [where], para que o formulário seja executado corretamente.

É necessário validar se a variável [id_customer], passada como parâmetro na macro sc_link no onRecord da consulta, possui um valor.

Serão duas situações possíveis:
  1. Caso a variável [id_customer] esteja vazia - Nesta situação, a variável [where] deve receber uma sing vazia. Desta forma, o formulário irá retornar todos os registros normalmente.
  1. Caso a variável [id_customer] possua  um valor - Isso implica que algum registro foi selecionado na grid para ser editado. Desta forma, a variável [where] deve receber a query que irá exibir apenas o registro selecionado na consulta.
    Lembrando que devemos utilizar um campo chave para criar esta ligação.


Código utilizado no evento
  1. //Valida se o parâmetro passado pela consulta possui um valor
  2. if ( empty( [id_customer] )) {
  3. // Se [id_customer] estiver vazio, a variável [where] deve receber uma string vazia, fazendo com que o formulário exiba todos os seus registros.
  4. [where] = '';
  5. // Se [id_customer] possuir um valor, entrará no else
  6. } else {
  7. // Neste caso, a variável [where] irá receber a query para exibir apenas registro selecionado na consulta.
  8. [where] = "customerid = '[id_customer]' ";
  9. }

Grid em funcionamento

Aplicação de consulta, aberta a partir de um link de captura com o botão de editar registro.


    • Related Articles

    • Como fazer uma ligação de captura

      Ligação de Captura: É utilizada para o formulário de filtro da Consulta, ela importa dados de outra Consulta para dentro do campo do formulário de filtro. Ao selecionar o tipo de ligação de captura será exibida uma lista com os campos do formulário ...
    • Como fazer uma ligação de edição

      Ligação de Edição: Utilizada para editar os registros da Consulta através de um Formulário. Na Consulta gerada será exibido um link em cada linha para edição do registro. Ao clicar no link, o formulário do registro selecionado poderá ser exibido de ...
    • Como fazer uma ligação de campo

      Ligação de Campo: É utilizada para criar um link de navegação em uma coluna da Consulta para qualquer aplicação existente do projeto. Ao selecionar esse tipo de ligação, todos os campos da consulta serão exibidos em um select para que você possa ...
    • Como criar ligação de aplicação

      Ligação de Aplicação: É utilizada para ligar a aplicação com qualquer outro tipo de aplicação do projeto. Esse tipo de ligação está associado aos eventos de inclusão e alteração. Como fazer uma ligação entre aplicações: Abra sua aplicação e acesse, ...
    • Como criar uma ligação de botão

      Ligação de Botão: É utilizada para ligar a aplicação com qualquer outro tipo de aplicação do projeto. Nesse tipo de ligação um botão é usado como link entre as aplicações. Como criar uma ligação de botão Crie um botão de ligação na sua aplicação. ...