# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > ابزارهای گزارش سازی >  انتقال برنامه ها ایجاد شده توسط Stimulsoft

## faraco

سلام

من گزارش هام رو با Stimulsoft ساختم ولی وقتی می خوام نر افزار رو روی یک سیستم دیگه نصب کنم در هنگام نمایش گزارش خطا می ده ؟

----------


## Arash_janusV3

dll هاش کجاست ؟ 
باید در مسیر exe تون باشه

----------


## iman_22a

> dll هاش کجاست ؟ 
> باید در مسیر exe تون باشه


بعید میدونم با این کار هم جواب بده . dll ها باید با ngen یا یک برنامه ای به همین نام توی ویندوز رجیستر بشه . ( برنامه نصب استیمول خودبخود این کار رو انجام میده )

----------


## farsoft

دوست عزیز یک پزوژه ستاپ توسط خود ویژوال بسازید 
زمانی که فایل برنامه را در ستاپ درگ می کنید خود ویژوال فایل های لازم را در بسته اضافه می کند
دیگر لازم نیست شما آنها را پیدا کنید و رجیستر کنید

----------


## teymoorei

نه اشتباه فکر می کنید مربوط به Dll ها نیست .
من یه برنامه نوشتم که حالا وقتی روی کامپیوتر کلاینت میزارم نشون نمیده   ظاهرا DataSource درست نیست و فایل پایگاه داده رو نشون نمیده مثل برنامه   های ویندوز هم نمی تونم بنویسم app.path حالا چیکار کنم پایگاه داده هم sql   هستش .
مشکل اینه .

----------


## PetekDincos

با سلام
شما برای ارسال داده به گزارشتون به صورت مستقیم به دیتابیس از طریق گزارش وصل می شید که به نظر من بهتره این کار رو انجام ندید چون بعدا با مشکل مسیر روبرو می شوید برای این کار بهتره یه DataSource تو گزارش خودتون ایجاد کنید و تو خود برنامه داده رو از دیتابیس خونده تو یه لیستی با استفاده از 

report.RegData("نام دیتاسورس تو گزارش",ListData);
 به گزارشتون پاس کنید و بعد گزارش رو Load کنید و یه نکته اینکه نام و نوع فیلدهای دیتاسورس توی گزارش و لیست باید یکی باشه و در آینده هم موقع توزیع برنامه با مشکل مسیر روبرو نمی شوید با تشکر

----------


## teymoorei

این DataSource رو من می  دونم چه جوری درست کنم اما داخل پنجره ی Data Source Name چیزی نماید که  انتخاب کنم خواهش می کنم کمک کنید .

دیییییییییییییییونه شد.

----------


## PetekDincos

با سلام
نمی دونم مشکل شما چیه اما من مراحل رو پشت سر هم می گم شما انجام بدید به نتیجه می رسید
در گزارشتون به Dictionary/DataSource کلیک راست کرده و NewDataSource رو انتخاب نمایید در فرم باز شده از قسمت دبتا آداپتور Data from Business Object رو انتخا نمایید در فرم باز شده در قسمت Name In Source یک نام بنویسید مثلا List1 و Name, Alias هم هرچی خواستید بگذاید بعد داخل همون فرم باتن New Column است که چندتا Column اضافه کنید فقط نام این Column ها و نوعشان بایستی با نام و نوع فیلدهای جدولت یا لیستت و غیره بایستی یکی باشه این از گزارشت اما در خود برنامه از این کد استفاده کن 

List<MyClass> MyList = newList<MyClass>()
{
newMyClass(){Name="Ali",Family="Alizadeh",Age=6},
newMyClass(){Name="Petek",Family="Dincos",Age=30},
newMyClass(){Name="Ebru",Family="Gundesh",Age=40}
};
 
StiReport report = newStiReport(); 
report.RegData(
"List1", MyList);
report.Load(
 
"..\\..\\Report.mrt");
report.ShowWithWpf();


ببین در کد بالا من یک کلاس (جدول) دارم که از سه پراپرتی (فیلد) Name,Family,Age تشکیل شده من یه لیست از این کلاسم(جدولم) ایجاد می کنم بعد یه report ایجاد می کنم و اون نامی که در گزارش به Name In Source داده بودم رو در RegData به صورت بالا می نویسم بعد گزارشم رو لود می کنم و بعد نمایش می دم و اصلا کاری هم با مسیر دیتابیس نداشتم و نمی دنم این مشکلت رو حل کرد یا نه با تشکر

----------


## teymoorei

سلام ممنون  از این که زحمت کشیدید ، اما من با vb.net کار می کنم و از 

List<MyClass> MyList = newList<MyClass>()
{
newMyClass(){Name="Ali",Family="Alizadeh",Age=6},
newMyClass(){Name="Petek",Family="Dincos",Age=30},
newMyClass(){Name="Ebru",Family="Gundesh",Age=40}
};
سر در نمیارم 
اگه میشه با vb.net برام بنویسید .

----------


## PetekDincos

با سلام
ببین دوست عزیز شما این قسمت رو بی خیال شو

List<MyClass> MyList = newList<MyClass>()
{
newMyClass(){Name="Ali",Family="Alizadeh",Age=6},
newMyClass(){Name="Petek",Family="Dincos",Age=30},
newMyClass(){Name="Ebru",Family="Gundesh",Age=40}
};
 

شما بالاخره یه دیتابیس داری که داخلش یه جدوله و می خواهی اطلاعات این جدول رو تو گزارش نشون بدی فقط توی خود گزارش همونطوری که قبلا گفتم یه دیتاسورس ایجاد کن و بعد بیا تو برنامت یه کوئری برای واکشی داده از دیتابیست بنوبس (شما ممکنه این کوئریت رو با استفاده از دستورات ADO.NET کلاسیک ینویسی مثلا Select * from Table1 یا اگر از ORM ها استفاده می کنی با استفاده از دستورات LINQ به صورت 
var query=from n in Conn.Table1 select n; ) هر طوری که نوشتی تو RegData گزارشت همونطوری که قبلا گفته شده قرار بده و اگر باز هم نتونستی یه نمونه از گزارشت رو قرار بده تا بررسی بشه با تشکر

----------


## teymoorei

سلام دوست عزیز ممنون از توجه تون ، تا حدودی کارم راه افتاد .
من 3 تا رکورد توی DataBase دارم ولی وقتی Report می گیرم 3 تا رکورد فقط نشون میده و چیزی داخلش نیست ، یعنی یه جدول 3 تایی می کشه و توش خالیه .
اینم کدش :
        DataAdapter = New SqlDataAdapter("Select * From Table1", Connection)
        DataSet = New DataSet
        DataAdapter.Fill(DataSet, "Table1")
        Dim Report As StiReport = New StiReport()
        Report.RegData("Table1", DataSet)
        Report.Load("StiReport1.mrt")
        Report.Compile()
        StiViewerControl1.Report = Report
        Report.Render(False)

----------


## teymoorei

PetekDincos لطفا کمک کنید .

----------


## PetekDincos

با سلام
یه نمونه گذاشتم که از یه دیتابیس به نام SampleDB و از یه جدول به نام Table_1 که سه تا فیلد به نام های Name,Family که از نوع string و فیلد Age از نوع int داره استفاده می کنه و خودت این دیتابیس رو درست کن با تشکر

----------


## teymoorei

اصلا string نداریم که 
 این پروژه منه خواهشششششششششششششششش می کنم کمک کنید .
روانیم کرد .
با این که database رو ساختم اما باز از ds ایراد میگیره .
لطفا پروژه من رو نگاه کنید .

----------


## PetekDincos

با سلام
شما بایستی تو گزارش هم DataSource ات رو DataView انتخاب کنی چون اینجا به صورت DataView تو RegData دیتات رو به گزارش پاس می دی و در ضمن لینک بالا هم ایراد داره من نتونستم برنامت رو داتلود کنم

----------


## teymoorei

لینک تصحیح شد لطفا چک کنید
دانلود

----------


## teymoorei

> شما بایستی تو گزارش هم DataSource ات رو DataView انتخاب کنی چون اینجا به صورت DataView تو RegData دیتات رو به گزارش پاس می دی


من که نمی فهمم

----------


## PetekDincos

> من که نمی فهمم


ببین عزیزم شما وقتی می خوایی تو خود گزارش Data Source ایجاد کنی یه فرم باز می شه که توی Data Adapter  یه Data from DataView وجود داره اون رو انتخاب کن

----------


## teymoorei

ببخشیده شما یه بار می گید  business یه بار می گید dataView من موندم دیگه 
تازه حالا دیگه هیچی نشون نمیده .

اه این چه سایتیه دیگه مثلا 4 تا حرفه این .

----------


## PetekDincos

با سلام
من برای بار اول گفتم Business چون از List استفاده کرده بودم اما دیدم شما از DataTable استفاده می کنید یایستی از DataTable و یا DataView استفاده کنید و یه مثال نوشتم و اجرا هم شد دیگه مشکل از شماست من چیکار کنم با تشکر

----------


## PetekDincos

با سلام
من مثال شما رو دیدم اون چیزایی که کفته بودم تو گزارش رعایت کن نکردی اصلا نمی دونم شما فرق Char رو با String یا int رو می دونید چیه بگذریم مثالت رو درست کردم فقط با دقت نگاه کن
Untitled.png

----------


## farsoft

دوست عزیز من چک کردم
یک راه خیلی ساده داره
داخل سیستمت بگرد و فایل System.Data.dll را پیدا کن و در محل فایل اجرایی برنامه ات کپی کن
البته به فایل های dll گزارش سازت هم احتیاج داری
من این کار را کردم و همه جا اجرا می شود

----------

