دوست عزیز در تالار کریستال سولات رو مطرح کن
Printable View
این کد در vb استفاده میشه معادل اون رو در C# می خوام
(g.Section2.ReportObjects.Item("datedd1").Left = DR_PUBLIC.Item("dd_L
g اسم فرم کریستال یپورت
ببخشيد ايا اين برنامه با فونت هاي مثل ميترا و تيتر هم مشكل داره يا نه از فونت فارسي هم ميشه استفاده كرد؟
با توجه به مباحثي كه مطرح شد لازم تونستم در مورد روش استفاده از اين ابزار قدرتمند در زبان برنامه نويسي دات نت توضيحاتي بدم به همراه يكسري كد كه
خودم در پروژه هام ازشون استفاده مي كنم.
براي اينكه بتونيد از گزارشات بدون مشكل استفاده كنيد اصلا خود فايل گزارش رو به ديتابيسي وصل نكنيد. اينطوري بعدا ممكنه به مشكل بر بخوريد.
راه حلي كه بهتون پيشنهاد مي كنم اينه كه بياييد اطلاعاتتون رو در محيط برنامه نويسي داخل يدونه DataTable بريزيد بعد در مقابل يدونه DataTable هم در
محبط ديزاينر Stimulsoft مثل هموني كه در محيط برنامه نويسي ساخته بوديد بسازيد.
حالا مونده كه ارتباط اين دو تا رو برقرار كنيد.
اين هم نمونه كد براي برقراري ارتباط DataTable برنامه با DataTable گزارش:
Me.Cursor = Cursors.WaitCursor
Dim StiReport1 As New Stimulsoft.Report.StiReport()
StiReport1.Load("ReportFile.mrt")
StiReport1.Dictionary.DataSources.Items(0).DataTab le = table
StiReport1.RegData("DataSource1", table)
StiReport1.Dictionary.Variables.Item(0).Value = txtTitle.Text 'title
StiReport1.Dictionary.Variables.Item(1).Value = txtReportDate.Text 'date
StiReport1.Show()
StiReport1.Render()
Me.Cursor = Cursors.Default
توضيحات كد فوق:
Me.Cursor = Cursors.WaitCursor
در ابتدا مياييم و كرسر ماوس رو به حالت انتظار در مياريم
Dim StiReport1 As New Stimulsoft.Report.StiReport()
StiReport1.Load("ReportFile.mrt")
بعدش گزارشي به اسم StiReport ميسازيم و با متد Load فايل گزارشمون رو كه طراحي كرديم بهش ميديم
اگه يادتون باشه داخل فايل گزارش DataTable ساخته بوديم (روش ساخت Datatable داخل فايل گزارش هم به ترتيب زير است:
از قسمت Dictionary روي قسمت خالي راست كليك مي كنيم بعد NewDataSource رو انتخاب مي كنيم بعدش Data From DataSet,DataTable رو انتخاب مي
كنيم ) حالا نوبت ارتباط برقرار كردن بين ديتاتيبل برنامه (كه در اينجا به اسم table هست ) با ديتاتيبل گزارش است . با دو خط زير ميتونيم اين كار رو انجام بديم:
StiReport1.Dictionary.DataSources.Items(0).DataTab le = table
StiReport1.RegData("DataSource1", table)
در ادامه دو خط زير هم براي مقدار دهي Variable هاي گزارش هست. به طور مثال در فايل گزارش دو متغير بسازيد بعد به صورت زير در داخل برنامه اونا رو مقدار
بديد:
StiReport1.Dictionary.Variables.Item(0).Value = txtTitle.Text 'title
StiReport1.Dictionary.Variables.Item(1).Value = txtReportDate.Text 'date
حالا تاريخ هر چيزي ميتونه باشه حتي شمسي!!
عنوان گزارش هم كه ارسال كرديم كه كاربر بتونه عنوان گزارشش رو خودش انتخاب كنه
در آخر هم گزارش رو كامپايل ميكنيم و به كاربر نشون ميديم.
با اين روشي كه گفتم ديگه گزارشتون مستقل از ديتابيس ميشه و به صورت مستقيم به برنامه مربوط ميشه. مثلا اگه بخواهين عملياتي روي اطلاعات مثل مرتب
سازي، فيلتر، ويرايش و .... انجام بدين دستتون بازه براي اين كار.
اميدوارم اين راهنماي خوبي باشه براي عزيزاني كه با گزارش گيري با برنامه و ارسال پارامتر به آن مشكل داشتن.
موفق باشيد ( محمد بشيري)
میشه کاری کرد که کاربر تو فرم طراحی نتونه از save as استفاده کنه و نتونه فرمت ذخیره عوض کنه؟
میخوام یک فرمی برای طراحی توسط کاربر باز بزارم اما بعضی قسمتهای فرم lock باشه . چه روشی پیشنهاد میدید؟
با سلام. من یک گزارشی تهیه کردم که متغییرهای اون از یک SP پر می شود. هنگامی که گزارش را در FireFox باز میکنم فونتها عوض می شوند. ممکن است من را راهنمایی کنید
سلام دوستان
من تازه كار با sr رو شروع كردم پس اگه سوالاتم ابتداييه به بزرگي خودتون ببخشيد
من يه برنامه دارم كه براي ارتباط با db از يك connection سراسري استفاده مي كنم مي خوام به كاربر برنامم اين اجازه رو برم كه خودش باsr گزارش بسازه من ميخوام datasourse گزارشم رو همون db قرار بدم ولي با استفاده از كد نه موقع طراحي ميتونيد راهنماييم كنيد؟
1- من میتونم برای یک Text شرط بنویسمنقل قول:
با استفاده از کد نه موقع طراحی..... قسمت دیکشنری در محیط طراحی
2- میشه مقدار یک Text را در یک ستون از جدول ضرب کرد
سلام
چطور می تونم 2 تا datatable یا بیشتر رو توی گزارش بیارم
من بزای اینکار این کد رو نوشتم ولی مشکلی که داره اینه که اگه هر دو DataTable رو به dataset اضافه کنم جواب نمیده ولی اگه یکی از اونا رو اضافه کنم جواب میده
فایل گزارش رو هم ضمیمه کردم.
class1 clsRecord = new class1();
class2 clsRecord2 = new class2();
DataSet ds1 = new DataSet();
DataTable dt1= new DataTable();
DataTable dt2 = new DataTable();
dt2 = clsRecord.Get_All_Record();
dt1 = clsRecord2.Get_All_Record();
stiReport1.Load(Application.StartupPath + "\\Reports\\rep1.mrt");
ds1.Tables.Add(dt1);
ds1.Tables.Add(dt2);
stiReport1.RegData(ds1);
stiReport1.Dictionary.Synchronize();
stiReport1.Show();
https://barnamenevis.org/attach...3&d=1264061546
سلام دوستان
كسي لينك دانلود اين ابزار و كرك آن را نداره؟ لينكهايي كه در اين تاپيك هست كار نميكنند
لطفا راهنمايي كنيد.
http://www.mediafire.com/?nyitmi5zz0tنقل قول:
کسی لینک دانلود این ابزار و کرک آن را نداره؟
سلام
چطور می تونیم به ازای هر رکورد یک صفحه گزارش ایجاد کرد ؟
مثلا تعدادی رکورد (فرضا 200) را به گزارش بفرستیم و یه گزارش ایجاد کنیم با 200 صفحه
به صورتیکه اطلاعات (فیلدهای) هر رکورد در جاهای خالی مورد نظر قرار بگیره
چیزی شبیه به صدور کارت
با تشکر
خاصيتStart New Page مربوط به DataBand را True كننقل قول:
چطور می تونیم به ازای هر رکورد یک صفحه گزارش ایجاد کرد ؟
سلام
من تازه به استفاده كنندگان از اين ابزار پيوستم و با استفاده از مطالب قبلي گزارش گيري كردم ولي اين خطا را ميده:
C:\Documents and Settings\Ali\Local Settings\Temp\tfb6ev6l.0.vb(18,0) : error BC30456: 'InitializeComponent' is not a member of 'Reports.Report'.C:\Documents and Settings\Ali\Local Settings\Temp\tfb6ev6l.0.vb(48,0) : error BC30481: 'Class' statement must end with a matching 'End Class'.C:\Documents and Settings\Ali\Local Settings\Temp\tfb6ev6l.0.vb(48,0) : error BC30183: Keyword is not valid as an identifier.لطفا راهنمايي بفرماييد
ميشه كمك كنيد و بگيد مشكل من در ساخت اين گزارش كجاست
سلام
شما در گزارش به جای Data from OleDb Connection از Data From Dataset, Data Tables استفاده کنیدنقل قول:
میشه کمک کنید و بگید مشکل من در ساخت این گزارش کجاست
موفق باشید
سلام
برنامه پست 123 به عنوان یه نمونه می تونید ببینیدنقل قول:
حداقل اگه یک برنامه کوچک بذارید ممنون میشم
موفق باشید
اگه اشتباه نكرده باشم
https://barnamenevis.org/showpo...&postcount=123
سلام
نقل قول:
یک نگاهی به این کدهای الصاقی بکنید
StiReport1.Load(My.Application.Info.DirectoryPath & "\StiReport1.mrt")"\StiReport1.mrt"
فایل گزارش رو در برنامه ضمیمه شده نتونستم پیدا کنم !
سلام
من شمار رو دوباره ارجاع می دم به گزارش ایجاد شده در پست 123
و اینکه خودتون یک Data From Dataset, Data Tables به گزارش اضافه کنید
و بر طبق پارامترهای ارسالی از گزارش ستونهای اون رو ایجاد کنید
موفق باشید
شما زبون اسکریپت گزارش رو Vb انتخاب کردید ، درست که برنامه شما هم با Vb هستنقل قول:
دوست عزیز من این پست رو دیدم ولی مشکل من رو حل نکرد
اما اگه زبون گزارش به جای Vb زبون C# باشه فکر نکنم ایرادی پیش بیاد اینطور نیست
فایل ضمیمه رو بررسی کنید
امیدوارم مشکل حل شده باشه
خیلی ممنون با این فایلی که شما لطف کردید جواب داد فقط یه سوال
چه تغییری در آن دادین که مشکلش حل شد البته به جز زبان اسکریپت؟
چطور ميشه از چند جدول مرتبط به هم در stimul report گزارش گرفت؟
ایا میشه كانكشن استرینگ برای گزارش نیز از طریق کد ارسال کرد؟
سلام
کافیه وقتی datatable رو به DataSet اضافه کردی ، بهش اسم هم بدی ، همون اسمی که توی دیزاینر استیمول ، توی دیکشنری اون هست. مثلا اگه از یه table به نام Test استفاده کردی برای ساختن گزارشت در محیط designer ، در محیط کد با همین اسم اون رو در دیتاستت قرار بده تا بتونه تشخیص بده کدوم جدول برای کدوم داده هستش.
سلام
یه سوال : چطور میشه میشه یک New Calculated Column ساخت که دو تا عدد رو بر هم تقسیم کنه و نتیجه رو به صورت حاصل کامل به ما بده ؟
مثلا وقتی 1 رو به 2 تقسیم کنه بده 0.5 . در حال حاضر من از Div استفاده کردم ، ولی فقط خارج قسمت رو به من میده، یعنی نتیجه صفر رو بر می گردونه
اگه راهنمایی کنین ممنون میشم.
راستی کسی تا حالا با استیمول چارت هم کشیده ؟ ستونی و یا دایره ای؟
ممنون از شما
من درست متوجه نشدم خوب جدولها با نام اصلی خودشان که در sql server ساخته شده هستند
سوال اینکه اگر چند جدول داشته باشیم باید آنها را در stimul report به هم لینک دهیم؟
اگر بله چطور
من یک نمونه ساختم ولی گزارش را خالی نمایش میدهد
اگر یک نمونه مرحمت کنید خیلی ممنون میشوم
بازهم ممنون
سلام
اگر در هنگام طراحی گزارش به خود دیتابیس متصل شده باشید ( با استفاده از New Connection ). شما با استفاده از تب Dictinary موارد لازم رو توی گزارشتون آوردین، تا اینجاش که مفهومه حتما. اینکه لینک ایجاد کنین یا نکنین به گزارشتون ربط داره و برای گزارش با چند جدول ، انجام اینکار ضروری نیست.
خوب حالا توی کدتون ، داده ها رو از دیتابیس بخونین و توی DataTable های متفاوت ذخیره کنین. حالا یک DataSet ایجاد کنید و این DataTable ها رو در اون قرار بدین. هر کدام از جداول رو که به DataSet اضافه می کنین ، اسم جدول اصلی رو هم بهش بدین .
فرض کنید جداول شما در دیتابیس به نام Country و State ذخیره شده اند و شما گزارشتون رو با این دو تا جدول ساختین. حالا توی کد، داده های مربوط به جدول Country رو در CountryDataTable و داده های جدول State رو در StateDataTable بریزین. حالا داریم :
DataSet ds = new DataSet();
ds.Merge(CountryDataTable );
ds.Tables[0].TableName = "Country";
ds.Merge(StateDataTable );
ds.Tables[1].TableName = "State";
ds.Merge(dtUnit);
StiReport report = new StiReport();
string ServerPath = Server.MapPath(".") + "\\rptCountry.mrt";
report.Load(ServerPath);
report.RegData(ds);
StiWebViewer.Report = report;
در صورتی که برای ساخت گزارش از View استفاده کرده باشین باز اینجا باید اسم همون View رو به DataTable های موجود توی DataSet بدین.
دلیل : وقتی چند DataTable در یک DataSet ذخیره می شوند با ایندکسشون قابل رد یابی هستن. اگه برای هر کدام از DataTable های موجود در DataSet اسم هم بدیم ، اون موقع با اسم هم میشه اون DataTable ها رو از DataSet انتخاب کرد. استیمول، داده ها رو با اسم Table ای که شما اضافه کردین تشخیص میده . در صورتی که در گزارشتون از یک جدول استفاده کرده باشید ، به صورت پیش فرض ،هر DataTable ای که بهش پاس بشه رو به نام اون جدول فرض می کنه ، ولی وقتی جداول مورد استفاده دو تا بشه ، براش قابل تشخیص نیست که از این دو تا DataTable کدومشون واسه کدوم جدوله و ...
سلام
خودم جواب این سوال رو پیدا کردم، می نویسم اینجا که بقیه هم بدونن .
اگه اعداد تقسیم ما از نوع Double باشند و نتیجه هم Double تعریف شده باشه ، اون وقت این تقسیم درست خواهد بود.
اما اگه یه عددی دارین تو دیتابیس که int هستش و می خواین جواب تقسیمتون درست باشه ، اول اون عدد رو در 1.0 ضرب کنین ، اونوقت تقسیم کنین :لبخند:
این یه نوع کلک زدن ساده است.:بامزه:
خوش باشین
با سلام وقتی در برنامه از stimulreport استفاده میکنیم موقعی که روی باتن گزارش کلیک میکنیم اول یک پنجره باز میشه که یک progress barداره و صفحات گزارش رو میشماره و بعد گزارش رو باز میکنه آیا راهی هست که کاربر مجبور نباشه صبر کنه تا تمام صفحات گزارش لود بشن یعنی گزارش سازاولین صفحه رو به کاربر سریع نشون بده و بعد به ترتیب صفحات بعدی روبه نوبت لود کنه
نقل قول:
DataSet ds = new DataSet();
ds.Merge(CountryDataTable );
ds.Tables[0].TableName = "Country";
ds.Merge(StateDataTable );
ds.Tables[1].TableName = "State";
DataSet ds = new DataSet();سلام
ds.Merge(DataSet_a.Tables[0]);
ds.Tables[0].TableName = "table1";
ds.Merge(DataSet_b.Tables[0]);
ds.Tables[1].TableName = "table2";
MessageBox.Show(ds.Tables.Count.ToString() + " " +
ds.Tables[0].TableName.ToString() + " " +
ds.Tables[1].TableName.ToString()
+ " " + ds.Tables[0].Rows.Count.ToString() + " " +
ds.Tables[1].Rows.Count.ToString());
در گزارش من دو تا تیبل و همچنین دو تا دیتاباند دارم
در گزارش از همین شیوه استفاده کردم
اطلاعات دیتاباند1 از تیبل اول و اطلاعات دیتاباند2 از تیبل دوم می بایست تامین شه
اما در دیتاباند2 به تعداد اطلاعات تیبل اولی ردیف خالی ایجاد می کنه
در برنامه چک کردم همه چیز صحیح
اما در گزارش خیر
چه باید کرد؟؟؟
سلام دوستان
می خواستم بدونم وقتی تو یه برنامه از سیمولا ریپورت استفاده می کنی و وقتی برنامه رو تو یه سیستم دیگه نصب کنی آیا نیاز به نصب دوباره سیمولا ریپورت تو سیستم مقصد داریم یا نه !!! ؟
یا همون DLL های رجیستر شده رو بذاری کافیه ؟
ممنون
سلام
ببخشید دوستان خیلی گشتم ولی چیزی نیافتم
من مخوام ار تابع یا شرط هرکدوم که مدونید بهتر
مخوام چک کنه که اگه عدد مورد نظر منفی برای نمایش به عدد مثبت نمایش بده و اگه عدد مثبت که خودش
ممکن راهنمایم کنید
جواب سوال را پیدا کردم
جواب استفاده از تابع ABSمی باشد
سلام
اگر به طور مستقیم وصل نمی کنید، پس چه کار می کنید؟
من از طریق wizard ابتدا به دیتا بیس و جدولم وصل میشم و بعد کدنویسی می کنم، یعنی اگر این گزارش را بخوام روی سیستم دیگه استفاده کنم، چون نام server ها فرق می کنه مشکل ایجاد میشه،نه؟
چه راهی وجود داره که بدون استفاده از wizard بتونیم به دیتا بیس وصل بشیم و فیلدهای جدول هامون را بیاریم توی گزارش؟
سلام
از دوستان کسی می تونه یه آدرس برای دانلود stimul بده؟؟؟؟؟
حتی الامکان ورژن بالا و ک.....ر.....ک شده .
با تشکر
بنده یه آدرس پیدا کردم اما امکان دانلود وجود ندارهنقل قول:
از دوستان کسی می تونه یه آدرس برای دانلود stimul بده؟؟؟؟؟
حتی الامکان ورژن بالا و ک.....ر.....ک شده .
این آدرس رو ببینید
اگه کسی تونست دانلود کنه لطفا همینجا قرار بده
تا دوستان استفاه کنند
دوستان كسي ميتونه كمك كنه ؟
من موفق شدم گزارشهام رو بر مبناي ديتاست با StimulReport دوباره سازي كنم
به رفرنس هاي برنامه ام هم stimul رو اضافه كردم با VS.Net هم دارم فايل Setup ميسازم(2 تا dll بيشتر نمياره )
وقتي برنامه روي يك سيستم ديگه اجرا ميشه به همين نبود dll ها گير ميده بصورت دستي همه dll ها رو به محل نصب برنامه - System32 و حتي windows\asembly اضافه كردم ولي بازهم نميتونه Stimul رو اجرا كنه !
چكار بايد بكنم ؟!
من یک برنامه تحت وب دارم و از st استفاده می کنم
در دستور load آدرس را چگونه باید ساخت
اين لينك را امتحان كنيد
http://www.mediafire.com/?nyitmi5zz0t