Ir para conteúdo
Seja Membro VIP - Remova Banners de Propagandas, Tenha Liberado Qualquer Download, Além de Acessos em Áreas Exclusivas!! ×
Quer acesso a todas as Áreas do Fórum, até aquelas só para membros VIPs? Também quer poder baixar qualquer ARQUIVO? ×

Problema para calcular o campo de dependentes (RESOLVIDO)


Rick

Posts Recomendados


  • Tópicos Que Criei:  5
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  22
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  162
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Eae Galera, blzinha?

Estou com um baita problema, rs.

Preciso fazer uma formula que calcule o convênio odontologico por dependentes.

Localizei o campo 'nrodepend'(tabela pfdepend) que se refere ao número de dependentes de um funcionário, fiz a formula e ela funciona corretamente, desde que o campo 'nrodepend'(tabela pfdepend) esteja com a numeração em ordem, se estiver faltando algum número na sequencia, ele gera erro.

exemplo: nrodepend: 1, 2, 3, 4, 5,7, 8, 9 como ele não tem o '6' ele retorna com erro.

segue a formula:

DECL NUMDEP, DEP, SOMADEP;

SETVAR (NUMDEP, FOR ('TST00'));

SETVAR(DEP,1);

SETVAR(SOMADEP,0);

REPITA

SENAO SE TABDEP ('INCDEFINIVEIS' , 'S' , DEP) = '*' ENTAO

SE TABCOMPL ('ASSISTENCIAODONTO' , 'S')='INTEGRAL' ENTAO

SALVAVALDEP(DEP,F('0006'));

SETVAR(SOMADEP, SOMADEP + F('0006'))

SENAO

SE TABCOMPL ('ASSISTENCIAODONTO' , 'S')='SUPERIOR' ENTAO

SALVAVALDEP(DEP,F('0007'));

SETVAR(SOMADEP, SOMADEP + F('0007'))

SENAO

SE TABCOMPL ('ASSISTENCIAODONTO' , 'S')='MASTER' ENTAO

SALVAVALDEP(0,F('0008'));

SETVAR(SOMADEP, SOMADEP + F('0008'))

SENAO SETVAR(SOMADEP, 0)

FIMSE FIMSE FIMSE

SENAO SETVAR(SOMADEP,SOMADEP + 0)

FIMSE;

SETVAR(DEP, DEP + 1) ATE DEP = NUMDEP + 1;

SOMADEP

Sendo que "NUMDEP" se refere a uma sentença SQL que me traz um COUNT do total de dependentes.

Bem em geral, o que eu preciso é alguma condição que eu inclua nessa formula para que ele não me retorne erro, caso a sequencia de dependentes não esteja completa.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  17
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  55
  • Conteúdo/Dia:  0.01
  • Reputação:   0
  • Pontos/Conquistas:  447
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  49

Oi sua formula esta legal, mas não seria mais facil fazer uma sentença retornando quantos dependentes o colaborador possui? Você ainda pode criar uma tabela dinamica de Incidencias de dependentes e fazer esta contagem via sentença e retorna-la na formula.

Att.

Cláudio

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  5
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  22
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  162
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Oi sua formula esta legal, mas não seria mais facil fazer uma sentença retornando quantos dependentes o colaborador possui? Você ainda pode criar uma tabela dinamica de Incidencias de dependentes e fazer esta contagem via sentença e retorna-la na formula.

Att.

Cláudio

Olá Claudio,

Então, eu já tenho uma sentença que faz um COUNT retornando o total de dependentes, mas quando eu tento validar linha por linha, se alguma não estiver em ordem, como no exemplo q eu dei, ele retorna erro. Creio que o erro seja na validação do loop.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  5
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  22
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  162
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Olá Claudio,

Então, eu já tenho uma sentença que faz um COUNT retornando o total de dependentes, mas quando eu tento validar linha por linha, se alguma não estiver em ordem, como no exemplo q eu dei, ele retorna erro. Creio que o erro seja na validação do loop.

Boa tarde, eu estive analisando minhas sentenças e um amigo me deu a idéia de utilizarmos vetores, como nos scripts sql.

