سلام
شما در گزارش به جای Data from OleDb Connection از Data From Dataset, Data Tables استفاده کنیدمیشه کمک کنید و بگید مشکل من در ساخت این گزارش کجاست
موفق باشید
سلام
شما در گزارش به جای Data from OleDb Connection از Data From Dataset, Data Tables استفاده کنیدمیشه کمک کنید و بگید مشکل من در ساخت این گزارش کجاست
موفق باشید
سلام
برنامه پست 123 به عنوان یه نمونه می تونید ببینیدحداقل اگه یک برنامه کوچک بذارید ممنون میشم
موفق باشید
آخرین ویرایش به وسیله Sal_64 : یک شنبه 11 بهمن 1388 در 10:15 صبح
اگه اشتباه نكرده باشم
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 گزارش گرفت؟
ایا میشه كانكشن استرینگ برای گزارش نیز از طریق کد ارسال کرد؟
آخرین ویرایش به وسیله HAMRAHSOFT.IR : شنبه 08 اسفند 1388 در 09:25 صبح
سلام
کافیه وقتی 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می باشد
آخرین ویرایش به وسیله HAMRAHSOFT.IR : جمعه 07 اسفند 1388 در 11:19 صبح
سلام
اگر به طور مستقیم وصل نمی کنید، پس چه کار می کنید؟
من از طریق 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
میشه بپرسم دیتابند هاتون رو چطوری تو صفحه گذاشتین؟ زیر هم یا ستونی ؟
یعنی دیتاهای تیبل دوم رو هم میاره ولی اولش خالیه(به تعداد ردیف های جدول یک)؟
پیامتون رو دریافت کردم ولی تعداد پست هام به حدی نرسیده که بتونم پیام خصوصی براتون بفرستم.
من از ورژن 2008.2 استفاده می کنم .
آدرس ایمیلتون رو برای من بفرستین براتون ایمیلش کنم.
خدانگهدارتون
آخرین ویرایش به وسیله e_yaghoobi : شنبه 22 اسفند 1388 در 13:07 عصر
خوب این مشکل من هم بود ، البته من تحت وب کار مب کنم و تو این حالت کافی بود dll های استیمول رو تو فولدر bin پروژه بعد از Publish برنامه کپی کنم.
یه پیشنهاد براتون دارم که مطمئن نیستم جواب بده ولی امتحانش ضرر نداره. فایل های dll رو در همونجاییکه پروژه رو Deploy کردین در کنار بقیه فایل های deploy شده کپی کنید و پسوند اون ها رو به deploy تغییر بدین( مثل بقیه فایل های موجود در فولدر) .
امیدوارم جواب بده.
ممکنه یکی اشکال این کد را بگه؟
من دوتا تیبل دارم که در یک دیتا ست ذخیره شده اند. در طراحی گزارش هم دوتا تیبل دارم با همان نام ها
اما از گزارش خبری نیست؟
string constr = "user id=sa;data source=;initial catalog=Agency;password=";
SqlConnection Con = new SqlConnection(constr);
string sqlstr = "select custcode,custname from custdb" +
" where id<6";
Con.Open();
SqlDataAdapter da = new SqlDataAdapter(sqlstr, Con);
DataSet ds = new DataSet();
da.Fill(ds, "custdb");
Con.Close();
sqlstr = "select citycode,cityname from citydb" +
" where id<6";
Con.Open();
da = new SqlDataAdapter(sqlstr, Con);
da.Fill(ds, "citydb");
Con.Close();
string mypath = Server.MapPath(".") + "\\testrep.mrt";
StiReport report = new StiReport();
report.Load(mypath);
report.RegData(ds);
refershow.Report = report;
توضیح اینکه تیبل های گزارش بصورت data from dataset datatable ایجاد شده اند
اشکال احتمالا به یکی نبودن اسامی اشیاء شما در کد نویسی و درون فایل گزارش برمی گردد.
اینجا رو ببینید :
http://forum.stimulsoft.com/Default.aspx?g=posts&t=2854
Report.RegData("ds", ds)
Report.Load(Server.MapPath("1.mrt"))
Report.ScriptUpdate()
Report.Compile()
Me.StiWebViewer2.Report = Report
بجای ds از "ds" استفاده کنید . ScriptUpdate و Compile را فراموش نکنید (واسه اطمینان)
اگر دوتا جدولی که در دیتاست هستند با هم عمل نکردند (ممکنه دومی بصورت خالی برای گزارش فرستاده بشه ) واسه راهنمایی اینجا رو ببینید .
آخرین ویرایش به وسیله iman_22a : دوشنبه 24 اسفند 1388 در 02:27 صبح دلیل: تکمیل اطلاعات
با سلام خدمت دوستان
من از اين كد براي گزارش گيري در كريستال استفاده مي كردم
اگه مي شه اين كد را براي استفاده در sti برايم اصلاح كنيد با تشكر
Dim ds As New DataSet
Dim Cmd1 As SqlDataAdapter = New SqlDataAdapter("Select * from rest where (pri=" & 1 & ") and ((code=" & txtcode.Text & "))", cnn)
Cmd1.Fill(ds, "rest") : Dim rpt As New cry2 : rpt.SetDataSource(ds)
frmreport.CrystalReportViewer1.ReportSource = rpt : frmreport.Show()
با سلام
کد زیر بدون خطا اجرا میشه اما فیلتر روی گزارش صورت نمی گیره. انگار که اصلا دیتا ستی به گزارش نسبت داده نشده باشه. در ضمن نام connection و data source هم در گزارش و برنامه یکسانه. من توی ریپورت یک کانکشن دارم و یک دیتا سورس که از طریق کوئری ایجاد شده. مشکل کجا ست؟
کوئری : SELECT * FROM a_view
Imports Stimulsoft.Report
Imports System.Data.SqlClient
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ds As New DataSet
Dim con As SqlConnection
Dim com As SqlCommand
Dim da As SqlDataAdapter
con = New SqlConnection(Class_Connection_String.Connection_S tring)
com = New SqlCommand()
com.Connection = con
da = New SqlDataAdapter
com.CommandText = "SELECT * FROM [View_Operator's_Operation] WHERE (([کد کاربر] = " + TextBox1.Text + ") AND ([نام عملکرد] = '" + ComboBox1.Text + "'))"
da.SelectCommand = com
Try
ds.Clear()
da.Fill(ds)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
ds.DataSetName = "stimul_con"
ds.Tables(0).TableName = "stimul_ds"
Dim rtp As New StiReport()
rtp.Load("E:\Create Dinamic Report With StimulReports\Sample\Report00.mrt")
rtp.RegData(ds)
rtp.Dictionary.Synchronize()
rtp.Show()
End Sub
End Class