Question

Je dois créer un QuickReport dans Delphi 5 qui est posé comme:

+================
| Report Header
+================

+=========================================
| Detail Band (auto-stretching, repeats)
.
+=========================================
   |    Child band (fixed-size)
   +======================================
   |    Child band (Auto-stretching)
   .    
   +======================================
   |    Child band (fixed-size)
   +======================================

+=================================
| Report Footer (auto-stretching)
. 
+=================================

+==================================
| Report Footer (auto-stretching)
. 
+==================================

+=============================
| Report Footer (fixed size)
+=============================

Quelqu'un peut-il venir avec une combinaison d'en-tête, détail, enfant, pied de page, sous-détail, tête de groupe, des groupes de bas de page de groupe - et le parent associé, Maître, rapport, Query liens entre eux, afin que je puisse faire un rapport comme je l'ai besoin de regarder?

Ne pas confondre mon utilisation des termes

  • bande d'en-tête
  • bande de détail
  • bande enfant
  • bande de pied de page

pour laisser entendre que l'une des bandes doivent être de ces types réels. j'utiliser ces termes dans le sens conceptuel:

  • une seule bande au début du rapport complet (en-tête du rapport)
  • un groupe répétitif de quatre bandes
  • trois bandes qui apparaissent après tous les détails, les deux premières étant auto-extensible

Même question, plus seulement

+===========================================
| Suspicious Transaction Report
|   STR No.: 12345
|      Date: 11/28/1973
|
|   Comments: as per NSL 1/13/2010
+===========================================

+===========================================
| Transaction 1 of 7
|      Buy                  Sell
|     $100.00            $16,000.00
|                        $27,000.00
|                        $12,000.00
.                            ...
+===========================================
|  Customer Information
|           Name: Shelby Lake
|        Address: 11111 S NC-HWY 111
|            DOB: 6/19/1981
|         ID No.: G123-456-789
|     Occupation: waitress
+===========================================
|  Original Transaction
|       Buy                 Sell
|      $100.00           $16,000.00
|    $3,000.00           $27,000.39
|   $64,132.69           $12,000.13
.       ...                  ...
+===========================================
|  Third Party Information
|           Name: Yugo Chavez
|        Address: 11111 S AB
|            DOB: 9/15/1934
|         ID No.: 995-1935
|     Occupation: dictator
+===========================================

...

+===========================================
| Transaction 7 of 7
.
.
+===========================================

+===========================================
| Description of Suspicious Activity
|   Customer had beedy eyes, that moved
|   rapidly from left to right. He...
.   ...
+===========================================

+===========================================
| Action Taken
|   We killed him, went through his
|   pickets, then started digging the...
. 
+===========================================





+===========================================
| 
|    Signature: _______________________
|                    Bruce Wayne
|        Title: The Batman
|  Employee ID: 1337-6669
+===========================================

je peux faire quelques tables qui imitent l'exemple i inventé:

CREATE TABLE STRs (
   StrID int,
   Number text,
   Date datetime,
   Comments text,
   DescriptionOfSuspiciousActivity text,
   ActionTaken text,
   EmployeeName text,
   EmployeeTitle text,
   EmployeeNumber text )     

CREATE TABLE STRTransactions (
   STRTranasctionID int,
   STRID int,
   BuyAmount money)

CREATE TABLE STRTransactionSells (
   STRTransactionID int,
   SellAmount money)

CREATE TABLE STRTransactionPatronInfo (
   STRTransactionID int,
   Name text,
   Address text,
   DOB text,
   IDNumber text,
   Occupation text )

CREATE TABLE STRTransactionThirdPartyInfo (
   STRTransactionID int,
   Name text,
   Address text,
   DOB text,
   IDNumber text,
   Occupation text )

CREATE TABLE OriginalTransactions (
   STRTransactionID int,
   BuyAmount money,
   SellAmount money )

Mon expérience a échoué

J'ai essayé de créer un QuackReport avec la mise en page de bande suivant:

+=====================================================+
| PageHeader (TQRBand, BandType=rbPageHeader)         |
+=====================================================+

