cancel
Showing results for 
Search instead for 
Did you mean: 

Consulta con campo de usuario

Former Member
0 Kudos

Hola, buenas noches.

Tengo la siguiente consulta:

SELECT Distinct 'TRUE' FROM OCRD T0 WHERE T0.LicTradNum=$[$U_RFC.0.0] FOR BROWSE

Me marca el error Incorrect syntax near '$U_RFC.0.0'.

U_RFC es un campo de usuario en la tabla OINV.

La consulta busca que el RFC capturado en el campo de usuario en la ventana Factura de clientes exista en la tabla OCRD.

Por favor indiquenme que es lo que estoy escribiendo mal.

Muchas gracias.

eroblero

Accepted Solutions (0)

Answers (3)

Answers (3)

former_member188440
Active Contributor
0 Kudos

No utilices el FOR BROWSE, ya probaste asi?

felipe_loyolarodriguez
Active Contributor
0 Kudos

[; -


> Sobre busquedas formateadas

[; -


> Multiplicar en busqueda formateada

te dejo unos links que te pueden servir

saludos

felipe_loyolarodriguez
Active Contributor
0 Kudos

Buenas noches

Para las busquedas formateadas, se debe usar el siguiente metodo

Activas la opcion visualizar informacion del sistema y te posas sobre el campo que deseas selecionar.

en la parte inferior aparecera la ruta en SAP. La forma de hacer referencia a estos campos en una consulta es


$[$Item.Columna.Numero/fecha/moneda/0]

para os campos como el cardcode, cardname y los que se encuentran en las tablas basta poner


$[$item.tabla.campo]

En este caso tu consulta deberia ser asi


SELECT Distinct 'TRUE' FROM OCRD T0 WHERE T0.LicTradNum=$[$38.OINV.U_RFC] FOR BROWSE

Obs. no recuerdo bien si el item es 38 o 39 revisalo

Saludos, espero te sirva

FLR

Former Member
0 Kudos

Hola Floyola, gracias por tu respuesta.

Sigue marcándome el error Incorrect syntax near '$38.OINV.U_RFC'. También con el 39.

No tengo idea de que es lo que esté mal.

Saludos.

eroblero

felipe_loyolarodriguez
Active Contributor
0 Kudos

Buenas tardes

Trata de esta manera


SELECT Distinct 'TRUE' FROM OCRD T0 WHERE T0.LicTradNum=$[$OINV.U_RFC] FOR BROWSE

Saludos

Felipe Loyola

Former Member
0 Kudos

Buenas tardes.

Me da el mismo error.

Ya lo habia intentado así como me indicas.

Cabe mencionar que esto es lo que me da el sistema al posiconarme sobre el campo U_RFC en la ventana de Factura de Clientes:

Saludos.

eroblero

felipe_loyolarodriguez
Active Contributor
0 Kudos

Es raro, hice la prueba con una busqueda de un campo aqui, de la misma naturaleza que el tuyo y si funciono

Quizas tu aritmetica esta incorrecta, trata esto


SELECT $[$OINV.U_RFC]

Pruebalo si te trae datos y me cuentas

si no sale nada sube un patallazo para ver mejor el problema

Saludos

Former Member
0 Kudos

Si me trae un dato.

Es un solo registro cuyo valor es 0.00.

Creo que el problema es por el tipo de datos.

¿Crees que sea eso?

El campo U_RFC lo tengo definido como Alfanumérico con estructura regular.

felipe_loyolarodriguez
Active Contributor
0 Kudos

Pero que guardas en ese campo?

Precio, valores, codigos?

Former Member
0 Kudos

Texto, los Registros Federales de Contribuyentes que exige el fisco en México para facturar.

El campo es de tipo alfanumerico, largo 16 y estructura regular.

En la tabla OINVE si hay valores alfanumericos almacenados en el campo.

No entiendo por que me devuelve solo un 0.00.

felipe_loyolarodriguez
Active Contributor
0 Kudos

mmm

trata de las siguientes formas


SELECT $[$OINV.U_RFC.Number]
SELECT $[$OINV.U_RFC.Date]
SELECT $[$OINV.U_RFC.Money]
SELECT $[$OINV.U_RFC.0]

Former Member
0 Kudos

En todas las formas me devuelve 0.00.

¿Cómo subo un pantallazo por aqui? Para que puedes ver los resultados de los querys.

former_member188440
Active Contributor
0 Kudos

Intenta la cosulta asi



SELECT Distinct 'TRUE' FROM OCRD T0 WHERE T0.LicTradNum in (select $[oinv.U_RFC])) and t0.cardcode 
           in (select $[oinv.cardcode])

felipe_loyolarodriguez
Active Contributor
0 Kudos

en esta pag puedes subir archivos

[http://www.sendspace.com]

Seria bueno un pantallazo del resultado y otro del campo con lo que contiene.

Edited by: Floyola on Jan 13, 2011 3:00 PM

Former Member
0 Kudos

El query me devuelve este error:

1). [Microsoft][SQL Native Client][SQL Server]Cannot convert a char value to money. The char value has incorrect syntax. 'Alertas recibidas' (OAIB)

former_member188440
Active Contributor
0 Kudos

Me sobro un parentesis

era asi



SELECT Distinct 'TRUE' FROM OCRD T0 WHERE T0.LicTradNum in (select $[oinv.U_RFC]) and t0.cardcode 
           in (select $[oinv.cardcode])

Former Member
0 Kudos

Si, se lo quité y me marca el error que comenté:

1). [SQL Native Client][SQL Server]Cannot convert a char value to money. The char value has incorrect syntax. 'Alertas recibidas' (OAIB)

Este es el query original:

SELECT Distinct 'TRUE' FROM OCRD T0 WHERE T0.LicTradNum=$[$U_RFC.0.0] FOR BROWSE{/code}

Y me devuelve: 1). [SQL Native Client][SQL Server]Incorrect syntax near '$U_RFC.0.0'. 2). [SQL Native Client][SQL Server]Statement 'Alertas recibidas' (OAIB) (s) could not be prepared.

Como que el tipo de dato alfanumerico del campo U_URFC provoca un problema en el query.

felipe_loyolarodriguez
Active Contributor
0 Kudos

Prueba con un convert en la query de mauricio


SELECT Distinct 'TRUE' FROM OCRD T0 WHERE T0.LicTradNum in (CONVERT(VARCHAR(100),(select $[oinv.U_RFC]),101) and t0.cardcode 
           in (select $[oinv.cardcode])

Y tu query originar asi


SELECT Distinct 'TRUE' FROM OCRD T0 WHERE T0.LicTradNum = (SELECT $[OINV.U_RFC]) FOR BROWSE

Saludos

FLR

Former Member
0 Kudos

En ambos querys me devuelve este error:

1). [Microsoft][SQL Native Client][SQL Server]Cannot convert a char value to money. The char value has incorrect syntax. 'Alertas recibidas' (OAIB)

former_member188440
Active Contributor
0 Kudos

Estas colocando el 'True' en un campo de que tipo??

Former Member
0 Kudos

Disculpa, no entiendo la pregunta.

Saludos.

Former Member
0 Kudos

Si coloco en el query directamente un RFC que si existe en la tabla OCRD si funciona y me devuelve TRUE:

SELECT Distinct 'TRUE' FROM OCRD T0 WHERE T0.LicTradNum='XAXX010101000' FOR BROWSE

former_member188440
Active Contributor
0 Kudos

Tons solo colocalo asi



SELECT Distinct 'TRUE' FROM OCRD T0 WHERE T0.LicTradNum in (select $[oinv.u_rfc] )

debe jalar

Former Member
0 Kudos

Tampoco así jaló...

1). [SQL Native Client][SQL Server]Cannot convert a char value to money. The char value has incorrect syntax. 'Alertas recibidas' (OAIB)

former_member188440
Active Contributor
0 Kudos

Ok a ver intentalo asi



declare @RFC as nvarchar (13)

set @RFC= (select $[oinv.lictradnum])

if len(@RFC)<>0
begin

SELECT Distinct 'TRUE' FROM OCRD T0 WHERE T0.LicTradNum =@RFC 

end

Former Member
0 Kudos

Hola, buenas noches.

Al fin me funcionó de esta forma:

SELECT Distinct 'TRUE' FROM OCRD T0 WHERE T0.LicTradNum=$[OINV.U_RFC] FOR BROWSE

Esto porque me di cuenta que en varios querys que ya funcionaban al ejecutarlos desde la ventana de consultas marcaban el mismo error pero en tiempo de ejecución no marcaban error alguno.

Entonces hice el procedimiento que desencadena el query y su autorizacion y funcionó sin problema.

Gracias a todos por su valioso tiempo y colaboración.

Saludos.

eroblero

Edited by: eroblero on Jan 14, 2011 2:21 AM