******YOU CAN USE MDDISCAMT for print total Product Discount,In mdiscamt also include product discount ******You can print generic name using GEN Table as following GEN->GenName ******mPTSex,mPTAge,mPTCurBal,mptregno,mspname * {|| HeadLines:=13, ItemLines:=1, RetHLines:=3, RetDlines:=1, FootLines:=11,SortedItems:=.f.,PrintDuplicate:=.t.,pagelength:=36} ******Header Part {||qout(padr("D.L.NO:"+alltrim(MLICNO),30)+PADC(alltrim(minvtype),Pagewidth-57)+_DS+" Mob.: "+_DS_OFF+PADR(mphone1,20))} {||qout(padr("GSTIN :"+alltrim(mgstno),30)+SPAC(Pagewidth-57)+_DS+" FL.No:"+_DS_OFF+PADR(" ",19))} {||qout(_EXP+padc(alltrim(mname),pagewidth-40)+_EXP_OFF)} {||qout(padc(alltrim(maddress1),pagewidth-5))} {||qout(padc(alltrim(maddress2)+" "+alltrim(mstation)+" "+alltrim(mpin),pagewidth-5))} {||qout(REPL(hzbar,pagewidth))} {||qout(padr("INVOICE No. "+SH->shssr+"-"+padl(SH->shinvno,6,"0"),30)+" "+space(12)+" "+padr("Date : "+dtoc4(minvdate),35))} {||qout(padr(alltrim(_PTPRMPT)+" : "+alltrim(mpatient),30)+" "+space(12)+" "+Padr(alltrim(_DTPRMPT)+" : "+alltrim(mdtname),35))} {||qout(REPL(hzbar,pagewidth))} {||qout(_elite+"QTY PRODUCT NAME MFG. HSN PACK BATCH EXPIRY RATE AMOUNT CGST SGST"+_ELITE_off)} {||qout(REPL(hzbar,pagewidth))} {||iif(!start,qout("Continued From... "+tran(invpg-1,"9")+spac(38)+"Total b/f "+tran(mtotamt,"9999999.99")),nil)} {||iif(!start,Linecount:=12,Linecount:=11)} ****** Detail Line {|| qout(_elite+tran(mtabqty,"99999")+" "+padr(PD->pdname,23)+" "+Padr(Gp->Gpname,7)+" "+padr(mhsn,4)+" "+padr(PD->pdpacking,7)+" "+padr(st->bhno,10)+" "+right(dtoc2(st->expiry),5)+" "+TRAN(MTABRATE,"9999.99")+""+tran(mamt,"99999.99")+" "+tran(tx->txschrg,"99%")+" "+tran(tx->txrstrate,"99%")+_elite_off),LineCount:=Linecount+1} ****** Sale Return Head Line {||qout()} {||qout("Sale Return")} {||Linecount:=Linecount+2} ******Sale Return Detail Line {|| qout(_elite+tran(mtabqty,"99999")+" "+padr(PD->pdname,23)+" "+Padr(Gp->Gpname,7)+" "+padr(mhsn,4)+" "+padr(PD->pdpacking,7)+" "+padr(st->bhno,10)+" "+right(dtoc2(st->expiry),5)+" "+TRAN(MTABRATE,"9999.99")+""+tran(mamt,"99999.99")+" "+tran(tx->txschrg,"99%")+" "+tran(tx->txrstrate,"99%")+_elite_off),LineCount:=Linecount+1} ****** Footer Part {||Qout(Padr(Nt->Note,Pagewidth))} {||qout(repl(HZBAR,pagewidth))} {||iif(finished,QOUT(padr("For "+alltrim(mname),pagewidth-26)+padr("TOTAL",16)+tran(Mtotamt,"9999999.99")),QOUT())} {||iif(Finished,qout(iif(len(SurTaxString)<=pagewidth-26,PADR(Alltrim(SURTAXSTRING),pagewidth-26),_COMPRESS+padr(Alltrim(SURTAXSTRING),round((pagewidth-26)*1.7,0))+_COMP_OFF)+"LESS DISCOUNT "+tran(mDISCAMT,"99999.99")),qout())} {||iif(Finished,qout(PADR("SGST"+SubStr(VTAXSTRING,14),(pagewidth-26))+PADR("ADD CGST",17)+TRAN(MSCAMT,"999999.99")),qout())} {||iif(Finished,qout(PADR("",pagewidth-26)+PADR("ADD SGST ",17)+TRAN(MTAXAMT,"999999.99")),qout())} {||iif(Finished,qout(PADR("",pagewidth-26)+PADR("Oth. Adj. ",17)+TRAN(mothadj,"999999.99")),qout())} {||iif(Finished,qout(padr(mamtwords,pagewidth-26)+_DS+padr("G. Total",10)+_EXP+tran(mNETAMT,"99999.99")+_EXP_OFF+_DS_OFF),qout())} {||iif(finished,qout(repl(HZBAR,pagewidth)),qout())} {||iif(finished,qout(),qout())} {||linecount:=linecount+10} ****** end of file