ورود

View Full Version : جلوگیری از ویرایش فایل های نهایی طراحی شده با استیمول ریپورتر Stimulsoft Reports



SAJDEHGAR
پنج شنبه 15 فروردین 1392, 16:27 عصر
یا هو ....

با سلام ....
خسته نباشید ...
دوستان همان طوری که می دونید جلوگیری از ویرایش فایل های گزارش طراحی شده ، در سیستم کاربران یکی از پارامترهای مهم هست ...... .
چه طوری میشه جلوی ویرایش توسط مشتریانی که گزارش به اونها داده شده است رو گرفت تا فایل گزارش رو مجددا دست کاری نکنن ... ؟؟؟؟ :متفکر:

یا حق

aslan
پنج شنبه 15 فروردین 1392, 17:33 عصر
سلام
در محیط Designer ریپورت به ترتیب زیر پیش برید
Save As ...
Save Report As ...
کمبوباکس مربوط به Save As Type را باز کنید
مشاهده میکنید که ریپورت را میتونید بصورت های مختلف ( exe و رمزدار و ..... ) ذخیره کنید

SAJDEHGAR
پنج شنبه 15 فروردین 1392, 17:59 عصر
تشکر برادر عزیز ..
این ها رو قبلا امتحان کردم ....
به حالت اگزه و..... مدت نظرم نیست !!! مدیریت و هماهنگ کردنش با برنامه مشکل میشه !!!!
از دی ال ال استفاده کردم : نمی تونم نمایشش بدم !!! کمی با هاش کل کل کردم نشد .... من پارامتر بهش ارسال میکنم ! و هم چنین برای این که گزارش در هر سیستمی اجرا بشه باید گزارش قسمت کانکشن استرینگش تغییر پیدا کنه : و باید مجددا دستور کامپایل صادر بشه : و .....
من در قسمت دیزاین به حالت دی ال ال ذخیره کردم که نتونستم دی ال ال رو نمایش بدم !!! اکسس دینید میده !!! چه طوری باید نمایشش داد ....
مرسی داداش .

aslan
پنج شنبه 15 فروردین 1392, 20:23 عصر
http://forum.stimulsoft.com/viewtopic.php?f=8&t=36252&p=65849&hilit=GetReportFromAssembly#p65849

fakhravari
جمعه 16 فروردین 1392, 00:10 صبح
یه نمونه میزاید؟

SAJDEHGAR
جمعه 16 فروردین 1392, 09:35 صبح
سلام داداش ...
خسته نباشید اون لینک مربوط به دیزپوز کردن و خالی کردن رم و.... است .
اگر ممکنه من هم ماندد دوستمون درخواست درام یه فایل دی ال ال ذخیره کرده و نمایشش بدیم !!! و بتونیم پارامتر به اون ارسال کنیم ......
تشکر .

aslan
جمعه 16 فروردین 1392, 11:24 صبح
سلام داداش ...
خسته نباشید اون لینک مربوط به دیزپوز کردن و خالی کردن رم و.... است .
اگر ممکنه من هم ماندد دوستمون درخواست درام یه فایل دی ال ال ذخیره کرده و نمایشش بدیم !!! و بتونیم پارامتر به اون ارسال کنیم ......
تشکر .

سلام
لینکی که براتون قرار دادم علاوه بر چیزهایی که فرمودین حاوی جواب سوال شما هم هست . به انتهای صفحه لینک دقت کنید
لینک های دیگه ای هم در این ارتباط بود که ترجیح دادم اونو بزارم که چیزهای جدیدی در ارتباط با سوال طرح شده هم یاد بگیریم از جمله نحوه فراخوانی ریپورت mrt و ریپورت dll شده با یک نام مشخص و ................
به هرحال جواب شما :


StiReport stiReport1 = StiReport.GetReportFromAssembly(System.Windows.For ms.Application.StartupPath + "\\DllReport.dll");
stiReport1["name"] = "سامی";
stiReport1["father"] = "امیر";
stiReport1["sadere"] = "تهران";

stiReport1.Show();


موفق باشید

SAJDEHGAR
جمعه 16 فروردین 1392, 16:28 عصر
دادا ش سلام
مرسی از راهنمایی های خوببت :
من هنوز هم مشکل دارم خیلی کدها رو بالا و پایین کردم هنوز به جواب درست نرسیدم ...

من برای حالت معمولی کهع دیتاسورس دارم این طوری پارامتر دهی می کنم :


rpt.Load("KARKADEKHODROTAVASOTEASHKHAS.mrt");
rpt.Compile();
rpt.Dictionary.Databases.Clear();
rpt.Dictionary.Databases.Add(new Stimulsoft.Report.Dictionary.StiSqlDatabase("RPConnection", con));
rpt.Compile();

rpt.CompiledReport.DataSources["DataSource1"].Parameters["@kind1"].ParameterValue = "1";
rpt.CompiledReport.DataSources["DataSource1"].Parameters["@code1"].ParameterValue = "17_01-2";
rpt.CompiledReport.DataSources["DataSource1"].Parameters["@S_Date1"].ParameterValue = "11/21/2012";
rpt.CompiledReport.DataSources["DataSource1"].Parameters["@E_Date1"].ParameterValue = "12/20/2012";
rpt.CompiledReport.DataSources["DataSource1"].Parameters["@KindDate1"].ParameterValue = 0;

rpt.CompiledReport.DataSources["DataSource2"].Parameters["@code1"].ParameterValue = "17_01-2";
rpt.CompiledReport.DataSources["DataSource2"].Parameters["@kind1"].ParameterValue = "2";
rpt.CompiledReport.DataSources["DataSource2"].Parameters["@S_Date1"].ParameterValue = "11/21/2012";
rpt.CompiledReport.DataSources["DataSource2"].Parameters["@E_Date1"].ParameterValue = "12/20/2012";
rpt.CompiledReport.DataSources["DataSource2"].Parameters["@KindDate1"].ParameterValue = 0;
rpt.ShowWithRibbonGUI();


حالا اگر تبدیل کنم به دی ال ال نمی دونم چه طوری به دیتا ست دیتا بدم و داده هام داخل گزارش بشینه !!! الیته این رو هم یاد آوری کنم گزارش هام کلاینت سروری هست : یعنی باید بتونم کانکشن استرینگ رو مجددا در فایل گزارش مقدار دهی و کامپایل کنم !!!!

ممنون می شم شمای که سر رشته ای داری کمک کنید . با تشکر .

aslan
جمعه 16 فروردین 1392, 17:51 عصر
سلام
شما به احتمال زیاد با کدهایی که قرار دادین با گزارشگیری(mrt)مشکلی ندارین . درسته ؟
اگر جواب مثبته هیچ تغییری در کدهاتون ( نحوه اسال پارامتر و ..... ) انجام ندین
بجز اینکه :
- فایل mrt را تبدیل به dll کنین
- تعریف و فراخوانی فایل گزارشتون بشکل کدی که من قرار دادم باشه
- اینها
rpt.Compile(); را حذف کنید
خطایی که میده را اینجا قرار بدین
موفق باشین

SAJDEHGAR
چهارشنبه 21 فروردین 1392, 23:25 عصر
سلام داداش
شرمنده که یکمی دیر شد ( سرماخوردگی و چند .قتی روی سیستم نبودم ) ..... ! ! !

داداش این کد رو من پیش رفتم :
در زمان اجرا : برای اولین بار : مشکلی که داره این هست که ویو ار گزارش بالا میاد ولی چیزی لود نمیشه !!


StiReport stiReport1 = new StiReport();
stiReport1.Compile("KARKADEKHODROTAVASOTEASHKHAS.dll");
StiReport report1 = StiReport.GetReportFromAssembly("KARKADEKHODROTAVASOTEASHKHAS.dll", true);
stiReport1.Dictionary.Databases.Clear();
stiReport1.Dictionary.Databases.Add(new Stimulsoft.Report.Dictionary.StiSqlDatabase("RPConnection", con));
stiReport1.CompiledReport["@code1"] = "17_01-2";
stiReport1.CompiledReport ["@kind1"] = "2";
stiReport1.CompiledReport ["@S_Date1"] = "11/21/2012";
stiReport1.CompiledReport["@E_Date1"] = "12/20/2012";
stiReport1.CompiledReport["@KindDate1"] = 0;
rpt.ShowWithRibbonGUI();

واگر ویو ار رو ببندم و بخواد دوباره گزارش رو لود بگیرم : همچین خطای میده :

Access to the path 'F:\report_test2\report_test2\bin\Debug\KARKADEKHO DROTAVASOTEASHKHAS.dll' is denied.

با تشکر از همکاری خوب شما .