*****YOU CAN USE taxstring,mtx,taxable4,tax4,taxable12_5,tax12_5,TaxWithStr:=.f.,mltamt,mtotltamt, *****YOU CAN USE MPDTXRATE,MPDSCRATE,MPDTXAMT,MPDSCAMT,mPDTXDESC,mPDTXVAL,mTaxableAmt,mMRPVALUE,mPDDISCAMT *****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:=12, ItemLines:=1, RetHLines:=3, RetDlines:=1, FootLines:=8,SortedItems:=.f.,PrintDuplicate:=.t.,pageWIDTH:=48} *****Header Part {||qout(_COMPRESS+padr("D.L. NO.: "+ALLTRIM(MLICNO),25)+PAdC(alltrim(minvtype),24)+_DS+" Mob.: "+_DS_OFF+PADR(mphone1,24)+_COMP_OFF)} {||qout(_COMPRESS+padr("GSTIN :"+ALLTRIM(mgstno),26)+SPAC(24)+_DS+" FL. No.:"+_DS_OFF+PADR("",19)+_COMP_OFF)} {||qout(_EXP+PADR(alltrim(mname),pagewidth/2)+_EXP_OFF)} {||qout(_COMPRESS+padc(ALLTRIM(MADDRESS)+","+AllTrim(MSTATION)+" "+ALLTRIM(MPIN),pagewidth*1.7)+_COMP_OFF)} {||qout(REPL(hzbar,PAGEWIDTH))} {||qout(_COMPRESS+padr("INVOICE No. "+SH->shssr+"-"+padl(SH->shinvno,6,"0"),30)+" "+space(20)+" "+padr("Date : "+dtoc4(minvdate),35)+_COMP_OFF)} {||qout(_COMPRESS+padr(alltrim(_PTPRMPT)+" : "+alltrim(mpatient),30)+" "+space(20)+" "+Padr(alltrim(_DTPRMPT)+" : "+alltrim(mdtname),35)+_COMP_OFF)} {||qout(REPL(hzbar,PAGEWIDTH))} {||qout(_COMPRESS+"QTY PRODUCT NAME HSN PACK BATCH EXP. RATE AMOUNT CGST SGST"+_COMP_off)} {||qout(REPL(hzbar,PAGEWIDTH))} {||iif(!start,qout(_COMPRESS+"Continued From... "+tran(invpg-1,"9")+spac(38)+"Total b/f "+tran(mtotamt,"9999999.99")+_COMP_OFF),nil)} {||iif(!start,Linecount:=11,Linecount:=10)} ***** Detail Line {|| qout(_COMPRESS+tran(mtabqty,"9999")+" "+padr(PD->pdname,17)+" "+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%")+_COMP_off),LineCount:=Linecount+1} ***** Sale Return Head Line {||qout()} {||qout("Sale Return")} {||Linecount:=Linecount+2} *****Sale Return Detail Line {|| qout(_COMPRESS+tran(mtabqty,"9999")+" "+padr(PD->pdname,17)+" "+padr(mhsn,4)+" "+padr(PD->pdpacking,7)+" "+padr(st->bhno,10)+" "+right(dtoc2(st->expiry),5)+" "+tran(mTABRATE,"9999.99")+" "+tran(MAMT,"9999.99")+" "+tran(tx->txschrg,"99%")+" "+tran(tx->txrstrate,"99%")+_COMP_off),LineCount:=Linecount+1} ***** Footer Part {||qout(_COMPRESS+"Items:"+tran(mitems,"999 ")+iif(len(surTaxString)>Pagewidth-7,_COMPRESS+Padr(surtaxstring,round((Pagewidth-7)*1.7,0))+_COMP_OFF,Padr(surtaxstring,Pagewidth-7)))} {||qout(_COMPRESS+iif(len(vTaxString)>Pagewidth-11,_COMPRESS+Padr(vtaxstring,round((Pagewidth-11)*1.7,0))+_COMP_OFF,Padr(vtaxstring,Pagewidth-11))+padR("-----------",11)+_COMP_OFF)} {||iif(finished,Qout(_COMPRESS+iif(mtotamt#mnetamt,"Total "+ tran(mtotamt,"99999.99"),spac(14))+iif(mdiscamt#0," Disc. "+ tran(mdiscamt,"9999.99"),spac(14))+iif(mtaxamt+mscamt#0," SGST/CGST "+tran(mtaxamt+mscamt,"99999.99"),spac(13))+iif(mothadj#0," Othadj "+tran(mothadj,"99999.99"),spac(17))+" Net Amt."+tran(mnetamt,"999999.99")+_COMP_OFF),qout(_COMPRESS+"Continued On..."+tran(invpg,"9")+spac(38)+"Total c/f "+tran(mtotamt,"99999.99")+_COMP_OFF))} {||qout(REPL(hzbar,pAGEWIDTH))} {||qout(_COMPRESS+padr(" E & O. E.",int((Pagewidth/2)*1.7))+padl("Subject to "+alltrim(mstation)+" Jurisdiction.",int((pagewidth/2)*1.7))+_COMP_OFF)} {||iif(finished,qout(padr(NT->note,pagewidth-5)),qout())} {||qout()} {||Linecount:=Linecount+7} ***** end of file