SAP Netweaver As ABAP Release 752 ، © Copyright 2017 SAP AG. کلیه حقوق محفوظ است.
جدول را بخوانید - free_key
یک کلید جستجوی رایگان را مشخص می کند. کلید جستجوی رایگان را می توان آزادانه تعریف کرد یا با مشخصات یک کلید جدول ثانویه در Keyname مرتبط شد.
- عبارات جدول امکان خواندن را در موقعیت های عملیاتی نیز انجام می دهد. جستجوی کلید رایگان هر زمان که مؤلفه ها بدون یک کلید صریح مشخص شود ، استفاده می شود.
بشربا کلید comp1 = operand1 comp2 = operand2.[جستجوی باینری].
اجزای COMP1 COMP2. می تواند به عنوان کلیدهای جستجو پس از افزودن با کلید ، پیروی از قوانین در اینجا مشخص شود. Operand Operand1 Operand2. به هر یک از این کلیدهای جستجو اختصاص داده شده است و باید با نوع داده مؤلفه (یا قابل تبدیل به این نوع داده) سازگار باشد. هیچ مشخصه کلیدی تکراری یا همپوشانی نمی تواند ارائه شود.
Operand1 operand2. موقعیت های بیان عمومی هستند. در صورت لزوم ، محتوای عملگر قبل از مقایسه به نوع داده اجزای سازنده تبدیل می شود. اگر یک عبارت حسابی مشخص شود ، نوع محاسبه از عملیات آن تعیین می شود و نوع داده مؤلفه و نتیجه ، در صورت لزوم ، به نوع داده مؤلفه تبدیل می شود.
ردیف اول جدول داخلی در جستجوی مقادیر آن در اجزای مشخص شده (یا زیرگروه یا ویژگی های آنها) است که مقادیر موجود در Operand1 Operand2 را با مقادیر اختصاص داده شده مطابقت می دهد.
جستجو به شرح زیر برای دسته های جداگانه جدول ، بدون جستجوی باینری مشخص شده است:
- جداول استاندارد به صورت خطی جستجو می شود.
اگر قسمت نام یک مؤلفه کامپوننت اولیه باشد ، ردیف اول که با کلید جستجو مطابقت دارد خوانده می شود. اگر تمام قسمتهای نام اولیه باشد ، ردیف اول جدول داخلی خوانده می شود.
هنگامی که یک ردیف پیدا شد ، System Field Sy-Tabix مطابق با دسته جدول تنظیم شده است:
- برای جداول شاخص ، روی تعداد ردیف های موجود در فهرست جدول اصلی تنظیم شده است
اگر هیچ ردیفی پیدا نشود ، SY-TABIX تعریف نشده است (-1) ، به استثنای زمانی که کلید جدول کامل یا جستجوی باینری اضافی در یک جدول مرتب شده مشخص شده است. در این حالت ، SY-TABIX روی شماره ردیف ورودی در شاخص جدول اصلی قرار دارد که جلوی آن ردیف با استفاده از درج قرار می گیرد. فهرست مطالب .، برای حفظ مرتب سازی.
- اگر نوع ردیف جدول داخلی از نظر آماری مشخص نباشد ، مؤلفه های کلید جستجو فقط می توانند به صورت پویا مشخص شوند و به طور مستقیم.
جدول داخلی HTML_VIEWER_TAB شامل منابع مربوط به کنترل HTML است. در بیانیه خوانده شده ، مرجعی را که به کنترل HTML در یک کنترل خاص کانتینر اشاره دارد ، می خواند.
داده ها: نوع کانتینر Ref به cl_gui_container ، html_viewer نوع ref به cl_gui_html_viewer.
داده ها html_viewer_tab مانند جدول html_viewer با کلید خالی.
ایجاد شیء html_viewer صادرات والدین = کانتینر.html_VIEWER را به html_viewer_tab اضافه کنید.
READ TABLE html_viewer_tab WITH KEY table_line>والدین = کانتینر به html_viewer.
جستجوی باینری اضافی ، یک جستجوی باینری از جدول را ایجاد می کند ، نه خطی. در مورد جداول بزرگ (از تقریباً 100 ورودی) ، این می تواند زمان اجرا را به میزان قابل توجهی کاهش دهد. با این حال ، جدول باید به ترتیب صعودی توسط مؤلفه های مشخص شده در کلید جستجو طبقه بندی شود. اولویت سفارش مرتب سازی باید دقیقاً با ترتیب اجزای موجود در کلید جستجو مطابقت داشته باشد. اگر این نیاز برآورده نشود ، معمولاً ردیف صحیح یافت نمی شود.
- جستجوی باینری اضافی برای جداول استاندارد توصیه می شود که در آن هیچ کلید جدول مرتب سازی مناسب تعریف نشده است.
- بیانیه خوانده شده همیشه از جستجوی باینری اضافی برای انجام دسترسی به فهرست استفاده می کند. بنابراین این دسترسی به شاخص فقط می تواند برای جداول با نوع مناسب استفاده شود. پارامترهای رسمی یا یک نماد میدانی باید حداقل جدول شاخص نوع عمومی داشته باشند.
بعد از مرتب سازی جدول ، یک ردیف جدول با جستجوی باینری می خواند. با این حال ، در صورت امکان sflight_tab باید به عنوان یک جدول مرتب شده ایجاد شود ، یا یک کلید ثانویه مرتب شده پس از آن داده شود (مثال زیر را ببینید).
داده SFLIGHT_TAB نوع استاندارد Sflight با کلید خالی.
SORT SFLIGHT_TAB توسط Carrid Coid fldate.
جدول SFLIGHT_TAB را با Key Carrid = 'بخوانید.'coid ='.'fldate ='.'جستجوی دودویی اختصاص میدان-نماد ().
بشربا اجزای کلید کلید comp1 = operand1 comp2 = operand2.
برای مشخص کردن یک کلید جدول می توان از Keyname استفاده کرد. همین امر در هنگام مشخص کردن مؤلفه ها مانند نوع بدون مشخص کردن کلیدها نیز صدق می کند.
اگر یک کلید جدول ثانویه در Keyname مشخص شده باشد ، رفتار به شرح زیر است:
- اگر یک کلید مرتب شده مشخص شده باشد ، کلید جستجوی مشخص شده باید یک قسمت اولیه از کلید جدول ثانویه باشد یا آن را درج کند. شاخص جدول ثانویه مرتبط سپس به صورت باینری جستجو می شود. اگر چندین ورودی هنگام استفاده از یک کلید جستجوی غیر منحصر به فرد پیدا شود ، اولین ضربه ، یعنی ردیف با کمترین شماره ردیف ، در شاخص ثانویه خوانده می شود. معیارهای جستجوی اضافی نیز می تواند مشخص شود که نیز ارزیابی می شوند.
هنگامی که یک ردیف پیدا شد ، System Field SY-TABIX با توجه به کلید جدول ثانویه مشخص شده تنظیم شده است:
- برای کلیدهای ثانویه مرتب شده ، روی تعداد ردیف یافت شده در فهرست جدول ثانویه مربوطه تنظیم می شود
اگر هیچ ردیفی پیدا نشود ، Sy-Tabix تعریف نشده است (-1) ، به جز هنگامی که به طور کامل توسط یک کلید ثانویه مرتب شده پوشانده شود. در این حالت ، SY-TABIX روی شماره ردیف ورودی در شاخص جدول ثانویه در جلوی آن قرار می گیرد که ردیف با استفاده از درج وارد می شود. فهرست مطالب .، برای حفظ مرتب سازی.
اگر کلید جدول اصلی در نام اصلی تحت عنوان Primant_Key مشخص شده باشد ، رفتار همانند در نوع بدون کلید مشخص شده است.
- هنگامی که کلیدهای رایگان مشخص شده اند ، کلیدهای جدول ثانویه با نوع جدول_ کلید (برای مشخص کردن کلید جدول) متفاوت است و می توان شرایط اضافی را در کلید جستجو مشخص کرد. این شرایط می تواند طول لیست HIT را کاهش دهد. با این حال ، برای کلیدهای مرتب سازی شده ثانویه ، کلیدهای جستجوی رایگان امکان مشخص کردن یک کلید جستجوی ناقص را فراهم می کند ، که می تواند لیست HIT را طولانی تر کند.
یک ردیف جدول را با استفاده از کلید جدول ثانویه مرتب شده DBKEY می خواند. خواندن اکنون به طور خودکار با استفاده از یک جستجوی باینری انجام می شود (مانند مثال فوق که در آن جستجوی باینری به طور صریح مشخص شده است) و یک نوع صریح لازم نیست.
Data SFLIGHT_TAB نوع استاندارد SFLIGHT با کلید خالی با کلیدهای مرتب شده DBKEY CARRID CONRID FLDATE.
جدول SFLIGHT_TAB را با اجزای کلید dbkey carrid = 'بخوانید.'coid ='.'fldate ='.'اختصاص دادن-نماد ().
برنامه DEMO_SECONDARY_KEYS مشخصات یک کلید جدول ثانویه را در مقایسه با مشخصات کاملاً رایگان یک کلید و مزایای عملکرد حاصل نشان می دهد.
فارکس به زبان ساده...
ما را در سایت فارکس به زبان ساده دنبال می کنید
برچسب :
نویسنده : طاهره ایرانی
بازدید : <-PostHit->
تاريخ : سه
شنبه
6 تير
1402 ساعت: 18:24