para o vetor receber o valor do dependente e retornar o ID do mesmo. Exemplo.

Eu tenho os dependentes 1, 2, 4, 5 ,6, 7.

eu criaria um vetor que preenchesse uma tabela com os valores:

1 = '1'

2 = '2'

3 = '4'

4 = '5'

5 = '6'

6 = '7'

E assim, me retornar os valores que eu preciso.

Alguém tem idéia se é possível fazer isso no RM.

Por "Arrays"

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  64
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  733
  • Conteúdo/Dia:  0.11
  • Reputação:   8
  • Pontos/Conquistas:  4.310
  • Conteúdo Resolvido:  0
  • Dias Ganho:  6
  • Status:  Offline
  • Idade:  56

Utilize a função NDEP, ela retorna o número de dependentes que tem determinada incidência marcada.

Exemplo:

A incidência 2 - Presentes de Natal está marcada para 3 dos 4 dependentes de um funcionário e na fórmula está pedindo o seguinte - NDEP (2) - o resultado será 3.

Transcrição do Manual eletrônico do RM Labore

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  5
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  22
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  162
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Utilize a função NDEP, ela retorna o número de dependentes que tem determinada incidência marcada.

Exemplo:

A incidência 2 - Presentes de Natal está marcada para 3 dos 4 dependentes de um funcionário e na fórmula está pedindo o seguinte - NDEP (2) - o resultado será 3.

Transcrição do Manual eletrônico do RM Labore

No caso se eu usar da forma q vc me falou ele dá erro na função "repita".

Eu pensei em usar algum tipo de matriz de vetor, mas não sei como fazer nos codigos do RM.

Dando uma revisada nos tópicos de ajuda do RM eu ví que existe a função "MEMORIA" e a função "ATRIBUI" que talves unidas, possamos fazer um vetor,

mas o problema é que não estou conseguindo montar uma formula usando esses comandos.

Segue minha formula atual:

DECL NUMDEP, DEP, SOMADEP;

SETVAR (NUMDEP, FOR ('TST00'));

SETVAR(DEP,1);

SETVAR(SOMADEP,0);

REPITA

SE TABDEP ('INCDEFINIVEIS' , 'S' , DEP) = '*' ENTAO

SE TABCOMPL ('ASSISTENCIAODONTO' , 'S')='INTEGRAL' ENTAO

SALVAVALDEP(DEP,F('0006'));

SETVAR(SOMADEP, SOMADEP + F('0006'))

SENAO

SE TABCOMPL ('ASSISTENCIAODONTO' , 'S')='SUPERIOR' ENTAO

SALVAVALDEP(DEP,F('0007'));

SETVAR(SOMADEP, SOMADEP + F('0007'))

SENAO

SE TABCOMPL ('ASSISTENCIAODONTO' , 'S')='MASTER' ENTAO

SALVAVALDEP(0,F('0008'));

SETVAR(SOMADEP, SOMADEP + F('0008'))

SENAO SETVAR(SOMADEP, 0)

FIMSE FIMSE FIMSE

SENAO SETVAR(SOMADEP,SOMADEP + 0)

FIMSE;

SETVAR(DEP, DEP + 1) ATE DEP = NUMDEP + 1;

SOMADEP

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  64
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  733
  • Conteúdo/Dia:  0.11
  • Reputação:   8
  • Pontos/Conquistas:  4.310
  • Conteúdo Resolvido:  0
  • Dias Ganho:  6
  • Status:  Offline
  • Idade:  56

Rick,

Eu não sei qual é a regra desse plano aí na sua empresa, mas gostaria de entender para tentar te ajudar:

1) Qual valor dos dependentes você está tentando calcular? a quantidade de dependentes ou o valor do desconto da assistência odontológica por dependentes?

2) Você criou os campos complementares agora ou eles já existiam?

3) Os níveis do plano (Integral, superior e master) alteram ou são fixos?

4) Você tem liberdade para criar uma estrutura de desconto (parametrização) ou tem que se virar com o que já existe?

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  5
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  22
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  162
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Rick,

Eu não sei qual é a regra desse plano aí na sua empresa, mas gostaria de entender para tentar te ajudar:

