پرش به مطلب اصلی

ساخت یک مجموعه گزینه

هدف​

یک مجموعه گزینه بسازید — فهرستی نام‌دار از گزینه‌ها، مانند وضعیت یک فاکتور — و یک فیلد را به آن متصل کنید، تا کاربران به‌جای تایپ متن آزاد از فهرست انتخاب کنند.

پیش‌نیازها​

  • به‌عنوان سازنده‌ای که اجازهٔ ویرایش راه‌حل را دارد وارد شده‌اید.
  • یک محیط و یک راه‌حل انتخاب شده است.

گام‌ها​

  1. راه‌حل را باز کنید و در ناوبری سمت راست مجموعه‌های گزینه را انتخاب کنید.

  2. گزینهٔ جدید را انتخاب کنید.

  3. یک نام نمایشی (برای نمونه، Invoice Status) و یک نام منطقی وارد کنید. پیشوند ناشر به‌صورت برچسبی ثابت نمایش داده می‌شود — تنها بخش پس از آن را تایپ کنید (برای نمونه، invoicestatus).

  4. در صورت تمایل یک توضیح دربارهٔ کاربرد این مجموعه وارد کنید.

  5. زیر بخش گزینه‌ها، نام هر گزینه را وارد کنید (برای نمونه، Draft، Sent، Paid). برای هر گزینهٔ بعدی افزودن گزینه را انتخاب کنید. همان ترتیبی که وارد می‌کنید، ترتیبی است که کاربران می‌بینند.

  6. برای تغییر آن ترتیب، گزینه را از دستگیرهٔ ابتدای سطرش بکشید. بدون ماوس: تمرکز را روی دستگیره ببرید، با Space گزینه را بردارید، با کلیدهای جهت‌دار جابه‌جایش کنید و دوباره با Space رهایش کنید.

    جابه‌جایی هرگز شماره‌گذاری را عوض نمی‌کند: هر گزینه مقداری را که به آن اختصاص یافته نگه می‌دارد، پس رکوردهایی که پیش‌تر آن را دارند بی‌تأثیر می‌مانند.

  7. اختیاری: با نمونه‌رنگ و دکمهٔ نماد کنار نام هر گزینه، به آن رنگ و نماد بدهید. هر دو اختیاری و مستقل از یکدیگرند — یک گزینه می‌تواند رنگ داشته باشد، نماد، هر دو، یا هیچ‌کدام.

    نمونه‌رنگ یک پنل کوچک باز می‌کند: یکی از دوازده رنگ سریع را برگزینید، یا از طیف زیر آن‌ها برای هر رنگی استفاده کنید — برای سایه روی مربع و برای فام روی نوار بکشید، یا کد هگز را در جعبه بنویسید (یا بچسبانید). پاک کردن رنگ در پایین همان پنل آن را برمی‌دارد. دکمهٔ نماد، انتخابگر جست‌وجوپذیر نماد را باز می‌کند که پاک کردن نماد در پاورقی آن است. در هر دو، پاک کردن درون انتخابگر است — دیگر ✕ جداگانه‌ای کنار کنترل نیست.

  8. گزینهٔ ذخیره را انتخاب کنید. پس از ذخیره، مقدار هر گزینه کنار آن ظاهر می‌شود.

رنگ و نماد​

رنگ و نماد همان چیزی هستند که باعث می‌شوند یک وضعیت در یک نگاه خوانده شود، نه واژه به واژه: «سررسیدگذشته» به رنگ قرمز میان صد سطر، خودش را پیدا می‌کند.

این‌ها فقط نمایشی هستند. آنچه رکورد ذخیره می‌کند مقدار گزینه است، پس تغییر رنگ یک گزینه هیچ داده‌ای را دگرگون نمی‌کند و چیزی را که به آن وابسته است نمی‌شکند — و همراه راه‌حل سفر می‌کنند، پس مجموعه‌ای که به Test درون‌ریزی می‌شود همان‌طور به نظر می‌رسد که طراحی شده بود، نه ساده و بی‌رنگ.

هر جا مجموعه‌ای به هر یک از گزینه‌هایش رنگ یا نماد داده باشد، فهرست کشویی روی فرم آن‌ها را نشان می‌دهد — هم نماد و هم برچسب رنگ می‌گیرند، پس گزینه‌ای که رنگ دارد ولی نماد ندارد باز هم برجسته می‌شود. مجموعه‌ای که گزینه‌هایش هیچ‌کدام را ندارند، فهرست کشویی خودِ مرورگر را نگه می‌دارد، و همان است که روی تلفن انتخابگر همیشگی را می‌دهد.

Bind a field to the set​

  1. جدول را در جدول‌ها باز کنید و به زبانهٔ فیلدها بروید.
  2. گزینهٔ جدید را انتخاب کنید، نام نمایشی و نام منطقی فیلد را وارد کنید و نوع داده آن را روی مجموعه گزینه بگذارید.
  3. مجموعه گزینه‌ای را که مقادیر فیلد از آن می‌آید انتخاب کنید.
  4. گزینهٔ ذخیره را انتخاب کنید. فیلد بی‌درنگ فعال است.

اکنون این فیلد هرجا که روی یک فرم قرار گرفته باشد به‌صورت یک فهرست کشویی از گزینه‌های مجموعه دیده می‌شود، و نماها به‌جای مقدار ذخیره‌شده، نام گزینه را نشان می‌دهند.

پشت صحنه چه اتفاقی می‌افتد​

به هر گزینه یک مقدار داده می‌شود — عددی که پلتفرم تخصیص می‌دهد و همان چیزی است که پایگاه داده واقعاً در برابر هر رکورد ذخیره می‌کند.

این مقادیر اعدادی بزرگ‌اند که از بازه‌ای متعلق به ناشر شما آغاز می‌شوند (برای نمونه، 270150000، 270150001، …) و نه از صفر. این کار عمدی است: اگر گزینه‌های هر ناشر از صفر آغاز می‌شدند، وارد کردن راه‌حل دو ناشر به یک محیط باعث می‌شد «Draft» یک ناشر به معنای «Cancelled» ناشر دیگر باشد. دادن بازه‌ای اختصاصی به هر ناشر این را ناممکن می‌کند.

دو نتیجه از این موضوع برمی‌آید که دانستنشان ارزش دارد:

  • نمی‌توانید مقدار را تایپ کنید، و نیازی هم به آن ندارید. پلتفرم مقدار را تخصیص می‌دهد. می‌توانید آن را ببینید — اگر سامانه‌ای بیرونی دادهٔ شما را می‌خواند مهم است — اما انتخابش با شما نیست.
  • تغییر نام یک گزینه امن است. مقدار آن هرگز تغییر نمی‌کند. رکوردها مقدار را نگه می‌دارند، نه نام را، پس اصلاح «Sent» به «Issued» معنای هر رکورد موجود را دقیقاً همان‌که بوده نگه می‌دارد.

وقتی از راه‌حل خروجی گرفته و در جایی دیگر وارد می‌شود، مقادیر همراه آن سفر می‌کنند، پس محیط‌های آزمون و عملیاتی با محیط توسعه دربارهٔ معنای هر عدد هم‌نظر می‌مانند. مجموعه گزینه بخشی از بستهٔ راه‌حل است و پیش از جدول‌هایی که فیلدهایشان از آن استفاده می‌کنند وارد می‌شود — بنابراین ارتقای یک جدول دارای فیلد گزینه، گزینه‌ها را هم با خود می‌آورد، به‌جای آنکه با فیلدی که به هیچ چیز متصل نیست از راه برسد.

برای اینکه این‌ها کار کند لازم نیست مجموعه گزینه را جداگانه به راه‌حل بیفزایید: مجموعه‌ای که هنگام انتخاب‌بودن یک راه‌حل می‌سازید به همان راه‌حل تعلق دارد، درست همان‌گونه که یک جدول.

