Foros del Web » Programando para Internet » ASP Clásico »

Crystal report con Asp

Estas en el tema de Crystal report con Asp en el foro de ASP Clásico en Foros del Web. Holas a todos, tengo un gran problema haber si alguien me pudira ayudar, he tratado de jalar un reporte de crystal report desde asp y ...

  #1 (permalink)  
Antiguo 01/08/2005, 10:05
 
Fecha de Ingreso: agosto-2005
Mensajes: 19
Antigüedad: 19 años, 9 meses
Puntos: 0
Crystal report con Asp

Holas a todos, tengo un gran problema haber si alguien me pudira ayudar, he tratado de jalar un reporte de crystal report desde asp y cuando trato de hacerlo me jala todos los registros, pero lo que yo quiero es solo mostrar el registro de un determinado codigo ingresado desde asp. el codigo que trata de jalar el reporte es de la siguiente manera:

<%reportname = "voucher.rpt" %>
<!-- #include file="AlwaysRequiredSteps.asp" -->
<%Session("oRpt").ParameterFields.GetItemByName("N ombreParametro").AddCurrentValue("ValorParametro") %>
<!-- #include file="MoreRequiredSteps.asp" -->
<!-- #include file="SmartViewerActiveX.asp" -->

Alguna persona que me pudiera ayudar please
  #2 (permalink)  
Antiguo 01/08/2005, 11:51
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
mmmm, ¿"NombreParametro" es un parámetro definido como condición desde el "Asistente de selección"?
  #3 (permalink)  
Antiguo 01/08/2005, 13:29
 
Fecha de Ingreso: agosto-2005
Mensajes: 19
Antigüedad: 19 años, 9 meses
Puntos: 0
todo el codigo que coloque estba en un ejemplo por la web, he tratado de cambiarlo pero igual me muestra todo los registros, amigo Myakire, como pueod hacer para que me muestre solo los registro de un codigo ingresado por asp
  #4 (permalink)  
Antiguo 01/08/2005, 13:50
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
para ayudarte, necesito respuesta a la pregunta del post anterior: "¿"NombreParametro" es un parámetro definido como condición desde el "Asistente de selección"?"

Es decir, ¿Haz definido un criterio de selección en el Crystal?
  #5 (permalink)  
Antiguo 01/08/2005, 14:51
 
Fecha de Ingreso: agosto-2005
Mensajes: 19
Antigüedad: 19 años, 9 meses
Puntos: 0
he revisado, y si es un parametro definido, pero la verdad no se donde esta definido,solo he copiado, pero a fi nde acabo no lo encuentro donde esta definido
  #6 (permalink)  
Antiguo 01/08/2005, 14:56
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Doris2005, dices que tienes una parámetro en el .rpt llamado "NombreParametro", OK, esta bien, pero mencionas que te "jala todos los registros", y eso es seguro por que no utilizas ese parámetro como criterio de selección. Es decir, debes de seleccionar el campo del reporte, darle clic al botón derecho y seleccionar "Asistente de selección", ahí debes de especificar la formula para que el Crystal tome en cuenta al parámetro que le envias al reporte.
  #7 (permalink)  
Antiguo 01/08/2005, 16:42
 
Fecha de Ingreso: agosto-2005
Mensajes: 19
Antigüedad: 19 años, 9 meses
Puntos: 0
amigo Myakire, el llamado "NombreParametro" no esta definido en el .RPT como lo dices, creo que me entendistes mal, eso es un nombre cualquiera ya he buscado bien en los includes y no hay ese nombre de parametro, ademas como hago el tipo de formula que dices, please hazme saber
  #8 (permalink)  
Antiguo 02/08/2005, 07:35
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Cita:
Iniciado por Doris2005
amigo Myakire, el llamado "NombreParametro" no esta definido en el .RPT como lo dices, creo que me entendistes mal, eso es un nombre cualquiera ya he buscado bien en los includes y no hay ese nombre de parametro, ...
a ver, tenemos que sintonizarnos en el mismo canal.

Si yo pregunto:
Cita:
"¿"NombreParametro" es un parámetro definido como condición desde el "Asistente de selección"?"
y tu respondes:
Cita:
he revisado, y si es un parametro definido, pero la verdad no se donde esta definido,solo he copiado, pero a fi nde acabo no lo encuentro donde esta definido
Me dices primero que si esta definido y ahora me dices que no. Así no vamos a avanzar.

Cita:
... ademas como hago el tipo de formula que dices, please hazme saber
Eso ya te lo había indicado, aunque quizá no fue lo suficientemente claro.

