Tabela (Matriz) !

Fórum para discussões linguagens de programação e relacionados.
Forum Rules
Leia antes de participar: viewtopic.php?f=32&t=33

Tabela (Matriz) !

PostAuthor: DesenvolvedorSenior » 24 Sep 2009, 09:51

Muitas vezes precisamos de informações de memórias do sistema antes que estas apareçam na seção detalhe.
Uma forma é criarmos várias variáveis, que requer muita atenção pois esta solução aumenta a possibilidade de erro, e aumenta a quantidade de linhas de programação.
Para isso a LSP possui uma ferramenta muito interessante, infelizmente pouco usada, a matriz (tabela).
Esta é definida de linhas e colunas, a vantagem é que estas informações ficam guardadas durante toda a execução do relatório podendo ser chamadas a qualquer momento na execução do relatório através de uma coordenada Linha x Coluna em uma variável dinâmica.

Imagina uma planilha de Excel por exemplo, com as informações:

C.P.F. do Colaborador | Valor do Ultimo Salário | Código do Cargo

Agora imagine que você precise destas informações em qualquer momento no relatório, não apenas do colaborador ativo no momento, mas de todos os colaboradores.

Para isso definiremos uma matriz (tabela).

A criação de uma tabela é bem simples, tendo como base o exemplo temos:

Definir Cursor Cur_R034FUN;
Definir Data EDatRef;
Definir Tabela xTab[1000]= @ entre colchetes a quantidade máxima de posições(linhas) que terá a matriz(tabela)@
{ @ Início das definições das colunas @
Numero Num_Cpf; @ Coluna, número porque o CPF é uma informação numérica @
Numero Val_Sal;
Alfa Cod_Car;
}; @ Fim das definições das colunas @

xNumEmp = EmpAtu;

Cur_R034FUN.SQL"Select NumCpf, CodCar, ValSal FROM R034FUN \
Where NumEmp =:xNumEmp \
And TipCol = 1 \
And SitAfa <> 7 \
And DatAdm <=:EdatRef “; @ data de referência pode ser incluída na entrada do relatório, se for o caso @

Cur_R034FUN.AbrirCursor();

Enquanto (Cur_R034FUN.Achou)
Inicio
xLin = xLin + 1; @ xLin será o número da linha, ele irá fazer a junção das colunas, como um indexador, entenderemos algumas linhas abaixo @
xTab[xLin].Num_Cpf = Cur_R034FUN.CodCpf;
xTab[xLin].Cod_Car = Cur_R034FUN.CodCar;
xTab[xLin].Val_Sal = Cur_R034FUN.ValSal;
Cur_R034FUN.Proximo();
Fim;
Cur_R034FUN.FecharCursor();
@ Pronto, agora temos todas as informações da tabela, para todos os colaboradores, ao nosso alcance. Para acessá-las, basta chamar as linha da tabela pelo índice @

Formula001 = xTab[10].Num_Cpf;
Formula001 = xTab[10].Val_Sal;

@ As linhas acima, dão o valor da 10º linha da tabela às formulas, se essa programação foi feita na seção Título, ou mesmo na Seleção do relatório, podemos fazer comparativos entre o registro atual e todos os outros registros da tabela, ou seja, todos os outros colaboradores, como podemos ver abaixo:@
@- > Imagine que a tabela foi feita na seleção, e as linhas a seguir foram feitas na seção detalhe @
x = 0;
Enquanto((R034FUN.ValSal > xTab[x].Val_Sal) e (x < 1000))
Inicio
x = x + 1;
Fim;

Se (x > 1000)
AlteraControle(“Descricao001”,”Descrição”,”Este é o Maior Salário”);

@ Veja que assim podemos identificar o maior salário da empresa no relatório, independente da ordenação @

Bem...!

Espero ter contribuído com esta informação abraços e até a próxima !

Quaisquer dúvidas estarei a disposição !

Sebastião Rameno.

DesenvolvedorSenior
 
Posts: 20
Joined: 15 Sep 2009, 15:49

Re: Tabela (Matriz) !

PostAuthor: Thiago Roberto » 24 Sep 2009, 10:05

Fala Sebastião,

