Fórmulas

 Praticamente todos os campos configuráveis são uma fórmula.

 

 As fórmulas são compostas basicamente por 5 elementos: Referências, Funções, Operadores, Valores numéricos e Valores literais.

 

Referências

São Tags que apontam para um determinado item da configuração ou para algum Dado, Material, Atividade ou Característica. Elas sempre iniciam com um $ (cifrão) e terminam com uma # (cerquilha).  Na prática é muito parecido com a formatação da fórmula do Excel onde referenciamos linhas e colunas. Exemplos de referência:

 

$x#: Serve para referenciar um item da configuração. O x é o número do item da configuração. Ex.: $1#, $2#.  O valor retornado dessa Tag é o código do produto a ser Gerado ou o código do produto a ser alterado conforme a Operação selecionada. Obs.: Para os itens com Operação Continuar configuração essa Tag não tem efeito nenhum e não será retornado nada.

 

$xDy#: Serve para referenciar um Dado de um item da configuração. O x é o número do item da configuração e o y é o número do Dado do item da configuração. Ex: $1D2#, $2D5#, $1D1#. O valor retornado dessa Tag é o valor que o usuário respondeu na pergunta do Dado.

 

$xMy#: Serve para referenciar um Material de um item da configuração. O x é o número do item da configuração e o y é o número do Material do item da configuração. Ex: $1M1#, $2M1#, $3M5#. O valor retornado dessa Tag é o código do material referenciado.

 

$xAy#: Serve para referenciar uma Atividade de um item da configuração. O x é o número do item da configuração e o y é o número da Atividade do item da configuração. Ex: $1A3#, $2A1#, $4A2#. O valor retornado dessa Tag é o código da atividade referenciada.

 

$xCy#: Serve para referenciar uma Característica de um item da configuração. O x é o número do item da configuração e o y é o número da Característica do item da configuração. Ex: $1C2#, $2C4#, $1C1#. O valor retornado dessa Tag é o valor da característica referenciada.

 

Funções

Existem algumas funções especiais que retornam determinados valores quando acionadas, são elas:

 

@TEXTO[par1;par2;par...]:A função @TEXTO basicamente retorna um conteúdo literal. Podem ser passados um número ilimitado de parâmetros separados por ponto e vírgula.  Caso seja passado mais de um parâmetro a função irá concatenar os valores. Ex: @TEXTO[Teste.Função] a função retornará TesteFunção . Observação importante: Quando desejar passar uma aspa dupla () no conteúdo de um parâmetro,  deve se utilizar duas aspas duplas seguidas () Ex.: @TEXTO[Diâmetro 2] a função retornará Diâmetro 2 como resultado.

 

@SE[condição;valor_verdadeiro;valor_falso]:

A função @SE é calculada através do parâmetro condição. Caso a condição for verdadeira, retorna o parâmetro valor_verdadeiro, caso contrário retorna o valor_falso.  Ex.: @SE[1>2.OK.NAO_OK] a função retornará um literal NAO_OK como resultado.

 

@DADO[]:

A função @DADO[] não recebe nenhum parâmetro e só tem utilidade para a fórmula de Condição de Erro de um Dado.  Ela é utilizada para consistir um valor respondido para retornar uma mensagem de erro. Por exemplo, no campo Condição de erro de um Dado (explicado em 1.1.4) colocamos o seguinte: @DADO[] > 123  e na Mensagem de erro colocamos Valor informado não pode ser superior a 123.  Caso o usuário informe nesse próprio dado um valor superior a 123 a mensagem de erro aparecerá na tela e não deixará o usuário prosseguir para a próxima tela da configuração.

 

@CAMPO[<referência>;<campo>]:

A função @CAMPO serve para retornar algum campo de uma referência da configuração. Conforme explicado anteriormente uma referência pode ser um Item, um Dado, um Material, uma Atividade ou uma Característica. Por exemplo, se quiséssemos retornar a quantidade necessária do material 2 do item 3 da configuração escreveríamos assim @CAMPO[$3M2#;QTD] . Abaixo uma lista dos campos disponíveis para cada tipo de referência:

Para Produtos $x#:

 PNC: Novo código (só Gerados).

 PND: Nova descrição (só Gerados).

 PGR: Grade.

Para Dados $xDy#:

 CES: Condição de escolha.

 CXX: Condição de erro.

 MXX: Mensagem de erro.

 VPD: Valor padrão.

 DES: Retorna a descrição do item do tipo lista de valores

 VAL: Retorna o valor do item do tipo lista de valores

Para Materiais $xMy#:

 CES: Condição de escolha.

 MPC: Código do material.

 MPD: Descrição.

 MSI: Sequência na estrutura do pai.

 MES: Número da estrutura.

 MGR: Grade.

 POS: Posição.

 QPC: Quantidade de peças.

 COM: Comprimento.

 LAR: Largura.

 ESP: Espessura.

 QTD: Quantidade necessária.

 MSB: Seq. Oper. Atividade baixa.

Para Atividades $xAy#:

 CES: Condição de escolha.

 ASA: Seq. da atividade.

 AAC: Código da atividade.

 AAD: Descrição da atividade.

 ARC: Código do recurso.

 ARD: Descrição do recurso.

 ATP: Tempo de preparação.

 ATE: Tempo de execução.

Para Características $xCy#:

 CES: Condição de escolha.

 CAR: Valor da característica.

 

@CARACFIXA[<produto>;<carac>]:

A função @CARACFIXA serve para retornar alguma característica fixa de um produto cadastrado no sistema.  Pode ser utilizada uma Tag que retorna um código de produto no lugar de <produto>. Ex.: @CARACFIXA[1234;COM] retornará o Comprimento do produto de código 1234 já @CARACFIXA[$1M2#;COM] retornará o comprimento do material 2 do item 1 da configuração sendo que para essa fórmula ser resolvida,  a Tag $1M2# já deve estar resolvida com o código de produto retornado para ela. O segundo parâmetro <carac> deve ser uma das características listadas abaixo:

 COM: Comprimento bruto.

 LAR: Largura bruta.

 ESP: Espessura bruta.

 UMD: Unidade de medida.

 PBR: Peso bruto.

 PLQ: Peso líquido.

 VOL: Volume.

 

@CARACVAR[<produto>;<caracvar>]:

A função @CARACVAR serve para retornar alguma característica variável de um produto cadastrado no sistema. Essas características variáveis são as que estão cadastradas na aba Características dentro do cadastro de produtos PRO_Produto. Pode ser utilizada uma Tag que retorna um código de produto no lugar de <produto>. Ex.: @CARACFIXA[1234;2] retornará o valor da característica de código 2 do produto de código 1234, @CARACFIXA[1234;TAMANHO] retornará a característica TAMANHO do produto 1234, @CARACFIXA[$1M2#;COR] retornará a característica de codigo 1 do material 2 do item 1 da configuração sendo que para essa fórmula ser resolvida,  a Tag $1M2# já deve estar resolvida com o código de produto retornado para ela. O segundo parâmetro <caracvar> deve ser um código ou uma descrição (exata) de uma característica variável cadastrada no sistema na tela WWPRO_Caracteristica.

 

@GRADE[<tipograde>;<grade>]:

A função @GRADE serve para retornar alguma grade cadastrada no sistema. Os dois parâmetros passados para a função podem ser um código ou a descrição. Por exemplo, para o <tipograde> podemos passar o código 1 ou a descrição COR e para o <grade> podemos passar o código 3 ou VERMELHO. Podem ser utilizadas Tags que retornam um desses valores para ambos os parâmetros. Ex.: @GRADE[$1D3#;$1D4#], @GRADE[1;5], @GRADE[COR;VERMELHO].

 

@PARTETXT[<referência>;<inicio>;<tamanho>]:

A função @PARTETXT serve para retornar uma parte do texto contido na referência que inicie em uma posição e com o tamanho definido. Ex.: Considerando a fórmula @PARTETXT[$1D3#;2;3], e que $1D3# tenha o texto "TESTE", o resultado será 'EST", pois este texto começa na posição 2 e se retorna 3 caracteres.

 

@ITEMTXT[<referência>;<separador>;<posição>]:

A função @ITEMTXT serve para retornar a parte do texto definida na posição e separada pelo separador. Ex.: Considerando a fórmula @ITEMTXT[$1D3#;/;2], e que $1D3# tenha o texto "AMARELO/VERDE/AZUL", o resultado será "VERDE", pois este texto usando o separador "/" contem 3 palavras e o "VERDE" é o item 2.

 

@SEQUENCIA[<prefixo>;<casas_decimais>]:

A função @SEQUENCIA serve para criar uma sequência com o prefixo e o numero de casas decimais definiadas. O objetivo dela é serealizar produtos, ela somente será resolvida quando for confirmada criação do produto. Ex.: Considerando a fórmula @SEQUENCIA[PRD-;4], será gerado o código PRD-0001 a primeira vez que for gravado o produto, PRD-0002 na segunda e assim por diante.

 

Operadores

São todos os operadores matemáticos de cálculo e também os operadores de comparação:

 

Cálculo:

 + : Soma.

 - : Subtração.

 * : Multiplicação.

 / : Divisão.

 

Comparação:

 =   : Igual a.

 <>  : Diferente de.

 >   : Maior que.

 >=  : Maior ou igual a.

 <   : Menor que.

 <=  : Menor ou igual a.

 

Valores numéricos

São todos os valores que em sua composição não possuem nenhum símbolo e nenhuma letra. Ex.: 5 ou 6,788 ou 1457,875 .

 

Valores literais

São todos os valores que em sua composição possuem algum símbolo ou letra. Ex.: A91 ou 10 ou VERMELHO.

 

 As funções também podem ser cascateadas, ou seja, chamadas uma dentro da outra,  por exemplo:

@SE[@CAMPO[$1M2#;COM] > 50;$1D2#;$1D3#]

 No exemplo acima invocamos a função @CAMPO para um comparativo dentro da função @SE. Traduzindo a função acima: Se o campo Comprimento do material 2 do item 1 da configuração for maior que 50 então retorne o dado 2 do item 1 da configuração, senão, retorne o dado 3 do item 1 da configuração.