Ir para conteúdo

Exemplos de Fórmulas


Posts Recomendados


  • Tópicos Que Criei:  885
  • Tópicos/Dia:  0.13
  • Meu Conteúdo:  8.801
  • Conteúdo/Dia:  1.34
  • Reputação:   289
  • Pontos/Conquistas:  106.261
  • Conteúdo Resolvido:  0
  • Dias Ganho:  185
  • Status:  Online
  • Idade:  51
  • Dispositivo:  Windows

Quero ver as contribuições aqui da Galera heim !!!!! :blush:

No módulo de Fórmulas dos Aplicativos RM, existem várias Funções e Comandos que não são comuns para o uso diário, e por isso, muitos não têm a mínima idéia de como que funcionam, e consequentemente, nunca conseguem usar.

Vamos ajudar aos demais membros citando alguns casos que conheçam, citando como que usa ?

Podemos fazer o seguinte, quem souber, coloca mais ou menos assim:

Comando: Repita Ate - Executa um comando ou sequencia de comandos até que atenda certa situação.

Exemplo de Fórmula:

Decl(calcular);
Setvar(calcular, 1);

Repita
 SetVar(Calcular, Calcular + 1)
Ate Calcular > 9; 

Calcular

Ao rodar esta fórmula, observe que, o retorno será 10, ou seja:

- Declaramos a variável Calcular

- Setou a variável Calcular em 1

- Rodou o comando dentro do "Repita Ate" várias vezes, somando sempre + 1 ao valor de "Calculo"

- Quando Calcular ficou mais que 9 finalizou e saiu do loop

- Retorna Calcular, que estava em 10.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  15
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  548
  • Conteúdo/Dia:  0.09
  • Reputação:   1
  • Pontos/Conquistas:  2.891
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Idade:  44

Jair,

Segue minha contribuição: PARMQRY (STRING)

A função PARMQRY é bem interessante quando você precisa fazer algum cálculo, retorno de um dado de qualquer tipo e ainda utilizá-la para filtro no relatório.

Para fazer uma função PARMQRY você precisa ter é claro um relatório criado e:

a) saber as informações que a sentença SQL do relatórios possui. Para isso gere o relatório e abra a pasta do aplicativo (c:\corporerm\rmnucleus) e abra o arquivo SQL.TXT;

b) com posse do nome do campo na SELECT do relatório crie a fórmula da seguinte forma: PARMQRY ('NOME DO CAMPO')

c) adicione a fórmula criada na linha de detalhe correspondete ao SELECT do arquivo txt

d) quando gerar o relatório a fórmula será executada e o resultado será impresso

A fórmula PARMQRY ode ser usada simplesmente para retornar um campo:

PARMQRY ('CODCOLIGADA')

Pode ser usada para retornar um campo de uma Consulta SQL inserida no relatório, ou seja, não precisa ser campo da base;

Pode ser utilizada para cálculos, como por exemplo:

SE ( PARMQRY('PRECO1') + PARMQRY('PRECO2') + PARMQRY('PRECO3') + PARMQRY('PRECO4') + PARMQRY('PRECO5') ) > 0 
ENTAO
 1
SENAO
 0
FIMSE

E também para filtros nos relatórios!!!

Ou seja, essa fórmula é campeã :blush:

Att,

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  28
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  342
  • Conteúdo/Dia:  0.05
  • Reputação:   0
  • Pontos/Conquistas:  1.990
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  49

Excelente Tópico Jair!

E mais ainda as contribuições... :blush:

Eu vou começar contribuindo com uma informação de como não usar.

CALCMED é uma função que você pode pegar o valor calculado de média de um determinado tipo de evento (férias, 13o., etc), só que, é uma função que NÃO deve ser usada em uma fórmula adicional para cálculos de férias, 13o, etc., fazendo com que aborte o Labore.

A justificativa é que ela faz o cálculo entrar em looping abortando a aplicação.

Portanto, NÃO utilize CALCMED em fórmulas adicionais que irá abortar o Labore.

Abs.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  28
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  342
  • Conteúdo/Dia:  0.05
  • Reputação:   0
  • Pontos/Conquistas:  1.990
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  49

Segue mais uma:

No Labore existe a função G ou GTD que servem para calcular anuênio, biênio, triênio do funcionário. Esta função, muita gente não sabe, mas ela não baseia o cálculo na data de admissão do funcionário e sim pela data base, ou seja, caso exista algum funcionário que foi readmitido mas terá que pagar o benefício com início em uma data anterior à data de admissão poderá alterar esta data:

Ex.: Data de admissão: 01/01/2007

Qtde atual de anuênio: 1

Alterando a database para: 01/01/2006

Qtde atual de anuênio: 2

Sem precisar fazer fórmulas milaborantes para fazer com que o cálculo pegue uma data diferenciada da admissão.

Abs.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  15
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  548
  • Conteúdo/Dia:  0.09
  • Reputação:   1
  • Pontos/Conquistas:  2.891
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Idade:  44

Pessoal,

Mais outras funções que gosto muito também:

TABINI - retorna 0 e 1 para identificar se está no início da tabela

TABFIM - retorna 0 e 1 para identificar se está no fim da tabela

TABIRINI - vai para o primeiro registro da tabela

TABIRFIM - vai para o último registro da tabela

TABAVANCA - vai para o próximo registro da tabela

Vou postar agora um exemplo que preciso somar os valores dos itens na tabela de Itens do Movimento apenas de produtos específicos. Utilizei também a declaração de variáveis e o Repita, mas estes já foram demonstrados no início deste tópico.

TABIRINI ('TITMMOV');

DECL SOMA;
SETVAR(SOMA,0);

REPITA
SE  TABITM ('IDPRD' , 'S') = 3762
   ENTAO SETVAR(SOMA, SOMA + TABITM ('VALORTOTALITEM' , 'V'))
FIMSE;
TABAVANCA ('TITMMOV')
ATE  TABFIM ('TITMMOV') = 1;
SOMA

Como nem tudo é perfeito, essa fórmula poderosíssima tem uma limitação: só funciona para algumas tabelas.

Att,

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  885
  • Tópicos/Dia:  0.13
  • Meu Conteúdo:  8.801
  • Conteúdo/Dia:  1.34
  • Reputação:   289
  • Pontos/Conquistas:  106.261
  • Conteúdo Resolvido:  0
  • Dias Ganho:  185
  • Status:  Online
  • Idade:  51
  • Dispositivo:  Windows

Vamos lá, mais quatro contribuições de uma só vez...

Função DECL - Declarar ( inicializa ) uma variável pra poder usar durante a fórmula. UTIL DEMAIS !!!

* quando usada esta função, automaticamente tem que usar a SETVAR pra setar valores para a variável que criou.

Função TABCLIFOR - Retorna o conteúdo de um determinado campo na tabela de Cli/For

* existe função semelhante pra outras tabelas também.

Sintaxe: TABCLIFOR ('STRING', 'STRING', VALOR, 'STRING')

Sendo esses quatro parametros:

- nome do campo desejado;

- tipo do campo desejado (valor, inteiro, string, data);

- valor da coligada do cliente;

- código do cliente desejado.

* nos parametros podem ser usadas outras funções, ou campos digitados (fixos).

Função CONCAT ( ou CONCAT2 ) - Concatena ( junta ) dois campos strings.

O CONCAT deixa exatamente juntos os campos. Já o CONCAT2 coloca um espaço entre os campos.

Sintaxe: CONCAT ('CAMPOA', 'CAMPOB') - Resultado: 'CAMPOACAMPOB'

Sintaxe: CONCAT2 ('CAMPOA', 'CAMPOB') - Resultado: 'CAMPOA CAMPOB'

Função SUBSTR - Retorna uma parte de um campo ou de um texto qualquer.

Sintaxe: SUBSTR ('STRING', Valor, Valor)

Sendo:

- no primeiro parametro, o texto ou campo com texto para tratar ;

- no segundo parametro, a posição inicial a tratar ( capturar ) no texto;

- no terceiro parametro, a quantidade de caracteres para 'pegar' .

Exemplos abaixo:

Decl ( xCEP );	

Setvar( xCEP, TABCLIFOR ( 'CEP', 'S', 0 , '102647' ) );

CONCAT2 ( SUBSTR (xCEP, 1, 5) , SUBSTR (xCEP, 7, 3) )

Aqui acima, tratamos os quatro funções citadas e o retorno será por exemplo: '02730 000', para a leitura do CEP '02730-000'.

Link para comentar
Compartilhar em outros sites

  • 4 semanas depois...

  • Tópicos Que Criei:  65
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  654
  • Conteúdo/Dia:  0.11
  • Reputação:   1
  • Pontos/Conquistas:  3.926
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Idade:  44
  • Dispositivo:  Windows

Já foi mencionada a função mas gostaria de registrar um exemplo pra facilitar:

TABCLIFOR ('CODCOLTCF' , 'S' ,TABMOV ('CODCOLCFO' , 'I'),TABMOV('CODCFO' , 'S'))

A função acima serve pra buscar o tipo de cliente fornecedor, podendo ser analisado com um SE etc.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  885
  • Tópicos/Dia:  0.13
  • Meu Conteúdo:  8.801
  • Conteúdo/Dia:  1.34
  • Reputação:   289
  • Pontos/Conquistas:  106.261
  • Conteúdo Resolvido:  0
  • Dias Ganho:  185
  • Status:  Online
  • Idade:  51
  • Dispositivo:  Windows

E ai... mais alguém ?? com certeza podemos ter mais exemplos aqui !!

  • Like 1
Link para comentar
Compartilhar em outros sites

  • 2 semanas depois...

  • Tópicos Que Criei:  21
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  125
  • Conteúdo/Dia:  0.02
  • Reputação:   0
  • Pontos/Conquistas:  835
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  43

Excelente Tópico Jair!

E mais ainda as contribuições... :rofl:

Eu vou começar contribuindo com uma informação de como não usar.

CALCMED é uma função que você pode pegar o valor calculado de média de um determinado tipo de evento (férias, 13o., etc), só que, é uma função que NÃO deve ser usada em uma fórmula adicional para cálculos de férias, 13o, etc., fazendo com que aborte o Labore.

A justificativa é que ela faz o cálculo entrar em looping abortando a aplicação.

Portanto, NÃO utilize CALCMED em fórmulas adicionais que irá abortar o Labore.

Abs.

Oi Donaldson.

Só uma observação.

Eu tive esse problema de fazer uma fórmula com CALCMED e o sistema abortar, mas isso acontecia durante a execução da fórmula mesmo na hora de testar.

Eu precisava pagar a média de um evento no 13º, mas para ele fazer as médias conforme o sindicato do funcionário (tempo, valor, hora, etc..) era preciso usar essa variável.

Descobri que o problema não estava em usar a variável no cálculo e sim que a versão do BDE estava desatualizada. Quando fiz a atualização para a versão 5.20 o sistema não abortou mais.

Abçs.

Link para comentar
Compartilhar em outros sites

  • 5 meses depois...

  • Tópicos Que Criei:  32
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  565
  • Conteúdo/Dia:  0.09
  • Reputação:   10
  • Pontos/Conquistas:  3.159
  • Conteúdo Resolvido:  0
  • Dias Ganho:  5
  • Status:  Offline
  • Idade:  43

Pessoal, essa dica contém um recurso muito útil na minha opinião. Como todos sabem o debug de fórmulas é interessante mas quando você possui muitas condições torna-se trabalhosa a análise para identificar qual condição foi atendida.

Temos clientes em que as fórmulas chegam a 15, 20 condições e analisar isso tudo é complicado.

Utilizando esta dica você pode mapear por onde você passou.... Vamos ao exemplo. Vejam o anexo.

post-77-1231195572_thumb.jpg

Com isso você pode dizer 'Passei no bloco 1', 'Entrei aqui', enfim fica muito mais fácil analisar o debug.

Anexei também o debug de cálculo dos testes que realizei com a fórmula. Boa leitura e ótimo proveito.

Abraço a todos.

Teste1.txt

Teste2.txt

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  86
  • Tópicos/Dia:  0.02
  • Meu Conteúdo:  255
  • Conteúdo/Dia:  0.05
  • Reputação:   0
  • Pontos/Conquistas:  2.325
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Prezados

- Fiz o curso do Gerador de Relatório, no ultimo dia me passaram um exemplo de Fórmula, mas foi tão "simples" e bem "vagabunda" que algumas pessoas do curso não aprenderam outras mais ou menos como eu.

- Vendo os post, percebi que hj não sei nada a respeito de Fórmula, isso me deixa muito preocupa na minha função aqui na empresa, estou engatinhado no Desenvolvimento de relatório com muita dificuldade.

- Meu Deus!

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  885
  • Tópicos/Dia:  0.13
  • Meu Conteúdo:  8.801
  • Conteúdo/Dia:  1.34
  • Reputação:   289
  • Pontos/Conquistas:  106.261
  • Conteúdo Resolvido:  0
  • Dias Ganho:  185
  • Status:  Online
  • Idade:  51
  • Dispositivo:  Windows

Maia... detalhe muito simples e pratico, realmente... ajuda e muito.

Valeu a dica ae pra galera.

Pessoal, essa dica contém um recurso muito útil na minha opinião. Como todos sabem o debug de fórmulas é interessante mas quando você possui muitas condições torna-se trabalhosa a análise para identificar qual condição foi atendida.

Temos clientes em que as fórmulas chegam a 15, 20 condições e analisar isso tudo é complicado.

Utilizando esta dica você pode mapear por onde você passou.... Vamos ao exemplo. Vejam o anexo.

post-77-1231195572_thumb.jpg

Com isso você pode dizer 'Passei no bloco 1', 'Entrei aqui', enfim fica muito mais fácil analisar o debug.

Anexei também o debug de cálculo dos testes que realizei com a fórmula. Boa leitura e ótimo proveito.

Abraço a todos.

Prezados

- Fiz o curso do Gerador de Relatório, no ultimo dia me passaram um exemplo de Fórmula, mas foi tão "simples" e bem "vagabunda" que algumas pessoas do curso não aprenderam outras mais ou menos como eu.

- Vendo os post, percebi que hj não sei nada a respeito de Fórmula, isso me deixa muito preocupa na minha função aqui na empresa, estou engatinhado no Desenvolvimento de relatório com muita dificuldade.

- Meu Deus!

mclpaltrn, o detalhe é o seguinte... o curso de GERADOR não ensina Formulas mesmo não. o recurso de fórmulas é do aplicativo, e existe um curso especifico para formulas. O Gerador até usa este recurso, e em muitos casos ajuda muito, mas é separado. Se for o caso, procure se existe na unidade TOTVS que o atende esse curso de FORMULAS, que, este sim, poderá ajudá-lo bastante no uso do sistema e para relatórios.

Abraço

Link para comentar
Compartilhar em outros sites

  • 2 semanas depois...

  • Tópicos Que Criei:  21
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  125
  • Conteúdo/Dia:  0.02
  • Reputação:   0
  • Pontos/Conquistas:  835
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  43

Pessoal, essa dica contém um recurso muito útil na minha opinião. Como todos sabem o debug de fórmulas é interessante mas quando você possui muitas condições torna-se trabalhosa a análise para identificar qual condição foi atendida.

Temos clientes em que as fórmulas chegam a 15, 20 condições e analisar isso tudo é complicado.

Utilizando esta dica você pode mapear por onde você passou.... Vamos ao exemplo. Vejam o anexo.

post-77-1231195572_thumb.jpg

Com isso você pode dizer 'Passei no bloco 1', 'Entrei aqui', enfim fica muito mais fácil analisar o debug.

Anexei também o debug de cálculo dos testes que realizei com a fórmula. Boa leitura e ótimo proveito.

Abraço a todos.

Fabio, sem palavras.

Algo simples que facilita e muito a nossa vida...

e eu desconhecia!

Eureka!

vlw a dica.

Abraços.

Link para comentar
Compartilhar em outros sites

  • 1 ano depois...
  • 7 meses depois...

  • Tópicos Que Criei:  2
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  56
  • Conteúdo/Dia:  0.01
  • Reputação:   0
  • Pontos/Conquistas:  310
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  44

Jair, boa tarde

Não sei se era desses tipos de fórmulas que estava falando, caso não seja favor exclui-las. Obrigado

Fórmula para cálculo de Insalubridade

SE TABFUNC ('CODFUNCAO' , 'S')='5' OU TABFUNC ('CODFUNCAO' , 'S')='13'

ENTAO (0.4*760)/30*(N('0002')+N('0145'))

SENAO

(0.2*MINGA)/30*(N('0002') +N('0145'))

FIMSE

/*20% do mínimo garantido do sindicado = R$ 490,00*/

Fórmula para buscar o último salário da pessoa

se rc > 0 entao

rc + (MV(MES,ANO,'0074')+MV(MES,ANO,'0075')+MV(MES,ANO,'0095'))

senao

ACUMFF(MES,ANO,'03')

FIMSE

Função para buscar nome da mãe do funcionário

FNOMEMAE

FÓRMULAS UTILIZADAS NO RM NÚCLEUS

Valor Bruto do Movimento

(KQT*KPU) -KDE + KDS

Fórmula para validação de campo complementar ( O campo não pode estar nulo)

SE TABMOVCOMPL ('SITUACAO' , 'V') <> '' ENTAO 1 SENAO 0 FIMSE

Link para comentar
Compartilhar em outros sites

  • 7 meses depois...

  • Tópicos Que Criei:  68
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  174
  • Conteúdo/Dia:  0.04
  • Reputação:   4
  • Pontos/Conquistas:  1.534
  • Conteúdo Resolvido:  0
  • Dias Ganho:  4
  • Status:  Offline

Pesssoal segue mais algumas formulas:

INDENIZAÇÃO LEI 7.238/84

SE DTD > '03/01/2011' E DTD < '01/03/2011' E TABFUNC ('TIPODEMISSAO' , 'V') = 2

ENTAO FOR ('Remuner')

SENAO 0

FIMSE

Zerar valores de eventos

SE CREC = 'M'

ENTAO TOTDESC - TOTPROV

SENAO 0

FIMSE

Valores Alterado Manualmente -- Crítica da folha

DECL VALOR;

SE EXECSQL ('FOR1.009') = VERDADE

ENTAO

REPITA

SETVAR(VALOR,RESULTSQL('FOR1.009','VALORESFORCADOS'))

ATE PROXREGSQL('FOR1.009') = FALSO;

VALOR

SENAO 0 FIMSE

Sexo - utilizado no relatorio Seguro Desemprego

SE (TABPESSOA('SEXO','S') = 'M') ENTAO 1 SENAO 2 FIMSE

Referência do Evento Empréstimo Consignação Bradesco

TABEMPRESTIMO ('NROPARCPAGAS' , 'V' , '01')

Referência do Evento Empréstimo Consignação Bradesco Rescisão

SE TABEMPRESTIMO ('SALDODEVEDOR' , 'V' , '01') > (TOTPROV * 0.30)

ENTAO 30

SENAO 0

FIMSE

Liquido de Salario p/contabilização

/* ATENÇÃO PARA A CONTABILIZAÇÃO MES A MES DEVE-SE ALTERAR OS CODIGOS FIXOS 'MES' E 'ANO' PARA O MES E ANO QUE ESTÁ SENDO CONTABILIZADO*/

LIQUIDOFF (F ('Ano'),F ('Mes') , 1) +

LIQUIDOFF (F ('Ano'),F ('Mes') , 2) +

LIQUIDOFF (F ('Ano'),F ('Mes') , 10) +

LIQUIDOFF (F ('Ano'),F ('Mes') , 13)

/*LIQUIDOFF (2010,6 , 1) +

LIQUIDOFF (2010,6 , 2) +

LIQUIDOFF (2010,6 , 10) +

LIQUIDOFF (2010,6 , 13)

*/

INFORME DE RENDIMENTOS – NOME DO RESPONSAVEL PELA PENSAO

SE EXECSQL ('DEPEND') =1 ENTAO

DECL IMPRESSAO, CONT, X;

REPITA

SETVAR (CONT, RESULTSQL ('DEPEND','NRODEPEND'));

SETVAR (IMPRESSAO,CONCAT5("RESPONSAVEL PENSAO:",TABDEP ('RESPONSAVEL','S',CONT)," -", "CPF:",

RESULTSQL ('DEPEND','CPFRESP')));

SETVAR (X, X+1)

ATE PROXREGSQL ('DEPEND') = 0 OU X=1

FIMSE;

IMPRESSAO

INDENIZAÇÃO - TEMPO DE SERVIÇO

SE NMESES >= 12 ENTAO

SE TABFUNC('TIPODEMISSAO','V') = 2 ENTAO

(TCASA) * 3 * RC / 30

SENAO

0

FIMSE

SENAO

0

FIMSE

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  885
  • Tópicos/Dia:  0.13
  • Meu Conteúdo:  8.801
  • Conteúdo/Dia:  1.34
  • Reputação:   289
  • Pontos/Conquistas:  106.261
  • Conteúdo Resolvido:  0
  • Dias Ganho:  185
  • Status:  Online
  • Idade:  51
  • Dispositivo:  Windows

Cálculo de Disciplinas Filhas ( Educacional ) - pelo membro Frederico:

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  68
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  174
  • Conteúdo/Dia:  0.04
  • Reputação:   4
  • Pontos/Conquistas:  1.534
  • Conteúdo Resolvido:  0
  • Dias Ganho:  4
  • Status:  Offline

segue mais formulas

Pessoal vamos ajudar

Prorrogação de experiência 45 dias

DTA+44

Prorrogração de experiência 90 dias

DTA + 89

SALDO FERIAS 5 DIAS ANO ANTERIOR

SE CREC = 'H'

ENTAO (FOR ('SALCOMP') / 30)*5

SENAO (RC) / 30*5

FIMSE

CTA FGTS

/*SE TABFUNC ('CONTAFGTS' , 'S') = ' '

ENTAO 0

SENAO TABFUNC ('CONTAFGTS' , 'S')

FIMSE*/

0

Abraços

Vagner Leonel

Editado por Jair - Fórmula
Colocado Negrito nos Titulos das Formulas
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

Variavel PAR no Labore...

Sintaxe básica

VAL(SUBSTR(PAR,1,20))

Baseado no help "Pasta Funcionários da Folha Analítica", o formato de

PAR é MM-AAAA-P-C. Nesse caso para obter o período deve-se ler a posição 12, como já é feito na fórmula descrita na solicitação.

FOLHA ANALITICA:

===== =========

O resultado será : 05-2006-3-4, onde:

05 - é o mês desejado

2006 - é o ano desejado

3 - é o período desejado

4 - é o caixa desejado

Já para a geração de encargos deve-se ler a posição 9, poir o formato de PAR descrito no help "Pasta de Dados Contábeis do Encargo" é MM-AAAA-P.

CONTABILIZAÇÃO:

==============

O resultado será : 05-2006-3, onde:

05 - é o mês desejado

2006 - é o ano desejado

3 - é o período desejado

Exemplo:

Desejo buscar o valor liquido do mês,ano e periodo informados no momento da geração do lote contábil, com isso a fórmula será:

LIQUIDOFF(VAL(SUBSTR(PAR,4,4)),VAL(SUBSTR(PAR,1,2)),VAL(SUBSTR(PAR,9,1)))

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  885
  • Tópicos/Dia:  0.13
  • Meu Conteúdo:  8.801
  • Conteúdo/Dia:  1.34
  • Reputação:   289
  • Pontos/Conquistas:  106.261
  • Conteúdo Resolvido:  0
  • Dias Ganho:  185
  • Status:  Online
  • Idade:  51
  • Dispositivo:  Windows

segue mais formulas

Pessoal vamos ajudar

Prorrogação de experiência 45 dias

DTA+44

Prorrogração de experiência 90 dias

DTA + 89

SALDO FERIAS 5 DIAS ANO ANTERIOR

SE CREC = 'H'

ENTAO (FOR ('SALCOMP') / 30)*5

SENAO (RC) / 30*5

FIMSE

CTA FGTS

/*SE TABFUNC ('CONTAFGTS' , 'S') = ' '

ENTAO 0

SENAO TABFUNC ('CONTAFGTS' , 'S')

FIMSE*/

0

Abraços

Vagner Leonel

Vagner, essa parte lá no meio, acho que dará erro na sua formula heim !!! Poderia verificar por favor?

E se possivel, procure dar exemplo da necessidade da Formula, quando for, tipo essa ultima, pois, é um exemplo que seja usual ou mesmo que é importante ter, ou seria alguma fórmula criada na sua empresa apenas? Não seria algo especifico que foi criado para alguma necessidade particular na sua empresa, isso que quero dizer :)

CTA FGTS

Essa parte tambem será um problema, na mesma formula, pois, chama uma outra formula a qual você não citou antes, e não existindo essa formula, é erro na certa:

ENTAO (FOR ('SALCOMP') / 30)*5
Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  68
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  174
  • Conteúdo/Dia:  0.04
  • Reputação:   4
  • Pontos/Conquistas:  1.534
  • Conteúdo Resolvido:  0
  • Dias Ganho:  4
  • Status:  Offline

Beleza jair vou verificar

abraços

Link para comentar
Compartilhar em outros sites

  • 11 meses depois...

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

Pesssoal segue mais algumas formulas:

INDENIZAÇÃO LEI 7.238/84

SE DTD > '03/01/2011' E DTD < '01/03/2011' E TABFUNC ('TIPODEMISSAO' , 'V') = 2

ENTAO FOR ('Remuner')

SENAO 0

FIMSE

Zerar valores de eventos

SE CREC = 'M'

ENTAO TOTDESC - TOTPROV

SENAO 0

FIMSE

Valores Alterado Manualmente -- Crítica da folha

DECL VALOR;

SE EXECSQL ('FOR1.009') = VERDADE

ENTAO

REPITA

SETVAR(VALOR,RESULTSQL('FOR1.009','VALORESFORCADOS'))

ATE PROXREGSQL('FOR1.009') = FALSO;

VALOR

SENAO 0 FIMSE

Sexo - utilizado no relatorio Seguro Desemprego

SE (TABPESSOA('SEXO','S') = 'M') ENTAO 1 SENAO 2 FIMSE

Referência do Evento Empréstimo Consignação Bradesco

TABEMPRESTIMO ('NROPARCPAGAS' , 'V' , '01')

Referência do Evento Empréstimo Consignação Bradesco Rescisão

SE TABEMPRESTIMO ('SALDODEVEDOR' , 'V' , '01') > (TOTPROV * 0.30)

ENTAO 30

SENAO 0

FIMSE

Liquido de Salario p/contabilização

/* ATENÇÃO PARA A CONTABILIZAÇÃO MES A MES DEVE-SE ALTERAR OS CODIGOS FIXOS 'MES' E 'ANO' PARA O MES E ANO QUE ESTÁ SENDO CONTABILIZADO*/

LIQUIDOFF (F ('Ano'),F ('Mes') , 1) +

LIQUIDOFF (F ('Ano'),F ('Mes') , 2) +

LIQUIDOFF (F ('Ano'),F ('Mes') , 10) +

LIQUIDOFF (F ('Ano'),F ('Mes') , 13)

/*LIQUIDOFF (2010,6 , 1) +

LIQUIDOFF (2010,6 , 2) +

LIQUIDOFF (2010,6 , 10) +

LIQUIDOFF (2010,6 , 13)

*/

INFORME DE RENDIMENTOS – NOME DO RESPONSAVEL PELA PENSAO

SE EXECSQL ('DEPEND') =1 ENTAO

DECL IMPRESSAO, CONT, X;

REPITA

SETVAR (CONT, RESULTSQL ('DEPEND','NRODEPEND'));

SETVAR (IMPRESSAO,CONCAT5("RESPONSAVEL PENSAO:",TABDEP ('RESPONSAVEL','S',CONT)," -", "CPF:",

RESULTSQL ('DEPEND','CPFRESP')));

SETVAR (X, X+1)

ATE PROXREGSQL ('DEPEND') = 0 OU X=1

FIMSE;

IMPRESSAO

INDENIZAÇÃO - TEMPO DE SERVIÇO

SE NMESES >= 12 ENTAO

SE TABFUNC('TIPODEMISSAO','V') = 2 ENTAO

(TCASA) * 3 * RC / 30

SENAO

0

FIMSE

SENAO

0

FIMSE

Vavá,

Muito boa a sua contribuição, mas, será que você poderia me dar uma ajudinha ainda mais profunda. O que estou precisando é entender a sintaxe das fórmulas.

Porque usar aspas? para que e quando o parêntese? etc....

Se puder serei muito grato.

Link para comentar
Compartilhar em outros sites

  • 3 meses depois...

  • Tópicos Que Criei:  59
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  141
  • Conteúdo/Dia:  0.03
  • Reputação:   1
  • Pontos/Conquistas:  1.296
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Idade:  46

Desculpe entrar neste topico, mas eu preciso de uma ajuda. Tenho que desenvolver uma formula de consistencia no Nucleus dentro do tipo de movimento para tratar 4 situações diferentes e independentes a estrutura esta assim:

/*VALIDA DATA DO IRRF*/

SE (TABMOV ('DATAEMISSAO' , 'D') <= FOR('9999E') E MVT('IRRF') > 0)

ENTAO 0

SENAO 1

FIMSE;

/*VALIDA CHAVE NFE*/

EXECSQL ('VALIDACHAVE');

SE TABMOV ('CODTDO' , 'S') = 'NFe' OU TABMOV ('CODTDO' , 'S') = 'CTe'

ENTAO

SE RESULTSQL ('VALIDACHAVE','RESULTADO') = 1

ENTAO 1

SENAO 0

FIMSE

SENAO 1

FIMSE;

/*VALIDA CAMPOS COMPLEMENTARES*/

SE TABMOV('CODFILIAL', 'V') = 2 E (TABMOV ('CODTMV' , 'S') ='1.2.26' OU TABMOV ('CODTMV' , 'S') ='1.2.25' OU TABMOV ('CODTMV' , 'S') ='1.2.97')

ENTAO

SE TABMOVCOMPL('TIPODOC', 'S') <> ' ' E TABMOVCOMPL('NFE', 'S') <> ' '

ENTAO 1

SENAO 0

FIMSE

SENAO 1

FIMSE;

/*VALIDA NOTA DUPLICADA*/

EXECSQL('SQLIDMOV');

SE EXECSQL('SQLIDMOV') = VERDADE

ENTAO 1

SENAO

/*DECL AUX;*/

SETVAR(AUX,0);

SE EXECSQL('SQLDUPLI') = VERDADE

ENTAO SETVAR(AUX, RESULTSQL('SQLDUPLI','VALOR'))

SENAO SETVAR(AUX, 0)

FIMSE

SE

TABMOV ('CODTMV' , 'S') <> '1.1.02' E

TABMOV ('CODTMV' , 'S') <> '1.1.03' E

TABMOV ('CODTMV' , 'S') <> '1.1.04' E

TABMOV ('CODTMV' , 'S') <> '1.1.06' E

TABMOV ('CODTMV' , 'S') <> '1.1.07' E

TABMOV ('CODTMV' , 'S') <> '3.1.00' E

TABMOV ('CODTMV' , 'S') <> '1.1.08'

ENTAO

SE (AUX = 1)

ENTAO

SE(usuariocorrente = 'Eber' ou usuariocorrente = 'mestre') /*LIBERA NF DUPLICADA*/

ENTAO 1

SENAO 0

FIMSE

SENAO 1

FIMSE

FIMSE

FIMSE

Desta forma so esta validando a ultima.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  885
  • Tópicos/Dia:  0.13
  • Meu Conteúdo:  8.801
  • Conteúdo/Dia:  1.34
  • Reputação:   289
  • Pontos/Conquistas:  106.261
  • Conteúdo Resolvido:  0
  • Dias Ganho:  185
  • Status:  Online
  • Idade:  51
  • Dispositivo:  Windows

ti-cst, esse topico é para uso de Exemplos de Fórmulas para os membros...

Abra um novo tópico com a sua dúvida para que possa ser ajudado ok?

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  59
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  141
  • Conteúdo/Dia:  0.03
  • Reputação:   1
  • Pontos/Conquistas:  1.296
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Idade:  46

OK - Ja abri, você pode me dar uma idéia?

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.