Oracle - Formulas Editables en forms6i

 
Vista:

Formulas Editables en forms6i

Publicado por trexientos (2 intervenciones) el 05/07/2010 17:25:11
Saludos cordiales a todos..

Soy relativamente nuevo desarrollando en forms 6i, y tengo un requerimiento... Tengo que hacer que un usuario final con conocimientos minimos de PL-SQL pueda hacer una formula, la cual deba de ser corrida por el programa..

Como asi ?

Pues estoy trabajando en un modulo de produccion , y quiero que el usuario defina una formula como la siguiente :
======================================================================
Al Introducir un articulo con las siguientes caracteristicas :
Articulos : 1000. Ventana
Medida :.83
Alto: 1
N.secciones : 2
======================================================================
En ese momento se ejecute una formula para calcular vidrio.
El vidrio solo a manera de ejempo
tendria una formula en la cual se operan matematicamente los valores anteriores y se aplican decisiones, tales como :
======================================================================
var1= 0.018*2
var2 = secciones -1
var3 = 0.03*var2
var4 = 0.005*secciones
var5 = var1 + var3
var6 = (ancho var5) + var4
var7 = var6/secciones
var8 = var7/0.0254
var9 = ceiling(var8)
var10 = var9/2
var11 = ceiling(var10)

If var10<>var11 Then
var12 = var9 +1
then
var12 = var9
Endif

etc.etc..etc..

El caso es que las formulas llevan mas de 2 condiciones.

Podria alguien sugerirme como guardar en la base de datos
esa formulacion , y luego como ejecutarla desde forms??

Ahora.. no pueden ser funciones, ni procedimientos.. pues el usuario solo las guarda como un registro.. y son invocadas desde la aplicacion..

Supongo que tiene que ser un bloque anonimo.. pero como hago
que el usuario lo edite, y luego lo corra sin compilar??

Es posible ?

Muchas gracias por sus ideas ..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Formulas Editables en forms6i

Publicado por Leandro (2 intervenciones) el 06/07/2010 18:40:38
Hola, podrias ser mas espesifico.. no entiendo cual es tu problema.
Esas formulas son siempre las mismas? A que te refieres con "sin compliar".
Se me ocurre que puedes menter las formulas en una tabla, y trabajar con blques de bd en form.

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Formulas Editables en forms6i

Publicado por trexientos (2 intervenciones) el 06/07/2010 19:24:49
Osea que las formulas varian bastante y las debe de ingresar un usuario, a mi se me habia ocurrido crear efectivamente una tabla, y en ella El usuarios responsable (que tendra conocimientos basicos de plsql) digite las formulas
y luego ejecutar un proceso que corra las formulas

Yo habia pensado por algo asi :

Tabla formulas.(suponiendo una formulita simple)

Codigo linea contenido (character de 80)
===== ===== ========================================
1000 1 declare
1000 2 variable1 number(2);
1000 3 variable2 number(2);
1000 4 begin
1000 5 variable1 = (:Ancho * :Alto) / :Factor ;
1000 6 if variable1 >=5 then
1000 7 variable2 = (:Ancho * :Alto) / :Factor ;
1000 8 else
1000 9 varibale2 = ((:Ancho*:Alto)/:Factor)*0.0254
1000 10 end if ;
1000 11 insert into resultados(resultado_final) value(variable2);
1000 12 end;

Luego

con el execute inmediate.. concatenar las lineas de las 1 a las 12 y correr !!

Esa es mi idea, pero como soy nuevo en esto, no se si sera lo mas adecuado
ni se si me correra, aunque para hacerlo he buscado en la web y he encontrado
algunos ejemplos de usuarios que corren insert ,select y condiciones de esta
manera..

Pero sera lo mas adecuado??

Siempre hay mas experiencia de que la que un principiante pueda tener
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Formulas Editables en forms6i

Publicado por Sergio (39 intervenciones) el 16/07/2010 03:10:35
Tu enfoque es correcto, el camino es usar SQL dinámico, puedes revisar el paquete DBMS_SQL, con este puedes tener un ambiente más controlado que con EXECUTE.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar