پاسخ به بازخورد‌های پروژه‌ها
متد های AddMonths و AddYears
با تشکر از گزارش شما

در متد AddMonths ماه میلادی به تاریخ اضافه می‌شد که درست شد.
همچنین متد AddYears درست شد.
پاسخ به بازخورد‌های پروژه‌ها
خطای هم نامی خواص راهبری
به صورت یک اینترفیس که عنوان مدل به گزارش پاس داده میشود.
ضمنا نویگیشن‌ها هم اینترفیس هستند
بازخوردهای پروژه‌ها
آموزش های تکمیلی سیلورلایت
با سلام
در صورت امکان بخش سیلورلایت رو تکمیل‌تر کنید.
در مورد گزارش گیری ...
طریقه طراحی و پرینت فرم...
و....
با تشکر
بازخوردهای پروژه‌ها
ایجاد یک گزارش تمام صفحه از چارت بدون رکورد
سلام جناب نصیری
 می خواستم در باره ایجاد یک گزارش که فقط یک تمام صفحه از چارت باشد من رو راهنمایی بفرمایید 
با تشکر. 
بازخوردهای پروژه‌ها
گروه بندی دو سطحی
با سلام. تشکر بابت طراحی این dll.
من باید در گزارش ،باید چیزی شبیه به این طراحی کنم. 

اشتراک‌ها
اختلال در نمایش سایت CodeProject

مدتی هست که به خاطر محدود شدن آدرس  codeproject.cachefly.net نمایش سایت CodeProject با اختلال مواجه شده.آقای نصیری این مشکل رو گزارش  کردن سایر اعضای سایت هم می‌تونن این گزارش رو تائید کنند.

اختلال در نمایش سایت CodeProject
نظرات مطالب
چگونگی گزارشگیری از Business Objects مانند List توسط StimulSoft
مشکل حل شد
مشکل از فایل گزارش بود. فایل گزارش رو در خود استادیو stimul باز کردم و در حالت preview قرار دادم و موقع کمپایل با خطا روبرو شد و متوجه شدم که مشکل از فایل mrt بود.
پاسخ به بازخورد‌های پروژه‌ها
نحوه نمایش ستونی خاص
شبیه به گزارش دفتر کل هست:
مانده هر ردیف = مانده ردیف قبل + مبلغ بدهکار ردیف جاری - مبلغ بستانکار ردیف جاری
نحوه پیاده سازی این گزارش با PdfReport:
خروجی نهایی:


مطالب
افزایش کارآیی گزارش‌ها در Stimulsoft
به صورت پیش فرض، تمام گزارشات Stimulsoft، قبل از رندر باید به صورت اسمبلی کامپایل شوند. در برنامه‌های NET. در صورتیکه اسمبلی در حافظه بارگذاری شده باشد، تا زمانیکه برنامه اصلی از حافظه خارج نشود، فایل اسمبلی قفل خواهد بود و امکان حذف و یا تغییر آن وجود ندارد.
در هر بار کامپایل گزارش، فایل اسمبلی کامپایل شده، در پوشه %Temp% ذخیره و در حافظه بارگذاری می‌شود. به هرحال، بارگذاری اسمبلی گزارش، سبب قفل شدن و اختصاص حافظه‌ای برای آن می‌شود.

همانطور که مشاهده می‌کنید در هر بار کامپایل گزارش، این فایل‌ها ساخته می‌شوند.
چندین راه حل برای رفع این مشکل وجود دارد:
  1. استفاده گزارشات به صورت کلاس‌های #C در برنامه شما (با استفاده از Designer و Save as آن به صورت کلاس #C). در این صورت گزارش همزمان با کامپایل برنامه شما، کامپایل شده و در زمان فراخوانی، دیگر نیاز به کامپایل مجدد آن نیست.
    اشکال: در صورتیکه قالب گزارش شما نیاز به تغییر داشته باشد، برنامه‌ی شما باید با کلاس‌های جدید گزارش مجددا کامپایل شود.
  2. می‌توان گزارش را از طریق برنامه Designer به صورت اسمبلی ( dll ) ذخیره کرد.
    اشکال: این روش برای مدیریت گزارش‌ها در طول ارتقاء آن‌ها مفید نمی‌باشد.
  3. از گزارش کامپایل شده استفاده نکنید و به جای آن از تفسیر عبارات در گزارش استفاده کنید. برای فعالسازی این حالت، خصوصیت Calculation Mode گزارش را در پنجره خصوصیت‌ها در برنامه Designer بر روی Interpretation قرار دهید.
    اشکال: این روش به این معنی است که تمامی اصطلاحات زبان C# / VB.NET تفسیر نمی‌شوند. همچنین استفاده از رخدادهای مربوط به اجزاء گزارش غیرممکن می‌باشد.
  4. کامپایل و رندر گزارش، در دامنه‌ی برنامه‌ی دیگری انجام شود. در این مورد می‌توان پس از رندر گزارش، اسمبلی را در دامنه‌ی برنامه جاری بارگذاری کرد و فایل قفل شده‌ی آن، بعدا حذف خواهد شد. با استفاده از متد ()CreateReportInNewAppDomain از کلاس StiReport می‌توان گزارش را ایجاد کرد و با استفاده از متد ()UnloadReportAppDomain آن را بارگذاری کرد.
    اشکال در این روش متدهای RegData و RegBusinessObject با سرعت خیلی کمی اجرا می‌شوند؛ چرا که هدایت داده‌ها به دامنه‌ی دیگری استفاده شده است. ایجاد و بارگذاری در دامنه‌ی برنامه نیازمند زمان می‌باشد.
  5. کارآمدترین روش: کامپایل گزارش تنها در زمان اولین فراخوانی انجام شود و هر زمان که درخواست فراخوانی گزارش انجام می‌شود، گزارش را از اسمبلی کامپایل شده، در حافظه بارگذاری می‌کنیم. در این مورد تنها یک کپی از گزارش در حافظه ذخیره می‌شود و تنها یک اسمبلی در درایو وجود دارد. پوشه مربوط به گزارش‌های کامپایل شده می‌تواند قبل از استفاده از گزارشات حذف شود، چرا که در اولین درخواست گزارش، دوباره ایجاد خواهد شد.
    مثال:
var report = new StiReport();
report.Load( "Report.mrt" );

var folder = Environment.GetFolderPath( Environment.SpecialFolder.LocalApplicationData );
folder = Path.Combine( folder, "Stimulsoft\\CompiledReports" );
folder = Path.Combine( folder, System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion() );
var compiledReportFile = Path.Combine( folder, report.GetReportAssemblyCacheName() );

if ( File.Exists( compiledReportFile ) )
    report = StiReport.GetReportFromAssembly( compiledReportFile, true );
else
{
    if ( !Directory.Exists( folder ) ) Directory.CreateDirectory( folder );
    report.Compile( compiledReportFile );
}

report.RegBusinessObject( "TestData", new { Title = "Vahid " + DateTime.Now.Millisecond } );

report.Render( false );
همانطور که در مثال بالا مشاهده کنید، یک گزارش ساخته می‌شود و در صورت عدم وجود فایل کامپایل شده و یا تغییر در فایل گزارش، مجددا فایل گزارش با نام جدیدی کامپایل شده و نمایش داده می‌شود.
نکته: حتما بارگذاری دیتا مربوط به گزارش را بعد از عملیات کامپایل قراردهید.