Muitos boa essas infos, principalmente pra quem ta aprendendo, pois isso ai não tem em treinamento nenhum, so de forma bem superficial no HELP mesmo.

Já usei matriz em algumas regras onde eu tinha que armazenas muitas informações, usava como em programação mesmo, o indice da matriz era so um ponteiro para as outras infos!

Abraços,
Thiago
Consultor Especializado em Ronda Ponto, Ronda Acesso e TSi .
thiago@forumsenior.com.br
User avatar
Thiago Roberto
Site Admin
 
Posts: 1054
Joined: 13 Apr 2008, 00:47
Location: Belo Horizonte

Re: Tabela (Matriz) !

PostAuthor: Leonardo Aleixo » 08 Oct 2009, 08:31

Boa Sebastiao, mandou bem
olhando sua info me surge uma duvida
porque a senior nao flexibiliza mais o gerador de relatorios, pois existe melhores no mercado que ela poderia tomar como base
"Analista desenvolvedor", Especialista em Sapiens, Java, Web.
leonardoaleixosil@gmail.com
User avatar
Leonardo Aleixo
 
Posts: 418
Joined: 17 Jun 2008, 10:05
Location: Matão

Re: Tabela (Matriz) !

PostAuthor: DesenvolvedorSenior » 08 Oct 2009, 15:30

Bem meu caro...

Essa é uma boa questão !
Mas vamos divagar um pouco...!
Meu ponto de vista:
- Flexibilizar é uma palavra bem perigosa...
- Acho que o maior problema das ferramentas Senior esta em suas possibilidades. Isso faz com que pensemos:
"Se posso me adapitar ao meio. Por que mudá-lo ?..."
- O que quero dizer com isso ?
- Bem, mesmo que o meio esteja errado é mais fácil fazer o sistema acompanhar o erro ou o desnecesáriamente complexo, que tentar mudá-lo...
- Pegue como exemplo a SAP. Já faz tempo não tem interesse no mercado brasileiro, sistema engessado para o usuário ou gestor fim do sistema no cliente. Só quem altera é o pessoal da própria revenda/desenvolvedora...
- Ainda assim consideradíssimo e procuradíssimo no mercado...! Por que ?
- Ora meu caro, devo dizer que nenhuma software house brasileira perde para gringa alguma. A diferença esta no ponto onde essa conversa iniciou... "Flexbilidade demais "
- O que faz o consultor SAP em uma implantação ? Ele passa meses estudando cada setor da empresa.
- Para adequar o sistema a realidade da empresa é claro !
- NÃO ! Para identificar quais pontos o sistema em sua "matriz de implantação" precisaria sofrer implementações então ao invés das implementações no sistema, ele mudar o processo, adequando-o a forma como o sistema trata...!
- É por isso meu caro que as implantações SAP durão um século e uma fortuna !
- Mas, então qual a grande vantágem que os empresários veem em optar por esta solução ? O nome ? A fama ?
- NÃO ! Se engana quem pensa que o empresário de hoje não esta de olhos bem abertos...
- O benefício vem depois...Depois que implantado, NUNCA MAIS O CLIENTE VAI SE PREOCULPAR COM AS SOLUÇÕES !
- É o famoso caro que sai barato !
- É uma coisa linda de se ver ! Até documento de instrução de trabalho a galera entrega USUÁRIO por USUÁRIO ! Assim o treinamento que se da, é fazer o "novato" ler o passo a passo de todas as suas tarefas no sistema/empresa...
- Essa metodologia, vista como retrogada, em verdade é funcional demais ! O sistem vai funcionar porque o processo ao qual o sistema vai gerenciar, flui exatamente igual.
- E nós...? Engraçado, parece que nos orgulhamos ao dizer que fizemos o Rubi, Ronda, Sapiens..., fazer algo incrível para atender cliente Fulano ou Beltrano...
- E é ai meus amigos que nossos brios nos quebram ....!
- E é ai que nossa maior fortaleza pode se virar contra nós !

Abraços !

Sebastião Rameno
Desenvolvedor Senior
www.desenvolvedorsenior.com.br
Seu Desenvolvedor Virtual !

DesenvolvedorSenior
 
Posts: 20
Joined: 15 Sep 2009, 15:49

