ورود

View Full Version : پاس دادن يك datasource به crystalreport



eli_dani22
سه شنبه 02 مهر 1387, 11:07 صبح
chetori mishe be crystal ye datasource pass dad va bad az field haye DS estefade kard??????????:خجالت:

MORTEZA66
چهارشنبه 03 مهر 1387, 04:49 صبح
اينو قبلا براي يكي از دوستان نوشتم مثل اينكه خيلي بدردش خورد اميدوارم براي شما هم مفيد باشه

اول از همه دو تا متغير زير رو براي كار با ديتاست و دستورات SQL تعريف كنيد و يه كم مقدار دهي كنيد


DIM dap1 As New SqlClient.SqlDataAdapter
DIM dset1 As New DataSet
dap1.SelectCommand = New SqlClient.SqlCommand
dap1.SelectCommand.Connection = con ‘Connection name


يك شي يا هر چي از نوع گزارشتون تعريف مي كنيد


Dim rpt As New kolRpt

بعد براي اينكه موقع نمايش گزارش كادر User و Pass نياد خط زير رو كه فكر مي كنم همش واضح باشه مي نويسيد


rpt.DataSourceConnections.Item(0).SetConnection(se rver, database, username, pass)

بعد دستور SQL رو مي سازيد


sqltext = "select name,family,fathername from main_tlb Where id=1"

بعد متغيرهايي كه در ابتدا براي كار با ديتاست و دستورات SQL ساختيد رو به صورت زير مقدار دهي مي كنيد


dset1.Dispose()
dset1 = New DataSet
dap1.SelectCommand.CommandText = sqltext
dset1.Clear()
dap1.Fill(dset1, "main_tlb")
rpt.SetDataSource(dset1)


بعد هم RPT رو كه در واقع يك گزارش است به هر گزارشي كه دلتون مي خواد براي ديدن پيش نمايش نسبت مي ديد


frm.viewrep1.ReportSource = rpt
frm.Show()

ali_mnkt
چهارشنبه 03 مهر 1387, 17:14 عصر
با سلام

آقای mortezza66 اگه 2 تا جدول داشته باشیم که بخواهم حاصل تjoin اونها رو نمایش بدیم چی

( با استفاده از همین dataset) ؟ من از همین روش استفاده کردم ولی اطلاعات یک جدول رو فقط

نمایش می ده!!!!

آیا شما تونستید برای چند جدول جواب بگیری؟

( نمی دونم شاید مشگل مربوط به قسمت پر کردن dataAdaptor باشه چون توی اون باید نام

یک جدول رو بنویسی؟)

ali_mnkt
پنج شنبه 04 مهر 1387, 16:45 عصر
کسی گزارش از join دو جدول با استفاده از dataset نگرفته که مشگل نداشته باشه؟

niloofar norouzi
پنج شنبه 04 مهر 1387, 20:23 عصر
کسی گزارش از join دو جدول با استفاده از dataset نگرفته که مشگل نداشته باشه؟
سلام من از view استفاده کردم مشکلم حل شد.

MORTEZA66
شنبه 06 مهر 1387, 09:30 صبح
با سلام

آقای mortezza66 اگه 2 تا جدول داشته باشیم که بخواهم حاصل تjoin اونها رو نمایش بدیم چی

( با استفاده از همین dataset) ؟ من از همین روش استفاده کردم ولی اطلاعات یک جدول رو فقط

نمایش می ده!!!!

آیا شما تونستید برای چند جدول جواب بگیری؟

( نمی دونم شاید مشگل مربوط به قسمت پر کردن dataAdaptor باشه چون توی اون باید نام

یک جدول رو بنویسی؟)

جداول حاصل از join رو به يك جدول تبديل كنيد و نام اون رو بنويسيد به همين راحتي
و يا اگر دو جدول جداگانه استفاده مي كنيد اوني كه تعداد فيلدهاش كمتره رو فيلدهاش رو به شكل پارامتر ارسال كنيد

