acumatica
सशर्त रूप से छिपने वाले टैब
खोज…
परिचय
इस विषय में आप Acumatica में डेटा एंट्री स्क्रीन पर सशर्त रूप से छिपाने वाले टैब के दो दृष्टिकोणों का पता लगाएंगे।
Aspx में PXTab कंट्रोल की विज़िबलएक्सप प्रॉपर्टी
VisibleExp प्रॉपर्टी एक बूलियन अभिव्यक्ति है, जो निर्धारित करती है कि दिया गया टैब दिखाई दे रहा है (जब तार्किक अभिव्यक्ति TRUE है) या छिपी हुई है। आप Aspx पृष्ठ में PXTab नियंत्रणों के लिए VisibleExp गुण निर्दिष्ट करते हैं:
<px:PXTabItem Text="Credit Card Processing Info" BindingContext="form"
VisibleExp="DataControls["chkIsCCPayment"].Value = 1">
VisibleExp पीएक्सटैब नियंत्रण के बाइंडिंगकोटेक्स्ट संपत्ति में निर्दिष्ट आईडी के साथ कंटेनर के भीतर रखे गए इनपुट नियंत्रण से बना है। आपको एक से अधिक कंटेनर से इनपुट नियंत्रण का उपयोग करने की अनुमति नहीं है। एक विशिष्ट इनपुट नियंत्रण तक पहुँच इसकी ID द्वारा DataControls
शब्दकोश के माध्यम से प्रदान की जाती है, DAC फ़ील्ड का नाम नहीं।
आमतौर पर VisibleExp संपत्ति का उपयोग हार्डकोड किए गए इनपुट नियंत्रण मूल्यों के साथ काफी सरल बूलियन अभिव्यक्तियों को बनाने के लिए किया जाता है, जो समय के साथ बदलने की संभावना नहीं है। उदाहरण के लिए, ट्रांसफर ऑर्डर के आदेशों के लिए भुगतान सेटिंग टैब को छिपाने के लिए बिक्री आदेश स्क्रीन (SO.30.10.00) पर निम्न अभिव्यक्ति का उपयोग किया जाता है:
<px:PXTabItem Text="Payment Settings"
VisibleExp="DataControls["edOrderType"].Value!=TR" BindingContext="form">
नए स्टेटस के साथ लीड्स के लिए एक्टिविटी टैब छिपाने के लिए
फार्म के लिए नेतृत्व स्क्रीन (CR.30.10.00), सेट BindingContext संपत्ति से छिपाने क्रियाएँ टैब (शीर्ष स्तर के लीड सारांश फ़ॉर्म आईडी रखती है) और सीसा स्थिति खुला है अगर VisibleExp परिभाषित FALSE वापस जाने के लिए (स्थिति लटकती रखती edStatus आईडी) :
<px:PXTabItem Text="Activities" LoadOnDemand="True"
BindingContext="form" VisibleExp="DataControls["edStatus"].Value != H">
डेटा दृश्य पर अनुमति संपत्ति
Aspx में परिभाषित VisibleExp गुण के विपरीत, आप BLC या BST एक्सटेंशन कोड हालांकि डेटा दृश्य की AllowSelect संपत्ति में हेरफेर करते हैं। AllowSelect संपत्ति अधिक जटिल बूलियन अभिव्यक्तियों ( VisibleExp संपत्ति की तुलना में) का उपयोग करना संभव बनाती है और, यदि आवश्यक हो, डेटाबेस या अन्य स्रोतों से अतिरिक्त जानकारी प्राप्त करने के लिए वेब पेज पर उपलब्ध नहीं है।
भत्ता संपत्ति के साथ काम करने के लिए नीचे 3 सबसे आम परिदृश्य हैं:
कैश सेल और कैश रिटर्न प्रकारों के चालान के लिए एप्लिकेशन टैब छिपाने के लिए शीर्ष-स्तरीय इकाई के लिए पंक्तिबद्ध इवेंट हैंडलर:
public class SOInvoiceEntry : ARInvoiceEntry { ... protected override void ARInvoice_RowSelected(PXCache cache, PXRowSelectedEventArgs e) { ... Adjustments.AllowSelect = doc.DocType != ARDocType.CashSale && doc.DocType != ARDocType.CashReturn; } ... }
बीएलसी निर्माता दिखाने के लिए आइटम गोदाम विवरण स्क्रीन केवल जब दोनों सूची पुनःपूर्ति और इन्वेंटरी Subitems सुविधाएं सक्रिय हैं पर सब आइटम पुनःपूर्ति जानकारी टैब:
public class INItemSiteMaint : PXGraph<INItemSiteMaint, INItemSite> { ... public INItemSiteMaint() { ... bool enableSubItemReplenishment = PXAccess.FeatureInstalled<FeaturesSet.replenishment>() && PXAccess.FeatureInstalled<FeaturesSet.subItem>(); subitemrecords.AllowSelect = enableSubItemReplenishment; } ... }
मूल्यह्रास के इतिहास टैब को छिपाने के लिए शीर्ष-स्तरीय इकाई के लिए पंक्तिबद्ध हैंडलर तब तक जब तक कि वर्तमान संपत्ति मूल्यह्रास योग्य न हो और मूल्यह्रास का इतिहास देखें , पक्ष द्वारा निर्धारित संपत्ति पक्ष में निर्धारित किया जाता है :
public class AssetMaint : PXGraph<AssetMaint, FixedAsset> { ... protected virtual void FixedAsset_RowSelected(PXCache sender, PXRowSelectedEventArgs e) { ... AssetHistory.AllowSelect = asset.Depreciable == true && fasetup.Current.DeprHistoryView == FASetup.deprHistoryView.SideBySide; } ... }
जब भी BLC या BLC एक्सटेंशन कोड को टैब की दृश्यता को सशर्त रूप से बदलने के लिए हर बार AllowSelect संपत्ति का उपयोग किया जाता है, तो आपको इसके लिए PXTab कंटेनर के लिए Aspx में झूठे के लिए RepaintOnDemand गुण सेट करना होगा:
<px:PXTabItem Text="Depreciation History" RepaintOnDemand="false">
RepaintOnDemand गुण डिफ़ॉल्ट रूप से सत्य है। यह गुण PXTab कंटेनर के आरंभीकरण को नियंत्रित करता है: जब सही पर सेट होता है , तब तक PXTab को प्रारंभ नहीं किया जाएगा, जब तक कि यह उपयोगकर्ता द्वारा चयनित न हो। जाहिर है आप गलत पर RepaintOnDemand सेट की जरूरत के बावजूद है कि क्या यह चयनित किया गया था या नहीं दिया PXTab कंटेनर की उचित व्यवहार की गारंटी है।
स्टॉक आइटम के लिए क्रॉस-संदर्भ टैब छिपाने के लिए जिसे बेचा नहीं जा सकता है
कोई बिक्री स्थिति वाले आइटम के लिए स्टॉक आइटम स्क्रीन (IN.20.25.00) से क्रॉस-संदर्भ टैब को छिपाने के लिए, निम्नानुसार आगे बढ़ें:
InventoryItem_Row सेलेक्ट किए गए हैंडलर को InventoryItemMaint BLC एक्सटेंशन में लागू करने के लिए, अगर आइटम की स्थिति नो सेल्स पर सेट की गई थी, तो
itemxrefrecords
डेटा दृश्य के लिए झूठी संपत्ति सेट करने के लिए एक्सटेंशन सेट करें।public class InventoryItemMaintExt : PXGraphExtension<InventoryItemMaint> { protected void InventoryItem_RowSelected(PXCache sender, PXRowSelectedEventArgs e) { InventoryItem item = (InventoryItem)e.Row; if (item == null) return; Base.itemxrefrecords.AllowSelect = (item.ItemStatus != InventoryItemStatus.NoSales); } }
अनुकूलन प्रबंधक, परस्पर-संदर्भ टैब के लिए गलत पर सेट RepaintOnDemand संपत्ति में और अनुकूलन प्रकाशित:
आपके द्वारा ऊपर दिए गए 2 बिलकुल सरल चरणों को पूरा करने के बाद, क्रॉस-रेफरेंस टैब स्टॉक सेल्स के लिए एक्सेस नहीं होना चाहिए, जिसकी बिक्री स्थिति नहीं है :
निष्क्रिय स्टॉक आइटम के लिए विशेषताएँ टैब छिपाने के लिए
सशर्त रूप से छिपाने के लिए ** स्टॉक आइटम स्क्रीन (**.20.25.00) से ** टैब, निम्नानुसार आगे बढ़ें:
InventoryItem_RowSelected हैंडलर को InventoryItemMaint BLC एक्सटेंशन में कार्यान्वित करना, AllowSelect प्रॉपर्टी को
Answers
औरCategory
डेटा दृश्यों के लिए गलत करने के लिए सेट करें यदि आइटम स्थिति Inactive पर सेट की गई थी। यह भी देखें कि CESAttached हैंडलर द्वाराInventoryItem.ImageUrl
फ़ील्ड में जोड़े गएPXUIFieldAttribute
लिए झूठी दिखाई देने वाली दृश्यमान संपत्ति:public class InventoryItemMaintExt : PXGraphExtension<InventoryItemMaint> { protected void InventoryItem_RowSelected(PXCache sender, PXRowSelectedEventArgs e) { InventoryItem item = (InventoryItem)e.Row; if (item == null) return; bool showAttributesTab = item.ItemStatus != InventoryItemStatus.Inactive; Base.Answers.AllowSelect = Base.Category.AllowSelect = showAttributesTab; PXUIFieldAttribute.SetVisible<InventoryItem.imageUrl>(sender, item, showAttributesTab); } [PXMergeAttributes(Method = MergeMethod.Append)] [PXUIField(DisplayName = "Image")] protected void InventoryItem_ImageURL_CacheAttached(PXCache sender) { } }
अनुकूलन प्रबंधक में, सेट गलत पर संपत्ति RepaintOnDemand गुण के लिए टैब और प्रकाशित अनुकूलन:
आपके द्वारा 2 चरणों के ऊपर पूरा करने के बाद, विशेषता टैब स्टॉक आइटम के लिए निष्क्रिय स्थिति के साथ सुलभ नहीं होना चाहिए: