Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: LeetCode 23: Mesclando K Listas Ordenadas com Harbour/xBase e Reutilização de Código

_Créditos das imagens: ChatGPT **Título:** LeetCode 23: Mesclando K Listas Ordenadas com Harbour/xBase e Reutilização de Código **Introdução** Olá, entusiastas de Harbour/xBase e desafios de programação! Depois de explorarmos como mesclar duas listas ordenadas no [nosso post sobre o LeetCode 21](https://www.blacktdn.com.br/2025/03/blacktdn-leetcode-21-merge-two-sorted.html), vamos dar um passo adiante e enfrentar um problema um pouco mais complexo: o LeetCode 23 - Merge K Sorted Lists. Neste artigo, vamos desvendar uma implementação em Harbour/xBase para este desafio, demonstrando como podemos inteligentemente reutilizar a solução que já construímos para o problema 21. Veremos como a modularidade e a construção sobre soluções anteriores podem simplificar problemas mais complexos. **O Problema: LeetCode 23 - Merge K Sorted Lists** O desafio é o seguinte: dado um array (`aLists` em nossa implementação) contendo `k` listas encadeadas, onde cada lista já está ordenada em ordem cres...

Protheus :: Advpl :: Dicas do Robson :: Como criar uma consulta específica utilizando os recursos do dicionário SXB

Robson Luiz nos passou mais uma dica:

“Como criar uma consulta específica utilizando os recursos do dicionário SXB – Consulta padrão.

O exemplo descrito abaixo é apenas para se ter uma idéia de como unir os mecanismos disponíveis. Neste exemplo será demonstrado como gravar o endereço lógico de um arquivo tipo MS-Word ou Adobe em um campo da tabela em questão.

  1. Crie um campo na tabela SA6 – Cadastro de Bancos; 
    • A6_CONTRAT – tipo caractere, tamanho 50; 
    • Crie uma consulta SXB da seguinte forma:

    sxb_1

    • Clique no botão Avançar e preencha a próxima tela da seguinte forma:

    sxb_2

    • Repare que no campo retorno há a menção somente da função U_SA6_01(). 
    • Clique no botão Finalizar para salvar os dados e vamos programar.
  2. Abra o DevStudio (IDE)
  3. Abra um novo arquivo e digite o seguinte programa:

    sxb_3

    • Salve este arquivo.
    • Anexe a um gerente de projetos do DevStudio.
    • Compile este programa.
  4. Coloque o ALIAS da consulta SXB no campo X3_F3 do campo SA6_CONTRAT.

É possível construir diversas soluções utilizando este recurso, porém o mais importante ressaltar que a consulta deverá ter sempre um retorno lógico, e se possível atribua valor ao campo dentro da rotina construída.

p/ Robson Luiz”

Comentários

  1. vlw a dica.
    estava precisando desta solução.
    o Fato de utilizar uma variável STATIC não torna esta soução um pouco confusa para dar manutenção mais tarde???

    ResponderExcluir
    Respostas
    1. ..confusa é a mente dos que se confundem com novidades!

      Open Your Mind!

      Excluir
  2. Totalmente Arrogante o comentário do colega acima, ainda posta anônimo que mostra a falta de coragem de expor suas opiniões...

    ResponderExcluir
  3. Realmente Evandro, totalmente arrogante, mas infelizmente exitem muitas pessoas assim, enfim, vamos seguir em frente.
    Kelven, a fato de utilizar uma variável com escopo STATIC no arquivo de programa e não nas funções é para atender as duas Function, pois assim é possível trabalhar com ela em momentos diferentes quando as funçõs forem acionadas. Boa Sorte! Robson Luiz (rleg).

    ResponderExcluir
  4. Bom Dia, mas sua solução apesar de Excelente pode ser Melhorada, ao invés de criar uma Variavel Static, faça como eu sempre fiz na Expressão coloque .T. e em Retorno coloque a Função u_SA6CONTRATO() entretanto com uma pequena modificação ao inves de retornar .T. coloque-a para Retornar o Valor Solicitado

    Exe.: Return SA6->A6_CONTRATO

    Posteriormente ficará muito mais fácil possíveis Manutenções e por experiencia própria o Protheus tem Problema em Respeita Escopo de Variáveis.

    PS. Outro Detalhe interessante e que quando se utiliza uma consulta especifica e você coloca uma Função independe da Tabela que esta sedo Utilizada em Tabela.
    Exemplo: Nesta Consulta Acima o Resultado de se Colocar SA6 será o Mesmo se Colocarmos AAA.

    ResponderExcluir
  5. Pessoal, alguém tentou essa solução (do Robson) com MVC?
    a Mesma tela funcionou em um mbrowse normal, mas no MVC da erro!!!!
    até o momento não consegui resolver o problema, acho q vou colocar um evento em uma tecla para ativar a janela!
    Se alguém tiver uma dica posta ae!
    vlw!!!

    ResponderExcluir
  6. Muchas gracias por tu conocimiento,

    Quede gratamente sorprendido como es que se puede manejar una consulta de está manera.

    Mil gracias!!!!

    ResponderExcluir

Postar um comentário

Postagens mais visitadas