Choose Case: Cases com datatypes variados

Choose Case: Cases com datatypes variados

Overview

Bem-vindo ao mundo do PowerBuilder, onde os desafios de codificação encontram soluções inovadoras. Esta postagem revela um truque para levar o comando Choose Case a novos patamares, permitindo testes com múltiplas condições e diferentes tipos de dados, tudo isso de forma simples e eficiente. Se você pensava que estava limitado ao uso de variáveis numéricas, prepare-se para expandir seus horizontes com esta técnica engenhosa. Vamos lá, descobrir como tornar o Choose Case seu aliado na elaboração de códigos limpos e multifuncionais.

Choose Case é o equivalente do PowerBuilder ao Switch dp C# e é uma opção boa, mas se você utilizar uma variável numérica, está preso nela para todo o choose. [música de suspense]

Existe uma solução para isso, uma forma de utilizar o choose case com quantas variáveis você precisar e misturando datatypes diferentes.

Este é um Choose Case tradicional, verificando o retorno de um FileOpen:

1long ll_ret
2ll_ret = FileOpen(ls_filePath)
3
4choose case ll_ret
5    case -1
6        return "Erro ao fazer retrieve"
7    case else
8        return "Arquivo aberto corretamente. Handle: " + string(ll_ret)
9end choose

Ok, funciona. Foi possível verificar o resultado da função, mas faltou um fator: Se a referência para o arquivo (ls_filePath) for nula, não vai funcionar.

Temos uma alternativa: Fazer o Choose Case testando a condição true. Sim: Choose case true! Desta forma você consegue testar o que for necessário. Veja o exemplo abaixo:

 1long ll_ret
 2ll_ret = FileOpen(ls_filePath)
 3
 4choose case true
 5    case (ll_ret = -1)
 6        return "Erro ao fazer retrieve"
 7
 8    case (ll_ret > 0)
 9        return "Arquivo aberto corretamente. Handle: " + string(ll_ret)
10
11    case isNull(ll_ret)
12        return "O arquivo informado é nulo"
13
14    case else
15        return "Algum erro não esperado ocorreu. Retorno: " + string(ll_ret)
16end choose

Pronto. Agora foi possível cobrir todas as possibilidades do FileOpen com apenas 1 Choose Case. Neste formato, você consegue testar várias coisas, desde que apenas uma das operações retorne true.

Com esta técnica, você consegue realizar uma gama muito maior de verificações com menos código e uma estrutura mais legível.

Dúvidas sobre o artigo? Sugestões? Precisa de ajuda com outra funcionalidade do PowerBuilder? Deixe um comentário.