Autor Tema: Cambiar consulta Shape Compute a Shape Append - Ayuda  (Leído 12611 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

wolf_kof

  • Visitante
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #15 en: Noviembre 25, 2010, 11:40:03 am »
jajajajajaja... se deja de llamar minelin jajajajajajaja  ;D ;D ;D ;D ;D ;D

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #16 en: Noviembre 25, 2010, 12:00:02 pm »
garantizado o me dejo de llamar Miguel Nuñez jeje.

 >:(
Miguel Núñez.

lucius

  • Gigabyte
  • ****
  • Mensajes: 263
  • Reputación: +6/-5
    • Ver Perfil
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #17 en: Noviembre 25, 2010, 04:53:21 pm »

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #18 en: Noviembre 26, 2010, 03:45:48 am »
Disculpa la demora, tu sabes como son los usuarios, son lo mejores para halla excepciones.
Bueno, como te dije lo que considero debes hacer es llevar al SHAPE el where y no en el APPEND. Asi que tuve que mover tu codigo, copia y pegalo en el proyecto que me enviaste y una vez que lo pruebes y me captes lo que quise decir lo trasladas a tu proyecto. Este es el codigo:

Código: (vb) [Seleccionar]
Private Sub Command1_Click()
Dim rs As New ADODB.Recordset
Dim Query As String

Query = "SHAPE {SELECT c.idcat, c.nomcat FROM categoria c, producto p where c.idcat = p.idcat"
If Check1 Then
  Query = Query & " AND idprod='" & Text1 & "' "
End If

Query = Query & "} AS LEVEL1 "
Query = Query & "APPEND ({SELECT idprod, nomprod, precio, idcat FROM producto "
Query = Query & "} AS LEVEL2 RELATE idcat TO idcat) AS LEVEL2"

Set rs = New ADODB.Recordset
rs.Open Query, cn

Set DataReport1.DataSource = rs
DataReport1.Show

End Sub

Lo he probado y va bien en la consulta con o sin el filtro. Espero haberte ayudado.
Me encuentras en YAcosta.com

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #19 en: Noviembre 26, 2010, 10:32:20 am »
Yvan, Excelente..!  ;D

Y Lucius, a ver si te animas a investigar sobre Crystal Reports, porque DataReports es muy deficiente..!
Miguel Núñez.

lucius

  • Gigabyte
  • ****
  • Mensajes: 263
  • Reputación: +6/-5
    • Ver Perfil
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #20 en: Noviembre 26, 2010, 01:48:22 pm »
Voy a probar el ejemplo.
ssccaann43 haber si me mandas un par de proyectos/ejemplos con crystal.
Cual es la mejor forma de trabajar con crystareport por que segun sé hay 2 formas creando el objeto desde codigo y la otra colocando un control CR en un form, cual es la mas practica para mi seria la 1era.

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #21 en: Noviembre 26, 2010, 04:21:18 pm »
Miguel Núñez.

lucius

  • Gigabyte
  • ****
  • Mensajes: 263
  • Reputación: +6/-5
    • Ver Perfil
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #22 en: Noviembre 26, 2010, 10:28:23 pm »
Si capte la idea de ponerle el where en el shape e incluso le meti el where al shape y al append y no doy con la solucion, estoy ahogado con este pequeño inconveniente y debe ser por eso.
El codigo que dejaste arroja esto y logicamente lo intente adaptar pero nada de nada :'(

Y si busco el producto 5002 me devuelve todos osea el 5001 y 5002



YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #23 en: Noviembre 27, 2010, 07:00:35 pm »
Sorry recien me pude conectar.

Doc cuando envie la solucion solo me preocupe por desaparecer lo que pediste, no vi la data ni nada pq supuse que ya eso lo verias tu, sorry por eso debi ver la data.

El problema se resuelve poniendo una sola palabra DISTINCT en el Select  del SHAPE.

Query = "SHAPE {SELECT DISTINCT c.idcat, c.nomcat FROM ca.... etc etc

Espero haberte ayudado. De ser asi cierra el hilo. Chau
« última modificación: Noviembre 28, 2010, 06:56:51 pm por YvanB »
Me encuentras en YAcosta.com

lucius

  • Gigabyte
  • ****
  • Mensajes: 263
  • Reputación: +6/-5
    • Ver Perfil
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #24 en: Noviembre 28, 2010, 11:54:58 pm »
Muchas gracias yvan ya solucione el problema con tu codigo.

El unico detalle es que debo pasarle tanto al SHAPE como APPEND la condicion de busqueda para que filtre bien en caso active el check el cual me busca un solo producto por medio del id, en fin el problema ya esta resuelto. Gracias nuevamente.

Private Sub Command2_Click()
Dim rs As New ADODB.Recordset
Dim Query As String

Query = "SHAPE {SELECT DISTINCT c.idcat, c.nomcat FROM categoria c, producto p where c.idcat = p.idcat"
If Check1 Then
  Query = Query & " and idprod='" & Text1 & "'"
End If

Query = Query & "} AS LEVEL1 "
Query = Query & "APPEND ({SELECT  idprod, nomprod, precio, idcat FROM producto "
If Check1 Then
  Query = Query & " where idprod='" & Text1 & "'"
End If

Query = Query & "} AS LEVEL2 RELATE idcat TO idcat) AS LEVEL2"

Set rs = New ADODB.Recordset
rs.Open Query, cn

Set DataReport1.DataSource = rs
DataReport1.Show
End Sub
« última modificación: Noviembre 28, 2010, 11:57:28 pm por lucius »

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #25 en: Noviembre 29, 2010, 10:43:30 am »
No olvides ver el link que te deje...!
Miguel Núñez.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #26 en: Noviembre 29, 2010, 03:19:17 pm »
Si, es cierto, requiere poner dos veces la búsqueda.
El problema esta resuelto ya tiene solución, pero coincido contigo que esta solución no es la mejor solución, no me gusta hacer dos veces la misma consulta a la BD, asi que ya con la calma del problema resuelto, déjame investigar mas para lograr la mejor solución que se pueda.

Saludos
Me encuentras en YAcosta.com

lucius

  • Gigabyte
  • ****
  • Mensajes: 263
  • Reputación: +6/-5
    • Ver Perfil
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #27 en: Noviembre 29, 2010, 07:15:07 pm »
Nuevamente gracias por atender la pregunta y si en algun momento surge la forma de optimizar la consulta sql bienvenida sea,por otro lado ya he revisado algunos capitulos del link que dejaste, saludos.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #28 en: Noviembre 29, 2010, 11:00:34 pm »
jeje, el link lo dejo sscaamm43 (Miguel Nuñez). Saludos
Me encuentras en YAcosta.com

lucius

  • Gigabyte
  • ****
  • Mensajes: 263
  • Reputación: +6/-5
    • Ver Perfil
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #29 en: Diciembre 07, 2010, 03:20:18 pm »
Al final encontre que utilizar SHAPE APPEND es precisamente para mostrar las cabeceras aunque estas no tengas registros
"2. SHAPE APPEND funciona de manera similar a OUTER JOIN (combinación de datos externa), en cuanto a que se devuelve un registro primario, incluso aunque éste no tenga registros secundarios."
http://personal.lobocom.es/claudio/ado001.htm

Asi que en mi caso lo mejor sera seguir utilizando el SHAPE COMPUTE.

Gracias por la ayuda