Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
I want to create this report
Message
De
14/05/2007 04:04:32
 
 
À
13/05/2007 08:16:05
Mk Sharma
Shrishti Solutions
Mumbai, Inde
Information générale
Forum:
Visual FoxPro
Catégorie:
Gestionnaire de rapports & Rapports
Divers
Thread ID:
01225051
Message ID:
01225136
Vues:
15
Hi Sharma

Try this.
SELECT VTYPE, COUNT(*) AS REC ;
  FROM LEDGER ;
 GROUP BY VTYPE ;
 ORDER BY REC DESC INTO CURSOR L2
*
SELECT L1.VTYPE, L2.REC ,;
       CAST(IIF(L1.VTYPE='D',L1.DATE  ,{}) AS D(10)  ) AS DR_DATE  ,;
       CAST(IIF(L1.VTYPE='D',L1.VNO   ,0)  AS N(06)  ) AS DR_VNO   ,;
       CAST(IIF(L1.VTYPE='D',L1.AMOUNT,0 ) AS N(12,2)) AS DR_AMOUNT,;
       CAST(IIF(L1.VTYPE='C',L1.DATE  ,{}) AS D(10)  ) AS CR_DATE  ,;
       CAST(IIF(L1.VTYPE='C',L1.VNO   ,0)  AS N(06)  ) AS CR_VNO   ,;
       CAST(IIF(L1.VTYPE='C',L1.AMOUNT,0 ) AS N(12,2)) AS CR_AMOUNT ;       
  FROM LEDGER L1 ;
 RIGHT JOIN L2 ON L1.VTYPE = L2.VTYPE ;
 ORDER BY L2.REC DESC, DATE ;
  INTO CURSOR L3
GO TOP
*
SELECT L2
GO TOP
lcVtype = L2.VTYPE
*
SELECT DR_DATE, DR_VNO, DR_AMOUNT, CR_DATE, CR_VNO, CR_AMOUNT ;
  FROM L3 WHERE VTYPE  = lcVtype INTO CURSOR LGR READWRITE
*
SELECT DR_DATE, DR_VNO, DR_AMOUNT, CR_DATE, CR_VNO, CR_AMOUNT, VTYPE ;
  FROM L3 WHERE VTYPE != lcVtype INTO CURSOR L4
*
SELECT LGR
GO TOP
*
SELECT L4
GO TOP
DO WHILE !EOF()
   SELECT LGR
   SCATTER MEMVAR
   IF L4.VTYPE = 'D'
      M.DR_DATE  = L4.DR_DATE
      M.DR_VNO   = L4.DR_VNO
      M.DR_AMOUNT= L4.DR_AMOUNT
   ELSE
      M.CR_DATE  = L4.CR_DATE
      M.CR_VNO   = L4.CR_VNO
      M.CR_AMOUNT= L4.CR_AMOUNT
   ENDIF
   GATHER MEMVAR
   SKIP
   SELECT L4
   SKIP   
ENDDO
*
USE IN L2
USE IN L3
USE IN L4
USE IN LEDGER
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform