cancel
Showing results for 
Search instead for 
Did you mean: 

Reportes por usuario conectado

Former Member
0 Kudos

Deseamos hacer un reporte manual por ejemplo de las facturas vendidas pero que solo aparezcan las facturas que el usuario que ejecuta el reporte haya vendido, intentamos utilizando $[USER] :

SELECT T0.[DocNum] FROM OINV T0 WHERE T0.[UserSign] =$[USER]

El cual devuelve el código del usuario conectado pero esto solo funciona en Busquedas Formateadas, con etsa consulta sale un error, alguien sabe alguna otra forma de hacerlo ya sea por consulta en el reporte, o en todo caso desde el layout.

nos seria de mucha ayuda.

Saludos,

George

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hola....

Si no me equivoco en este otro post se plantea algo similar. En este post, esta el seguimiento del caso, y me parece que cubrirá tu requerimiento tal como ahí.

Espero te sea de ayuda,

Saludos Cordiales,

Former Member
0 Kudos

Paula:

Gracias por el link, efectivamente trata del mismo caso que tengo pero no da solucion al tema, y eso se lo puede comprobar de acuerdo a la solucion que indica pero con esta simple consulta:

DECLARE @USUARIO INT

SET @USUARIO = (SELECT $[USER])

SELECT @USUARIO

Tal como indica la solucion por ejemplo si lo ejecutas con el usuario manager debería devolver 1, pero siempre devuelve NULL, por lo que el tema aun esta pendiente.

Por favor si es que pueden rpobarlo y verificar que otra sooulucion puede existir me ayudaria mucho.

Saludos,

Former Member
0 Kudos

Hola...

2 errores...el primero me llama usted Paula...asumo que es un error ortográfico..

El segundo error, y que tiene que ver con el caso, es que el query que usted trata de ejecutar, no puede traer la información pues no está del todo bien constituído...

En lugar de....

DECLARE @USUARIO INT
SET @USUARIO = (SELECT $USER)
SELECT @USUARIO

Pruebe con...

DECLARE @USUARIO INT
SET @USUARIO = (SELECT $[USER])
SELECT @USUARIO

Podrá apreciar que traerá el número interno del usuario. Este tipo de consultas no traen el dato al momento de crear la consulta pues no reconocen el valor

$[USER]

, más si lo hacen una vez que la consulta ha sido grabada y es ejecutada desde el menú de consultas de usuario.

El informe del Link si trae los datos requeridos en función del usuario conectado, pero la lógica es la misma señalada en el párrafo anterior.

Espero sea de ayuda,

Saludos,

Edited by: Paul Ponce on Nov 23, 2009 5:46 PM

Former Member
0 Kudos

Paul,

Primero, disculpa por la equivocación, efectivamente fue error ortográfico.

Segundo, gracias por la aclaración, en realidad si utilice los corchetes solo que me lo puso automáticamente con color azul como URL por las configuraciones de este foro.

De todas formas cuando ejecuto la consulta desde el Query Manager no me da resultado, pero cuando ejecuto la consulta como indica desde Herraminetas > consultas > Consulta de usuario, efectivamente me mostro el resultado deseado por lo que eso me podría ayudar a que el reporte podrá salir por lo menos como tabla.

Ahora mi consulta es si este reporte podría crearle su layout y que de igual forma funciones o como debería ejecutar el layout?, intente probarlo pero no me da ningun resultado, es como si se ejecutará desde el Query Manager con resultado NULL, existira alguna forma de poder hacer esto?

Muchas gracias de antemano y Saludos,

Former Member
0 Kudos

Jorge...

Es justamente eso lo que se plantea en el post que te adjunté...yo te sugeriría que probaras esa solución entregada, porque de hecho en su momento lo probé y funciona sin problemas, de hecho pude crear el informe (layout).

....y adicionalmente entiendo que a la persona que creó dicho post, también pues lo corroboró al cerrar el caso.

En cierto modo la conclusión de este caso es que si aplicas este query:

SELECT T0.[DocNum], T0.[DocDate], T0.[DocDueDate], T0.[CardCode], T0.[CardName] FROM OINV T0 
INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry WHERE T0.[UserSign] = $[USER]

, no te permite crear el informe.

Pero si utilizas este otro query:

DECLARE @USUARIO INT 
SET @USUARIO = (SELECT $[USER])
SELECT T0.[DocNum], T0.[DocDate], T0.[DocDueDate], T0.[CardCode], T0.[CardName] 
FROM OINV T0 INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry 
WHERE T0.[UserSign] = @USUARIO

...Si es posible crear el informe, y posteriormente tratar el layout de acuerdo a tus requerimientos.

Saludos Cordiales,

Edited by: Paul Ponce on Nov 23, 2009 6:59 PM

Former Member
0 Kudos

Estimado Paul:

Lo probe inclusive con algunos compañeros de aqui en otros equipo, inclusive con la ultima version de SBO2007 A SP01 PL07, pero para el layout no me esta funcionando, esto fue lo que hice:

1. Cree en el Query manager la consulta que me pasaste

2. Verifique que desde Herraminetas > consultas > Consulta de usuario > Eejcuto el que cree y efectivamente sale lo deseado

3. Caabe recalcar que no ocurre lo mismo cuando lo ejecutas desde el Query Manager, sale en blanco

4. Cree un layout apartir desde este reporte

5. Lo ejecuto el layout desde el Query manager y no tengo resultado

6. Lo ejecute el Layout desde Herramientas > Consultas > Layout de Impresion de consulta... y de la misma forma no tengo resultado

Por favor si me podría decir que es lo que hago mal me ayudaría demasiado, no puedo ver el reporte en el layout con el resultado del paso 2.

Gracias por su gentileza

Saludos,

Former Member
0 Kudos

Hola Jorge....

La verdad es que el tema es que por alguna razón, el formato de impresión no valida el dato de entrada

$[USER]

, esto significa que si bien el segundo query indicado, permite generar el informe, al entrar al layout, se puede constatar que no aparecen datos a nivel de detalle.

Frente a este escenario solo podría recomendarle una ejecución del Informe con una variable de entrada adicional que permitiría que se seleccione el número asociado al usuario para obtener el Informe. Si selecciona otro número distinto del usuario conectado, no tendría resultados. Esto claramente no cubre el requerimiento de una forma limpia, solo permite generar el Informe, aún cuando significa tener conocimiento del número de cada usuario.

En el otro caso, que está dentro de los primeros casos actuales, también se hizo ver esta situación, con una aclaración similar a esta y con el ejemplo.

Le sugiero echar un vistazo a este caso...y de acuerdo a su necesidad definir si soluciona en parte el problema.

Saludos Cordiales,

Former Member
0 Kudos

Hola Jorge....

La verdad es que el tema es que por alguna razón, el formato de impresión no valida el dato de entrada

$[USER]

, esto significa que si bien el segundo query indicado, permite generar el informe, al entrar al layout, se puede constatar que no aparecen datos a nivel de detalle.

Frente a este escenario solo podría recomendarle una ejecución del Informe con una variable de entrada adicional que permitiría que se seleccione el número asociado al usuario para obtener el Informe. Si selecciona otro número distinto del usuario conectado, no tendría resultados. Esto claramente no cubre el requerimiento de una forma limpia, solo permite generar el Informe, aún cuando significa tener conocimiento del número de cada usuario.

En el otro caso, que está dentro de los primeros casos actuales, también se hizo ver esta situación, con una aclaración similar a esta y con el ejemplo.

Le sugiero echar un vistazo a este caso...y de acuerdo a su necesidad definir si soluciona en parte el problema.

Saludos Cordiales,

Former Member
0 Kudos

Estimado Paul:

En realidad si podría servirme limitar al usuario que solo tendra resultados si pone su codigo de usuario, por lo que hice la prueba que indicas usando la siguiente consulta:

DECLARE @USUARIO INT
SET @USUARIO = (SELECT $[USER])
SELECT Top 1 T0.[DocNum], T0.[DocDate], T0.[DocDueDate], T0.[CardCode], T0.[CardName] FROM OINV T0 INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry WHERE T0.[UserSign] = @USUARIO and T0.[UserSign] = [%0]

Lo guarde en el Query manager.

Intente ejecutarlo con el usuario manager y poniendole uno y no me dio resultado

Probe creandolo con el layout que es lo que necesito

Ejecute con vista preliminar desde el Query manager con el usuario manager y poniendole uno y no me dio resultado

Intente desde herramientas > Consultas > Layout de impresion de consulta... > Ejecute con vista preliminar desde el Query manager con el usuario manager y poniendole uno y no me dio resultado

Por favor en todo caso si existiera esa restriccion que indicas indicame que es lo que esoty haciendo mal o como debo hacerlo para por lo menos limitar al usuario poner solo su codigo si quiere tener resultados.

Como siempre, muchas gracias por tu ayuda y espero tengas una respuesta a esta ultima pregunta.