عیب‌یابی​

  • «An option set needs at least one option.» — مجموعه‌ای که هیچ‌کس نتواند از آن انتخاب کند قابل استفاده نیست. پیش از ذخیره دست‌کم یک گزینه بیفزایید.

  • «Option … appears more than once in this set.» — دو گزینه نامی یکسان دارند، که آن‌ها را برای کسی که یکی را برمی‌گزیند غیرقابل تشخیص می‌کند. یکی را تغییر نام دهید یا بردارید.

  • «Option … cannot be removed: records still hold this value.» — رکوردهایی از آن گزینه استفاده می‌کنند. نخست آن رکوردها را به گزینهٔ دیگری تغییر دهید؛ برداشتن این گزینه آن‌ها را با مقداری رها می‌کند که دیگر معنایی ندارد.

  • «Field … still uses this option set.» — فیلدی به این مجموعه متصل است. پیش از حذف مجموعه، فیلد را بردارید یا به جای دیگری متصل کنید.

  • پیام «No option sets exist yet» هنگام افزودن فیلدی از نوع مجموعه گزینه. — نخست مجموعه را بسازید؛ یک فیلد تنها می‌تواند به مجموعه‌ای متصل شود که از پیش در این محیط وجود دارد.

  • رکورد ذخیره‌شده با پیام «must be one of the … option set's values» رد می‌شود. — مقداری که نوشته می‌شود یکی از گزینه‌های مجموعه نیست. این همان جایی است که سرور مقداری را که نمی‌تواند توضیح دهد نمی‌پذیرد؛ گزینه‌ای را از فهرست کشویی برگزینید.

  • وارد کردن با پیام «targets option set … which is not in the package» ناموفق می‌شود. — جدولی در راه‌حل، فیلد گزینه‌ای دارد که مجموعه گزینهٔ آن نه در بسته است و نه از پیش در محیط مقصد. مجموعه گزینه را به راه‌حل بیفزایید و نسخهٔ تازه‌ای خروجی بگیرید. چیزی وارد نشده است، پس محیط مقصد دست‌نخورده باقی مانده است.

  • وارد کردن با پیام «…already exists here, numbered from … but the imported one is numbered from …» ناموفق می‌شود. — مقصد از پیش مجموعه‌ای با همان نام منطقی دارد، اما آن مجموعه به ناشری متفاوت تعلق دارد، پس این دو مجموعه‌ای متفاوت‌اند که تنها نامشان یکی است. این دو قابل ادغام نیستند: گزینه‌های واردشده از بازه‌ای شماره‌گذاری شده‌اند که رکوردهای موجود چیزی از آن نمی‌دانند. نام یکی از دو مجموعه را تغییر دهید، یا در محیطی وارد کنید که مجموعهٔ دیگر را ندارد.

  • وارد کردن با پیام «Option … cannot be removed: records still hold this value» ناموفق می‌شود. — مجموعهٔ واردشده دیگر گزینه‌ای را ندارد که رکوردهای این محیط هنوز از آن استفاده می‌کنند. وارد کردن، مجموعهٔ موجود را به‌روز می‌کند، اما گزینه‌ای را از زیر پای رکوردهایی که آن را نگه داشته‌اند حذف نمی‌کند. نخست آن رکوردها را به گزینهٔ دیگری تغییر دهید، یا گزینه را به مجموعه‌ای که وارد می‌شود بازگردانید.

    (مجموعه گزینه‌ای که از پیش در مقصد باشد در غیر این صورت به‌روزرسانی می‌شود، نه رد: برچسب‌ها تازه می‌شوند، گزینه‌های تازه افزوده می‌شوند و گزینه‌های برداشته‌شدهٔ بدون استفاده حذف می‌شوند. گزینه‌ها بر پایهٔ مقدار تخصیص‌یافته‌شان تطبیق داده می‌شوند، پس تغییر نام یک گزینه در مبدأ، همان گزینه را اینجا به‌روز می‌کند و گزینهٔ دومی نمی‌سازد.)

  • وارد کردن با پیام «Option value … is outside the publisher's range» ناموفق می‌شود. — تعریف، مقادیری را با خود دارد که به بازهٔ ناشری دیگر تعلق دارند، و این معمولاً یعنی فایل با دست ویرایش شده است. تخصیص مقادیر کار پلتفرم است؛ به‌جای دستکاری آن‌ها، دوباره از مجموعه خروجی بگیرید.

سناریوهای مرتبط​