ali_mnkt
یک شنبه 07 مهر 1387, 23:47 عصر
چطور جدول حاصل از join رو به یک جدول تبدیل کنم؟

یعنی یک جدول temp در نظر بگیرم و حاصل join رو تو اون بریزم و اون رو نمایش بدم؟

niloofar norouzi
پنج شنبه 11 مهر 1387, 11:35 صبح
چطور جدول حاصل از join رو به یک جدول تبدیل کنم؟

یعنی یک جدول temp در نظر بگیرم و حاصل join رو تو اون بریزم و اون رو نمایش بدم؟
من قبلا خدمتتون عرض کردم که با view می تونید این کارو کنید



create view v1
as
{
select t.fname,tb.code from table1 t
join table2 tb
on t.code=tb.code
}
go

davoodrm666_666
چهارشنبه 24 مهر 1387, 09:56 صبح
سلام آقا من گزارشی دارم که در هر بار اجرا باید یک جدول رو پر کنم که اون جدول به فایل کریستال من متصل هست حالا من می خواهم در زمان اجرا بتونم نام جدول رو عوض کنم که دقیقا همون فیلدهای جدول اول در جدول جدید هم هست چطوری میشه با کد این کار رو کرد

davoodrm666_666
سه شنبه 30 مهر 1387, 08:15 صبح
آقا کسی نیست راهنمای کنه ؟

karbar987654321
دوشنبه 27 آبان 1387, 15:20 عصر
اينو قبلا براي يكي از دوستان نوشتم مثل اينكه خيلي بدردش خورد اميدوارم براي شما هم مفيد باشه

اول از همه دو تا متغير زير رو براي كار با ديتاست و دستورات SQL تعريف كنيد و يه كم مقدار دهي كنيد


DIM dap1 As New SqlClient.SqlDataAdapter
DIM dset1 As New DataSet
dap1.SelectCommand = New SqlClient.SqlCommand
dap1.SelectCommand.Connection = con ‘Connection name


يك شي يا هر چي از نوع گزارشتون تعريف مي كنيد


Dim rpt As New kolRpt

بعد براي اينكه موقع نمايش گزارش كادر User و Pass نياد خط زير رو كه فكر مي كنم همش واضح باشه مي نويسيد


rpt.DataSourceConnections.Item(0).SetConnection(se rver, database, username, pass)

بعد دستور SQL رو مي سازيد


sqltext = "select name,family,fathername from main_tlb Where id=1"

بعد متغيرهايي كه در ابتدا براي كار با ديتاست و دستورات SQL ساختيد رو به صورت زير مقدار دهي مي كنيد


dset1.Dispose()
dset1 = New DataSet
dap1.SelectCommand.CommandText = sqltext
dset1.Clear()
dap1.Fill(dset1, "main_tlb")
rpt.SetDataSource(dset1)


بعد هم RPT رو كه در واقع يك گزارش است به هر گزارشي كه دلتون مي خواد براي ديدن پيش نمايش نسبت مي ديد


frm.viewrep1.ReportSource = rpt
frm.Show()


__________________________________________________ _______
من این کارو کردم ولی مثل اینکه کریستال اصلا به شرط where توجهی نمی کنه!!!!!!
چه باید کرد؟

hesamodin1381
چهارشنبه 06 دی 1391, 19:12 عصر
دوست عزیز اگر من با استفاده استور پروسیجر و Linq و Dataset بخواهم با کریستال ریپورت گزارش بگیرم باید چه کدی بنویسم

hesamodin1381
چهارشنبه 06 دی 1391, 19:19 عصر
linqTestDataContext








linqTest = newlinqTestDataContext();





var mySample = linqTest.SP_Test(Convert.ToInt32(txtTest.Text));





SqlCommand cmd =linqTest.GetCommand(mySample) asSqlCommand;




SqlDataAdapter da =newSqlDataAdapter(cmd);





DataTable dt = newDataTable();

da.Fill(dt);

Report.SetDataSource(dt);



من کد بالا را نوشتم جواب نمیده اگه امکان داره یک نفر خواهشن جواب من را بده