No logro hacer la conexion.
Instale myoledb-3.9.6 ... Alguien tiene un ejemplo. de un reporte sencillo con Mysql


Con que estas haciendo la conexion a MYSQL? Estoy usando TDolphin y es tan facil como usar DATABASE.? Por favor se mas claro para ayudarte a lo de fast report.saludos. ![]()


Daniel , si estoy analizado este hilo...
El inconveniente que he tenido es que el codigo no esta completo para compilart la clase,, ejemplo falta algunos recursos.
Saludods , Gracias por su respuesta
//----------------------------------------------------------------------------//
Function report_manopd()
Local oFrP
cSql := "select distinct m.id,m.maniobra as numero, m.fecini as fecha, .........."
oRpt := oServer:Query( "Select reporte, file from reportes where id = 3") //Reporte a usar
TRY
oTip := oServer:Query( cSql ) //Creacion del recordset
CATCH
Msginfo("Error datos incompletos")
return
END
oFrP := frReportManager():new() //creacion del objeto frReportManager
with object oFrP
:SetUserDataSet("manimov",mysqlfields(oTip),;
{|| oTip:GoTop()} ,;
{|| oTip:SKIP(1)},;
{|| oTip:SKIP(-1) },;
{|| oTip:EOF() },;
{ | aField | oTip:FieldGet( afield )} ) //configuracion del data set del reporte, este es el metodo que hace toda la magia
:LoadFromString( oRpt:file ) //Carga el reporte guardado en la tabla
// las siguientes lineas son configuraciones del reporte
:SetTitle( "Diseñador de Informes" )
:PreviewOptions:SetButtons( FR_PB_PRINT + FR_PB_EXPORT + FR_PB_ZOOM + FR_PB_FIND + FR_PB_OUTLINE + FR_PB_NAVIGATOR )
:PreviewOptions:SetMaximized(.f.)
:PreviewOptions:SetBounds(120, 120, 800, 600)
:PreviewOptions:SetMaximized(.f.)
:PreviewOptions:SetBounds(120, 120, 800, 600)
:ShowReport() //muestra el reporte
:ClearDataSets() //limpia el data set
:DestroyFr() //limpieza interna del objeto frReportManager
end with
Return
//--------------------------------------------//
function mysqlfields( oQry )
Local clField := ""
nLen := oQry:Fcount()
for x := 1 to oQry:Fcount()
cLfield := cLfield + oQry:FieldName( x ) + iif( x < nLen ,";","" )
Next
Return cLfield
//-------------------------------------------------------//Saludos !
Ruben, descarga este prototipo, aca uso TDolphin y FastReport, dentro del zip esta el leeme.txt
espero que te ayude.
http://www.4shared.com/file/X5D8CfKl/Prototipo.html
Desde la Republica Bolivariana de Venezuela
Hola todos,
Demen un tiempo y les armo un zip con las clases y los ejemplos para que vean como se integra fastreport con tdolphin.
Slds
Nicanor
Daniel Garcia-Gil wrote:Ruben...
El intentar construir el ejemplo sera imposible, no hay que prestarle atencion a la "carpinteria" solo a la parte que construye el reporte partiendo del recordset generado por dolphin
copio y pego el ejemplo de nicanor (con lineas comentadas por mi)
En este ejemplo os reportes estan almacenados en una tabla (reportes) y no en disco local
seria buena idea que nicanor nos mostrara un screenshot de este reporte (solo si es posible)
//----------------------------------------------------------------------------// Function report_manopd() Local oFrP cSql := "select distinct m.id,m.maniobra as numero, m.fecini as fecha, .........." oRpt := oServer:Query( "Select reporte, file from reportes where id = 3") //Reporte a usar TRY oTip := oServer:Query( cSql ) //Creacion del recordset CATCH Msginfo("Error datos incompletos") return END oFrP := frReportManager():new() //creacion del objeto frReportManager with object oFrP :SetUserDataSet("manimov",mysqlfields(oTip),; {|| oTip:GoTop()} ,; {|| oTip:SKIP(1)},; {|| oTip:SKIP(-1) },; {|| oTip:EOF() },; { | aField | oTip:FieldGet( afield )} ) //configuracion del data set del reporte, este es el metodo que hace toda la magia :LoadFromString( oRpt:file ) //Carga el reporte guardado en la tabla // las siguientes lineas son configuraciones del reporte :SetTitle( "Diseñador de Informes" ) :PreviewOptions:SetButtons( FR_PB_PRINT + FR_PB_EXPORT + FR_PB_ZOOM + FR_PB_FIND + FR_PB_OUTLINE + FR_PB_NAVIGATOR ) :PreviewOptions:SetMaximized(.f.) :PreviewOptions:SetBounds(120, 120, 800, 600) :PreviewOptions:SetMaximized(.f.) :PreviewOptions:SetBounds(120, 120, 800, 600) :ShowReport() //muestra el reporte :ClearDataSets() //limpia el data set :DestroyFr() //limpieza interna del objeto frReportManager end with Return //--------------------------------------------// function mysqlfields( oQry ) Local clField := "" nLen := oQry:Fcount() for x := 1 to oQry:Fcount() cLfield := cLfield + oQry:FieldName( x ) + iif( x < nLen ,";","" ) Next Return cLfield //-------------------------------------------------------//
Gracias Ya hice mi primer Reporte, ya vi como era , estaba Interpretando mal.
y muchas gracias a todos los compañeros del Forum que me colaboraron
El Problema era que esta tratando de hacer la conexion directamente en el diseñador del Reportes y crear el Query, pero nunca me funciona.
TOme como base todos lo ejemplos que me aportaron,
Saludos
Saludos !
Que bueno que consegiste la solución.
Tambien puedes hacer la conexion a tu Base de datos creando previante un DSN de usuario o de Sistema, como tu lo prefieras, luego en fastreport en modo diseño seleccionas la pestaña data, luego selecciones el icono identificado con la palabra (ADO) das doble click sobre este te sale es dialog de propiedades de conexcion pulsas sobre la pestaña conexion y selecciones el origen de datos creado previamente, ya con esto tienes la conexion a tu base de datos.
Para obtener datos mediante una colsulta ( Query ), seleccionas el icono de consulta ado, das doble click y escribes tu qry
Ejem Select * from tutbla ya tienes una consulta
Despues pulsas la pestaña (Page1) comienzas a diseñar tu reporte
Gracias coompañero por su respuesta.
Bueno lo hice de la manera como esta el codigo que me facilitaste del programa Prototipo.
De la manera que tu me dices no me funciona algo debo estar haciendo mal.
Si hago la conexion, Todo lo que tu dices hasta el Query.
Ejem Select * from tutbla ya tienes una consulta y luego doy Despues pulsas la pestaña (Page1) comienzas a diseñar tu reporte.
La duda en donde me muestra la columnas de Query, porque no las veo y las necesito para hacer el reporte.
De todas manera voy a intertar esta manera para ver si me funciona asi.
Gracias y Saludos
Saludos !
Ruben, despues de hacer la conexion y crear el Query en la parte derecha del diseñador te salen los datos que trajo el query
Te envio a correo imagenes