عنوان:

‫گروه بندی دینامیک(پویا) در StimulSoft


نویسنده: وریا کریمی
تاریخ: ۱۳۹۴/۰۴/۰۹ ۱۱:۲۰
آدرس: www.dntips.ir

منظور از دینامیک این است که در زمان اجرا بتوان بر روی هرکدام از ستون‌ها گروه بندی را انجام داد و فقط محدود به ستون خاصی نباشیم.

همانطور که می‌دانید برای گروه بندی در Stimul باید دو باند Group Header  و Group Footer را در بالا و پایین باند Data قرار دهیم. 

پس از افزودن باندهای مورد نظر باید مشخص کنیم که گروه بندی براساس کدام ستون صورت بگیرد.

با دابل کلیک بر روی GroupHeaderBand پنجره مربوطه باز خواهد شد. 

در اینجا می‌توان از زبانه‌ی Data Column  ستون مد نظر را برای گروه بندی، انتخاب کرد و همچنین به کمک Sort Direction، صعودی و یا نزولی بودن آن‌را مشخص کرد.

حال اگر بخواهیم براساس ستونی که در زمان اجرای برنامه مشخص می‌شود گروه بندی کنیم، چکار باید بکنیم؟ برای اینکار میتوان متغیری را که حاوی نام ستون مدنظر ماست، به Stimul  ارسال کرد و براساس آن گروه بندی را انجام داد.

برای همین منظور متغیری به نام CategoryName را در Stimul  تعریف کرده و در زمان اجرای برنامه نام ستون را به آن ارسال می‌نمائیم. برای انجام اینکار همانند حالت قبل بر روی GroupHeaderBand دابل کلیک می‌کنیم؛ اما این بار از پنجره باز شده وارد زبانه‌ی Expression می‌شویم. 

یکی از توابعی که میتواند نیاز ما را مرتفع کند Switch  است.

{Switch(CategoryName == تاریخ , Table1.Date, CategoryName == مشتری , Table1.CustomerName )}

نظرات

  • ندااس در ۱۴۰۱/۰۴/۰۷ ۹:۳۵
    سلام و احترام 
    من یک گزارش ساختم که قراره در پایین اون، اسم و سمت امضاداران، نشون داده بشه. برای این کار اومدم در page footer یه پنل گذاشتم و در اون پنل، cross data گذاشتم. تا وقتی که تعداد امضا داران کم هست، همه چیز درسته. ولی وقتی از یه تعداد بیشتر میشه، انگار کلا به هم میریزه. در صفحه اول گزارش، اخرین شخص امضادار دوبار تکرار میشه. ضمن اینکه حتی صفحه بندی هم به هم میریزه و شماره صفحه اول یک هست و صفحه دوم میشه سه و یک سوال دیگه اینکه فرض کنید مشکل اول حل شده، حالا اگه صفحه رو بذارم در حالت landscape، پیج هدر و پیج فوتر نظمشون به هم میریزه. چکار کنم که این مشکل هم حل بشه؟
    صفحه اول وقتی تعداد امضاداران کمه:

    صفحه دوم:

    صفحه اول وقتی تعداد امضاداران زیادمیشه:

    صفحه دوم:

    فایل mrt.
    الان برای حل مشکل چیکار کنم؟ کلا آیا برای اضافه کردن امضاداران این کار(یعنی استفاده از پنل و کراس دیتا) و این‌ها درسته؟