Insertando un valor a partir de otro en un Datawindow

Tengo una tabla llamada habitación (campos:numero, tipohabit, estado, precio, descripción) y otra llamada tipohab(campos:idtipo, desc_tipo, precio), en una de las ventanas he insertado un control datawindow que me permita guardar los datos ingresados en la tabla habitación, para esto he creado un objeto datawindow, que en el campo (tipohabit) he insertado un Drop Down DW que me permita ver la desc_tipo y guarde el idtipo. Mi pregunta es que al escoger alguna opción de este Drop Down DW (ejemplo:Doble, y esta tenga un precio definido en la tabla tipohab), me permita insertar este valor en el campo(precio) de la tabla habitación, esto al momento de escoger alguna de las opciones del DropDown DW, es decir que al escoger alguna de las opciones se inserte automáticamente el precio de la tabla tipohab en el campo(precio) de la tabla habitación.
Gracias por la atención prestada.
Atentamente.
Vicente

3 respuestas

Respuesta
1
Adapta este código a lo que requieres colocalo en el evento itemchanged de tu dw.
IF dwo.name='tipohab' THEN
ldb_precio = dec(data)
SetItem(row,'precio',ldb_precio)
END IF
Cualquier duda solo pregunta.
Respuesta
1
lo que debes hacer en este caso es lo siguiente: en el evento itemchanged del datawindow donde este el drowdown
de la tabla tipohab, poner el siguiente codigo
decimal lde_precio
choose case dwo.name
            case 'tipohabit' //tipo habitacion, campo de la habitacion que debe tener
                   // el drowdown
                  select precio into :lde_precio
                  from tipohab
                   where idtipo = data; //si el tipo es diferente de string usar funcion
                           //de conversion
                   this.SetItem(This.GetRow(),'precio',lde_precio) //campo precio de la
                   //habitacion
end choose
Respuesta
1
Creo no poder responder tu pregunta al 100%, pero tal vez te puedo dar una guía. Primero, insertar el dato "directamente" en la tabla PRECIO no es conveniente, ya que podría darse que haya una transacción inconsistente. Lo que te recomiendo es que pues cuando el usuario elija el tipo de habitación, PB vaya a buscar a la tabla de precios (si es que has predeterminado alguna, que sería lo conveniente) y coloque el valor en el campo del PRECIO que tu deseas, al final, cuando el usuario haya ingresado toda la info, puede confirmar todo haciendo click en el botón SUBMIT (por ejemplo), que tendría un evento clicked de hacer commit en la BD (guardar la data).
Ahora bien, eso es el concepto, la programación va más o menos por éste estilo (mi forma de hacerlo):
Cuando estás en el Object Data Window que es el formulario donde el usuario ingresa toda la información de la reservación de la habitación (supongo que esto es lo que estás actualmente trabajando), debes programar una "Compute Expression", que está en las propiedades del campo del data window. Ahí debes decirle a PB que agarre el precio de la tabla de precios que está atada al tipo de habitación. Eontoces básicamente te recomiendo que investigues un poco más acerca de éstas "Compute Expressions".
Si necesitas saber algo más específico después de haber investigado avisame, si encuentras otra solución más factible también.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas