on 08-09-2012 6:07 PM
Estimados
Se me ha requerido una Query que me muestre los resultados de las facturas por vendedor menos las notas de crédito lo cual he logrado sin problema, sin embargo, desea que la consulta la pueda ver solo el interesado, es decir, ya que el reporte está filtrado por vendedor que este pueda ver los datos de sus facturas y no las de otros vendedores.
Dejo lo que actualmente tengo para que me ayuden a colocar lo que falta para lograr esa exclusividad.
Agradezco su ayuda
Saludos
SELECT Distinct
T0.[SlpName][Vendedor],
T1.[DocNum][Factura],
T1.[DocDate][Fecha Factura],
T1.[DocTotal][Total Factura],
T3.[DocNum][Nota Crédto],
T3.[DocDate][Fecha NC],
T3.[DocTotal] [Total NC],
Case
when (T1.[DocTotal]-T3.[DocTotal]) Is Null
Then (T1.[DocTotal]) else (T1.[DocTotal]-T3.[DocTotal])
End [Total],
Case
when (T1.[DocTotal]-T3.[DocTotal]) Is Null
Then (T1.[DocTotal]/1.12) else (T1.[DocTotal]-T3.[DocTotal])
End [Total sin IVA]
FROM OSLP T0
INNER JOIN OINV T1 ON T0.SlpCode = T1.SlpCode
LEFT JOIN RIN1 T2 ON T2.BaseEntry = T1.DocEntry
LEFT JOIN ORIN T3 ON T2.DocEntry = T3.DocEntry
WHERE T1.[DocDate] between [%0] and [%1] and T0.[SlpName] = [%2]
Bueno, creo que después de tanto bucear en google, en el foro y en otro sitios he dado con algo interesante.
Lo primero que deben hacer es crear un campo de usuario en la tabla de usuarios (OUSR)
Lo segundo es asignar el nombre de la maquina en ese campo de usuario
Luego ejecuten este query, cambien los datos de la BD por las de ustedes.
SELECT
hostname AS 'Maquina Cliente',
INTERNAL_K AS 'Usuario B1',
U_Name AS 'Nombre usuario B1',
nt_domain AS Dominio,
nt_username AS 'Windows',
loginame AS 'BD user',
login_time AS 'Tiempo de log',
last_batch as 'Ultima operacion'
FROM master.dbo.sysprocesses
LEFT OUTER JOIN [TU_BASE].[dbo].[OUSR] ON hostname COLLATE SQL_Latin1_General_CP850_CI_AS = U_maquina COLLATE SQL_Latin1_General_CP850_CI_AS
WHERE spid >=0 and spid <= 32767 and program_name = 'SAP Business One' and db_name(dbid)='TU_BASE'
Y les debe mostrar el usuario que saldría del resultado de $[USER]
Todo gracias al Mentor de SAP Yatsea Li que dejo este método.
Obs: Esto solo funciona si el usuario esta conectado en la maquina que esta definida en su ficha de usuario.
Atte.
Felipe
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Lo cuál me lleva a crear una categoría por cada vendedor que tiene la empresa, sin embargo, en el where la condición es que seleccione el nombre del vendedor de T0.[SlpName] = [%2] y esto lo que hace es que desplega la lista de todos los vendedores que existen, de donde se puede seleccionar cualquiera.
Lo que tu me propones creo que no haría el cambio
Qué piensas?
como dice Felipe creas una categoría para cada uno y solo la podrán ver ellos mismos. En la consulta quita el where y deja cada consulta con el slpname = nombre o mejor por el código slpcode=codigo.
Además así podrías definirle un formato al informe y generar una alerta para que le llegue por email al interesado en la fecha o en la frecuencia de repetición que le establezcas.
Hola Felipe, hola a todos, lo que yo entiendo es que Marco quiere que el reporte se rija según el usuario logueado, es decir que si "pedro" entra en cualquier maquina entonces el query arroje solo resultados de "pedro", lo cual esta muy interesante, almacenar en una variable el user pero el problema es de donde sacas el user logueado.
Saludos !
User | Count |
---|---|
108 | |
12 | |
11 | |
6 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.