Hacer captura y Consulta por USER

Dentro de mi BD tengo una tabla donde capturo los usuarios y tengo un login para digitar el user y clave, pero quisiera saber como puedo hacer mi DW de ventas donde se quede guardado CUAL USER es el que capturo la info, para así poder hacer una consulta o un reporte de mis ventas por cada user, y además hacer una consulta total (donde se sumen las ventas de todos los users).

He pensado en agregar un campo a mi Tabla VENTAS que se llame USER, y ahí se ponga automáticamente el user con el que me logueo pero no se como hacerlo, o no se que me sugieran:

=====================================================================

Este es el código de mi ventana de Loguin, y en la imgagen adjunta pongo mi ventana de captura:

SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=polizas;UID=dba;PWD='"

connect;

String ls_clave
Integer li_valor
gs_usuario= sle_user.text

//Consultando si existe el usuario,
// identificados como gs_usuario, asignando el número resultante a la variable li_valor.
Select Count(*) Into:li_valor From usuarios
Where usuario=:gs_usuario;

If li_valor=0 then
MessageBox("Aviso", "El usuario no existe", Exclamation!, OK!)
return
End If

//Comprobando que el password ingresado es el correcto.
Select contrasena Into:ls_clave From usuarios
Where usuario=:gs_usuario;
If ls_clave<>sle_pass.text then
MessageBox("Aviso","La clave es incorrecta", Exclamation!, OK!)
return
End If

//Averiguamos el nivel
Select nivel into:gi_nivel From usuarios
Where usuario=:gs_usuario;

Open(w_menu)
CLOSE(w_login)

SALUDOS

1 respuesta

Respuesta
1

El hecho de agregar una columna para almacenar el nombre de usuario es correcto.

Es correcto también que tengas una variable global para el usuario del login.

Para almacenar el usuario, todo depende de, en qué momento es prudente almacenarlo.

Cuando abres la ventana ¿?

Al dar clic en el botón "GUARDAR"¿?

Al dar clic en el botón "Print"¿?

En cual quiera de los casos, sólo debes de enviarle el setitem a tu dw.

Dw. Setitem(1,'user', gs_usuario)

Cualquier cosa me avisas. Cuídate.

Muchas gracias...... Quiero guardar el usuario al momento de guardar la información en el botón "GUARDAR", ¿entonces en ese botón tengo que poner el settitem? ¿Pero antes tengo que agregar a mi tabla y al DW el campo para almacenar el user no es así?

Me estoy confundiendo, la imagen que me enviaste es de la tabla donde almacenarás el usuario verdad ¿?

Siendo así, deberías tener algo parecido a esto.

Dw. Setitem(1,'user', gs_usuario)
if dw.update() = 1 then
    commit;
else
    rollback;
end if

No, la imagen es donde capturo mis ventas, y el código que envíe es el que tengo en mi ventana de login (esa no puse la imagen)... si te fijas en la imagen no tiene un campo para capturar el user en cada venta que hago, ¿entonces primeramente tengo que agregárselo no es así? Y ya después pongo tu código

Claro, en tu tabla de ventas debes de agregar la columna del usuario.

¡Muchas Gracias!

La probé así como me dijiste, pero no me traía el nombre del USER, al ultimo lo hice así:

dw_1.SetItem(dw_1.GetRow(),'usuario',gs_usuario) y Bingo!!

Ahora quisiera saber como hacer una consulta de registros por rango de fechas pero aparte por User, es decir: que me filtre los registros de X user en un rango de fechas..

=======================

Este es mi código con el que busco por rango, pero no se como agregarle para que filtre también el USER:

date ld_fec1, ld_fec2
string ls_nombre
ld_fec1 = date(em_1.text)
ld_fec2 = date(em_2.text)
dw_1.setfilter ("fecha >= date('" + string(ld_fec1) + "') and fecha <= date('" + string(ld_fec2) + "')")
dw_1.filter()
dw_1.settransobject(sqlca)
dw_1.retrieve(ld_fec1,ld_fec2)
dw_1.setsort("compania, num_reg")
dw_1.sort() 

Si gustas finalizo la pregunta y hago una nueva. Saludos

Es raro lo que haces. Estás enviando un setfilter y luego un retrieve, deberías hacer sólo uno de ellos.

Sería bueno que uses el retrieve, en tu clausula where tendrías lo siguiente.

where usuario = :user
And ( fecha between :fecha1 and :fecha2 )

Sorry ya bore el setfilter  jeje.

¿Ahora para hacer mi búsqueda por usuario + rango de fechas como le haría? También debo Eliminar el renglón:

dw_1.setfilter ("fecha >= date('" + string(ld_fec1) + "') and fecha <= date('" + string(ld_fec2) + "')") ???

Puse tu ultimo código pero me muestra errores, ¿cómo debe quedar?

Disculpa la demora mi amigo.

Dime, lograste corregirlo aún tienes problemas ¿?. SI gustas podemos retomar esto en decirme qué error te sale.

Cuídate.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas