Jump to content
Seja Membro VIP - Remova Banners de Propagandas, Tenha Liberado Qualquer Download, Além de Acessos em Áreas Exclusivas!! ×

Recommended Posts


  • Topic Count:  920
  • Topics Per Day:  0.13
  • Content Count:  9,054
  • Content Per Day:  1.33
  • Reputation:   339
  • Achievement Points:  108,799
  • Solved Content:  0
  • Days Won:  214
  • Status:  Offline
  • Age:  52
  • Device:  Windows

Posted

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.

  • Like 1

  • Topic Count:  15
  • Topics Per Day:  0.00
  • Content Count:  548
  • Content Per Day:  0.09
  • Reputation:   1
  • Achievement Points:  2,891
  • Solved Content:  0
  • Days Won:  1
  • Status:  Offline
  • Age:  45

Posted

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,


  • Topic Count:  28
  • Topics Per Day:  0.00
  • Content Count:  342
  • Content Per Day:  0.05
  • Reputation:   0
  • Achievement Points:  1,990
  • Solved Content:  0
  • Days Won:  0
  • Status:  Offline
  • Age:  50

Posted

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.


  • Topic Count:  28
  • Topics Per Day:  0.00
  • Content Count:  342
  • Content Per Day:  0.05
  • Reputation:   0
  • Achievement Points:  1,990
  • Solved Content:  0
  • Days Won:  0
  • Status:  Offline
  • Age:  50

Posted

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.


  • Topic Count:  15
  • Topics Per Day:  0.00
  • Content Count:  548
  • Content Per Day:  0.09
  • Reputation:   1
  • Achievement Points:  2,891
  • Solved Content:  0
  • Days Won:  1
  • Status:  Offline
  • Age:  45

Posted

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,


  • Topic Count:  920
  • Topics Per Day:  0.13
  • Content Count:  9,054
  • Content Per Day:  1.33
  • Reputation:   339
  • Achievement Points:  108,799
  • Solved Content:  0
  • Days Won:  214
  • Status:  Offline
  • Age:  52
  • Device:  Windows

Posted

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'.

  • 4 weeks later...

  • Topic Count:  65
  • Topics Per Day:  0.01
  • Content Count:  654
  • Content Per Day:  0.10
  • Reputation:   2
  • Achievement Points:  3,929
  • Solved Content:  0
  • Days Won:  2
  • Status:  Offline
  • Age:  44
  • Device:  Windows

Posted

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.

  • Like 1

  • Topic Count:  920
  • Topics Per Day:  0.13
  • Content Count:  9,054
  • Content Per Day:  1.33
  • Reputation:   339
  • Achievement Points:  108,799
  • Solved Content:  0
  • Days Won:  214
  • Status:  Offline
  • Age:  52
  • Device:  Windows

Posted

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

  • Like 1
  • 2 weeks later...

  • Topic Count:  21
  • Topics Per Day:  0.00
  • Content Count:  125
  • Content Per Day:  0.02
  • Reputation:   0
  • Achievement Points:  835
  • Solved Content:  0
  • Days Won:  0
  • Status:  Offline
  • Age:  43

Posted

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.

  • 5 months later...

  • Topic Count:  32
  • Topics Per Day:  0.00
  • Content Count:  580
  • Content Per Day:  0.09
  • Reputation:   10
  • Achievement Points:  3,159
  • Solved Content:  0
  • Days Won:  5
  • Status:  Offline
  • Age:  44
  • Device:  Windows

Posted

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


  • Topic Count:  87
  • Topics Per Day:  0.01
  • Content Count:  256
  • Content Per Day:  0.04
  • Reputation:   0
  • Achievement Points:  2,335
  • Solved Content:  0
  • Days Won:  0
  • Status:  Offline
  • Device:  iPhone

Posted

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!


  • Topic Count:  920
  • Topics Per Day:  0.13
  • Content Count:  9,054
  • Content Per Day:  1.33
  • Reputation:   339
  • Achievement Points:  108,799
  • Solved Content:  0
  • Days Won:  214
  • Status:  Offline
  • Age:  52
  • Device:  Windows

Posted

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

  • 2 weeks later...

  • Topic Count:  21
  • Topics Per Day:  0.00
  • Content Count:  125
  • Content Per Day:  0.02
  • Reputation:   0
  • Achievement Points:  835
  • Solved Content:  0
  • Days Won:  0
  • Status:  Offline
  • Age:  43

Posted
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.

  • 1 year later...
Guest Treinamentos RM
Posted

"e existe um curso especifico para formulas"

Jair, quando você vai ministrar este treinamento? rs

Aposto que tem bastante demanda. :Valeu:

  • 7 months later...

  • Topic Count:  2
  • Topics Per Day:  0.00
  • Content Count:  56
  • Content Per Day:  0.01
  • Reputation:   0
  • Achievement Points:  310
  • Solved Content:  0
  • Days Won:  0
  • Status:  Offline
  • Age:  45

Posted

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

  • 7 months later...

  • Topic Count:  68
  • Topics Per Day:  0.01
  • Content Count:  174
  • Content Per Day:  0.04
  • Reputation:   4
  • Achievement Points:  1,534
  • Solved Content:  0
  • Days Won:  4
  • Status:  Offline

Posted

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


  • Topic Count:  920
  • Topics Per Day:  0.13
  • Content Count:  9,054
  • Content Per Day:  1.33
  • Reputation:   339
  • Achievement Points:  108,799
  • Solved Content:  0
  • Days Won:  214
  • Status:  Offline
  • Age:  52
  • Device:  Windows

Posted

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


  • Topic Count:  68
  • Topics Per Day:  0.01
  • Content Count:  174
  • Content Per Day:  0.04
  • Reputation:   4
  • Achievement Points:  1,534
  • Solved Content:  0
  • Days Won:  4
  • Status:  Offline

Posted (edited)

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

Edited by Jair - Fórmula
Colocado Negrito nos Titulos das Formulas

  • Topic Count:  51
  • Topics Per Day:  0.01
  • Content Count:  1,005
  • Content Per Day:  0.15
  • Reputation:   12
  • Achievement Points:  5,527
  • Solved Content:  0
  • Days Won:  8
  • Status:  Offline
  • Age:  52

Posted

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)))


  • Topic Count:  920
  • Topics Per Day:  0.13
  • Content Count:  9,054
  • Content Per Day:  1.33
  • Reputation:   339
  • Achievement Points:  108,799
  • Solved Content:  0
  • Days Won:  214
  • Status:  Offline
  • Age:  52
  • Device:  Windows

Posted

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

  • Topic Count:  68
  • Topics Per Day:  0.01
  • Content Count:  174
  • Content Per Day:  0.04
  • Reputation:   4
  • Achievement Points:  1,534
  • Solved Content:  0
  • Days Won:  4
  • Status:  Offline

Posted

Beleza jair vou verificar

abraços

  • 11 months later...

  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  1
  • Content Per Day:  0.00
  • Reputation:   0
  • Achievement Points:  5
  • Solved Content:  0
  • Days Won:  0
  • Status:  Offline

Posted

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.

  • 3 months later...

  • Topic Count:  59
  • Topics Per Day:  0.01
  • Content Count:  141
  • Content Per Day:  0.03
  • Reputation:   1
  • Achievement Points:  1,296
  • Solved Content:  0
  • Days Won:  1
  • Status:  Offline
  • Age:  47

Posted

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.


  • Topic Count:  920
  • Topics Per Day:  0.13
  • Content Count:  9,054
  • Content Per Day:  1.33
  • Reputation:   339
  • Achievement Points:  108,799
  • Solved Content:  0
  • Days Won:  214
  • Status:  Offline
  • Age:  52
  • Device:  Windows

Posted

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?


  • Topic Count:  59
  • Topics Per Day:  0.01
  • Content Count:  141
  • Content Per Day:  0.03
  • Reputation:   1
  • Achievement Points:  1,296
  • Solved Content:  0
  • Days Won:  1
  • Status:  Offline
  • Age:  47

Posted

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

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


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.