home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 16 / CD_ASCQ_16_0994.iso / news / 4611 / fw16d.ins / SOURCE / CLASSES / PDREPORT.PRG < prev    next >
Text File  |  1994-06-08  |  8KB  |  157 lines

  1. /*
  2. ┌─ Programa ───────────────────────────────────────────────────────────────┐
  3. │   Aplicación: Funciones para construcción de objetos TReport TRColumn    │
  4. │      Fichero: PDREPORT.PRG                                               │
  5. │        Autor: Ignacio Ortiz de Zúñiga Echeverría                         │
  6. │        Fecha: 24/05/94                                                   │
  7. │         Hora: 14:28:13                                                   │
  8. │    Make File:                                                            │
  9. │    Exec File:                                                            │
  10. │    Copyright: 1994 by Ortiz de Zuñiga, S.L.                              │
  11. └──────────────────────────────────────────────────────────────────────────┘
  12. */
  13.  
  14. #include "objects.ch"
  15. #include "common.ch"
  16.  
  17. #define REPORT  1
  18. #define COLUMNS 2
  19.  
  20. static aReports := {}
  21.  
  22. /*
  23. ┌─ Función ────────────────────────────────────────────────────────────────┐
  24. │  Descripción: Inicializa la definición de un report                      │
  25. │        Autor: Ignacio Ortiz de Zúñiga Echeverría                         │
  26. │        Fecha: 24/05/94                                                   │
  27. │         Hora: 14:01:25                                                   │
  28. │    Copyright: Ortiz de Zuñiga, S.L.                                      │
  29. ├──────────────────────────────────────────────────────────────────────────┤
  30. │     Function: RptBegin                                                   │
  31. │                                                                          │
  32. │   Argumentos: ver más abajo                                              │
  33. │                                                                          │
  34. │ Valor Return: oReport                                                    │
  35. │  Ver también:                                                            │
  36. │                                                                          │
  37. └──────────────────────────────────────────────────────────────────────────┘
  38. */
  39. Function RptBegin(nWidht   ,;                    // Ancho
  40.                   nHeight  ,;                    // largo
  41.                   aTitle   ,;                    // matriz de bTitulos
  42.                   aHead    ,;                    // matriz de bHead
  43.                   aFoot    ,;                    // matriz de bFoot
  44.                   aFont    ,;                    // matriz de oFont
  45.                   cRptfile ,;                    // Nombre fichero
  46.                   cResName  )                    // Nombre recursos
  47.  
  48.    AAdd( aReports ,;
  49.         { TReport():New(nWidht   ,;
  50.                         nHeight  ,;
  51.                         aTitle   ,;
  52.                         aHead    ,;
  53.                         aFoot    ,;
  54.                         aFont    ,;
  55.                         cRptfile ,;
  56.                         cResName  ), {} } )
  57.  
  58. Return ATail( aReports )[ REPORT ]
  59.  
  60. /*
  61. ┌─ Función ────────────────────────────────────────────────────────────────┐
  62. │  Descripción: Añade un grupo de ordenación al report en curso            │
  63. │        Autor: Ignacio Ortiz de Zúñiga Echeverría                         │
  64. │        Fecha: 24/05/94                                                   │
  65. │         Hora: 14:01:42                                                   │
  66. │    Copyright: Ortiz de Zuñiga, S.L.                                      │
  67. ├──────────────────────────────────────────────────────────────────────────┤
  68. │     Function: RptAddGroup                                                │
  69. │                                                                          │
  70. │   Argumentos: bGroup   -> Expresión del grupo                            │
  71. │               lSummary -> si .T. sólo resumen                            │
  72. │               lEject   -> si .T. salto de página                         │
  73. │ Valor Return:                                                            │
  74. │  Ver también:                                                            │
  75. │                                                                          │
  76. └──────────────────────────────────────────────────────────────────────────┘
  77. */
  78. Function RptAddGroup(bGroup, lSummary, lEject)
  79.  
  80.      Atail(aReports)[ REPORT ]:AddGroup(bGroup, lSummary, lEject)
  81.  
  82. Return (NIL)
  83.  
  84. /*
  85. ┌─ Función ────────────────────────────────────────────────────────────────┐
  86. │  Descripción: Añade columnas al Report                                   │
  87. │        Autor: Ignacio Ortiz de Zúñiga Echeverría                         │
  88. │        Fecha: 24/05/94                                                   │
  89. │         Hora: 14:18:04                                                   │
  90. │    Copyright: Ortiz de Zuñiga, S.L.                                      │
  91. ├──────────────────────────────────────────────────────────────────────────┤
  92. │     Function: RptAddColumn                                               │
  93. │                                                                          │
  94. │   Argumentos: ver más abajo                                              │
  95. │                                                                          │
  96. │ Valor Return: oColumn                                                    │
  97. │  Ver también:                                                            │
  98. │                                                                          │
  99. └──────────────────────────────────────────────────────────────────────────┘
  100. */
  101. Function RptAddColumn(aTitle     ,;              // matriz de bTitulos
  102.                       nCol       ,;              // columna
  103.                       aData      ,;              // matriz de bData
  104.                       nSize      ,;              // ancho de la columna
  105.                       aPicture   ,;              // matriz de cPictures
  106.                       uFont      ,;              // bFont=>n | n (nId Font)
  107.                       lTotal     ,;              // lógico de total
  108.                       bTotalExpr  )              // bExpr de condición de total
  109.  
  110.      Local oColumn
  111.  
  112.      oColumn := TRColumn():New(aTitle     ,;
  113.                                nCol       ,;
  114.                                aData      ,;
  115.                                nSize      ,;
  116.                                aPicture   ,;
  117.                                uFont      ,;
  118.                                lTotal     ,;
  119.                                bTotalExpr ,;
  120.                                Atail(aReports)[ REPORT ] )
  121.  
  122.      AAdd( ATail( aReports )[ COLUMNS ], oColumn )
  123.  
  124. return oColumn
  125.  
  126. /*
  127. ┌─ Función ────────────────────────────────────────────────────────────────┐
  128. │  Descripción: Finaliza la definición del report                          │
  129. │        Autor: Ignacio Ortiz de Zúñiga Echeverría                         │
  130. │        Fecha: 24/05/94                                                   │
  131. │         Hora: 14:28:06                                                   │
  132. │    Copyright: Ortiz de Zuñiga, S.L.                                      │
  133. ├──────────────────────────────────────────────────────────────────────────┤
  134. │     Function: RptEnd                                                     │
  135. │                                                                          │
  136. │   Argumentos:                                                            │
  137. │                                                                          │
  138. │ Valor Return: oReport                                                    │
  139. │  Ver también:                                                            │
  140. │                                                                          │
  141. └──────────────────────────────────────────────────────────────────────────┘
  142. */
  143. Function RptEnd()
  144.  
  145.    local oReport  := ATail( aReports )[ REPORT ]
  146.    local aColumns := ATail( aReports )[ COLUMNS ]
  147.  
  148.    AEval( aColumns, { | oColumn | oReport:AddColumn( oColumn ) } )
  149.  
  150.    ASize( aReports, Len( aReports ) - 1 )
  151.  
  152.    oReport:Stabilize()
  153.  
  154. Return oReport
  155.  
  156. // eof
  157.