Oracle - Modificar campos

 
Vista:

Modificar campos

Publicado por Agustin (4 intervenciones) el 14/06/2007 10:10:54
Buenas, tengo un problemilla. Resulta que tengo un formulario(clientes), con un campo (baja, tendra una 'S' si esta de baja, o una 'N' si no), lo k kiero hacer es al darle a un boton, k m cambie el contenido del campo y m guarde el formulario. Supongo que lo tendre que hacer con un Trigger, pero no se como....
Un saludo
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:Modificar campos

Publicado por mad (88 intervenciones) el 14/06/2007 10:38:42
Me imagino que en el formulario utilizas bloque de bbdd, si es asi, es sencillo.

WHEN-BUTTON-PRESSED

IF :ITEM.BAJA := 'S' THEN
:ITEM.BAJA := 'N';
ELSE
:ITEM.BAJA := 'S';
END IF;

:SYSTEM.MESSAGE_LEVEL := 10;
COMMIT_FORM;
:SYSTEM.MESSAGE_LEVEL := 0;

END;

Si te he entendido bien, esto lo que hace es que al pulsar el boton, el contenido del item varia por lo contrario que tenia, es decir, si tenia S lo cambia por N y viceversa. Posteriormente se hace un COMMIT_FORM para guardar los cambios del formulario.

Espero te sirva.
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:Modificar campos

Publicado por aGUSTIN (4 intervenciones) el 14/06/2007 11:48:49
Lo he puesto de esta forma:
BEGIN

IF (:ITEM.BAJA = 'S') THEN
:ITEM.BAJA := 'N';
ELSE
:ITEM.BAJA := 'S';
END IF;

COMMIT_FORM;

END;

y me dice k : "la variable de transferencia= :ITEM.BAJA es incorrecta"
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:Modificar campos

Publicado por Agustin (4 intervenciones) el 14/06/2007 11:52:17
ahh, y he comprobado k el campo se llame BAJA, ademas he de decir k no es un campo de texto, es una lista desplegable (a lo mejor tiene relevancia en algo)
Gracias de nuevo
Un saludo
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:Modificar campos

Publicado por mad (88 intervenciones) el 14/06/2007 12:05:13
Bien, eso lo cambia todo.

Cuando cargas la lista le asignas un valor de indice, otro de display y otro para identificar el valor seleccionado por el usuario, mas o menos asi:

ADD_LIST_ELEMENT('MI_LISTA',INDICE_LISTA,'VALOR DE DISPLAY',VALOR_DE_RETORNO);

en tu caso seria algo asi:

ADD_LIST_ELEMENT(:MI_BLOQUE.BAJA,1,'SI','S);
ADD_LIST_ELEMENT(:MI_BLOQUE.BAJA,2,'NO','N);

cuando se cambia el valor de lalista salta el trigger:

WHEN-LIST-CHANGED

IF :MI_BLOQUE.BAJA = 'S' THEN
---AQUI SE MODIFCA EL CAMPO DE BBDD PARA LA BAJA A 'N';
ELSE
---AQUI SE MODIFCA EL CAMPO DE BBDD PARA LA BAJA A 'S';
END IF;

COMMIT_FORM;

Ten encuenta que si la lista no es un elemento de bbdd tienes que modificar el campo de bbdd correspondiente con el valor seleccionado en la lista y hacer commit;

Espero te sirva
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:Modificar campos

Publicado por Agustin (4 intervenciones) el 14/06/2007 13:01:54
Bueno, verdaderamente me da igual, puedo ponerlo como cuadro de texto....El caso es que lohe cambiado a cuadro de texto y me sigue dando el mismo problema con la sentencia ITEM.BAJA
La he puesto tambien asi:
:Bloque.item.baja
bloque:item.baja
Y con todas da el mismo fallo
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:Modificar campos

Publicado por mad (88 intervenciones) el 14/06/2007 14:01:35
donde dice ITEM.BAJA o :BLOQUE.ITEM.BAJA te debe fallar a la fuerza. Veamos:

Para asignar el valor al campo debes indicar, el bloque donde esta el item y el item, esto es, si tengo un bloque que se llama EMPLEADOS y un item que se llama BAJA para asignarle el valor debo escribir:

:EMPLEADOS.BAJA := 'S';

Creo que tu problema reside en que no te dirijes adecuadamente a los bloques e items.

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