Cita:
pero mencionas que te "jala todos los registros", y eso es seguro por que no utilizas ese parámetro como criterio de selección. Es decir, debes de seleccionar el campo del reporte, darle clic al botón derecho y seleccionar "Asistente de selección", ahí debes de especificar la formula para que el Crystal tome en cuenta al parámetro que le envias al reporte.
A ver. one more time.
1) Tienes un .rpt
2) Ese .rpt tiene de origen de datos algo, una vista, un procedimiento almacenado, una tabla, etc., pero necesariamente debes tener identificado un campo por el que quieras hacer el filtro. Ese campo seguro también esta en el reporte, ahora, selecciona dicho campo en el reporte y dale clic derecho (en caso de que tengas un ratón configurado para diestros). En el menu emergente, más o menos la séptima opción es "Asistente de selección", una vez ahí te vas al editor de fórmulas (segundo botón en la parte inferior derecha) y colocas el criterio de selección, por ejemplo "{vw_Datos_Pedido.No_Ped} = {@aNumPedido}" en el caso de que tu origen de datos sea vw_Datos_Pedido, el campo se llame No_Ped y tu fórmula o parámetro (para el caso el lo mismo) se llame @aNumPedido.
3) Salvas y listo, ahora solo mándas el valor a la fórmula o parámetro, lo que hayas definido, como lo haces. Si haces fórmula usas algo como:

Set FormulaFieldCollection = Session("oRpt").formulafields
set session("oFFC") = FormulaFieldCollection
session("oFFC").Item(10).text = "'"&request.form("numpedido")&"'"

eso claro, que el parámetro (@aNumPedido) este definido en la posición 10, claro esta que puedes colocarlo por nombre como lo haces en tu código.

Saludos
  #9 (permalink)  
Antiguo 02/08/2005, 18:13
 
Fecha de Ingreso: agosto-2005
Mensajes: 19
Antigüedad: 19 años, 9 meses
Puntos: 0
he creado una Formula decampo, que en crystal figura como Formula Fields el nombre es paginar que es igual al campo del reporte llamdo voucher.file, el nombre completo es @paginar ais que hice elsiguiente paso de paramtro que a continuacion te lo muestro amigo Myakire
<%reportname = "voucher.rpt"%>
<!-- #include file="AlwaysRequiredSteps.asp" -->
<%Set FormulaFieldCollection = Session("oRpt").formulafields
set session("oFFC") = FormulaFieldCollection
session("oFFC").Item("paginar").text = "'"&request.form("Filee")&"'"
%>
<!-- #include file="MoreRequiredSteps.asp" -->
<!-- #include file="SmartViewerActiveX.asp" -->

y una vez que lo ejecute, igual me bota todos los registros, y tambien hice igual al que lo hicistes pero igual tambien me bota todos los registros del reporte y no como el codig oingresado desde asp
que podria ser loq ue esta pasando.....
  #10 (permalink)  
Antiguo 03/08/2005, 07:32
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
No mencionas si especificaste un criterio de selección, si este es el caso ¿puedes colocar dicho criterio, pf?
  #11 (permalink)  
Antiguo 03/08/2005, 07:59
 
Fecha de Ingreso: agosto-2005
Mensajes: 19
Antigüedad: 19 años, 9 meses
Puntos: 0
y en donde coloco el criterio de seleccion y como seria?
  #12 (permalink)  
Antiguo 03/08/2005, 08:04
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Cita:
Iniciado por Myakire
......

Eso ya te lo había indicado, aunque quizá no fue lo suficientemente claro.



A ver. one more time.
1) Tienes un .rpt
2) Ese .rpt tiene de origen de datos algo, una vista, un procedimiento almacenado, una tabla, etc., pero necesariamente debes tener identificado un campo por el que quieras hacer el filtro. Ese campo seguro también esta en el reporte, ahora, selecciona dicho campo en el reporte y dale clic derecho (en caso de que tengas un ratón configurado para diestros). En el menu emergente, más o menos la séptima opción es "Asistente de selección", una vez ahí te vas al editor de fórmulas (segundo botón en la parte inferior derecha) y colocas el criterio de selección, por ejemplo "{vw_Datos_Pedido.No_Ped} = {@aNumPedido}" en el caso de que tu origen de datos sea vw_Datos_Pedido, el campo se llame No_Ped y tu fórmula o parámetro (para el caso el lo mismo) se llame @aNumPedido.
3) Salvas y listo, ahora solo mándas el valor a la fórmula o parámetro, lo que hayas definido, como lo haces. Si haces fórmula usas algo como:

Set FormulaFieldCollection = Session("oRpt").formulafields
set session("oFFC") = FormulaFieldCollection
session("oFFC").Item(10).text = "'"&request.form("numpedido")&"'"

eso claro, que el parámetro (@aNumPedido) este definido en la posición 10, claro esta que puedes colocarlo por nombre como lo haces en tu código.

Saludos
Leer ahora si, por favor
  #13 (permalink)  
Antiguo 03/08/2005, 10:43
 
Fecha de Ingreso: agosto-2005
Mensajes: 19
Antigüedad: 19 años, 9 meses
Puntos: 0
Amigo Myakire una pregunta la parte quete he sombreado en el codigo es una palabra reservadadel crystal report o es una variable que se creo dentro del crystal report

Set FormulaFieldCollection = Session("oRpt").formulafields
set session("oFFC") = FormulaFieldCollection
session("oFFC").Item(10).text = "'"&request.form("numpedido")&"'"

eso claro, que el parámetro (@aNumPedido) este definido en la posición 10, claro esta que puedes colocarlo por nombre como lo haces en tu código.
  #14 (permalink)  
Antiguo 03/08/2005, 10:50
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Es un miembro del objeto de tipo CrystalRuntime.Application, si observas la variable de sesión es una instancia de dicha clase.

Set session("oApp") = Server.CreateObject("CrystalRuntime.Application")
Set session("oRpt") = session("oApp").OpenReport(path & reportname, 1)
  #15 (permalink)  
Antiguo 03/08/2005, 10:54
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
El ejemplo, de hecho, viene documentado:

Cita:
'================================================= =================
' WORK WITH FORMULAS
'================================================= =================
' a. create a session variable

Set FormulaFieldCollection = Session("oRpt").formulafields

' b. create the session variable, in this case oFFC, and point
' it to the collection of formulas in the report
' (FormulaFieldCollection)

set session("oFFC") = FormulaFieldCollection

' c. point that session variable to a specific index in the
' collection

session("oFFC").Item(10).text = "'"&request.form("numpedido")&"'"
  #16 (permalink)  
Antiguo 03/08/2005, 11:03
 
Fecha de Ingreso: agosto-2005
Mensajes: 19
Antigüedad: 19 años, 9 meses
Puntos: 0
Amigo Myakire entonces ya no es necesario declararlo por que esta instanciando dentro del include del AlwaysRequiredSteps.asp, o si es necesario declarar?.....
aparte ya hice lo que me indicastes cree mi cirterio de seleccion lo grabe y ademas de eso puse el codigo que me indicastes, pero aun asi me carga todos los registros a que se debe eso, te muestro el codigo que elabore segun me indicastes

<%reportname = "voucher.rpt"%>
<!-- #include file="AlwaysRequiredSteps.asp" -->
<%Set FormulaFieldCollection = Session("oRpt").formulafields
set session("oFFC") = FormulaFieldCollection
session("oFFC").Item(1).text = "'"&request.form("Filee")&"'"
%>
<!-- #include file="MoreRequiredSteps.asp" -->
<!-- #include file="SmartViewerActiveX.asp" -->
  #17 (permalink)  
Antiguo 03/08/2005, 11:19
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
mmmm, ¿puedes colocar la fórmula que utilizaste en el criterio de selección?
  #18 (permalink)  
Antiguo 03/08/2005, 11:50
 
Fecha de Ingreso: agosto-2005
Mensajes: 19
Antigüedad: 19 años, 9 meses
Puntos: 0
igual, me bota todos los registros, ya puse laformula de criterio de seleccion, ahora que estara mal, a que se debera que me crgue todos los registros?
  #19 (permalink)  
Antiguo 03/08/2005, 11:58
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Decia que si puedes colocar la fórmula del criterio .... pero aquí en el post, para verla
  #20 (permalink)  
Antiguo 03/08/2005, 13:52
 
Fecha de Ingreso: agosto-2005
Mensajes: 19
Antigüedad: 19 años, 9 meses
Puntos: 0
ok amigo Myakire, lo voy a poner el codigo conjuntamente con el criterio de seleccion
<%reportname = "voucher.rpt"%>
<!-- #include file="AlwaysRequiredSteps.asp" -->
<%Set FormulaFieldCollection = Session("oRpt").formulafields
set session("oFFC") = FormulaFieldCollection
session("oFFC").Item("voucher.file=@filee").text = "'"&request.form("Filee")&"'"
%>
<!-- #include file="MoreRequiredSteps.asp" -->
<!-- #include file="SmartViewerActiveX.asp" -->

haber cual es el que ocasiona de que cargue todo el registro
  #21 (permalink)  
Antiguo 03/08/2005, 15:15
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Dios mio ........
te pido el criterio de selección que supuestamente implementaste en C R Y S T A L R E P O R T:

Cita:
y en donde coloco el criterio de seleccion y como seria?
Cita:
A ver. one more time.
1) Tienes un .rpt
2) Ese .rpt tiene de origen de datos algo, una vista, un procedimiento almacenado, una tabla, etc., pero necesariamente debes tener identificado un campo por el que quieras hacer el filtro. Ese campo seguro también esta en el reporte, ahora, selecciona dicho campo en el reporte y dale clic derecho (en caso de que tengas un ratón configurado para diestros). En el menu emergente, más o menos la séptima opción es "Asistente de selección", una vez ahí te vas al editor de fórmulas (segundo botón en la parte inferior derecha) y colocas el criterio de selección, por ejemplo "{vw_Datos_Pedido.No_Ped} = {@aNumPedido}" en el caso de que tu origen de datos sea vw_Datos_Pedido, el campo se llame No_Ped y tu fórmula o parámetro (para el caso el lo mismo) se llame @aNumPedido.
3) Salvas y listo, ahora solo mándas el valor a la fórmula o parámetro, lo que hayas definido, como lo haces. Si haces fórmula usas algo como:
y te lo pido, por que no creo que lo hayas definido o que este bien definido
  #22 (permalink)  
Antiguo 03/08/2005, 15:20
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Paciencia de santo Myakire
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #23 (permalink)  
Antiguo 03/08/2005, 15:21
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Todo sea por alcanzarte, malvado
  #24 (permalink)  
Antiguo 03/08/2005, 15:31
 
Fecha de Ingreso: agosto-2005
Mensajes: 19
Antigüedad: 19 años, 9 meses
Puntos: 0
ya te lo envie amigo Myakire, pues si no viste te lo envio de nuevo

<%reportname = "voucher.rpt"%>
<!-- #include file="AlwaysRequiredSteps.asp" -->
<%Set FormulaFieldCollection = Session("oRpt").formulafields
set session("oFFC") = FormulaFieldCollection
session("oFFC").Item("voucher.file=@filee").text = "'"&request.form("Filee")&"'"
%>
<!-- #include file="MoreRequiredSteps.asp" -->
<!-- #include file="SmartViewerActiveX.asp" -->
  #25 (permalink)  
Antiguo 03/08/2005, 15:35
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
:-p que me muerooooooo

Doris2005, ¿cómo puedo expresar de tal forma que me comprendas que lo que te estoy pidiendo NO ES EL CODIGO ASP, sino lo que supuestamente haz tecleado en CRYSTAL REPORT en el apartado de Criterio de Selección -> Especificar Fórmula?

Y que tiene necesariamente que ser algo como {vw_Datos_Pedido.No_Ped} = {@aNumPedido}, ALGO COMO, no que sea eso exactamente, pero en Crystal, las fórmulas y campos se encierran por llaves.

Estoy a dos rounds de tirar la toalla y pedir relevo del master U_G
  #26 (permalink)  
Antiguo 03/08/2005, 15:43
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Eso va a estar complicado porque sho se de crystal lo que el master Myakire del palo de barbero

Salud!
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #27 (permalink)  
Antiguo 03/08/2005, 15:48
 
Fecha de Ingreso: agosto-2005
Mensajes: 19
Antigüedad: 19 años, 9 meses
Puntos: 0
Amigo Myakire el criterio es el siguiente {Voucher.File} = {@Filee}
  #28 (permalink)  
Antiguo 04/08/2005, 07:23
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Bueno, otra intento más ....

Si supuestamente tienes eso (ahora habrá que verificar si efectivamente lo tienes en el campo File) de hecho NO debería mostrarte nada, por que en el ASP lo tienes mal.

session("oFFC").Item("voucher.file=@filee").text = "'"&request.form("Filee")&"'"

debería ser

session("oFFC").Item("filee").text = "'"&request.form("Filee")&"'"

Nota: No estoy seguro que puedas referenciar a las fórmulas por nombre, en todos los ejemplos de seagate vienen por índice y es como yo lo hago. Si por alguna extraña razón, NO TE REGRESA NADA (si te regreso todo, es por que el Criterior de Selección no lo has definido en el campo FILE), cambia el nombre a su posición:

session("oFFC").Item(numero).text = "'"&request.form("Filee")&"'", donde "numero", es el índice que le corresponde al parámetro "filee" pero ANTES de que lo agregaras, por que una vez que lo agregas los acomoda en orden alfabético.

Saludos
  #29 (permalink)  
Antiguo 04/08/2005, 07:39
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Buscando un poco por la web se seagate, hay un ejemplo de como trabajar con parámetros por nombre:
<%
Session("oRpt").ParameterFields.GetItemByName("Nom breParametro").AddCurrentValue("ValorParametro")
%>
  #30 (permalink)  
Antiguo 04/08/2005, 09:56
 
Fecha de Ingreso: agosto-2005
Mensajes: 19
Antigüedad: 19 años, 9 meses
Puntos: 0
Amigo Myakire, hice lo que me indicastes, peor ahora me sale este mensaje cuando ejecuto el progrma, el mensaje es el siguiente

"Error Occurred Reading Records: File not found"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:19.