Desafio...rs Tabela de Formulas

(LuisGustavo) #1

Ola amigos, acho que estou tentando fazer algo impossível no SC, me corrijam se eu estiver errado.

Eu tenho essas duas tabelas:

TB_Custo: cod_produto, VALOR, Unidade, VALOR_POR_METRO
TB_Formulas: cod_produto, FORMULA

A idéia é a seguinte, calcular o preço por “metro linear”. Como cada produto tem uma formula diferente de se calcular tentei salvar a formula em um campo na tb_formulas amarrando pelo Cod_produto.

Produto - Formula

Pedra - {cod_produto}*2)/2 (Campo texto)

Ai eu coloquei no evento onloadrecord imaginando que ele interpretaria o campo formula como uma formula, mas não funcionou, ele trás a formula para o campo no formato texto.

[code]sc_lookup(prod, “SELECT form_produto, form_formula FROM tb_formulas WHERE (form_produto = ‘{cust_produto}’)”);

if({prod[0][1]}==’’){
{cust_valor_metro} = “Produto sem Formula”;
} else {

$formula = {prod[0][1]};

{cust_valor_metro} = $formula;

}[/code]

É isso, existe alguma maneira de se fazer isso???

Obrigado.

(Cleyton Euler) #2

A fórmula não teria que vim no formato de texto mesmo?

Essa select está correta?

WHERE (form_produto = ‘{cust_produto}’)

Tá procurando a fórmula pelo custo do produto? Não teria que ser pelo código do produto?

(Haroldo) #3

não vai funcionar.
O SC converte estes campos {…} na hora da geração do código fonte, não no momento da execução da aplicação.
Crie uma Stored Procedure e resolva isso tudo pelo banco. <-Primeira e melhor sugestão
Use php puro nas formulas sem macros ou campo scriptcase, e execute a função eval nessa fórmula <-- Segunda sugestão, não muito atrativa.

(Diogo Toscano) #4

um campo {teste}, caso deseje, voce pode usar diretamente $this->teste.

Embora eu faria como o Harold …

(LuisGustavo) #5

Cleyton, esta certo sim… o cust_ é para referenciar que o produto esta vindo da tabela cust…

Harold / Diogo Toscano,

Podem me dar um exemplo de como usar Stored Procedure ?

(Haroldo) #6

Ideal seria participar de um forum específico de SQL.