
Att Monica Palacios
| |||
Cambio de Versión del CR, Error de Consulta en SQL Hola buenas tardes, tengo un problema muy grave espero me puedan dar consejos acerca de éste error, tengo dias tratando de arreglarlo. Estoy dando soporte a unos reportes todos funcionaban en el CR 9 y Server 2000, migraron el sistema a server 2003 y CR XI pero ahora no funciona ninguno y era por los hot fixes y service pack, ahora ya funcionan todos excepto un reporte que es el más importante de la empresa ![]() Att Monica Palacios |
| |||
Hola , si efectivamente manejo un cursor, en éste reporte hace consulta u referencia de un solo dato (1 de junio) y de ahi no se actualiza o no toma los datos de la base de datos, haciendo modificaciones ahora no me toma ninguna conexión de SQL y eso me imposibilita las cosas, anexo el código para llamar al procedimiento y el de asp donde se toma el reporte en si. gracias <? set_time_limit(0); $tArchivoXml="registro.xml"; require("./parsexml.php"); // Estos cookies hacen referencia a la base de datos. /* $db_db = 'FUELNET'; $db_host = 'localhost'; $db_user = 'sa'; $db_password = '12345';*/ $db_db = $tDb; $db_host = $tHost; $db_user = $tUser; $db_password = $tPass; require("./comun.php"); // Primero necesito una conexion a la bse de datos. $cnConexion = new db(); $cnConexion->abrir($db_db, $db_host, $db_user, $db_password); ?> <html> <head> <link href="style/style.css" rel="stylesheet" type="text/css"> <title>Verificacion de Ventas por estación</title> <link href="style/style.css" rel="stylesheet" type="text/css"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <? // cambio el formato de la fecha. $dia = substr($fecha,0,2); $mes = substr($fecha,3,2); if (strlen($fecha) == 10) $ano = substr($fecha,6,4); else if (strlen($fecha) == 9) $ano = substr($fecha,5,4); else if (strlen($fecha) == 8){ $dia = substr($fecha,0,2); $mes = substr($fecha,2,3); $ano = substr($fecha,4,4); } //Obtengo el dia y valido que este sea con dos digitos $day =substr($dia, 1, 1); if ($day=="-" or $day=="/" or $day==" ") $day='0'.substr($dia,0,1); else $day = $dia; $dia = $day; //Obtengo el mes y valido que este sea con dos digitos $month =substr($mes, 1, 1); if ($month=="-" or $month=="/" or $month==" ") $month='0'.substr($mes,0,1); else $month = $mes; $mes = $month; echo("$mes<br>"); /* $day =substr($dia, 1, 1); if ($day=="-" or $day=="/" or $day==" ") $day='0'.substr($fecha,0,1); else $day = $dia; $dia = $day;*/ echo("$dia-$mes"); if (!checkdate($dia,$mes,$ano)){ $dia = substr(date("d-m-Y"),0,2); $mes = substr(date("d-m-Y"),3,2); $ano = substr(date("d-m-Y"),6,4); } $fecha = $dia."-".$mes."-".$ano; // ejecuto una consulta con el servidor y con eso cre oun cursor $tExecut = "exec SP_VentasxEstacion '" . $fecha . "'"; echo('Consulta SP -> ' . $tExecut); $cursor = new consulta($cnConexion, $tExecut); $Renglon = $cursor->fetch(); echo("<br>Ingresos". $Renglon[IngresosHoy]); ?> </body> </html> |
| |||
y éste otro archivo se llama ADORecordset.asp qe es donde se abre la conexión <%@ LANGUAGE="VBSCRIPT" %> <% permiso = request.QueryString("permiso") reportname = "./Reportes/comovamos.rpt" reportname1 = "./Reportes/Sub1comovamos.rpt" 'reportname = "./Reportes/Subcomovamos.rpt" %> <!-- #include file="AlwaysRequiredSteps.asp" --> <% set CRSubreports = session("oRpt").OpenSubReport(reportname1) if permiso = 1 then razonSocial = request.QueryString("Descripcion_Cliente") fechaInicial = request.QueryString("FechaInicial") 'fecha inicial 'fechaFinal = Year(fechaInicial) & "-" & Month(fechaInicial) & "-" & Day(fechaInicial) fechaInicial = Year(fechaInicial) & "-" & Day(fechaInicial) & "-" & Month(fechaInicial) & " 00:00" 'This line creates an ADO Connection object Set oADOConnection = Server.CreateObject("ADODB.Connection") 'can then open a connection to the Database DSN. oADOConnection.Open ("DsSite") 'This line creates an ADO Recordset object Set oADORecordset = Server.CreateObject("ADODB.Recordset") 'Set crRep = Server.CreateObject("CRAXDRT.Report") Set oADOSubRecordset = Server.CreateObject("ADODB.Recordset") 'We can then populate the recordset object by executing a SQL statement 'agains the database (using the connection object) 'Set oADORecordset = oADOConnection.Execute("exec SP_VentasxEstacion @Fecha = '2006-10-06'") 'texto1 = "SET QUOTED_IDENTIFIER OFF SET ANSI_NULLS ON DECLARE @SQLString NVARCHAR(500) SET @SQLString = 'exec SP_VentasxEstacion @Fecha = " 'texto1 = Replace(texto1,"'",""") 'texto2 = "' + CHAR(13) SET @SQLString = @SQLString + 'exec SP_InventariosxEstacion @Fecha = " 'texto2 = Replace(texto2,"'",""") 'texto3 = "' + CHAR(13) EXEC sp_executesql @SQLString" 'texto3 = Replace(texto3,"'",""") 'texto = texto1 & "'2006-06-10'" & texto2 & "'2006-06-10'" & texto3 'response.Write(texto) 'Set oADORecordset = oADOConnection.Execute(texto) Set oADORecordset = oADOConnection.Execute("exec SP_VentasxEstacion @Fecha = '" & fechaInicial & "'") Set oADOSubRecordset = oADOConnection.Execute("exec SP_InventariosxEstacion @Fecha = '" & fechaInicial & "'") 'Set oADORecordset = oADOConnection.Execute("exec SP_InventariosxEstacion Fecha = '" & fechaInicial & "' +'go' + char(13)") 'Set oADORecordset = oADOConnection.Execute("Select [Employee ID],[First Name], [Last Name] From Employee Where [Employee ID] >= 13") 'response.Write("Query " & fechaInicial & "<br> RPT" & reportname) 'This line creates a reference to a table object for the report. With ADO each report 'should only contain a single table as all the data will be supplied by the recordset. Set oRptTable = session("oRpt").Database.Tables.Item(1) 'Once we have a reference we can then set the tables datasource to be the recorset object. oRptTable.SetDataSource oADORecordset, 3 'response.Write("Result " & oADORecordset(0) & "<br>") 'Do While Not oADORecordset.EOF 'response.Write("Result " & oADORecordset(0) & "<br>" & oADORecordset(3)& "<br>") 'oADORecordset.MoveNext 'Loop Set oRptSubTable = CRSubreports.Database.Tables.Item(1) oRptSubTable.SetDataSource oADOSubRecordset, 3 'Set crRep = Nothing 'Session("oRpt").Refresh() response.Write("Fecha" & fechaFinal) Session("oRpt").FormulaFields.GetItemByName("Encab ezado").Text = CStr("'" & razonSocial & "'") Session("oRpt").ParameterFields.GetItemByName("@Fe cha").AddCurrentValue(CDate(fechaInicial)) Session("oRpt").ParameterFields.GetItemByName("@Fe cha", "Sub2comovamos").AddCurrentValue(CDate(fechaInicia l)) 'Session("oRpt").ParameterFields.GetItemByName("da te").AddCurrentValue(CDate(fechaFinal)) end if %> <!-- #include file="MoreRequiredSteps.asp" --> <!-- #include file="SmartVieweractivex.asp" --> |
| ||||
A la otra, procura quitarle los comentarios al código para que sea más fácil de leer y encierralos entre etiquetas CODE en vez de QUOTE veamos. Primero: Verifica que NO estas guardando el .rpt con datos, eso lo haces en el menu file del CR. Segundo: Si permiso no es 1, no tienes un código que maneje el caso. Tercero: No veo donde estas mandando las credenciales de autentificación al CR. Deberias de tener algo como: Set mainReportTableCollection = Session("oRpt").Database.Tables For Each Table in mainReportTableCollection Table.SetLogonInfo "1.1.1.1", "NomDataBase", "User", "Password" Next La verdad es que no he entendido del todo tu escenario. Es decir, ya no se si sí te muestra el reporte pero con la misma información o si no te muestra nada. |
| |||
Errores Bueno, ya no sé que suceda,.. éste sistema no lo realicé yo por eso ando en estos conflictos... mi principal problema es que no me toma los datos de la base de datos y sólo me muestra los de una sola fecha.. te paso bien los códigos? Gracias Att Monica |
| ||||
Yo opino, que trates primero de ver si tu conexion con la base de datos es exitosa, independientemente de la fecha primero realiza una simple consulta para ver si la bd esta haciendo bien la conexion. Una vez que veas que tu conexion si es buena, revisa la variable o el lugar donde estas guardando la fecha. No se quizas sea una tonteria pero quizas este tomando la fecha en otro formato
__________________ <>< EN MOMENTOS DE CRISIS, SOLO LA IMAGINACIÓN ES MÁS IMPORTANTE QUE EL CONOCIMIENTO <>< |
| ||||
Cita: Bueno, entonces lo màs seguro es que se solucione si haces caso a la recomendación 1 de mi post anterior: "Revisa que NO este guadando el reporte con datos (Menu Archivo del CR)" mi principal problema es que no me toma los datos de la base de datos y sólo me muestra los de una sola fecha.. |
| |||
CRAXDTR , error de consulta y conexión con SQL Holap de nuevo a todos, un nuevo error con el Crystal y el SQL, ya pude realizar la conexión entre ambos pero dentro del reporte de Crystal.. pero no me hace consulta.. pero en la web , cuando consulto la página me da el error de CRAXDTR del visor: Error Ocurred on Server, la Conexión no es posible. , podrán decirme el porqué!!! supuestamente ha el reporte y la conexión está bien pero pues no veo que haga en realidad ésta consulta. Les agradecería mucho su información. Saludos Att Mónica Palacios |