1) Qual valor dos dependentes você está tentando calcular? a quantidade de dependentes ou o valor do desconto da assistência odontológica por dependentes?

2) Você criou os campos complementares agora ou eles já existiam?

3) Os níveis do plano (Integral, superior e master) alteram ou são fixos?

4) Você tem liberdade para criar uma estrutura de desconto (parametrização) ou tem que se virar com o que já existe?

Bom dia Alberto, tudo bem?

Na realidade, não é apenas um plano que temos que mudar.

o exemplo que eu dei acima foi somente para um, mas temos que alterar para todos os planos a forma de cálculo por dependentes.

Hoje o sistema funciona assim, ele soma todos os dependentes e manda o valor total para a folha de pagto.

Mas o projeto prevê que seja discriminado o valor de dependenter e do titular.

Não sei se está claro.

Assim, nos campos complementares existe um campo onde eu posso selecionar os dependentes que usam o convenio odontológico, independente de qual seja.

Esse campo se chama "ass. odontológica", se estiver selecionado, eu posso calcular o valor desse dependente.

Até aí tudo tranquilo.

O meu problema está em que, nem sempre o campo que numera os dependentes estão em ordem.

Quando não estão em ordem ele retorna erro nas minhas formulas.

Segue telas para tentar explicar melhor o erro.

ass.odon.jpg

base.depend.jpg

Editado por Rick
Link para comentar
Compartilhar em outros sites

  • 1 mês depois...

  • Tópicos Que Criei:  5
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  22
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  162
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Eae Galera, blzinha?

Estou com um baita problema, rs.

Preciso fazer uma formula que calcule o convênio odontologico por dependentes.

Localizei o campo 'nrodepend'(tabela pfdepend) que se refere ao número de dependentes de um funcionário, fiz a formula e ela funciona corretamente, desde que o campo 'nrodepend'(tabela pfdepend) esteja com a numeração em ordem, se estiver faltando algum número na sequencia, ele gera erro.

exemplo: nrodepend: 1, 2, 3, 4, 5,7, 8, 9 como ele não tem o '6' ele retorna com erro.

segue a formula:

DECL NUMDEP, DEP, SOMADEP;

SETVAR (NUMDEP, FOR ('TST00'));

SETVAR(DEP,1);

SETVAR(SOMADEP,0);

REPITA

SENAO SE TABDEP ('INCDEFINIVEIS' , 'S' , DEP) = '*' ENTAO

SE TABCOMPL ('ASSISTENCIAODONTO' , 'S')='INTEGRAL' ENTAO

SALVAVALDEP(DEP,F('0006'));

SETVAR(SOMADEP, SOMADEP + F('0006'))

SENAO

SE TABCOMPL ('ASSISTENCIAODONTO' , 'S')='SUPERIOR' ENTAO

SALVAVALDEP(DEP,F('0007'));

SETVAR(SOMADEP, SOMADEP + F('0007'))

SENAO

SE TABCOMPL ('ASSISTENCIAODONTO' , 'S')='MASTER' ENTAO

SALVAVALDEP(0,F('0008'));

SETVAR(SOMADEP, SOMADEP + F('0008'))

SENAO SETVAR(SOMADEP, 0)

FIMSE FIMSE FIMSE

SENAO SETVAR(SOMADEP,SOMADEP + 0)

FIMSE;

SETVAR(DEP, DEP + 1) ATE DEP = NUMDEP + 1;

SOMADEP

Sendo que "NUMDEP" se refere a uma sentença SQL que me traz um COUNT do total de dependentes.

Bem em geral, o que eu preciso é alguma condição que eu inclua nessa formula para que ele não me retorne erro, caso a sequencia de dependentes não esteja completa.

Eae Galera, blzinha?

Estou com um baita problema, rs.

Preciso fazer uma formula que calcule o convênio odontologico por dependentes.

Localizei o campo 'nrodepend'(tabela pfdepend) que se refere ao número de dependentes de um funcionário, fiz a formula e ela funciona corretamente, desde que o campo 'nrodepend'(tabela pfdepend) esteja com a numeração em ordem, se estiver faltando algum número na sequencia, ele gera erro.

