

جدا سازی روز، ماه و سال:
در مثال فوق، اگر List Box بنام DateSh را در نظر بگیریم، با استفاده از اسکریپ های زیر می توان روز، ماه و سال را در List Box های جداگانه نمایش داد:
یادآوری: پس از نوشتن اسکریپ ها، باید آن را ابتدا Save و سپس Reload کنیم.
نکته: از Text Object ها می توان برای ایجاد Help بهره گرفت.
نکته: Concat در کلیک ویو با کاراکتر & انجام می پذیرد. مثال:
روش دیگر برای جدا سازی روز، ماه و سال در List Box های جداگانه، استفاده از تابع SubField است. در این تابع هر رشته از سمت چپ پیش از یک کاراکتر جداکننده، یک جزء واحد دیده می شود و یک عدد بخود می گیرد. مثلا” در تاریخ ۱۳۹۶/۰۳/۲۱، رشته ۱۳۹۶، ارزش ۱، رشته ۰۳، ارزش ۲، و رشته ۲۱ ارزش ۳ را دارد بنابراین در این تابع، جدول هدف، کاراکتر جداکننده و ارزش رشته به عنوان ورودی داده می شود:
(SubField(DateSh,’/’,۱
معادل سال است.
نکته: باید توجه داشت که هنگام واگذاری اسامی به فیلدها، این اسامی قبلا” به فیلدهای دیگر واگذار نشده باشد به عبارت دیگر، تکراری نباشد.
تابع Replace:
از این تابع، برای جایگزینی یک کاراکتر یا یک مقدار با کاراکتر یا مقدار مورد نظر در یک جدول استفاده می گردد:
,Replace(DateSh,’/’,’-‘) as NewDate
در مثال فوق در جدول DateSh، کاراکتر – جایگزین کاراکتر / می گردد و مقادیر جدید تحت عنوان یک فیلد جدید به نام NewDate قرار می گیرند.
نکته: تمام دستوراتی را که می خواهیم در کلیک ویو اعمال شود، در قسمت بالای From، یعنی قسمت بالای آدرس دهی Data Source، نوشته می شود:
در شکل فوق، مقادیر ماه به صورت عددی نمایش داده شده اند. برای تغییر ماه از اعداد به نام ماه، از Inline استفاده می نماییم. به این منظور در محیط Edit Script، یک Inline به شیوه زیر، load می کنیم:
و سپس بر روی OK و بعد از آن، Reload، کلیک می کنیم
نکته: باید دقت کرد که برای برقراری Relationship میان جدول Inline و جدول Load شده از یک Data Source، باید فیلد مشترک وجود داشته باشد و در صورت Qualify نمودن جداول، باید آن فیلد مشترک در لیست Unqualify قرار بگیرد.
برای اضافه کردن فصول، Inline ایجاد شده در مرحله قبل را به شیوه زیر Edit می نماییم:
نکته: میان Relation های جداول Load شده در کلیک ویو، نباید Loop وجود داشته باشد که در این صورت، هنگام Reload با پیغام خطا مواجه خواهیم شد.
ایجاد Loop در ارتباطات میان جداول Circular Reference نامیده می گردد.
اضافه کردن جداول Inline، ممکن است سبب ایجاد Loop شود. برای جلوگیری از این مسئله:
اولا” هر جدول Inline باید تنها از دو ستون تشکیل شده باشد که یک ستون از فیلد و مقادیر مشترک با جدول Load شده مورد نظر تشکیل شده است و یک ستون از فیلد و مقادیر متناظر مورد نظر تشکیل می شود:
ثانیا” باید از تابع Apply map استفاده نماییم. برای اجرای Apply map، پس از ایجاد یا اصلاح جدول Inline به شیوه ای که در بالا ذکر شد، به شیوه زیر عمل می کنیم:
الف- از کلمه کلیدی mapping پیش از Load جدول Inline استفاده می نماییم:
ب- در آن جدول Load شده که می خواهیم از mapping در آن استفاده کنیم. در انتهای خطوط اسکریپ مربوط به آن جدول، تابع ApplyMap را به شیوه زیر اضافه می کنیم:
,ApplyMap(‘MomthTbl’,mid(DateSh,6,2)) as MnyName
|