2012-06-29 11 views
6

मैं axapta में किसी फ़ॉर्म के बीच एक पैरामीटर कैसे पास कर सकता हूं? मैं एक फॉर्म ए में क्लिक किए गए बटन ईवेंट से एक फॉर्म बी चलाने और पास करना चाहता हूं ... उदाहरण के लिए ग्राहक आईडी? मैं इसे गंतव्य फॉर्म में कैसे पढ़ सकता हूं, शायद init विधि में? धन्यवादएक्सप्टा में दो रूपों के बीच पैरामीटर कैसे पास करें?

उत्तर

12

1 विधि

सबसे आसान तरीका मौजूदा रिकॉर्ड पारित करने के लिए है। उदाहरण के लिए बटन कंट्रोल के डेटासोर्स वैल्यू को केवल कस्टटेबल में बदलें यदि कस्टटेबल मौजूदा फॉर्म डेटा स्रोतों में है। फिर गंतव्य में प्रपत्र init विधि:

public void init() 
{ 
    CustTable cTable; 
    ; 
    super(); 

    // Check for passed arguments 
    if(element.args()) 
    { 
     // get record parameter 
     if(element.args().record() && element.args().record().TableId == TableNum(CustTable)) 
     { 
      cTable = element.args().record();    
     } 
    } 
} 

2 विधि

आप अभी भी ठीक एक मूल्य .parm (पारित की जरूरत है) (या अधिक जटिल वस्तु .parmObject()) आप overiding स्रोत प्रपत्र की यह कर सकते हैं बटन नियंत्रण क्लिक किया विधि:

void clicked() 
{ 
    // Args class is usually used in Axapta for passing parameters between forms 
    Args   args; 
    FormRun   formRun; 
    ; 

    args = new args(); 

    // Our values which we want to pass to FormB 
    // If we want pass just simple string we can use 'parm' method of 'Args' class 
    args.parm("anyStringValue"); 

    // Run FormB 
    args.name(formstr(FormB)); 
    formRun = classFactory.formRunClass(Args); 
    formRun.init(); 
    formrun.run(); 
    formrun.wait(); 

    super(); 
} 
फिर गंतव्य प्रपत्र init में

:

public void init() 
{ 
    str    anyStringValueFromCaller; 
    ; 
    super(); 

    // Check for passed arguments 
    if(element.args()) 
    { 
     // get string parameter 
     anyStringValueFromCaller = element.args().parm(); 

    } 
} 

मुझे निश्चित रूप से केवल पहली विधि का उपयोग करना चाहिए और केवल विशेष परिस्थितियों में बटन क्लिक विधि को ओवरराइड करने के साथ # 2 विधि के साथ जाना होगा क्योंकि यह फ़ॉर्म के बीच मानों को पारित करने के लिए डिफ़ॉल्ट पैटर्न में से एक है। अधिक जटिल उदाहरण AxaptaPedia.com Passing values between forms

पर उपलब्ध है
संबंधित मुद्दे