কম্পিউটার টিউটোরিয়াল

APP_MULTI প্যাকেজ ব্যবহার করে Oracle Forms-এ মাল্টি-সিলেকশন যোগ করুন

ভূমিকা

Oracle® APP_MULTI প্যাকেজ আপনাকে একটি ফর্মে মাল্টি-সিলেকশন ফাংশনালিটি যোগ করতে সক্ষম করে। এই অপশনটি APPCORE লাইব্রেরিতে উপলব্ধ।

APP_MULTI প্যাকেজ ব্যবহার করে, আপনি একক বা একাধিক 레코ড সিলেক্ট করতে পারেন এবং প্রয়োজন অনুযায়ী সেগুলো প্রসেস করতে পারেন। নিচের ছবিটি র‍্যান্ডম রেকর্ড সিলেকশন উদাহরণ দেখায়:

APP_MULTI প্যাকেজ ব্যবহার করে Oracle Forms-এ মাল্টি-সিলেকশন যোগ করুন

ছবির উৎস: https://i36.me/images/oracle/ebs/ebs_frm_lnchse_with_app_multi_01.jpg

ফাংশনালিটি

APP_MULTI প্যাকেজ আপনাকে নিচের অ্যাকশনগুলো পারফর্ম করতে সক্ষম করে:

  • একক রেকর্ডে ক্লিক করে সেটি সিলেক্ট করুন।

  • Ctrl কী ধরে রেখে একাধিক রেকর্ডে ক্লিক করুন একই সাথে বেশ কিছু রেকর্ড সিলেক্ট করতে।

  • অ্যাপ্লিকেশন মেনু থেকে Select All বেছে নিন সব রেকর্ড সিলেক্ট করতে।

  • অ্যাপ্লিকেশন মেনু থেকে Deselect All বেছে নিন সব সিলেক্টেড রেকর্ড ডিসিলেক্ট করতে।

  • প্রথম রেকর্ডে ক্লিক করুন এবং শিফ্ট কী ধরে শেষ রেকর্ডে ক্লিক করুন একটি সিকোয়েন্সে একাধিক সन्नিহিত রেকর্ড সিলেক্ট করতে।

APP_MULTI প্যাকেজ ইভেন্ট

APP_MULTI প্যাকেজ একটি ফর্মে নিচের ইভেন্টগুলোতে প্রতিক্রিয়া জানায়:

  • KEY-CLRFRM: (ফর্ম-লেভেল) ফর্ম ক্লিয়ার করার আগে রেকর্ড যাচাই করে। উদাহরণ ব্যবহার: APP_MULTI.EVENT('KEY-CLRFRM');

  • KEY-CLRREC: (ব্লক-লেভেল) করেন্ট রেকর্ড ক্লিয়ার করার সময় ফায়ার হয়। এটি clear_record কমান্ডের সমতুল্য।

  • KEY-CREREC: (ব্লক-লেভেল) একটি নতুন রেকর্ড তৈরি করার সময় ফায়ার হয়। এটি create_record কমান্ডের সমতুল্য।

  • KEY-DELREC: (ব্লক-লেভেল) একটি বিদ্যমান রেকর্ড ডিলিট করার সময় ফায়ার হয়। এটি delete_record কমান্ডের সমতুল্য।

  • PRE-BLOCK: (ব্লক-লেভেল) আপনি একটি ব্লকে প্রবেশ করার সময় ফায়ার হয়।

  • POST-BLOCK: (ব্লক-লেভেল) আপনি একটি ব্লক থেকে বের হওয়ার সময় ফায়ার হয়।

  • SELECT_ALL: (ব্লক-লেভেল) আপনি সব রেকর্ড সিলেক্ট করার সময় ফায়ার হয়।

  • DESELECT_ALL: (ব্লক-লেভেল) আপনি সব রেকর্ড ডিসিলেক্ট করার সময় ফায়ার হয়।

  • WHEN-CLEAR-BLOCK: (ব্লক-লেভেল) আপনি ব্লক ক্লিয়ার করার সময় ফায়ার হয়।

  • WHEN-MOUSE-CLICK: (ব্লক-লেভেল) আপনি মাউস ক্লিক করার সময় ফায়ার হয়।

  • WHEN-NEW-RECORD-INSTANCE: (ব্লক-লেভেল) আপনি ব্লকে একটি রেকর্ড তৈরি বা কোয়ারি করার সময় ফায়ার হয়।

ম্যানুয়ালি ট্রিগার তৈরি করুন

আপনাকে প্রয়োজনীয় ট্রিগার তৈরি করতে হবে এবং স্পষ্টভাবে APP_MULTI.EVENT প্রসিডিউর কল করতে হবে ইভেন্টের নাম পাস করে যা হ্যান্ডল করা হচ্ছে, নিচের উদাহরণের মতো:

PROCEDURE event(p_event_name VARCHAR2,p_blockname VARCHAR2 DEFAULT NULL); 

উদাহরণস্বরূপ, KEY-CLRREC ট্রিগার নিচের কমান্ড চেয়ে সহজ হতে পারে:

APP_MULTI.EVENT('KEY-CLRREC'); 

দ্রষ্টব্য: প্রসিডিউরটি একটি অপশনাল আর্গুমেন্ট p_blockname গ্রহণ করে। আপনি যদি p_blockname পাস না করেন, তবে প্রসিডিউর SYSTEM.TRIGGER_BLOCK-এর মান ব্যবহার করে।

সিলেকশন এবং ডিসিলেকশন ইভেন্ট

যখন আপনি কাস্টম MULTI_RETURN_ACTION ট্রিগার ইমপ্লিমেন্ট করেন (একই ডেটা ব্লকে বা ফর্মের টপ-লেভেলে), তখন সিস্টেম আপনাকে রেকর্ড সিলেকশন এবং ডিসিলেকশন সম্পর্কে নোটিফাই করে। ট্রিগারটি প্রতিটি ইনডিভিজুয়াল বা বাল্ক রেকর্ড সিলেকশন বা ডিসিলেকশনের পর ফায়ার হয়।

ট্রিগার ভেরিয়েবল

আপনি ট্রিগারগুলোতে নিচের ভেরিয়েবলগুলো ব্যবহার করতে পারেন:

  • GLOBAL.APPCORE_MULTI_BLOCK গ্লোবাল: রেকর্ড সিলেকশন বা ডিসিলেকশন দ্বারা প্রভাবিত ডেটা ব্লকের নাম থাকে।

  • GLOBAL.APPCORE_MULTI_ACTION গ্লোবাল: নিচের যেকোনো মান থাকতে পারে:

    - **'RECORD\_SELECTED'**: যখন একটি রেকর্ড সিলেক্ট করা হয়
    - **'RECORD\_DESELECTED'**: যখন একটি রেকর্ড ডিসিলেক্ট করা হয়
    - **'LABEL\_CHANGE'**: যখন **Select All** বা **Deselect All** মেনু আইটেম সক্ষম বা নিষ্ক্রিয় করা হয় 

  • APP_MULTI.LOOPING প্যাকেজ ভেরিয়েবল: TRUE বা FALSE মান থাকে, নির্ভর করে যে আপনি MULTI_RECORD_ACTION কে একটি লুপের মধ্যে কল করেছেন কিনা।

ফর্মে সিলেক্ট করা ডেটা রিট্রিভ করুন

প্রতিটি ডেটা ব্লকের জন্য, APP_MULTI প্যাকেজে একটি রেকর্ড গ্রুপ থাকে বর্তমানে সিলেক্ট করা রেকর্ডের রেকর্ড নম্বর সহ।

ডেটা ব্লকের নাম প্রদান করে আপনি নিচের কাজগুলো পারফর্ম করতে পারেন:

  • একটি নির্দিষ্ট ডেটা ব্লকের জন্য একটি রেকর্ড গ্রুপের Only কলাম অ্যাক্সেস করতে **APP_MULTI.GET_GROUP_COL** ফাংশন ব্যবহার করুন।

  • সিলেক্ট করা রেকর্ডের সংখ্যা পেতে APP_MULTI.GET_GROUP_COUNT ব্যবহার করুন।

উদাহরণস্বরূপ, একটি ডিসক্রিট জবস ফর্ম দেওয়া, ব্লক W_JOBS, এবং একটি ফিল্ড, WIP_ENTITY_ID, আপনি নিচের PL/SQL কোড ব্যবহার করে সিলেক্ট করা জবের আইডিগুলো প্রিন্ট করতে পারেন:

DECLARE
 record_number_column groupcolumn;
 selected_record_count NUMBER;
BEGIN
 record_number_column := app_multi.get_group_col ('W_JOBS');
 selected_record_count :=app_multi.get_group_count ('W_JOBS');
 FOR i IN 1 .. selected_record_count LOOP
 DECLARE
 record_number NUMBER;
 v_wip_entity_id NUMBER;
 BEGIN
 record_number := GET_GROUP_NUMBER_CELL (record_number_column, i);
 GO_RECORD (record_number);
 v_wip_entity_id := NAME_IN ('W_JOBS.WIP_ENTITY_ID');
 fnd_message.debug ( 'v_wip_entity_id' || v_wip_entity_id);
 EXCEPTION
 WHEN OTHERS THEN Null;
 END;
 END LOOP;
END; 

উপসংহার

APP_MULTI প্যাকেজের সাথে, আপনি কাস্টম Oracle ফর্মে বাল্ক ডেটা প্রসেস করতে পারেন। এই প্যাকেজ আপনাকে স্ট্যান্ডার্ড ফর্মে একটি ইউজার দ্বারা সিলেক্ট করা বাল্ক ডেটার ডিটেইল পেতে দেয়। আপনি ফর্ম পার্সোনালাইজেশন বা custom.pll কোডে এটি ব্যবহার করতে পারেন একটি স্ট্যান্ডার্ড Oracle ফর্মে কাস্টম ফাংশনালিটি যোগ করতে।

ফিডব্যাক ট্যাব ব্যবহার করে যেকোনো মন্তব্য বা প্রশ্ন করুন। আপনি এখন চ্যাট শুরু করতে পারেন।

ডেটাবেস সম্পর্কে আরও জানুন।

  1. Oracle External Tables ব্যবহার করে দক্ষ ডেটা অ্যাক্সেসের পদ্ধতি

  2. Oracle Refreshable Clones মাস্টার করুন: 18c PDB-এর জন্য ধাপে ধাপে ডেমো

  3. Oracle 18c Refreshable Clones মাস্টার করুন: একটি বIgineার গাইড

  4. স্ক্রিন অফ থাকলে Google Assistant ব্যবহার করুন: দ্রুত ও সহজ পদ্ধতি