PDA

View Full Version : يه كد گذاشتم : بگيد اين كار تو كريستال شدنيه؟



miki_ir
یک شنبه 23 مرداد 1390, 22:47 عصر
Dim db_name As String
.
.
.
تو اين قسمت داده هايي كه خوايتمو از دو جدول گرفتم

sql = "SELECT Daro.idD , Daro.nameD ,Daro.doz , Daro.hoshdar , Daro.dateE , Forosh.gheymatBiT , Forosh.gheymatBaT " & _
"" & _
"FROM Daro , Forosh " & _
"WHERE Daro.idD = Forosh.idD and Forosh.idSh = " & CInt(Text2.Text)

Set rs = conn.Execute(sql, , adCmdText)
'---------------
چند تا كنترل كه مثه تكس باكسه رو گزارش گذاشتم

Set DR.DataSource = rs
به اين شكل : فيلدهاي دستور سلكت رو زمان اجرا توي اون قسمتا نشون دادم
With DR.Sections("Section1").Controls
.Item("idD").DataField = rs("idD").Name
.Item("nameD").DataField = rs("nameD").Name
.Item("doz").DataField = rs("doz").Name
.Item("hoshdar").DataField = rs("hoshdar").Name
.Item("dateE").DataField = rs("dateE").Name
End With
With DR.Sections("Section3").Controls
.Item("l1").Caption = CStr(sumBiT)
.Item("l2").Caption = CStr(sumBaT)


End With
DR.Show

معادل اين كار تو كريستال شدنيه؟ كسي هست بتونه مثالي از اين كار رو تو كريستال واسم بزاره

ممنون

Esmail Solhkhah
دوشنبه 24 مرداد 1390, 03:21 صبح
دوست عزیز اینجا تالار سی شارپه کد شما با وی بیه :متفکر:

miki_ir
دوشنبه 24 مرداد 1390, 18:57 عصر
ميدونم من الان برنامم با سي شارپه ميگم
تو وي بي اين كارو ميكردم تو سي شارپ نميشه؟

Esmail Solhkhah
دوشنبه 24 مرداد 1390, 19:03 عصر
ميدونم من الان برنامم با سي شارپه

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

اگرم براتون سخته قضیه رو توضیح کامل توضیح بدید بدون کد

کار نشد نداره

miki_ir
سه شنبه 25 مرداد 1390, 07:06 صبح
قضيه اينه من كاراي مقدماتي با كريستالو بلدم
حالا ميخام از چند جدول يه فيلداييو با دستور سلكت انتخاب كنم به شرط اينكه ركوردها بين مثلا دو تاريخي كه كاربر وارد ميكنه باشه

select A.f1 ,A.f2,B.f1,B.f3,C.f2 from A,B,C where date between تاريخي كه كاربر وارد مي كند and تاريخي كه كاربر وارد ميكند
خب اگه از يه جدول بود بلد بودم
اگه ميخاستم با ويزاردم ميتونستم فيلدارو از دو جدول به صورت گرافيكي به گزارش اضافه كنم
اما اينكه
تاريخو كاربر وارد ميكنه و از چند جدوله نميدونم چكار كنم
ميخام اگه بشه با كد نويسي اين كار بالا رو انجام بدم توي vb من ميومدم چند تا تكست باكس رو گزارش قرار ميدادم و زمان اجرا ميگفتم هر فيلد بره توي كدوم
تكست باكس نمايش پيدا كنه
كلا چطوري از چند جدول با دستور سلكت كه پارامترش از كاربره گزارش بگيرم
لطفا راهنمايي كنيد و مراحلشو دسته بندي شده برام بگيد
ممنونم

miki_ir
سه شنبه 25 مرداد 1390, 14:47 عصر
كسي كمك نميكنه؟::

Padrone
سه شنبه 25 مرداد 1390, 14:56 عصر
خب اصلا اینی که گفتی به کریستال ریپورت ربطی نداره select درست هست و به جای او نوشته ها دو تا رشته که حاولی دو تاریخ هست رو قرار میدی و با رشته پرس و جو الحاق میکنی
بعد دستور رو اجرا و مقدار رو تو دیتا ست قرار میدی بعد سورس کریستال ریپورت رو برابر دیتاستت میکنی

miki_ir
سه شنبه 25 مرداد 1390, 17:32 عصر
خب اصلا اینی که گفتی به کریستال ریپورت ربطی نداره select درست هست و به جای او نوشته ها دو تا رشته که حاولی دو تاریخ هست رو قرار میدی و با رشته پرس و جو الحاق میکنی
بعد دستور رو اجرا و مقدار رو تو دیتا ست قرار میدی بعد سورس کریستال ریپورت رو برابر دیتاستت میکنی

آخه شنيدم وقتس سلكت از چند جدول باشه اين روش كار نميكنه
تازشم فيلدا رو چطوري رو گزارش مشخضص كنم؟

Esmail Solhkhah
سه شنبه 25 مرداد 1390, 18:21 عصر
آخه شنيدم وقتس سلكت از چند جدول باشه اين روش كار نميكنه

کی همچین چیزی گفته ؟


تازشم فيلدا رو چطوري رو گزارش مشخضص كنم؟

این یه نمونه SQL

SELECT Ostan.Code, Ostan.Name, Shahrestan.OstanCode, Shahrestan.Name AS Shahrestan
FROM Ostan INNER JOIN
Shahrestan ON Ostan.Code = Shahrestan.OstanCode

خب حاصل اجرای این میشه یه دیتاتیبل

شما میتونید یه دیتاتبل درست همانند خروجی سلکتتون تو دیتاست (تایپ دیتاست) درست کنید

و حاصل اجرای این query رو بریزید تو اون دیتاتیبل

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

miki_ir
سه شنبه 25 مرداد 1390, 21:00 عصر
کی همچین چیزی گفته ؟



این یه نمونه SQL

SELECT Ostan.Code, Ostan.Name, Shahrestan.OstanCode, Shahrestan.Name AS Shahrestan
FROM Ostan INNER JOIN
Shahrestan ON Ostan.Code = Shahrestan.OstanCode

خب حاصل اجرای این میشه یه دیتاتیبل

شما میتونید یه دیتاتبل درست همانند خروجی سلکتتون تو دیتاست (تایپ دیتاست) درست کنید

و حاصل اجرای این query رو بریزید تو اون دیتاتیبل

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

مي توني يه مثال برام بزاري كه اين شرايطو داشته باشه
و گزارشم فارسي باشه يعني از راست به چپ باشه؟
ممنون

Esmail Solhkhah
سه شنبه 25 مرداد 1390, 21:03 عصر
مي توني يه مثال برام بزاري كه اين شرايطو داشته باشه
و گزارشم فارسي باشه يعني از راست به چپ باشه؟
ممنون

دوست عزیز بنده خیلی وقته دیگه با کریستال ریپورت کار نمیکنم

ولی چشم امشب سعی میکنم یه چیزی براتون بنویسم

miki_ir
سه شنبه 25 مرداد 1390, 21:07 عصر
واي
شرمنده ميشم نه عزيز اگه بايد بنويسي زحمت نكش . همين كه جواب دادي برام كلي با ارزشه ايشالا سعادتمند بشي ميگردم شاد جايي پيدا كردم
فداي شما:قلب:

Esmail Solhkhah
سه شنبه 25 مرداد 1390, 21:10 عصر
نه موردی نیست

حس نوشتنش هست فقط اگه اجازه بدید بعد افطار

Esmail Solhkhah
سه شنبه 25 مرداد 1390, 23:16 عصر
دوست عزیز برنامشو براتون نوشتم

بررسی کنید اگه سوالی بود PM بدید

موفق باشید.

miki_ir
چهارشنبه 26 مرداد 1390, 06:05 صبح
عزيز برنامه خطا ميده

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
كاش حالا كه زحمت كشيدي از كليت كارت يه توضيح بدي
به صورت فهرست وار مراحلي كه رفتيو بگي
مثلا اين خط
da.Fill(dsReport1.SoratVaziatReport);
بعد يه چيز عجيب من تو برنامهم كهه نوشتم
مثلا داده وارد ميكنم تو برنامه دخيره ميشه بعد خارج ميشم دوباره برنامه رو اجرا ميكنم بازم داده ها هستن
اما بعدا نگاه مي كني بار بعد بانك خالي داده ها پاك شدن داده اي تو بانك نيس
عجيبه

miki_ir
چهارشنبه 26 مرداد 1390, 16:24 عصر
همين كارو خودم كرده بودم اما اون خطا رو ميداد
اما الان فهميدم مشكل كجاس من كه كانكشن استرينگو عوض كرده بودم رفته بودم اجرا .
قبلش بايد يه ري بيلد ميكردم پروژه رو كه درس شد
خدا خيرتون بده مخصوصا آقا اسماعيلو.

اگه ميتونيد اين قسمتم كمك كنيد ممنون

كاش حالا كه زحمت كشيدي از كليت كارت يه توضيح بدي
به صورت فهرست وار مراحلي كه رفتيو بگي
آقا اسماعيل كارايي كه انجام داديو فهرست وار ميتوني بگي
و اين
خطم
dsReport1.SoratVaziatReport توي

da.Fill(dsReport1.SoratVaziatReport);

Esmail Solhkhah
چهارشنبه 26 مرداد 1390, 17:28 عصر
دوست عزیز کانکشن که اقا اسماعیل ساخته با اسکیول اکسپرس 2005 هست شما باید اونو با اسکیول خودتون هماهنگ کنید برای این کار تو پروژه برید تو قسمت بالا و کانکشن خودتون رو به جاش بزارید.


حجت جان ممنونم از اینکه بنده نبودم شما لطف کردید و عوض بنده مورد دوستمون رو حل کردید.(بازم تشکر)



كاش حالا كه زحمت كشيدي از كليت كارت يه توضيح بدي


شما اول حاصل اجرای اون query رو تو SQL ببینید چیه و به ازای فیلدهای حاصله و نوع دادشون یه دیتاتیبل درست کنید (مثل این میمونه که شما حاصل اجرای این query رو بریزید تو یه تیبل موقت بعد اون تیبل رو تو دیتاست با استفاده از Add New TableAdapter ایجاد کنید)

یه دیتاست به پروژتون اضافه کنید و دیتاتیبل حاصله رو توش ایجاد کنید (بند قبلی توضیح دادم)

افزودن کریستال ریپورت به پروژه از Add New Item - Reporting

دیزاین اون ریپورت بصورت ویزارد و مشخص کردن دیتاست و جدول مربوطه به عنوان منبع اطلاعاتی

نوشتن کد Select و دریافت نتیجه اون تو دیتاتیبل موجود در دیتاست
da.Fill(dsReport1.SoratVaziatReport);
در این سطر دیتاآداپتر نتیجه اجرای دستور سلکت رو میریزه توی جدول SoratVaziatReport که داخل دیتاست هست. این کار رو راحت میکنه چون قراره همین جدول نهایتا بشه منبع اطلاعاتی گزارش

ایجاد آبجکت از کلاس CrystalReport1 (که همون ریپورته اضافه شده به پروژس)
CrystalReport1 report = new CrystalReport1();

ست کردن دیتاسورس گزارش با کد
report.SetDataSource(dsReport1);

و نهایتا پاس کردن آبجکت گزارش که حالا قابل استفاده هست ، به crystalReportViewer1 جهت نمایش گزارش

موق باشید.

miki_ir
چهارشنبه 26 مرداد 1390, 17:51 عصر
خدا خيرت بده . شروع ميكنم به كار ايشالا جواب بگيرم
آرزو ميكنم شاد و موفق باشي دوست عزيز

Esmail Solhkhah
چهارشنبه 26 مرداد 1390, 18:15 عصر
خدا خيرت بده . شروع ميكنم به كار ايشالا جواب بگيرم
آرزو ميكنم شاد و موفق باشي دوست عزيز

خواهش میکنم

ما همه داریم اینجا یاد میدیم و یاد میگیریم

موفق باشید.

miki_ir
پنج شنبه 27 مرداد 1390, 09:29 صبح
همه چي درسته اما مي بيني بعضي فيلدا رو خالي نشون ميده يا بار اول نشونشون داد
اما بار بعد خالي نشون داد در حالي كه داده تو پايگاه بود تو اون فيلدا
نميدونم چرا

string query = @"SELECT MKala.idK, CatKala.nameK, MKala.nameSH, MKala.comment ,
MKala.date
FROM MKala , CatKala where CatKala.idC = MKala.idC
and CatKala.sORaORm = " + 1;
به اين صورت هم نوشتم فايده نداشت


string query = @"SELECT MKala.idK, CatKala.nameK, MKala.nameSH, MKala.comment ,
MKala.date
FROM MKala inner join CatKala on CatKala.idC = MKala.idC
where CatKala.sORaORm = " + 1;

miki_ir
پنج شنبه 27 مرداد 1390, 15:29 عصر
كسي نظري نداره .;كسي نيس؟

miki_ir
پنج شنبه 27 مرداد 1390, 17:46 عصر
واي كس نميتونه كمكم كنه ؟
چرا بعضي از فيلدا خالين ؟
و يه سوالمم اينه
فرض كنيد كد حواله كالا من تو جدول مثلا براي 10 كالا كه يه آقا ميبره كدحواله اين 10 كالا يكيه مثلا 1289 حالا ميخام برا اين 10 كالا يه بار اين كد بياد نه اين كه تو گزارش توي هر ده سطر 10 بار اين كد تكرار شه
داش اسماييل كجايي برس به دادم:اشتباه: