In tally I'm using Mgf Journal Voucher with BoM methodology. In the below Code, Correct my if condition it is completely wrong (if $$IsMaterialManufactured then Yes else No) to find out the manufactured item. or Suggest any other possible way. Code: <ENVELOPE> <HEADER> <VERSION>1</VERSION> <TALLYREQUEST>Export</TALLYREQUEST> <TYPE>Data</TYPE> <ID>StockItem Details</ID> </HEADER> <BODY> <DESC> <STATICVARIABLES> <EXPLODEFLAG>Yes</EXPLODEFLAG> <SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT> <SVCURRENTCOMPANY>${company}</SVCURRENTCOMPANY> <SVFROMDATE>${fromDate}</SVFROMDATE> <SVTODATE>${toDate}</SVTODATE> </STATICVARIABLES> <TDL> <TDLMESSAGE> <REPORT NAME="StockItem Details"> <FORMS>StockItem Details</FORMS> <TITLE>StockItem Details</TITLE> </REPORT> <FORM NAME="StockItem Details"> <TOPPARTS>StockItem Details Part</TOPPARTS> <XMLTAG>"ENVELOPE"</XMLTAG> </FORM> <PART NAME="StockItem Details Part"> <TOPLINES>StockItem Details Line Title, StockItem Details Details </TOPLINES> <REPEAT>StockItem Details Details : MainStockItemCol1</REPEAT> <SCROLLED>Vertical</SCROLLED> <COMMONBORDERS>Yes</COMMONBORDERS> </PART> <LINE NAME="StockItem Details Line Title"> <USE>StockItem Details Details</USE> </LINE> <LINE NAME="StockItem Details Details"> <LEFTFIELDS>Name</LEFTFIELDS> <RIGHTFIELDS>StockGodown,ISMGF</RIGHTFIELDS> <XMLTAG>STOCKDETAILS</XMLTAG> </LINE> <FIELD NAME="Name"> <USE>Name Field</USE> <SET>$Name</SET> </FIELD> <FIELD NAME="StockGodown"> <USE>Name Field</USE> <SET>$BATCHALLOCATIONS.GODOWNNAME</SET> </FIELD> <FIELD NAME="ISMGF"> <USE>Name Field</USE> <SET>if $$IsMaterialManufactured then Yes else No</SET> </FIELD> <COLLECTION NAME="MainStockItemCol1" ISMODIFY="No"> <TYPE>StockItem</TYPE> <Fetch>.*.</Fetch> </COLLECTION> </TDLMESSAGE> </TDL> </DESC> </BODY> </ENVELOPE>
IsMaterialManufactured is a Variable not a Function - as defined in Tally. At Report Level, define the Variable --- Set : IsMaterialManufactured : Yes
You can use $$NumItems:MultiComponentList > 0 to get only StockItems with BOM Since this Formulae is already there in tally you can just use @@ItemHasBoM Change ISMGF Set to @@ItemHasBoM Code: <ENVELOPE> <HEADER> <VERSION>1</VERSION> <TALLYREQUEST>Export</TALLYREQUEST> <TYPE>Data</TYPE> <ID>StockItem Details</ID> </HEADER> <BODY> <DESC> <STATICVARIABLES> <EXPLODEFLAG>Yes</EXPLODEFLAG> <SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT> <SVCURRENTCOMPANY>${company}</SVCURRENTCOMPANY> <SVFROMDATE>${fromDate}</SVFROMDATE> <SVTODATE>${toDate}</SVTODATE> </STATICVARIABLES> <TDL> <TDLMESSAGE> <REPORT NAME="StockItem Details"> <FORMS>StockItem Details</FORMS> <TITLE>StockItem Details</TITLE> </REPORT> <FORM NAME="StockItem Details"> <TOPPARTS>StockItem Details Part</TOPPARTS> <XMLTAG>"ENVELOPE"</XMLTAG> </FORM> <PART NAME="StockItem Details Part"> <TOPLINES>StockItem Details Line Title, StockItem Details Details </TOPLINES> <REPEAT>StockItem Details Details : MainStockItemCol1</REPEAT> <SCROLLED>Vertical</SCROLLED> <COMMONBORDERS>Yes</COMMONBORDERS> </PART> <LINE NAME="StockItem Details Line Title"> <USE>StockItem Details Details</USE> </LINE> <LINE NAME="StockItem Details Details"> <LEFTFIELDS>Name</LEFTFIELDS> <RIGHTFIELDS>StockGodown,ISMGF</RIGHTFIELDS> <XMLTAG>STOCKDETAILS</XMLTAG> </LINE> <FIELD NAME="Name"> <USE>Name Field</USE> <SET>$Name</SET> </FIELD> <FIELD NAME="StockGodown"> <USE>Name Field</USE> <SET>$BATCHALLOCATIONS.GODOWNNAME</SET> </FIELD> <FIELD NAME="ISMGF"> <USE>Name Field</USE> <SET>@@ItemHasBoM</SET> </FIELD> <COLLECTION NAME="MainStockItemCol1" ISMODIFY="No"> <TYPE>StockItem</TYPE> <Fetch>.*.</Fetch> </COLLECTION> </TDLMESSAGE> </TDL> </DESC> </BODY> </ENVELOPE>