Hola tengo un archivo .RGL lo puedo ver en notepad no se en que este escrito, tengo el mismo archivo .RGX pero ese no puedo verlo solo me abre basura lo cual me hace pensar que es el resultado del compilado del primero, la cosa es que quiero cambiar una linea del compilado o en su defecto del archivo a compilar pero no se como, les dejo el codigo para ver si alguien me puede ayudar.
Gracias
#include const.rgl
#include topiter.rgl
#include iterator.rgl
 
CONSTANT
  WIDTH_PRIMA_COLONNA =  2300: NUMERIC;
  WIDTH_COLONNA       =  3000: NUMERIC;
END CONSTANT
 
OBJECT TRoot: TTopIterator;
 
 FIELD
   TestaBitmap: STRING;
   HeightBitmap: NUMERIC;
   WidthBitmap: NUMERIC; 
     Testo5: STRING;
   Align5: NUMERIC;
   Style5: NUMERIC;
 END FIELD
 
 Port IteratedPort
   SUBTYPES: TFdli;
   DEFAULT:  TFdli;
 
  TRAP FindNext (prev: INDEX, WhyIsBad: VAR FLAG): INDEX;
    STORAGE
      Id: INDEX;
    END STORAGE
    IF NOT FlagQuery (WhyIsBad, 4) THEN
      FlagSet (WhyIsBad, 2);
      Id = BAD_INDEX;
    ELSE
      Id = ThisPortNext (prev);
      IF Id <> BAD_INDEX THEN
        FlagSet (WhyIsBad, PM_BREAK);
      ENDIF
      IdPorta = Id;
      IF Id == BAD_INDEX THEN
        Done = 1;
      END IF
    END IF
    RETURN BAD_INDEX;
  END TRAP
 END PORT
 
 TRAP PrePrintNode (Size: POINT, Flg: VAR FLAG): RECT;
 
   #include intestazione.rgl
 
// Data del report
   PointSet(pCursor,PointX(Size) - 3000, nPosY);
   CanvasSetCursor(pCursor);
   CanvasWriteText (Data);
 
   RETURN CanvasGetOccupation ();
 
 END TRAP
 
 TRAP PostPrintNode (Size: POINT, Flg: VAR FLAG): RECT;
 
   STORAGE
     pCursor: POINT;
   END STORAGE
 
   CanvasSetFont (0, "Arial", 300);
 
// Numero di pagina
   PointSet(pCursor,18000,2000);
   CanvasSetCursor(pCursor);
   CanvasWriteText ("Pagina " + Str(PageNo));
 
   RETURN CanvasGetOccupation ();
 
 END TRAP
 
END OBJECT
 
//---------------------------------------------
//  FDLI
//---------------------------------------------
OBJECT TFdli: TIterator;
 
 FIELD
   Informazioni: STRING;
   NFoglio : STRING;
 END FIELD
 
 STORAGE
   pCursor: POINT;
   pPoint1: POINT;
   pPoint2: POINT;
   CurrListaNomiFdl: EXPORT NUMERIC;
   FooterFinale : EXPORT NUMERIC;
 END STORAGE
//
 PORT IteratedNewPort
 
  SUBTYPES: TIteratorColonna;
  DEFAULT:  TIteratorColonna;
 
   TRAP StoreInitialState();
     CurrListaNomiFdl = 0;
     FooterFinale = 0;
   END TRAP
 
  TRAP FindFirst (WhyIsBad: VAR FLAG): INDEX;
    RETURN ThisPortFirst();
  END TRAP
 
  TRAP FindNext (prev: INDEX, WhyIsBad: VAR FLAG): INDEX;
    RETURN BAD_INDEX; // sempre done
  END TRAP
 
  TRAP CalcRect (Id: INDEX, Size: POINT): RECT;
 
    STORAGE
      r = [0,0,0,0]: RECT;
      Ret = [0,0,0,0]: RECT;
    END STORAGE
 
    r = RegionMinRect (NORMALREGION);
    IF RectIsBad (r) THEN
      r = [0,0,0,0];
    END IF
    //RectSetX1 (Ret, 1000); Varia la Y
    RectSetX1 (Ret, 0);
    RectSetY1 (Ret, RectY2 (r));
    RectSetBottomRight (Ret, RectBottomRight (RegionContainer (NORMALREGION)));
    IF RectHeight (Ret) <= 0 OR RectWidth (Ret) <= 0 THEN
      RectSetBad (Ret);
 
 PORT IteratedPort
   SUBTYPES: TIteratorS;
   DEFAULT:  TIteratorS;
 
 END PORT
 
 TRAP PrePrintNode (Size: POINT, Flg: VAR FLAG): RECT;
/
   PointSet(pCursor,0,1000);
   CanvasSetCursor(pCursor);
   CanvasSetFont (0, "Arial", 300);
   CanvasWriteText (NFoglio);
 
 
   PointSetX (pPoint1,0);
   PointSetY (pPoint1,1700);
 
   PointSetX (pPoint2,18000);
   PointSetY (pPoint2,1700);
 
   CanvasLine (pPoint1,pPoint2);
 
   RETURN CanvasGetOccupation ();
 
 END TRAP
 
   TRAP FindNext (prev: INDEX, WhyIsBad: VAR FLAG): INDEX;
     RETURN BAD_INDEX;
   END TRAP
 
   //Assegno al footer lo spazio disponibile
   TRAP CalcRect (Id: INDEX, Size: POINT): RECT;
 
     STORAGE
       r : RECT;
       r1 = [0,0,0,0]: RECT;
     END STORAGE
 
     r = RegionMinRect(NORMALREGION);
 
 
     RectSetY1(r1,RectHeight(r)+1500);
     RectSetBottomRight(r1,RectBottomRight(RegionContai  ner(NORMALREGION)));
 
     RETURN r1;
   END TRAP
 
 END PORT
 
END OBJECT
OBJECT TIteratorS : TIterator;
 
 STORAGE
   CtrListaNomiPrivata: NUMERIC;
 END STORAGE
 
 IMPORT
   FooterFinale : EXPORT NUMERIC;
   CurrListaNomiFdl: EXPORT NUMERIC;
 END IMPORT
 
 PORT IteratedPort
   SUBTYPES: TIteratorColonna;
   DEFAULT:  TIteratorColonna;
 
   TRAP StoreInitialState();
     IdPorta = BAD_INDEX;
     Done = 0;
     FirstDone = 0;
     CurrListaNomiFdl = 0;  // prima lista nomi
     CtrListaNomiPrivata = 0;
   END TRAP
 
   TRAP StorePageState();
     FirstIdPorta = IdPorta;
     FirstDone = Done;
     Last = BAD_INDEX;
 
     CtrListaNomiPrivata = CurrListaNomiFdl;
   END TRAP
 
   TRAP FindFirst (WhyIsBad: VAR FLAG): INDEX;
     FooterFinale = 0;
 
     CurrListaNomiFdl = CtrListaNomiPrivata;
     IF FirstDone THEN
       RETURN BAD_INDEX;
     END IF
 
     IF FirstIdPorta == BAD_INDEX THEN
       IdPorta = ThisPortFirst();
       IF IdPorta == BAD_INDEX THEN
         Done = PM_DONE;
       END IF
     ELSE
       IdPorta = FirstIdPorta;
     END IF
 
     RETURN IdPorta;
   END TRAP
 
   TRAP FindNext (prev: INDEX, WhyIsBad: VAR FLAG): INDEX;
 
     STORAGE
       Id: INDEX;
     END STORAGE
 
     Id = ThisPortNext (prev);
     IdPorta = Id;
     // *
 
     // *
     IF (Last <> BAD_INDEX) AND (Id == Last) THEN
       FlagSet (WhyIsBad,PM_BREAK);
       Id = BAD_INDEX;
     ELSE         
       // *
       // *
       IF Id == BAD_INDEX THEN
         IF FlagQuery (WhyIsBad, PM_PREVDONE) THEN
           // *
           // *
           FlagSet (WhyIsBad,PM_DONE);
           Done = PM_DONE;
           Id = BAD_INDEX;
           FooterFinale = 1;  // e' l'ultima pagina
         ELSE
           // *
           FlagSet (WhyIsBad,PM_BREAK);
           Id = BAD_INDEX;
           IdPorta = ThisPortFirst ();
 
           CurrListaNomiFdl = CurrListaNomiFdl + 1;
         ENDIF
       ENDIF
     ENDIF
     RETURN Id;
 
   END TRAP
 
  TRAP CalcRect (Id: INDEX, Size: POINT): RECT;
    STORAGE
      r = [0,0,0,0]: RECT;
      Ret = [0,0,0,0]: RECT;
    END STORAGE
    r = RegionMinRect (NORMALREGION);
    IF RectIsBad (r) THEN
      r = [0,0,0,0];
    END IF
    RectSetX1 (Ret, -1000);
    RectSetY1 (Ret, RectY2 (r));
    RectSetBottomRight (Ret, RectBottomRight (RegionContainer (NORMALREGION)));
    IF RectHeight (Ret) <= 4000 OR RectWidth (Ret) <= 0 THEN
      RectSetBad (Ret);
      Last = IdPorta;
    END IF
    RETURN Ret;
  END TRAP
 
 END PORT
 
END OBJECT
 
OBJECT TIteratorColonna: TIterator;
 /* +*/
 
 IMPORT
   FooterFinale : NUMERIC;
   CurrListaNomiFdl: NUMERIC;
 END IMPORT
 
 STORAGE
   rRecord = [0,0,20000,400]: RECT;
   TabRec : EXPORT NUMERIC;
   MaxA = 0 : EXPORT NUMERIC;
   NonCiSto = 0 :NUMERIC;
   FineAssoluta = 0: NUMERIC;
   FineAssolutaDispPrec: NUMERIC;
   PrimaNext: INDEX;
   NuovaPrimaNext: INDEX;
   CurrListaNomi: NUMERIC;
   NextDeveRicominciare: NUMERIC;
 END STORAGE
 
 PORT IteratedPort
   SUBTYPES: TCampo;
   DEFAULT:  TCampo;
 
   TRAP StoreInitialState ();
     FineAssolutaDispPrec = 0;
     CurrListaNomi = 0;
     NuovaPrimaNext = ThisPortNext (ThisPortFirst ());
     PrimaNext = NuovaPrimaNext;  // per la prima volta
   END TRAP
 
   TRAP StorePageState ();
     IF CurrListaNomi <> CurrListaNomiFdl THEN
       // +
       PrimaNext = NuovaPrimaNext;
       CurrListaNomi = CurrListaNomiFdl;
     ENDIF
 
     FineAssoluta = FineAssolutaDispPrec;
   END TRAP
 
      Curr = ThisPortNext (prev);
     ENDIF
 
     IF NonCiSto AND Curr <> BAD_INDEX THEN
 
 END PORT
 
 TRAP PostPrintNode (Size: POINT, Flg: VAR FLAG): RECT;
 
   STORAGE
     ra : RECT;
   END STORAGE
 
   ra = rRecord;
   RectSetX1(ra,0);
   RectSetWidth(ra,18000);
   RectSetHeight(ra, MaxA);
 
   CanvasRectangle(ra);
 
   RETURN CanvasGetOccupation ();
 END TRAP 
 
END OBJECT
OBJECT TCampo: TERMINAL;
 
 STORAGE
   r =[0,0,0,0]: RECT;
   r1 : RECT;
   P1 = [0,0]: POINT;
   P2 = [0,0]: POINT;
   nWidth : NUMERIC;
 END STORAGE
 
 FIELD
   sCampo: STRING;
   nColonna:  NUMERIC;
   ignHeight : NUMERIC;
 END FIELD
 
 IMPORT
   TabRec: NUMERIC;
   Last: INDEX;
   IdPorta: INDEX;
   MaxA : NUMERIC;
 END IMPORT
 
 TRAP PrePrintNode (Size: POINT, Flg: VAR FLAG): RECT;
   RectSetWidth(r, nWidth);
   RectSetHeight(r,PointY(Size));
   CanvasSetFont (0, "Arial", 280);
 
   IF ignHeight == 0 THEN
     r1 = CanvasWriteTextFmt (r, sCampo, ALIGNLEFT);
   ELSE
     r1 = CanvasWriteTextFmt (r, sCampo, IGNOREHEIGHT+ALIGNLEFT);
   END IF
 
   IF MaxA < RectHeight(r1) THEN
     MaxA=RectHeight(r1);
   END IF 
 
   PointSetX(P1, nWidth-100);
   PointSetX(P2, nWidth-100);
   //PointSetY(P2, RectHeight(r1));
   PointSetY(P2, MaxA);
 
   CanvasLine(P1,P2);
 
   TabRec = TabRec + nWidth;
 
OBJECT TFooter: TERMINAL;
 
FIELD
  TotalePazienti : STRING;
  TotalePrelievi : STRING;
  TotaleEsami    : STRING;
  TotaleProvette : STRING;
  TotaleEsiti    : STRING;
END FIELD
 
IMPORT
   FooterFinale : NUMERIC;
END IMPORT
 
TRAP PrePrintNode (Size: POINT, Flg: VAR FLAG): RECT;
 
   STORAGE
     rFooter : RECT;
   END STORAGE
 
   CanvasSetFont (0, "Arial", 300);
 
   rFooter = [5000,300,5000,500];
 
   IF NOT FooterFinale THEN
    CanvasWriteTextFmt(rFooter,"Pacientes",ALIGNLEFT);
    rFooter = [500,1000,3000,500];
    CanvasWriteTextFmt(rFooter,TotalePazienti,ALIGNLEF  T);
 
// Totale Prelievi
    rFooter = [4500,500,3000,500];
    CanvasWriteTextFmt(rFooter,"Admisiones",ALIGNLEFT)  ;
    rFooter = [4500,1000,3000,500];
    CanvasWriteTextFmt(rFooter,TotalePrelievi,ALIGNLEF  T);
 
   END IF
 
   RETURN CanvasGetOccupation ();   
 
END TRAP
 
END OBJECT
 
TOP OBJECT: TRoot; 
  
 
