LATROMI Client Versão 3.5.271

Data da Liberação: 2020-06-01T21:02:00Z

Geralmente, os procedimentos dos Formulários do Latromi não precisam de muito código para funcionar. Porém em alguns casos, quando telas mais complexas são desenvolvidas, os procedimentos tendem a crescer, chegando as vezes a ter centenas de instruções.

Nestes casos, fica difícil dar manutenção nesses Formulários. Em vista disso, implementamos algumas melhorias para facilitar a vida dos desenvolvedores! :wink:

Melhorias

Abaixo estão descritas as melhorias que foram implementadas no sistema para facilitar a manutenção dos Formulários.

Número da Linha no Procedimento

Para ajudar o desenvolvedor a se localizar, e até mesmo para estabelecer uma referência oficial para cada instrução dos Procedimentos, será exibido a esquerda de cada instrução o número da linha.

A numeração será gerada com base no Procedimento completamente expandido, iniciando com 1 na primeira instrução, e incrementando primeiro nos níveis filhos, e depois nas instruções de mesmo nível.

Por exemplo:

image

image

Ir para Linha

Para tornar ainda mais prática a navegação dentro dos Procedimentos, será implementado um recurso que possibilita ao usuário informar o número da linha que será selecionada. Este recurso é popularmente conhecido como GoTo nos editores de texto, e geralmente é acionado pela tecla de atalho Ctrl + G. No Latromi, usaremos esta mesma tecla de atalho.

Localização de Referências

Novo recurso no Formulário para encontrar todos os locais onde um “membro” do Formulário foi utilizado.

Para procurar pelas referências de um membro do Formulário, clique com o botão direito do Mouse sobre ele e vá até a opção “Procurar Referências”, ou selecione-o e utilize a tecla de atalho Shift + F12.

image

Este recurso está disponíveis para os seguintes membros do Formulário:

  • Parâmetros
  • Variáveis
  • Campos
  • Janelas
  • Procedimentos
  • Funções
  • Argumentos
  • Nas Instruções “Criar Record”, “Chamar Procedimento” e “Chamar Função”

Na janela com os resultados encontrados, ao dar um duplo clique sobre a linha, o sistema vai selecionar automaticamente o local correspondente a referência. O local encontrado pode ser na Fonte de Dados do Formulário, Procedimentos, Funções ou propriedades de Campos e Janelas.

Quando o número de Linha e Coluna forem exibidos, o cursor será posicionado na posição exata do texto da referência encontrada ao utilizar o Duplo Clique. Isso ocorre em referências encontradas em Mensagens, URL, Marcações HTML, Comandos SQL e Comandos C#.

image

Também é possível fazer a navegação para a próxima referência encontrada usando a tecla de atalho F8 e navegar para a referência anterior usando a tecla de atalho Shift + F8.

Para refazer a pesquisa, clique na janela de resultados, e utilize a tecla de atalho F5.

Redução de Modals

Agora vamos falar um pouco da programação do Latromi Client.

Muitas janelas do sistema são abertas de forma que as janelas de baixo não possam ser acessadas até que a janela de cima seja fechada. Esse comportamento é conhecido como Modal, e é utilizado porque a janela de baixo precisa de uma resposta completa da janela de cima antes de continuar a execução. Neste caso a janela de baixo fica aguardando uma resposta da janela que foi aberta em Modal.

Este comportamento, é muito útil para garantir o fluxo da operação dentro de um programa, mas no caso do Latromi Client, acaba dificultando a vida do usuário, pois impede por exemplo, que ele abra duas janelas de SQL ao mesmo tempo para fazer uma comparação.

Solução: Todas as Janelas de manutenção de instruções de Procedimento foram modificadas para suportar o uso sem Modal. Esta alteração foi imprescindível para a implementação da função “Procurar Referências”.

Mover Instruções com o Teclado

Muita gente reclama que tem dificuldade em mover as instruções do Procedimento, pois o espaço entre uma instrução e outra é pouco e fica difícil de “encaixar” com o mouse.

Solução: Implementamos as teclas de atalho Ctrl + ⇧ para mover as instruções selecionadas para cima e Ctrl + ⇩ para mover para baixo.

Manter Instruções Recolhidas

Uma coisa que atrapalha um pouco (mas não muito) a navegação entre Procedimentos e Funções do Formulário, é que eles sempre são abertos completamente expandidos na árvore, ignorando as vezes que o usuário recolheu alguma instrução.

Solução: Implementamos a persistência do estado Recolhido/Expandido dessas instruções e da posição da barra de rolagem do Procedimento.

Validação

Para facilitar a manutenção dos Procedimentos, algumas validações que ocorriam em tempo de edição foram removidas, e concentradas na nova rotina de Validação do Formulário. Além disso, diversas outras validações novas foram adicionadas.

A validação pode ser executada manualmente através do botão “Validar” ou de forma automática, antes da gravação do Formulário. Quando a validação for executada antes da gravação, o resultado só será exibido se algum Erro for encontrado.

image

As validações foram separadas em 3 níveis de severidade:

  • StatusInvalid_16x Erros: Erros que impedem o funcionamento do Formulário. Não é permitido gravar o Formulário se algum erro estiver pedennte.
  • StatusWarning_16x Alertas: Situações que embora não interrompam o funcionamento do Formulário, é recomendado que sejam corrigidos.
  • StatusAlert_16x Mensagens: Dicas que ajudam a melhorar o código.

Assim como acontece na ferramenta de Localicação de Referências, ao dar um duplo clique na linha do resultado da validação, o sistema vai direcionar o usuário para o local do erro.

Não é necessário bloquear o Formulário para fazer a validação.

Melhorias no Editor SQL

Modificado para fazer a execução assíncrona dos comandos SQL, sem bloquear a tela do usuário:

image

Adicionado recurso para executar queries em qualquer editor SQL. Os resultados da query serão exibidos na parte inferior do editor, como já ocorre ao utilizar a janela do menu Ferramentas > Editor Sql.

Implementado atalho para ver as colunas de uma tabela no editor SQL. Basta selecionar o nome da tabela no comando SQL e pressionar “Alt + F1”.

O sistema vai executar o comando SQL abaixo para obter as informações da tabela nos meta dados do banco:

select * from information_schema.columns 
where table_name='NOME_DA_TABELA_SELECIONADA' 
order by ordinal_position

Outras Modificações

Novos Recursos

  • Implementada nova opção “Recolher Tudo” no menu de contexto dos Procedimento. Essa opção recolhe toda a árvore independente da instrução selecionada. Pode ser acionada através da tecla de atalho Ctrl + Shift + L.
  • Adicionado texto na tela de fundo do sistema para exibir o nome do detentor da Licença, o tipo de Licença e quantidade de objetos desenvolvidos.
  • Novo campo “TNS” no cadastro de conexões, para informar o “TNS Service Name” do Oracle.

Correções

  • Ao acessar a tela de Cadastro de Variáveis Globais pela primeira vez após a instalação, não estava aparecendo o nome do Domínio do Proprietário. [mais informações]
  • Na gravação dos eventos 451 (MenuUpdated) e 451.1 (MenuUpdatedByPackage), o Id do menu estava aparecendo junto ao texto “Id do Extrator”. O texto foi alterado para “Id do Menu”.
  • Ao selecionar um campo no Formulário Dinâmico e pressionar as setas CIMA ou BAIXO, ele estava sendo movido. O mesmo estava acontecendo com Parâmetros e Variáveis. Este comportamento deveria ser ativado apenas quando a tecla CTRL estivesse pressionada.
  • Na tela de configuração de Fonte de Dados de campos do Formulário Dinâmico, as Variáveis não estavam sendo exibidas para utilizar no Comando SQL.
  • As Colunas da Fonte de Dados do Formulário Dinâmico não estavam sendo listadas na propriedade “Coluna de Origem” dos Campos do tipo “Gauge” do Formulário Dinâmico.
  • Tratamento para evitar erro de violação de ‘Foreign Key’ ao excluir um menu cujo proprietário não esteja cadastrado.
  • Na tela de Cadastro de Menus, durante a edição do nome dos menus, a tecla DELETE não estava funcionando.
  • Na tela de seleção rápida de instruções do Procedimento (acionada pela tecla de atalho CTRL + Espaço), ao pressionar as teclas UP ou DOWN, o foco ia para a árvore de instruções (resultado da busca), mas a instrução selecionada continuava a mesma, sendo necessário pressionar a tecla novamente para navegar até a opção desejada.
  • Havia alguns erros no momento de Recortar, Copiar e Colar instruções do Procedimentos. Algumas vezes faltava uma parte do código ao colar, outras vezes o código ficava desordenado.

Melhorias

  • Novos ícones nas janelas e menus de contexto do editor de Procedimentos.
  • Melhoria de Performance nas seguintes telas do Formulário: Mostrar Campos, Ocultar Campos, Habilitar Campos, Desabilitar Campos, Atribuir Somente Leitura, Remover Somente Leitura, Tornar Campo Obrigatório, Tornar Campo Opcional.
  • Realizada a gravação do estado Recolhido/Expandido das instruções dos Procedimentos do Formulário.
  • No editor de códigos C#, ao pressionar ESC o sistema fechava a janela sem pedir confirmação do usuário. Agora, caso existam modificações não salvas, o sistema solicitará a confirmação do usuário antes de fechar.
  • Adicionado ícone dentro do campo de comentários, nas instruções dos Procedimentos do Formulário Dinâmico.
  • Adicionada ordenação por nome da conexão, no seletor de conexões de banco de dados.
  • O botão de atualização do seletor de conexões foi movido para a lista de opções do mesmo.
  • O botão de atualização do seletor de módulos foi movido para a lista de opções do mesmo.
  • Adicionado campo para exibir o Código de Atualização do objeto alvo, na tela de configuração de Janelas do Formulário Dinâmico.
  • Adicionado ícone nos parâmetros do Formulário Dinâmico e dos Procedimentos.
  • Implementada sugestão de nome ao incluir uma instrução do tipo “Criar Record” nos Procedimentos.

Mudanças

  • Mudança de categoria da propriedade “Browse Dinâmico” dos campos do tipo Lookup do Formulário Dinâmico. Antes essa propriedade ficava na categoria “Comportamento”, e agora foi movida para a categoria “Dados”.
  • Ao copiar ou recortar um Procedimento (ou parte dele), um código no formato Xml era copiado para a área de transferência. Foi realizada uma alteração para utilizar um objeto customizado na área de transferência, em um formato que só o Latromi pode ler.
  • Modificado o formato do arquivo onde as preferências de usuário são gravadas de Xml para Json. Anteriormente o arquivo se chamava ‘%localappdata%\LATROMI\Client\preferences.xml’ e agora foi modificado para ‘%localappdata%\LATROMI\Client\preferences.json’.
  • Nos procedimentos do Formulário Dinâmico, ao usar a opção “Colar” (acionada pela tecla de atalho Ctrl + V) em blocos de “If”, “Else if”, “Else” ou “While”, as instruções que estava na área de transferência eram inseridas dentro do bloco. A partir de agora, as instruções coladas através da opção “Colar” serão inseridas abaixo da instrução selecionada, seja ela qual for. Para inserir dentro de um bloco, foi adicionada uma nova opção chamada “Colar dentro”, acionada pela tecla de atalho Ctrl + Insert.

Ficou sensacional, mano!!!

1 curtida

Valeu @bimbati! Seja bem vindo a nossa comunidade!

1 curtida

Boa noite Daniel,
Estou testando as funcionalidades e realmente, está fantástico.
Todos os itens acima descritos estão 100%.
É um privilégio poder estar testando de antemão e poder contribuir com a ferramenta praticamente desde a sua criação.
Obrigado e parabéns!

2 curtidas

Obrigado pelas considerações e por participar dos testes @daniel.oriques!

1 curtida