मेरे पास एक डीजीवी है जो एक डेटाटेबल से जुड़ा हुआ है जो नीचे दिए गए कोड के माध्यम से पॉप्युलेट किया गया है:
Dim dt As DataTable = FetchMyDataTable(SQLQuery, ConnectionString)
Me.DataSet.Table.Rows.Clear()
For Each dr As DataRow In dt.Rows
Dim cost As Double = dr("cost")
सभी मानों को एक वेरिएबल में सहेजा जाता है, फिर वेरिएबल्स को सीधे डेटाटेबल में फ़ील्ड में असाइन किया जाता है या गणना में उपयोग किया जाता है जिसे सीडीबीएल () के रूप में लपेटा जाता है:
Dim rw As DataRow = Me.DataSet.Table.NewRow
rw("cost") = cost
या
rw("nett") = CDbl(Math.Round((cost + varaiable1 + varaiable2) * (1 + (varaiable3/ 100)), 2))
DGV में फ़ील्ड को मान के बाद सही चिह्न की आवश्यकता होती है और यह या तो % या £ होता है:
rw("cost") = "£ " & rw("cost")
या
rw("profit") = rw("profit") & " %"
मेरे पास दो विधियां हैं जहां एक डीजीवी में सभी मूल्यों पर संकेत जोड़ता है और दूसरा जो हटा देता है। उपयोगकर्ता द्वारा DGV में मान बदलने के बाद और AddSigns() करने के बाद मैं कोई भी पुनर्गणना करने से पहले RemoveSigns() निष्पादित करता हूं।
अब DGV में फ़ील्ड DataGridViewAutoFilterTextBoxColumn कॉलम प्रकार हैं, चाहे वह कुछ भी अनिश्चित को प्रभावित करता हो, लेकिन जब मैं किसी एक कॉलम को सॉर्ट करने का प्रयास करता हूं तो वे प्रॉपर को सॉर्ट नहीं करते हैं, उदा। मूल्य £ 8.40 £ 90.20 से ऊपर होगा और फिर नीचे £ -12.00 होगा। मुझे इसकी आवश्यकता है इसलिए यह क्रमबद्ध होगा ताकि यदि आरोही पहले नकारात्मक हो और फिर मूल्य ऊपर जा रहा हो और यदि अवरोही हो तो उच्चतम मूल्य और नकारात्मक पर समाप्त हो।
संपादित करें: मेरा मानना है कि ऐसा इसलिए हो सकता है क्योंकि डेटासेट.टेबल जिसमें डीजीवी बाध्य है, में कॉलम स्ट्रिंग्स के लिए कॉन्फ़िगर किए गए हैं, न कि डबल्स। जब मैं उन्हें डबल्स होने के लिए अद्यतन करता हूं तो मैं फ़ील्ड में £ और% चिह्न जोड़ने में असमर्थ हूं। क्या मैं यहां के बाद जो हासिल कर रहा हूं उसे हासिल करने का कोई और तरीका है?
1 उत्तर
@Jimi की टिप्पणी समस्या का समाधान साबित हुई -
आपको प्रतीकों को जोड़ने की आवश्यकता नहीं है, आपको डबल (या दशमलव) फ़ील्ड की आवश्यकता है और आउटपुट को अपनी पसंद के अनुसार प्रारूपित करने के लिए DataGridView.CellFormatting ईवेंट का उपयोग करें। आप [DataGridViewTextBoxColumn] का भी उपयोग कर सकते हैं। संपत्ति को प्रारूपित करें। महत्वपूर्ण यह है कि आपका डेटा सही प्रारूप में संग्रहीत है। उपयोगकर्ता की आवश्यकताओं के आधार पर प्रस्तुति (यूआई में प्रदान किए गए मान) को जरूरत पड़ने पर नियंत्रित किया जा सकता है (उदाहरण के लिए, उपयोगकर्ता £ के बजाय $ या € की अपेक्षा कर सकता है, इसलिए आपको मुद्रा रूपांतरण टूल की भी आवश्यकता है। ये निश्चित रूप से नहीं होंगे स्वरूपित तारों पर काम करते हैं)। साथ ही, डेटा को सॉर्ट करें, नियंत्रण नहीं।
संबंधित सवाल
नए सवाल
vb.net
Visual Basic.NET (VB.NET) एक बहु-प्रतिमान, प्रबंधित, प्रकार-सुरक्षित, ऑब्जेक्ट-उन्मुख कंप्यूटर प्रोग्रामिंग भाषा है। C # और F # के साथ, यह .NET फ्रेमवर्क को लक्षित करने वाली मुख्य भाषाओं में से एक है। VB.NET को Microsoft के Visual Basic 6 (VB6) के विकास के रूप में देखा जा सकता है लेकिन Microsoft .NET फ्रेमवर्क पर लागू किया जा सकता है। VB6, VBA या VBScript प्रश्नों के लिए इस टैग का उपयोग न करें।
Format = "C"
या"C2"
सेट करें यदि आप इसे सिस्टम सेटिंग पर भरोसा करने के बजाय दो दशमलव स्थानों पर मजबूर करना चाहते हैं। देखें मानक संख्यात्मक प्रारूप स्ट्रिंग्स.