[Help] Dual Body Invoice

Discussion in 'Tally Developer' started by lumos, Dec 14, 2019.

    
  1. lumos

    lumos Member


    Hello, how can I achieve a dual body Invoice ? On repeating the collection over the right Line/part The Items are duplicated, Any way I can continue the Items on the right side from the left and onto the next page without duplicating? Using Page break is not helping.
    Code:
    [#Form: SV Print Config]
        Option:Plmbttn:@@InvSimple And @@IsSales Or @@IsSalesOrder AND @@InvSimple
       
        [!Form:Plmbttn]
        Add: Button:At Beginning:Plmbinvbttn
       
        [Button: Plmbinvbttn]
            Key            : Alt+P
            Action        : Set : SVPlmbInv : NOT ##SVPlmbInv
            Title        : if ##SVPlmbInv then $$LocaleString:"Normal" else $$LocaleString:"Dual Body"
            Inactive    : NOT @@SVPixelMode
           
            [System: Variable]
                SVPlmbInv    :    No
           
            [Variable: SVPlmbInv]
                Type        : Logical
                Persistent    : Yes
       
        [#Form     : Simple Printed Invoice]
            Option:PlmbSwitch: @@IsSales AND ##SVplmbinv or @@IsSalesOrder AND ##SVplmbinv
           
            [!Form    :PlmbSwitch]   
                Delete      : Parts
                Delete        : Bottom Parts
                Delete        : PageBreak
                Space Bottom: 0.8 cm
                Space Left    : 0.8 cm
                Space Right    : 0.8 cm
                Add         : Parts            : PLMBINVTop
                Add         : Parts            : PLMBINVBody
                Add         : Bottom Parts  : PLMBINVBottom
               
                [Part    :    PLMBINVTop]
                    Lines       :PLMBINVTitle,PLMBINVVCHDate;,PLMBINVColumnTitles
                    ;Repeat      : PLMBINVPartyAdd1  : PartyAddress
                    Space Bottom: 0.7 cm
                    Space Left    : 0.8 cm
                    Space Right    : 0.8 cm
                    Space Top    : 0.7 cm
                   
                    [Line    :PLMBINVTitle]
                        Field:PLMBINVTitle
                        [Field    : PLMBINVTitle]
                            Use         : Name Field
                            Set as      : "Estimate"
                            FullWidth    : Yes
                            Align        : Centre
    
            [Line: PLMBINVVCHDate]
               
                Fields        : Short Prompt, PLMBINVPartyName
                Right Fields: Name field, PLMBINVVCHDate
                Local        : Field: Short Prompt  : Set as    : "Party : "
                Local        : Field: Short Prompt  : Width       : 7
                Local        : Field: Name field    : Set as    : "Date: "
                Local        : Field: Name Field       : Width       : @@DueDateWidth
    
                [Field: PLMBINVVCHDate]
    
                    Use         : Short Date Field
                    Set as      : $Date
                    Width        : 9
    
                [Field: PLMBINVPartyName]
    
                    Use         : Name Field
                    Set as      : $PartyLedgerName
                   
            [Line: PLMBINVColumn Titles]
    
                Use         : PLMDetailsLeft
                Local: Field: Default         : Align        : Center
                Local: Field: Default         : Lines     : 2
                Local: Field: Default         : Type      : String
                Local: Field: Default         : Style     : Normal Bold
                ;Local: Field: PLMSrNo         : Set as    : "Sr No"
                Local: Field: PLMLSiName     : Set as    : "Particulars"
                Local: Field: PLMLQty        : Set as    : "Quantity"
                Local: Field: PLMLRate         : Set as    : "Rate"
                ;Local: Field: PLMDiscount   : Set as    : "Disc Amt"
                Local: Field: PLMLAmount     : Set as    : "Amount"
                Border      : Column Titles
               
    
    [Part: PLMBINVBody]
    
            Parts         : PLMDetails;, PLMLE Details
            ;Right Parts        : PLMDetails2
            Vertical     : Yes
            Scroll:Flow
            ;Common Border: Yes
            Space Left    :0.8 cm
            Space Right    :0.8 cm
           
       
            [Part: PLMDetails]
                Left Part    : PLMDetailsleft
                Right Part    : Plmdetailsright
    
               [Part    : PLMDetailsleft]
                   Line        :    PLMBINVColumnTitles,PLMDetailsLeft
                   Repeat     : PLMDetailsLeft : Inventory Entries  
                   ;Repeat         : PLMDetails : Inventory Entries
                   Total         : PLMQty, PLMAmount
                   Page Break    : DSP ClPageBreak
            /*       Break         : $$NumItems:iNVENTORYENTRIES < 8
                   Page Break    :PlMBRK*/
              
               [Line: PLMDetailsLeft]
                    Fields        : PLMLSiName,PLMLQty, PLMLRate, PLMLAmount
                    ;Right Fields: PLMLSiName ,PLMLQty, PLMLRate, PLMLAmount
               
                /*    [Field: PLMLSrNo]
    
                        Use         : Short Name Field
                        Set as      : $$Line
                        Border         : Thin Left
                        Width         : 0.5 cm*/
                           
                    [Field: PLMLSIName]
    
                        Use         : Name Field
                        Set as      : $StockItemName
                        Border         : Thin Left
                        FullWIdth     : Yes
                        Width        : 6 CM
                       
    
                    [Field: PLMLQty]
    
                        Use         : Number Field
                        Set as      : $BilledQty
                        Border         : Thin Left
                        Format         : "NoSymbol"
                        Align       : Right
                        Width        : 2.8 CM
    
                    [Field: PLMLRate]
    
                        Use         : Rate Price Field
                        Set as      : $Rate
                        Border         : Thin Left
                        Width        : 3.5 CM
                       
               /*     [Field: PLMLDiscount]
    
                        Use         : Amount Forex Field
                        Set as      : $$AsAmount:$Discount
                        Border         : Thin Left*/
    
                    [Field: PLMLAmount]
    
                        Use         : Amount Field
                        Set as      : $Amount
                        Border         : Thin Left Right
                        Format         : "NoComma, NoZero"
                        Width        : 3.5 cm
                       
        [Part    : PLMDetailsright]
                   Line        :    PLMBINVColumnTitles,PLMDetailsright
                   Repeat     : PLMDetailsright : Inventory Entries
                   Total         : PLMQty, PLMAmount
            /*       Break         : $$NumItems:iNVENTORYENTRIES < 8
                   Page Break    :PlMBRK*/
               [Line: PLMDetailsright]
                    Fields        : PLMRSiName,PLMRQty, PLMRRate, PLMRAmount
                    Remove if    : #PLMLSIName = $StockItemName
                    ;Right Fields: PLMRSiName ,PLMRQty, PLMRRate, PLMRAmount
               
                /*    [Field: PLMRSrNo]
    
                        Use         : Short Name Field
                        Set as      : $$Line
                        Border         : Thin Left
                        Width         : 0.5 cm*/
                           
                    [Field: PLMRSIName]
    
                        Use         : Name Field
                        Set as      : $StockItemName
                        Border         : Thin Left
                        FullWIdth     : Yes
                        Width        : 6 CM
                       
    
                    [Field: PLMRQty]
    
                        Use         : Number Field
                        Set as      : $BilledQty
                        Border         : Thin Left
                        Format         : "NoSymbol"
                        Align       : Right
                        Width        : 2.8 CM
    
                    [Field: PLMRRate]
    
                        Use         : Rate Price Field
                        Set as      : $Rate
                        Border         : Thin Left
                        Width        : 3.5 CM
                       
               /*     [Field: PLMRDiscount]
    
                        Use         : Amount Forex Field
                        Set as      : $$AsAmount:$Discount
                        Border         : Thin Left*/
    
                    [Field: PLMRAmount]
    
                        Use         : Amount Field
                        Set as      : $Amount
                        Border         : Thin Left Right
                        Format         : "NoComma, NoZero"
                        Width        : 3.5 cm
    
       
    [Part: PLMBInvBottom]
    
            Lines : PLMBTotal Line
            Common Borders:Yes
            [Line: PLMBTotal Line]
    
                Use         : PLMDetailsleft
                Local: Field: Default         : Style     : Normal  Bold
                Local: Field: PLMLSrNo        : Set as    : ""
                Local: Field: PLMLSiName     : Set as    : "Totals"
                Local: Field: PLMLQty        : Set as    : $$Total:PLMLQty
                Local: Field: PLMLRate        : Set as    : ""
                ;Local: Field: IE Discount    : Set as    : $$Total:IEDiscount
                Local: Field: PLMLAmount     : Set as    : $$Total:PLMLAmount
                Border      : Totals
    
    
    
    
    [Part: PlMBRK]
               
        Line        : PlMBRK
       
        [Line: PlMBRK]
                   
            Right Field    :    PlMBRK
           
    [Field:    PlMBRK]
           
        Set As        : "Continued.........."
     

    Attached Files:

    Vikram Bhat likes this.


  2. lumos

    lumos Member


    No experts have any Idea? I have tried using "remove if" at the line level, but that too isn't working.
     


  3. Amit Kamdar

    Amit Kamdar Administrator Staff Member


    It won't be possible, coz when you define left side and right side, it is a separate Part and hence the cycle will be from beginning as per the collection.
     


  4. lumos

    lumos Member


    is there a way we can start a collection at a specific number of object? This way we can omit the data already repeated in previous parts.
     


  5. Amit Kamdar

    Amit Kamdar Administrator Staff Member


    As far as my limited knowledge goes, I think not.

    Let other experts have their say, if they know a way.
     


  6. mahgs

    mahgs Member


    Dear sir

    use this Line

    Remove if :$$IsOdd:$$Line
    REmove if :$$IsEven:$$Line
     


  7. lumos

    lumos Member


    ThankYou for your suggestion but it doesnt work.
     


  8. lumos

    lumos Member


    This works
    Remove if : $$IsOdd:$$BalanceLines
     


Share This Page