Estoy utilizando RM 2.8 (http://reportman.sourceforge.net/)
y llamo los reportes desde una aplicación en C#, utilizando
SharpDevelop 3.5.2
con este codigo:
String path=Environment.CurrentDirectory;
Report rp=new Report();
rp.LoadFromFile(path+"\\reports\\rptRecibo.rep");
PrintOutWinForms prw = new PrintOutWinForms();
rp.Params[0].Value=int.Parse(textBox1.Text);
prw.Preview=true;
prw.SystemPreview=true;
prw.Print(rp.MetaFile);
este reporte recibe un parametro (llamdo PRECIBO en el Reporte),
y al ejecutarlo me salta el siguiente error:
System.Data.Odbc.OdbcException: ERROR [42601] ERROR: error de sintaxis
en o cerca de «:»;
Error while executing the query
en System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle,
RetCode retcode)
en System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior
behavior, String method, Boolean needReader, Object[] methodArguments,
SQL_API odbcApiMethod)
en System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior
behavior, String method, Boolean needReader)
en System.Data.Odbc.OdbcCommand.ExecuteReader(CommandBehavior
behavior)
en System.Data.Odbc.OdbcCommand.ExecuteDbDataReader(CommandBehavior
behavior)
en
System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader()
en Reportman.Reporting.DataInfo.Connect()
en Reportman.Reporting.BaseReport.ActivateDatasets()
en Reportman.Reporting.Report.BeginPrint(PrintOut driver)
en Reportman.Drawing.MetaFile.BeginPrint(PrintOut driver)
en Reportman.Drawing.PrintOut.PreparePrint(MetaFile meta)
en Reportman.Drawing.PrintOutPrint.PreparePrint(MetaFile meta)
en Reportman.Drawing.Forms.PrintOutWinForms.Print(MetaFile meta)
y bueno, este es el SQL en el reporte:
select tbl_08.tbl_08_no,tbl_08.tbl_01_codigo,tbl_08.tbl_07_asignacion,
tbl_08.tbl_08_fecha,tbl_08.tbl_08_obs,tbl_01.tbl_01_nombre || ' ' ||
tbl_01.tbl_01_apellido
from tbl_08 left join tbl_01 on
tbl_08.tbl_01_codigo=tbl_01.tbl_01_codigo where tbl_08_no=:precibo;
Según RM, los parametros se llaman anteponiendo los dos puntos (:)
luego el nombre del parametro.
El reporte se ejecuta bien dentro del Diseñador de RM, pero estoy
parado por este problema.
aca la ayuda deRM
http://reportman.sourceforge.net/doc/dotnetport.html
y en la parte de los parametros dice:
Different behaviour
* You must use dot net syntax for parameters in querys, see
documentation in dot net platform sdk, usually use @paramname for
parameters instead of :paramname. Also add all parameters to parameter
definition including the parameters used to link querys.
* In odbc provider you use ? for placing parameters, the
parameters will be assigned by position, not by name, parameters by
name are not supported by odbc dot net driver, so make sure to sort
the parameters to match query position when you use odbc.
* The display format for expressions follows dot net formatting
standard (main differences are for date and time formatting, use M for
month, and m for minutes).
saludos