exemplo: nrodepend: 1, 2, 3, 4, 5,7, 8, 9 como ele não tem o '6' ele retorna com erro.

segue a formula:

DECL NUMDEP, DEP, SOMADEP;

SETVAR (NUMDEP, FOR ('TST00'));

SETVAR(DEP,1);

SETVAR(SOMADEP,0);

REPITA

SENAO SE TABDEP ('INCDEFINIVEIS' , 'S' , DEP) = '*' ENTAO

SE TABCOMPL ('ASSISTENCIAODONTO' , 'S')='INTEGRAL' ENTAO

SALVAVALDEP(DEP,F('0006'));

SETVAR(SOMADEP, SOMADEP + F('0006'))

SENAO

SE TABCOMPL ('ASSISTENCIAODONTO' , 'S')='SUPERIOR' ENTAO

SALVAVALDEP(DEP,F('0007'));

SETVAR(SOMADEP, SOMADEP + F('0007'))

SENAO

SE TABCOMPL ('ASSISTENCIAODONTO' , 'S')='MASTER' ENTAO

SALVAVALDEP(0,F('0008'));

SETVAR(SOMADEP, SOMADEP + F('0008'))

SENAO SETVAR(SOMADEP, 0)

FIMSE FIMSE FIMSE

SENAO SETVAR(SOMADEP,SOMADEP + 0)

FIMSE;

SETVAR(DEP, DEP + 1) ATE DEP = NUMDEP + 1;

SOMADEP

Sendo que "NUMDEP" se refere a uma sentença SQL que me traz um COUNT do total de dependentes.

Bem em geral, o que eu preciso é alguma condição que eu inclua nessa formula para que ele não me retorne erro, caso a sequencia de dependentes não esteja completa.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  51
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  1.005
  • Conteúdo/Dia:  0.16
  • Reputação:   12
  • Pontos/Conquistas:  5.527
  • Conteúdo Resolvido:  0
  • Dias Ganho:  8
  • Status:  Offline
  • Idade:  51

Rick,

Dá uma olhada na fórmula que estou lhe passando...

SE

TABCOMPL ('ASSISTENCIAODONTO' , 'S')='INTEGRAL'

ENTAO

NDEP(1) * F('0006')

SENAO

SE

TABCOMPL ('ASSISTENCIAODONTO' , 'S')='SUPERIOR'

ENTAO

NDEP(1) * F('0007')

SENAO

SE

TABCOMPL ('ASSISTENCIAODONTO' , 'S')='MASTER'

ENTAO

NDEP(1) * F('0008')

SENAO 0 FIMSE FIMSE FIMSE

Esta verifica o tipo de Plano do funcionário, além disso a variavel NDEP(1) irá resultar a quantidade de DEPENDNETES cuja incidência do Plano Odonto estiver marcada X o valor fixo para cada tipo de plano.

Link para comentar
Compartilhar em outros sites

  • 2 meses depois...

  • Tópicos Que Criei:  5
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  22
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  162
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Rick,

Dá uma olhada na fórmula que estou lhe passando...

SE

TABCOMPL ('ASSISTENCIAODONTO' , 'S')='INTEGRAL'

ENTAO

NDEP(1) * F('0006')

SENAO

SE

TABCOMPL ('ASSISTENCIAODONTO' , 'S')='SUPERIOR'

ENTAO

NDEP(1) * F('0007')

SENAO

SE

TABCOMPL ('ASSISTENCIAODONTO' , 'S')='MASTER'

ENTAO

NDEP(1) * F('0008')

SENAO 0 FIMSE FIMSE FIMSE

Esta verifica o tipo de Plano do funcionário, além disso a variavel NDEP(1) irá resultar a quantidade de DEPENDNETES cuja incidência do Plano Odonto estiver marcada X o valor fixo para cada tipo de plano.

Valeu Jorge, consegui fazer seguindo seus conselhos!!!

Link para comentar
Compartilhar em outros sites

Participe da conversa

Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.

Visitante
Responder esse tópico

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Seu link foi automaticamente inserido no corpo do post.   Exibir como um link

×   Seu conteúdo anterior foi restaurado.   Limpar conteúdo do editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.