/* Objective(s) - - This code demonstrates the alteration of Invoice Printing format - Default Invoice Format is overridden with a New Format */ [#Form: Comprehensive Invoice] ;;option attribute contains the form name with logical condition ;;optional forms will execute if the condition is trure Option: Global Invoice : @@IsSales ;;;@@IsSales is a system formula. System formula can be defined once and can be reused [#Form: Simple Printed Invoice] Option: Global Invoice : @@IsSales [!Form : Global Invoice] ;;By default Form Global Invoice inherit all the details of simple printed invoice hence delete is used to remove the existing parts ;;of simple printed invoice Delete : Parts Delete : Bottom Parts Delete : PageBreak ;;Formatting the form Space Bottom: 0 Space Left : 0.25 inch Space Right : 0 ;;Addtion of new parts in the form Add : Parts : Global Invoice Top Part Add : Parts : Global Invoice Body Part Add : Bottom Parts : Global Invoice Bottom Part [Part: Global Invoice Top Part] Lines : Global CmpName, Global VCHDate, Global PartyName, Global PartyAdd1, + Global ColumnTitles ;;Repeat attribute is used to display address in multi lines. It report on collection partyaddress Repeat : Global PartyAdd1 : PartyAddress [Line: Global CmpName] Fields : Global CmpName [Field: Global CmpName] Use : Name Field Set as : @@CMPMailNAme ;;;setting the company name using system formula FullWidth : Yes Align : Centre [Line: Global VCHDate] Fields : Short Prompt, Global VCHDate Right Fields: Simple Prompt, Global VCHNo ;;In line itself the field can be defined with default values using the below syntax Local: Field: Short Prompt : Set as : "Voucher Date : " Local: Field: Simple Prompt : Set as : "Voucher No : " [Field: Global VCHDate] Use : Short Date Field Set as : $Date ;;setting the date storage value to a field [Field: Global VCHNo] Use : Short Name Field Set as : $VoucherNumber ;;setting the voucher number storage value [Line: Global PartyName] Fields : Short Prompt, Global PartyName Local: Field: Short Prompt : Set as : "Party Name: " [Field: Global PartyName] Use : Name Field Set as : $PartyLedgerName ;;setting the party ledger name value to the field [Line: Global PartyAdd1] Fields : Global PartyAdd1 [Field: Global PartyAdd1] Use : Name Field Set as : $Address Indent : 10 [Line: Global Column Titles] Use : IE Details Local: Field: Default : Lines : 2 Local: Field: Default : Type : String Local: Field: Default : Style : Normal Bold Local: Field: IE SrNo : Set as : "Sr No" Local: Field: IE SiName : Set as : "Name" Local: Field: IE Qty : Set as : "Billed Qty" Local: Field: IE Rate : Set as : "Rate" Local: Field: IE Discount : Set as : "Disc Amt" Local: Field: IE Amount : Set as : "Amount" ;;Border attribute is used to provide border to the lines Border : Column Titles [Part: Global Invoice Body Part] ;;Two parts are defined inside a part Parts : IE Details, LE Details ;;vertical attribute is used to allign the parts vertically Vertical : Yes ;;Scroll attribute is used to make the lines scroll vertically Scroll : Vertical Common Border: Yes [Part: IE Details] Lines : IE Details Repeat : IE Details : Inventory Entries Total : IE Qty, IE Discount, IE Amount [Line: IE Details] Fields : IE SrNo, IE SiName Right Fields : IE Qty, IE Rate, IE Discount, IE Amount Explode : Item Desc : $$NumItems:UserDescription > 0 ;;;$$NumItems is a used defned functions which can be ;;;used for counting purposes. It takes collection name as parameter [Part: Item Desc] Lines : Item Desc Repeat : Item Desc : UserDescription [Line: Item Desc] Fields : Item Desc [Field: Item Desc] Use : Name Field Width : 40 Indent : 8 Set as : $UserDescription Style : Normal Italic [Field: IE SrNo] Use : Short Name Field Set as : $$Line Border : Thin Left Width : 4 [Field: IE SIName] Use : Name Field Set as : $StockItemName Border : Thin Left FullWIdth : Yes [Field: IE Qty] Use : Number Field Set as : $BilledQty Border : Thin Left Format : "NoSymbol" Align : Right [Field: IE Rate] Use : Rate Price Field Set as : $Rate Border : Thin Left [Field: IE Discount] Use : Amount Forex Field ;;; field will display amount in foreign currency also Set as : $$AsAmount:$Discount ;;; Predefined function AsAmount will set discount value in amount format Border : Thin Left [Field: IE Amount] Use : Amount Field ;;;Field will display amount value Set as : $Amount Border : Thin Left Right Format : "NoComma, NoZero" [Part: LE Details] Lines : LE Details Repeat : LE Details : Ledger Entries Scroll : Vertical [Line: LE Details] Use : IE Details Local: Field: IE SrNo : Set as : "" Local: Field: IE SiName : Set as : $LedgerName Local: Field: IE Qty : Set as : "" Local: Field: IE Rate : Set as : $$String:$RateOfInvoiceTax + "%" ;;function $$String used for conversion Local: Field: IE Amount : Set as : $Amount Local: Field: IE SiName : Align : Right Local: Field: IE Qty : Format : "NoZero" Local: Field: IE Rate : Inactive : $RateOfInvoiceTax = 0 Local: Field: IE Rate : Type : String Remove if : $LedgerName = $PartyLedgerName ;; Empty attribute is used to avoid printing of party ledger name in the invoice [Part: Global Invoice Bottom Part] Lines : Global Total Line, Global AmtInWords, Global ForCmp, Global AuthSign [Line: Global Total Line] Use : IE Details Local: Field: Default : Style : Normal Bold Local: Field: IE SrNo : Set as : "" Local: Field: IE SiName : Set as : "Totals" Local: Field: IE Qty : Set as : $$Total:IEQty ;;funtion total is used to take total of a particular field, here(IEQty) Local: Field: IE Rate : Set as : "" Local: Field: IE Discount : Set as : $$Total:IEDiscount Local: Field: IE Amount : Set as : $$Total:IEAmount Border : Totals [Line: Global AmtInWords] Fields : Short Prompt, Global AmtInWords Local: Field: Short Prompt : Set as : "Amount in words : " [Field: Global AmtInWords] Use : Name Field Set as : $$InWords:$Amount + " Only" ;;;Inwords function is used to convert neumaric value into words FullWidth : Yes Style : Small [Line: Global ForCmp] Right Fields: Global ForCmp [Field: Global ForCmp] Use : Name Field Set as : "For " + @@CMPMailNAme Align : Right Width : 0 [Line: Global AuthSign] Right Fields: Global AuthSign Space Top : 2 [Field: Global AuthSign] Use : Name Field Set as : "Authorised Signatory" Width : 0 Align : Right ;; End-of-File