Re: Tabela (Matriz) !

PostAuthor: Leonardo Aleixo » 08 Oct 2009, 16:43

quando disse sobre flexibilidade nao quis tirar qualquer responsabilidade da desenvolvedora para fazer parte alguma
e sim uma forma de nos ajudar mais, melhorando a tecnologia
"Analista desenvolvedor", Especialista em Sapiens, Java, Web.
leonardoaleixosil@gmail.com
User avatar
Leonardo Aleixo
 
Posts: 418
Joined: 17 Jun 2008, 10:05
Location: Matão

Re: Tabela (Matriz) !

PostAuthor: DesenvolvedorSenior » 09 Oct 2009, 08:30

Opa !

Mas eu não havia entendido isso não...!

Apenas usei uma colocação para incluir um pensamento que acho pertinente...!

Valeu !

DesenvolvedorSenior
 
Posts: 20
Joined: 15 Sep 2009, 15:49

Re: Tabela (Matriz) !

PostAuthor: Leonardo Aleixo » 09 Oct 2009, 10:03

ok
"Analista desenvolvedor", Especialista em Sapiens, Java, Web.
leonardoaleixosil@gmail.com
User avatar
Leonardo Aleixo
 
Posts: 418
Joined: 17 Jun 2008, 10:05
Location: Matão

Re: Tabela (Matriz) !

PostAuthor: Thiago Roberto » 09 Oct 2009, 11:03

Sebastião,

Te todo modo eu acho que o sistema que se adapta ao melhor processo possível que da o diferencial para a empresa no mercado ou seja, quando você iguala seu processo ao de um determinado da SAP temos uma melhora geral que e data através da padronização que não pode ser contestada.
Porem quando você tem na ferramenta a possibilidade de moldar o sistema para o processo mais otimizado possível ou estar melhorando ele com o passar do tempo, concerteza você tera um diferencial no mercado encima de seus concorrentes, em um mercado tão hostil como o brasileiro isso e mais que essencial, ja que o governo trabalha somente como o um cobrador e não como um pilar para suas atividades.

abraços,
Thiago
Consultor Especializado em Ronda Ponto, Ronda Acesso e TSi .
thiago@forumsenior.com.br
User avatar
Thiago Roberto
Site Admin
 
Posts: 1054
Joined: 13 Apr 2008, 00:47
Location: Belo Horizonte

Re: Tabela (Matriz) !

PostAuthor: Leonardo Aleixo » 09 Oct 2009, 13:23

Thiago Roberto wrote:Sebastião,

Te todo modo eu acho que o sistema que se adapta ao melhor processo possível que da o diferencial para a empresa no mercado ou seja, quando você iguala seu processo ao de um determinado da SAP temos uma melhora geral que e data através da padronização que não pode ser contestada.
Porem quando você tem na ferramenta a possibilidade de moldar o sistema para o processo mais otimizado possível ou estar melhorando ele com o passar do tempo, concerteza você tera um diferencial no mercado encima de seus concorrentes, em um mercado tão hostil como o brasileiro isso e mais que essencial, ja que o governo trabalha somente como o um cobrador e não como um pilar para suas atividades.

abraços,
Thiago


concordo plenamente
"Analista desenvolvedor", Especialista em Sapiens, Java, Web.
leonardoaleixosil@gmail.com
User avatar
Leonardo Aleixo
 
Posts: 418
Joined: 17 Jun 2008, 10:05
Location: Matão

Re: Tabela (Matriz) !

PostAuthor: robinson » 15 Apr 2010, 09:24

Olá, Pessoal!

Bakana esta opção criar tabela.

Recentemente, precisei de algo parecido.

Mas no meu caso, ficou melhor a utilização da LISTA DINÂMICA, que permite um princípio equivalente e é mais intuitiva.

O recurso da LISTA DINÂMICA faz parte de uma série de recursos "novos" no help. Que já facilitam bastante o nosso dia-a-dia.

Vocês fazem uso deste recurso?

Abração,

Robinson
Analista de Sistemas - Sapiens

robinson
 
Posts: 10
Joined: 21 Jul 2009, 18:14


Return to Desenvolvimento

Who is online

Users browsing this forum: No registered users and 1 guest

cron