2012-12-19 10 views
5

उपयोग करने के लिए सक्षम किया जा रहा मैं InventTable प्रपत्र संशोधित कर लिया है उपयोगकर्ताओं को अपने "रूका" डिफ़ॉल्ट आदेश सेटिंग सेटअप फार्म पर स्थिति के आधार पर आइटम फ़िल्टर कर सकते हैं तो । उन्हें दो चेकबॉक्स के मूल्यों के आधार पर "खरीदने योग्य" आइटम, "बिक्री योग्य" आइटम, सभी आइटम या अवरुद्ध वस्तुओं की बिक्री या खरीद के लिए एक सूची मिलती है।डायनेमिक्स कुल्हाड़ी: कोड में फार्म से अक्षम डेटा स्रोत है, जबकि उन्नत फ़िल्टर/प्रकार विकल्प

मैंने कोड में InventItemSalesSetup और InventItemPurchSetup डेटा स्रोत जोड़े हैं और जब उपयोगकर्ता चेकबॉक्स को चेक या अनचेक करता है तो मैं उन्हें सक्षम या अक्षम करता हूं।

सब कुछ ठीक काम करता है सिवाय इसके कि जब डेटा स्रोतों में से एक अक्षम हो। फिर "उन्नत फ़िल्टर/सॉर्ट" विकल्प काम करना बंद कर देता है। मुझे त्रुटि मिलती है: "डेटा स्रोत सक्षम नहीं है"।

त्रुटि SysQueryForm फ़ॉर्म के "saveCueEnabled" विधि से आता है। जब यह कहता है:

if (!CueRun::canSaveQueryAsCue(this.args().caller())) 
    return false; 

कॉल कौन सा:

static boolean canSaveQueryAsCue(QueryRun qr) 
{ 
    int numOfDataSources, i; 
    QueryBuildDataSource ds; 
    Query q; 
    Common cursor; 
    ; 

    if (!qr) 
    return false; 

    q = qr.query(); 
    if (!q) 
     return false; 

    numOfDataSources = q.dataSourceCount(); 
    for(i = 1; i <= numOfDataSources; i++) 
    { 
     ds = q.dataSourceNo(i); 
     if(ds.dynalinkCount() > 0) 
      return false; 

     // Check if it is temp 
     cursor = qr.getNo(i); 
     if (cursor.dataSource() && cursor.isTmp()) 
      return false; 
    } 

    return true; 
} 

जब यह प्रश्न में datasources की संख्या हो जाता है, "dataSourceCount" विधि को भी विकलांग डेटा स्रोतों के साथ गिनती देता है, और जब यह लूप में अक्षम डेटा स्रोतों के QueryBuildDataSource को प्राप्त करता है, आपको एक खाली डीएस मिलता है और यह जांचता है कि यह अस्थायी तालिका है या नहीं।

मैं "saveCueEnabled" कोड पर एक अतिरिक्त यदि जोड़ने समस्या हल है, लेकिन मुझे आश्चर्य है कि वहाँ सक्षम/यह त्रुटि मिलती बिना डेटा स्रोतों को निष्क्रिय करने का कोई तरीका है।

मुझे उम्मीद है कि मैंने खुद को अच्छी तरह से समझाया है, धन्यवाद!

उत्तर

4

एकमात्र समाधान जिसके साथ मैं आ सकता हूं, आपको canSaveQueryAsQue() को संशोधित करने की आवश्यकता है।

पाश के लिए के लिए यह अद्यतन आसान है और आपकी समस्या का समाधान करना चाहिए।

for(i = 1; i <= numOfDataSources; i++) 
{ 
    ds = q.dataSourceNo(i); 
    if(ds && ds.dynalinkCount() > 0) 
     return false; 

    // Check if it is temp 
    cursor = qr.getNo(i); 
    if (cursor.dataSource() && cursor.isTmp()) 
     return false; 
} 

मैंने इस कोड का परीक्षण नहीं किया है, लेकिन मैंने अन्य स्थितियों में समान कोड का उपयोग किया है। उम्मीद है की वो मदद करदे!

+0

मुझे लगता है कि काम करना चाहिए। धन्यवाद, अगर मैं कभी इस समस्या के साथ फिर से आऊंगा तो मैं कोशिश करूंगा। –

0

सुझाव संपादित वास्तव में काम नहीं करता है, क्योंकि 'डी एस' चर अभी भी है 'truthy' जब परीक्षण किया गया।

निम्नलिखित काम करने के लिए लगता है:

for(i = 1; i <= numOfDataSources; i++) 
{ 
    ds = q.dataSourceNo(i); 
    if(ds.enabled() && ds.dynalinkCount() > 0) 
     return false; 

    // Check if it is temp 
    if(ds.enabled()) 
    { 
     cursor = qr.getNo(i); 
     if (cursor.dataSource() && cursor.isTmp()) 
      return false; 
    } 
} 

'.enabled()' परीक्षण करने के लिए संपत्ति जोड़ना कोड विकलांग डेटा स्रोतों से अधिक छोड़ के रूप में अनुरोध की अनुमति देता है।

संबंधित मुद्दे