Ir al contenido



Foto

SP que devuelve Filas no se muestra en FastReport


  • Por favor identifícate para responder
3 respuestas en este tema

#1 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.231 mensajes
  • LocationRepública Dominicana

Escrito 15 mayo 2017 - 01:43

Amigos tengo un procedimiento que convierte el contenido de una cadena de texto delimitado por coma en filas, como si fuera una tabla, pero en un subreporte de fastreport no se muestran los datos, no sé si FastReport no es compatible con procedimientos almacenados, he verificado que sí devuelve registros, dejo el SP:


sql
  1. CREATE PROCEDURE split_string ( p_index INTEGER )
  2. RETURNS (
  3. fila VARCHAR(255)
  4. )
  5. AS
  6. DECLARE variable p_string VARCHAR(255);
  7. DECLARE variable lastpos INTEGER;
  8. DECLARE variable nextpos INTEGER;
  9. BEGIN
  10.  
  11. SELECT otc_reparacion_otras FROM ot_correctivo WHERE otc_id = :p_index INTO :p_string;
  12.  
  13. p_string = :p_string || :',';
  14. lastpos = 1;
  15. nextpos = POSITION(',', :p_string, lastpos);
  16. IF (lastpos = nextpos) THEN
  17. BEGIN
  18. fila = SUBSTRING(:p_string FROM :lastpos FOR :nextpos - :lastpos);
  19. suspend;
  20. lastpos = :nextpos + 1;
  21. nextpos = POSITION(',', :p_string, lastpos);
  22. END
  23. while (:nextpos > 1) do
  24. BEGIN
  25. fila = SUBSTRING(:p_string FROM :lastpos FOR :nextpos - :lastpos);
  26. lastpos = :nextpos + 1;
  27. nextpos = POSITION(',', :p_string, lastpos);
  28. suspend;
  29. END
  30. END

Simplemente lo llamo desde delphi con el componente TFDStoredProc de FireDAC:


delphi
  1. QDiagnostico.Close;
  2. QDiagnostico.Prepare;
  3. QDiagnostico.ParamByName('p_index').AsInteger := 11;
  4. QDiagnostico.Open;

Confirmo que devuelva registro con:


delphi
  1. ShowMessage(IntToSTr(QDiagnostico.RecordCount));

En mi Ejemplo me devuelve 4 Filas y no se muestra en un masterData dentro de un SubReporte de FastReport, Qué puedo estar haciendo mal?.

 

Saludos.


  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 13.643 mensajes
  • LocationMéxico

Escrito 15 mayo 2017 - 01:56

Hola

 

¿Si estas asignando el DataSet correcto al FastReport?

 

Saludos


  • 0

#3 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.231 mensajes
  • LocationRepública Dominicana

Escrito 15 mayo 2017 - 02:03

El Reporte tiene tres DataSets, OTCForm, OTCDetalles y OTCDiagnostico, hay dos masterdata, uno en la principal y el otro como Sub-Reporte, cada uno con su dataset asignado.


  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.231 mensajes
  • LocationRepública Dominicana

Escrito 15 mayo 2017 - 02:37

Bueno olvidad el tema, la vejez me está pasando factura, el frxDBDiagnostico estaba apuntando a otro DataSet que no era, ya funciona. 8o|


  • 0