Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
I want to create this report
Message
De
15/05/2007 15:13:01
 
 
À
15/05/2007 10:01:07
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:
01225746
Vues:
14
Hi Sharma
I think it's better than the previous one.
SELECT VTYPE, COUNT(*) AS REC ;
  FROM LEDGER ;
 GROUP BY VTYPE ;
 ORDER BY REC DESC ;
  INTO CURSOR L1
*
SELECT L1
GO TOP
lcVtype = L1.VTYPE
*
SELECT VTYPE,;
       CAST(IIF(VTYPE='D',DATE  ,{}) AS D(10)  ) AS DR_DATE  ,;
       CAST(IIF(VTYPE='D',VNO   ,0)  AS N(06)  ) AS DR_VNO   ,;
       CAST(IIF(VTYPE='D',AMOUNT,0 ) AS N(12,2)) AS DR_AMOUNT,;
       CAST(IIF(VTYPE='C',DATE  ,{}) AS D(10)  ) AS CR_DATE  ,;
       CAST(IIF(VTYPE='C',VNO   ,0)  AS N(06)  ) AS CR_VNO   ,;
       CAST(IIF(VTYPE='C',AMOUNT,0 ) AS N(12,2)) AS CR_AMOUNT ;
  FROM LEDGER ;
 WHERE VTYPE = lcVtype ;
 ORDER BY DATE ;
  INTO CURSOR LGR READWRITE
*
SELECT VTYPE,;
       CAST(IIF(VTYPE='D',DATE  ,{}) AS D(10)  ) AS DR_DATE  ,;
       CAST(IIF(VTYPE='D',VNO   ,0)  AS N(06)  ) AS DR_VNO   ,;
       CAST(IIF(VTYPE='D',AMOUNT,0 ) AS N(12,2)) AS DR_AMOUNT,;
       CAST(IIF(VTYPE='C',DATE  ,{}) AS D(10)  ) AS CR_DATE  ,;
       CAST(IIF(VTYPE='C',VNO   ,0)  AS N(06)  ) AS CR_VNO   ,;
       CAST(IIF(VTYPE='C',AMOUNT,0 ) AS N(12,2)) AS CR_AMOUNT ;
  FROM LEDGER ;
 WHERE VTYPE != lcVtype ;
 ORDER BY DATE ;
  INTO CURSOR L2
*
SELECT LGR
GO TOP
*
SELECT L2
GO TOP
DO WHILE !EOF()
   SELECT LGR
   SCATTER MEMVAR
   IF L2.VTYPE = 'D'
      M.DR_DATE  = L2.DR_DATE
      M.DR_VNO   = L2.DR_VNO
      M.DR_AMOUNT= L2.DR_AMOUNT
   ELSE
      M.CR_DATE  = L2.CR_DATE
      M.CR_VNO   = L2.CR_VNO
      M.CR_AMOUNT= L2.CR_AMOUNT
   ENDIF
   GATHER MEMVAR
   SKIP
   SELECT L2
   SKIP   
ENDDO
*
USE IN L1
USE IN L2
USE IN LEDGER
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform