اوراکل اپکس و ایجاد فرم های Master-Detail-Detail

اوراکل اپکس و ایجاد فرم های Master-Detail-Detail

یکی از نیازهای اساسی برای تولید سیستم های عملیاتی امکان ایجاد فرم های موسوم به Master Detail Detail  است. در اوراکل اپکس، برای ایجاد Detail جدول Master از فرمی موسوم به Tabular استفاده می شود. این هفته، حین آموزش مبحث فرم های Tabular در شرکت خودروسازی سایپا، با یکی از سوالاتی که دغدغه بسیاری از دوستان و دانشجویان گرامی در اکثر کلاس های آموزشی ام است، مواجه شدم و تصمیم گرفتم در این مقاله کمی در مورد آن توضیح دهم.

بحث مربوط به تولید فرم های Master Detail Detail به غلط به عنوان یکی از محدودیت های اوراکل اپکس مطرح شده است. زمانی که شما از ویزارد برای تولید فرم Master-Detail استفاده می نماید، اوراکل اپکس تنها یک Tabular (فرم Detail) در صفحه ایجاد می کند. اما برای ایجاد فرم های Master Detail Detail ویزاردی در اپکس تعبیه نشده است. آیا این موضوع واقعا یک محدودیت است؟

نکته دیگر، اضافه شدن ویزارد تولید فرم های Detail متعدد، در نسخه ۵ اوراکل اپکس است. بنابراین در نسخه آینده، با هدایت این ویزارد جدید و بدون استفاده از API های اپکس اقدام به ایجاد چندین فرم Detail کنید و این نوع صفحات را سریعتر ایجاد نمایید.

ویزارد اوراکل اپکس برای ایجاد چند Detail (چند فرم Tabular) در یک صفحه طراحی نشده است. بنابراین شما نمی توانید از ویزاردها که برای تولید سریعتر فرم ها به کار می روند، برای ایجاد فرم های Master-Detail-Detail-… نمایید. تاکید می کنم، این موضوع، تنها مربوط به ایجاد این نوع فرم ها (چند فرم Detail در یک صفحه) از طریق ویزارد اوراکل اپکس است. بنابراین این موضوع به هیچ عنوان بیانگر عدم امکان ایجاد چند فرم Detail در اوراکل اپکس نیست.

نکته ای که بایستی بر آن تاکید کنم این است که برنامه نویس اوراکل اپکس، می تواند با استفاده از API های موجود، به تعداد نا متنهاهی فرم Tabular (به عنوان Detail) در یک صفحه ایجاد نماید (بدون کمک گرفتن از ویزاردها). البته باید این موضوع را در نظر داشت که در صورت تولید Tabular های متعدد (فرم های Detail) در یک صفحه کلیه اعمال مربوط به DML آن ها باید توسط خود برنامه نویس پیاده سازی شود و دیگر نمی توان از Process های خاص Tabular که این اعمال را به صورت خودکار انجام می دهند، استفاده کرد. برای نمونه، مثال ساده ای از فرم های Tabular را در یک صفحه ایجاد کرده ام که از طریق لینک زیر می توانید مشاهده نمایید:

https://apex.oracle.com/pls/apex/f?p=12395:6:0::NO:RP: