como crear grupo en tiempo de ejecucion

como crear grupo en tiempo de ejecucion

Postby artu01 » Sat Aug 13, 2011 3:17 am

Espero que esta vez si me puedan ayudar les explico con un ejemplo
Te explico que quiero hacer usando la clase report
    --------------------------------------------------------------------------------------------
    cta ruc Descripcion Monto
    --------------------------------------------------------------------------------------------
    12 Emitidas en cartera
    1221 Emitidas en cartera .....

    1221 04205149 YAHR HD LAU 450.00
    1221 06154943 LOPEZ CASANA FLORENCIA 200.00
    1221 0 7777360 BOBBIO GARCIA CARLOS 550.55
    ..........
    --------------------------------------------------------------------------------------------
    Subtotal 1221 1200.55
    1220 Anticipo de Clientes
    1220001 01343072 VALDIVIA PINAZO 800.00
    1220001 33255222 OLIVARI VASQUEZ 2362.22
    1220001 69633222 CERRUTI MARIA 255.33
    1220002 44222223 BROZOVICH MARIA 116.33
    1220002 56666665 LIGIA SILVIA 4555.33
    1220003 45896652 BATISTA NICOLA 223.36
    1220003 22221232 FUNES CARLITOS 1222.22
    1220003 88282122 YLLANA LUCRECIA 2333.22

    Quiero poder partir este ultimo grupo en subgrupos
    que quede asi:
    1220 Anticipo de clientes
    12200001 Proyecto Tallanes

    1220001 01343072 VALDIVIA PINAZO 800.00
    1220001 33255222 OLIVARI VASQUEZ 2362.22
    1220001 69633222 CERRUTI MARIA 255.33
    -----------------------------------------------------------------------------------------
    Subtotal 1220001 3417.53
    12200002 Proyecto Tradiciones
    1220002 44222223 BROZOVICH MARIA 116.33
    1220002 56666665 LIGIA SILVIA 4555.33
    -----------------------------------------------------------------------------------------
    Subtotal 1220002 4671.66

    12200002 Proyecto Sur
    1220003 45896652 BATISTA NICOLA 223.36
    1220003 22221232 FUNES CARLITOS 1222.22
    1220003 88282122 YLLANA LUCRECIA 2333.22
    -----------------------------------------------------------------------------------------
    Subtotal 1220002 3778.80
    Subtotal 1220 11867. 99


Este es mi codigo de programa pero no me obedece

Code: Select all  Expand view  RUN
REPORT oRpt                                                       ;
    ...
    GROUP oGrp1                           ;
        ON Left(TMP->Cuenta,2)            ;
        HEADER Left(TMP->Cuenta,2)+' '+ACONCUE->Descrip;
        FOOTER 'Total :'           ;
        FONT 5

    GROUP oGrp2                           ;
        ON Left(TMP->Cuenta,4)            ;
        HEADER Left(TMP->Cuenta,4)+' '+ACONCUE->Descrip;
        FOOTER 'SubTotal :'           ;
        FONT 5

      COLUMN TITLE " ","Cuenta"                 ;
            DATA TMP->CUENTA                    ;
            FONT 2 SIZE 9

      COLUMN TITLE " ","Ruc"                    ;
            DATA TMP->Ruc                       ;
            FONT 2 SIZE 15                                                                                                                                                                                
      ...                                            
      ...

     ACTIVATE REPORT oRpt ;
        ON STARTGROUP iif(len(tmp->cuentat)=8,createnewgroup(),);
        ON ENDGROUP iif(len(oRpt:aGroups)=3, eval({||oRpt:Delgroup(3), oRpt:Stabilize() }),)

END REPORT

Static Function createnewgroup()
oGrp3:= TRGroup():New({|| left(tmp->cuenta,8) }, {|| tmp->cuenta+" "+aconcue->descrip}, {|| "Subtotal" }, , , oRpt)
oRpt:Stabilize()
Return Nil

 
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
artu01
 
Posts: 400
Joined: Fri May 11, 2007 8:20 pm
Location: Lima

Re: como crear grupo en tiempo de ejecucion

Postby xmanuel » Sun Aug 14, 2011 5:42 pm

Yo lo haría así:

Code: Select all  Expand view  RUN


     ACTIVATE REPORT oRpt ;
        ON INIT iif(len(tmp->cuentat)=8,createnewgroup( oRpt  ),);
        ON ENDGROUP iif(len(oRpt:aGroups)=3, eval({||oRpt:Delgroup(3), oRpt:Stabilize() }),)

END REPORT

Static Function createnewgroup( oRpt )
oGrp3:= TRGroup():New({|| left(tmp->cuenta,8) }, {|| tmp->cuenta+" "+aconcue->descrip}, {|| "Subtotal" }, , , oRpt)
oRpt:Stabilize()
Return Nil

 
______________________________________________________________________________
Sevilla - Andalucía
xmanuel
 
Posts: 763
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 102 guests