+=====================================================+
| DetailBand (TQRBand, BandType=rbDetail)             |
+===+=================================================+
    | ChildBand1 (TQRChildBnad, Parent=DetailBand)    |
    !      (autostretch)                              !
    +===+=============================================+
        | ChildBand2 (TQRChildBand, Parent=ChildBand1 |
        +=============================================+

+=====================================================+
| ChildBand3 (TQRChildBand, Parent=(none)             |
!      (autostretch)                                  !
+=====================================================+
    | ChildBand4 (TQRChildBand, Parent=ChildBand3     |
    !      (autostretch)                              !
    +=================================================+

+=====================================================+
| SummaryBand (TQRBand, BandType=rbSummary)           |
+=====================================================+

Remarque: Le indenter est utilisé pour aider à identifier les relations parent-enfant (à savoir le groupe ne fait indended 50 pixels)

Le problème avec cette conception est que, au moment de la conception à LEAT, Résumé bande comparaissent devant les deux groupes d'enfants bloqués:

+=====================================================+
| PageHeader (TQRBand, BandType=rbPageHeader)         |
+=====================================================+

+=====================================================+
| DetailBand (TQRBand, BandType=rbDetail)             |
+===+=================================================+
    | ChildBand1 (TQRChildBnad, Parent=DetailBand)    |
    !      (autostretch)                              !
    +===+=============================================+
        | ChildBand2 (TQRChildBand, Parent=ChildBand1 |
        +=============================================+

+=====================================================+
| SummaryBand (TQRBand, BandType=rbSummary)           |
+=====================================================+

+=====================================================+
| ChildBand3 (TQRChildBand, Parent=(none)             |
!      (autostretch)                                  !
+=====================================================+
    | ChildBand4 (TQRChildBand, Parent=ChildBand3     |
    !      (autostretch)                              !
    +=================================================+

Et quand le rapport est exécuté (à l'exécution), les deux groupes d'enfants bloqués ne sont même pas imprimer:

+=====================================================+
| PageHeader (TQRBand, BandType=rbPageHeader)         |
+=====================================================+

+=====================================================+
| DetailBand (TQRBand, BandType=rbDetail)             |
+===+=================================================+
    | ChildBand1 (TQRChildBnad, Parent=DetailBand)    |
    !      (autostretch)                              !
    +===+=============================================+
        | ChildBand2 (TQRChildBand, Parent=ChildBand1 |
        +=============================================+

+=====================================================+
| SummaryBand (TQRBand, BandType=rbSummary)           |
+=====================================================+

Captcha: quackreports

Était-ce utile?

La solution

(s'il vous plaît garder à l'esprit que je ne suis plus QuickReports disponible pour moi, donc tout cela est de la mémoire)

D'accord ... J'ai rencontré ce problème avant ... Pour vous donner un exemple complet codé prendrait un temps très long (temps, je n'ai tout simplement pas) mais je vais essayer de décrire ma solution afin que vous puissiez rapporter à lui.

Au lieu d'utiliser TQRChildBand, utilisez tous DetailBand à la place. Vous Accrocher ensuite chacune de ces bandes de l'événement BeforePrint.

Vous utilisez quelque chose comme ceci en cas BeforePrint:

printband := FPrintSubBandA;

Utilisez un ensemble de variables disponibles universellement (ou membres privés sur le formulaire de votre rapport) pour définir ce que les bandes doivent être affichées et ne devrait pas être pour un enregistrement donné montrant sur votre rapport .... tous de type Boolean ( REMARQUE: Vous pouvez utiliser un ensemble de énumérations, mais booléens sont plus faciles / plus rapide à mettre en œuvre IMHO )

Dans votre cas NeedData, vous extrapolera quelles bandes sont nécessaires pour un enregistrement donné, et définir les variables (valeurs booléennes, bien sûr) en conséquence.

La solution complète est beaucoup d'un sale hack, mais essentiel, car le soutien de QuickReports pour les sous-bandes imbriquées sur les enregistrements sélectifs est essentiellement inexistant.

Si cela ne suffit pas d'information, laissez-moi savoir et je chaluter par mes archives de code pour voir si je peux trouver un exemple que j'ai de le faire. Pour l'essentiel, ce problème exact est la raison pour laquelle je suis passé à la place RaveReports.

EDIT: Je présume que vous avez probablement déjà essayé de placer chaque valeur ParentBand de bande enfant lors de l'exécution ... si vous avez pas, ne perdez pas votre temps! Faire cela provoque des résultats encore plus anormaux ( J'ai même eu violation d'accès qui tentent cette )

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top