PDA

نسخه کامل مشاهده نسخه کامل : در مورد نحوه استفاده از ديتا ريپورت توضيح بدين



dastiary
28-01-2006, 22:52
سلام.لطفا در مورد نحوه استفاده از ديتا ريپورت توضيح بدين.
1.هر كاري ميكنم نميتونم با اون گزارش بگيرم وهر بار خطاي invalid data source ميده.
2.در مورد خواص اون توضيح بدين

ممنونم

ahmad_h
29-01-2006, 08:19
منظورت از هر كاري چيه
براي تامين كردن داده هات يا از data environment استفاده کن یا از رکورد ست ای دی او
توی ام اس دی ان هم یه نمونه مثال داره
اگه راهنمایی بیشتر میخوای بیشتر توضیح بده

dastiary
29-01-2006, 17:25
ببینید. من اطلاع کافی در مورد نحوه استفاده از دیتا ریپورت ندارم وبه این طریق عمل میکنم :
از منوی project زیرمنوی AddDataReport را کلیک میکنم وخاصیت رکورد سورس اونو تنظیم میکنم
که پس از اجرا پیغام بالا رو میده.
البته با ید بگم که با Adodc با بانکم ارتباط دارم

dastiary
01-02-2006, 16:55
دوستان،منتظرم

ahmad_h
02-02-2006, 10:36
دوست عزيز ديتا ريپورت اونجوري فقط data environment رو میشناسه که چیز خوبی نیست من یه کد برات میذارم که فکر کنم باهمین چند خط تمام مطالب ریپورت رو یاد بگیری با همون adodc هم کار میکنه
فقط یه پروژه جدید با یه فرم ویه دیتا ریپورت باز کن
یه adodc ویه کامند هم بذار رو فرمت بعد adodc رو هم به یه دیتا بیس متصلش کن بقیه توضیحات رو هم توی کد نوشتم
کد زیر رو تو فرمت بچسبون
Private Sub Command1_Click()
Set DataReport1.DataSource = Adodc1 'يا يک رکوردست اي دي او
DataReport1.Sections!section2.label1.Caption = "هر چيزي" 'يا ميتواني همان وقت در ديتا ري پورت کپشنشو هر چي ميخواي بنويسي
DataReport1.Sections!section1.text1.DataField = "اسم فيلد مرد تظر" 'اينجا بايد اسم فيلد مورد نظرتو بنويسي
'ميتواني تکست باکسها را در قسمت پروپرتي ديتا فيلد هم اسم فيلد مورد نظرتو بنويسي
DataReport1.Show
End Sub

dastiary
02-02-2006, 16:09
دوست عزيز ديتا ريپورت اونجوري فقط data environment رو میشناسه که چیز خوبی نیست من یه کد برات میذارم که فکر کنم باهمین چند خط تمام مطالب ریپورت رو یاد بگیری با همون adodc هم کار میکنه
فقط یه پروژه جدید با یه فرم ویه دیتا ریپورت باز کن
یه adodc ویه کامند هم بذار رو فرمت بعد adodc رو هم به یه دیتا بیس متصلش کن بقیه توضیحات رو هم توی کد نوشتم
کد زیر رو تو فرمت بچسبون
Private Sub Command1_Click()
Set DataReport1.DataSource = Adodc1 'يا يک رکوردست اي دي او
DataReport1.Sections!section2.label1.Caption = "هر چيزي" 'يا ميتواني همان وقت در ديتا ري پورت کپشنشو هر چي ميخواي بنويسي
DataReport1.Sections!section1.text1.DataField = "اسم فيلد مرد تظر" 'اينجا بايد اسم فيلد مورد نظرتو بنويسي
'ميتواني تکست باکسها را در قسمت پروپرتي ديتا فيلد هم اسم فيلد مورد نظرتو بنويسي
DataReport1.Show
End Sub

دوست عزیز،بسیار ممنون از سر نخ عالیتون .90% مشکلم حل شد.لطف کنید بگید آیا میشه در دیتا ریپورت از subtotalاستفاده کرد .
آیا میشه گزارش را بین دو تاریخ معین تهیه کرد؟
آیا میشه رکورد ها را گروه بندی کرد ومثلا فقط از یک یا چندتای اونا گزارش تهیه کرد؟.
ممنونم

ahmad_h
04-02-2006, 09:19
سلام
قابل نداشت
البته من دفعه قبل يلدم رفت كه بگم يه ليبل توي سكشن 1 و يه تكست باكس توي سكشن دو ريپورتت بذاري
آره ببين شما هر كاري كه با ديتاهات بخواي اول انجام بده بعد هم ركورد ست مورد نظرتو به ريپورتت متصل كن ولي براي اين كارا ديگه بايد ست كردن ركوردست و كانكشنت رو توي كد انجام بدي اينروش هم DataReport1.Sections!section2.label1.Caption
كه براي فرستادن داده هايي به ريپورتت هست كه موقع طراحي معلوم نستن و در موقع اجرا توليد ميشن مثل تاريخي كه از كاربر براي جستجو گرفته ميشه
براي گرفتن گزارش بين دوتا تاريخ بايد ابتدا دو تا تاريخ مورد نظر رو از كاربرت بگيري و توي دو تا متغيير مثلا tarikh1,tarikh2 بریزی بعد بنویسی
Adodc1.Recordset.Open "select * from Table where field between tarikh1 and tarikh2 " یا
Adodc1.RecordSource = "select * from Table where field between tarikh1 and tarikh2 "
كه در كداي بالا table همان نام جدول مورد نظر و field هم فیلد تاریخ مورد نظر میباشد
بعد هم
بگی
DataReport1.Show
برای تیتر گزارشت هم میتونی
توی سکشن1 یا سکشن3 ریپورتت بنویسی
گزارش از +label1 تا label2
توی کدت قبل از شو کردن ریپورتت
DataReport1.Sections!section2.label1.Caption=tarik h1
DataReport1.Sections!section2.label1.Caption=tarik h2
برای گروه بندی ویا هر کار دیگه روی دیتا ها هم همونطور که گفتم دیگه ربطی به ریپورت نداره و فقط باید بتونی با دستورات اس کیو ال رکورد ست مورد نظرتو تولید کنی
منظورت از subtotal نمی دونم چیه ولی اگه منظورت مثلا جمع یه ستونه میتونی از کنترلهلی function ریپورت استفاده کنی و به یه ستون متصلش کنی بعد پروپرتی اون رو روی هر چیزی که خواستی مثلا sum , avg یه چیزای دیگه ست کنی
موفق باشی

dastiary
04-02-2006, 20:14
سلام
قابل نداشت
البته من دفعه قبل يلدم رفت كه بگم يه ليبل توي سكشن 1 و يه تكست باكس توي سكشن دو ريپورتت بذاري
آره ببين شما هر كاري كه با ديتاهات بخواي اول انجام بده بعد هم ركورد ست مورد نظرتو به ريپورتت متصل كن ولي براي اين كارا ديگه بايد ست كردن ركوردست و كانكشنت رو توي كد انجام بدي اينروش هم DataReport1.Sections!section2.label1.Caption
كه براي فرستادن داده هايي به ريپورتت هست كه موقع طراحي معلوم نستن و در موقع اجرا توليد ميشن مثل تاريخي كه از كاربر براي جستجو گرفته ميشه
براي گرفتن گزارش بين دوتا تاريخ بايد ابتدا دو تا تاريخ مورد نظر رو از كاربرت بگيري و توي دو تا متغيير مثلا tarikh1,tarikh2 بریزی بعد بنویسی
Adodc1.Recordset.Open "select * from Table where field between tarikh1 and tarikh2 " یا
Adodc1.RecordSource = "select * from Table where field between tarikh1 and tarikh2 "
كه در كداي بالا table همان نام جدول مورد نظر و field هم فیلد تاریخ مورد نظر میباشد
بعد هم
بگی
DataReport1.Show
برای تیتر گزارشت هم میتونی
توی سکشن1 یا سکشن3 ریپورتت بنویسی
گزارش از +label1 تا label2
توی کدت قبل از شو کردن ریپورتت
DataReport1.Sections!section2.label1.Caption=tarik h1
DataReport1.Sections!section2.label1.Caption=tarik h2
برای گروه بندی ویا هر کار دیگه روی دیتا ها هم همونطور که گفتم دیگه ربطی به ریپورت نداره و فقط باید بتونی با دستورات اس کیو ال رکورد ست مورد نظرتو تولید کنی
منظورت از subtotal نمی دونم چیه ولی اگه منظورت مثلا جمع یه ستونه میتونی از کنترلهلی function ریپورت استفاده کنی و به یه ستون متصلش کنی بعد پروپرتی اون رو روی هر چیزی که خواستی مثلا sum , avg یه چیزای دیگه ست کنی
موفق باشی


*******
سلام دوست عزیز
جواب نمیده البته دقیقا واضح نیست که چکار باید بکنم اگه میشه بیشتر توضیح بدین
ممنونم

ahmad_h
05-02-2006, 16:50
بيشتر توضيح بده
اينجا هم سر بزن
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

dastiary
09-02-2006, 22:32
بيشتر توضيح بده
اينجا هم سر بزن]

سلام دوست عزیز
وقتی که دو تاریخ معین را وارد میکنم مشکلی نیست ولی وقتیکه اونا رو از کاربر میخوام جواب نمیده.
به شرح زیر عمل میکنم لطف کنید بگید مشکل کجاست؟
ضمنا بفرمایید اگه اسم فیلدها فارسی باشه باز روش همینه یا نه؟
1. یه command ودو تکست به اسم tarikh1 و tarikh2 و یه adodc رو فرم گذاشتم
2. پروپرتیAdodc را به شرح زیر تنظیم کردم:
• Command Type=1-adCmdText
• Command Text(SQL)= SELECT * FROM myTabel WHERE date between t1 and t2

Private Sub Command4_Click()
Dim t1 As String, t2 As String

t1 = tarikh1
t2 = tarikh1
Adodc1.RecordSource = "SELECT * FROM myTabel WHERE date between t1 and t2 "

Set DataReport1.DataSource = Adodc1
DataReport1.Show

End Sub

ahmad_h
12-02-2006, 09:41
اينجوري كه گفتي مشكل در گرفتن تاريخ از كاربره
1- ايا فيلد تاريخت كاراكتري هست يا نه
2- t1=trim(tarikh اینجوری بنویس
3- بعدهم تو اینجا هر دوی تی1 و تی دو رو مساوی tarikh1 نوشتی که هگه تو کدت هم همینجور باشه مشکل از همینه
4- به جای between اینطوری هم میتونی بنویسی date>=t1 and date<=t2
بعد هم نگفتی که خطا میده یا هیچی بر نمی گردونه

dastiary
14-02-2006, 23:02
اينجوري كه گفتي مشكل در گرفتن تاريخ از كاربره
1- ايا فيلد تاريخت كاراكتري هست يا نه
2- t1=trim(tarikh اینجوری بنویس
3- بعدهم تو اینجا هر دوی تی1 و تی دو رو مساوی tarikh1 نوشتی که هگه تو کدت هم همینجور باشه مشکل از همینه
4- به جای between اینطوری هم میتونی بنویسی date>=t1 and date<=t2
بعد هم نگفتی که خطا میده یا هیچی بر نمی گردونه


×××××××
اين خطا رو ميدهno value given for one or more required parameteres
البته خودم احتمال ميدم كه بخاطر اينه كه بلد نيستم خواص ADODCرا با کد نویسی تنظیم کنم.لطف کنید یه نمونه کد کامل بدید.

dastiary
14-02-2006, 23:06
شما دوست عزیز: بله با شماهستم.
اگه میتونید لطف کنید جواب بدین.

majid0
18-02-2006, 09:53
با سلام دوست عزيز اشتباها پيغام ندادي.
##########################
سلام دوست عزيز
من براي گزارش گيري از ADODC استفاده ميكنم
براي ساخت كوئري بصورت زير عمل ميكنم مشكل اينجاست كه براي يك شرط جواب ميده ولي براي دو شرط وبيشتر جواب نميده لطف كنيد راهنمايي كنيد.
مثلا دو شرط نام خانوادگي و نوع تردد
Text1= "SELECT * FROM nazm WHERE [ نام خانوادگي ]='" & Combo1 & "'" AND [نوع تردد]='" & Combo2 & "'"

With adodc
.Recorcsource= Text1
__________________
حضرت علی(ع):هرکس به من حرفی بیاموزد،مرا بنده خود ساخته است
.

السلام علیک یا ابا عبدالله
##################################
دوست عزيز باز هم با اشتباه تشكر.

ahmad_h
19-02-2006, 15:42
بيا اينم يه سورس نمونه برات درست كردم ببينم ياد ميگيري؟

برو توي ديتا بيس نگاه كن ببين سه تا تاريخ هست ولي فقط هموني كه ما بهش ميديم مياره
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

dastiary
25-02-2006, 10:30
بيا اينم يه سورس نمونه برات درست كردم ببينم ياد ميگيري؟

برو توي ديتا بيس نگاه كن ببين سه تا تاريخ هست ولي فقط هموني كه ما بهش ميديم مياره
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

××××××××××××××××××××××××× ×××××××××××××××××××××××

سلام.
از برنامه نمونه تون ممنونم.كاملا گويا بود واستفاده كردم
براي فيلدي كه نام اون لاتينه مثلtarikh,date جواب ميده
ولي اكه اسم فيلد فارسي باشه مثل تاريخ اونوقت اين خطا رو ميده
Data type mismatch in criteria expression

rouzbeh_ziafati
30-12-2008, 01:02
دوست عزيز ديتا ريپورت اونجوري فقط data environment رو میشناسه که چیز خوبی نیست من یه کد برات میذارم که فکر کنم باهمین چند خط تمام مطالب ریپورت رو یاد بگیری با همون adodc هم کار میکنه
فقط یه پروژه جدید با یه فرم ویه دیتا ریپورت باز کن
یه adodc ویه کامند هم بذار رو فرمت بعد adodc رو هم به یه دیتا بیس متصلش کن بقیه توضیحات رو هم توی کد نوشتم
کد زیر رو تو فرمت بچسبون
Private Sub Command1_Click()
Set DataReport1.DataSource = Adodc1 'يا يک رکوردست اي دي او
DataReport1.Sections!section2.label1.Caption = "هر چيزي" 'يا ميتواني همان وقت در ديتا ري پورت کپشنشو هر چي ميخواي بنويسي
DataReport1.Sections!section1.text1.DataField = "اسم فيلد مرد تظر" 'اينجا بايد اسم فيلد مورد نظرتو بنويسي
'ميتواني تکست باکسها را در قسمت پروپرتي ديتا فيلد هم اسم فيلد مورد نظرتو بنويسي
DataReport1.Show
End Sub



سلام
من دقیقا می خوام این کار رو بکنم . طبق روش شما این دستور رو نوشتم اما نشد !!!

سلام
در بانک یک فیلد دارم که تاریخ ورود ماشین رو در خودش قرار داده .
کدی نوشتم که ماشین هایی که بین دو تاریخ وارد شده اند رو در گزارش نمایش میده . تاریخ ها رو در text میگیرم .
می خوام توی datareport دو تا label بگذارم که این دو تاریخ که بر اساس جستجو کردم رو نشون بده ( همون محتویات Text1 و Text2 .... چه کار باید بکنم ؟؟؟؟ هر کاری کردم نشد !
مثلا اگر در فرم تاریخ 10/9/87 و 12/9/87 زدم و رکوردهای بانک رو در Datareport نمایش دادم در گزارش اون بالا این دو تا تاریخ نوشته بشه که وقتی چاپ میکنم بفهم این گزارش مربوط هست به ماشین هایی که بین این دو تا تاریخ وارد شده بودند .


این دستور رو نوشتم :
اول اینکه یک label1 در قسمت section4 قرار دادم . بعد خواستم ببینم آیا کار میکنه یا نه ؟ از توی فرم این دستور رو نوشتم :
DataReport1.Sections!section4.Label13.Caption = "ghtjhytght"

اما خوب error داد کسی می دونه چه کار باید بکنم تا بتونم محتوای یک text رو به یک label توی dataform ببرم ؟؟؟؟

rouzbeh_ziafati
06-01-2009, 18:43
آقا توی datareport چطوری میشه شماره ردیف زد ؟ برای رکوردها که اونجا نشون میشده به ترتیب از 1 تا ... شماره زد ؟

matin_offline
15-01-2009, 10:39
عالی بود با تشکر

kamranwolf
18-01-2009, 15:40
:11::11::11:سلام:
من میخواستم ببینم تو دیتا ریپورت چطوری میشه ردیف تعریف کرد (یعنی از 1 شروع کنه و تا آخرین اطلاعات) .
اگه بگین ممنون میشم.[

kamranwolf
18-01-2009, 16:08
من یک سری اطلاعات دارم مثلا حدود 1000 تا خب؟!
از این اطلاعاتم میتونم سورتشون کنم، میتونم فیلترشون کنم و گزارش بگیرم و چاپشون کنم ....
تنها مشکلی که دارم نمیتونم توی گزارشم ردیف رو اعمال کنم.
مثلا از این 1000 تا داداه از 50 تاشون پرینت میگیرم و میخوام این گزارشم ردیف داشته باشه مثلا
1
2
3
4
0
0
50
مشکلم اینه

kamranwolf
18-01-2009, 16:25
تو رو خدا جواب بدین

rouzbeh_ziafati
10-04-2009, 15:19
چطور میشه تشخیص داد که در گزارش گیری از طریق دیتا ریپورت Datareport که کاربر دکمه پرینت رو زده و از گزارش پرینت گرفته ؟
یک فیلد در بانک دارم که تعداد پرینت ها رو ثبت میکنه . و هر بار که از گزارش پرینت گرفته شد باید این متغییر رو یک واحد اضافه کنم کسی راهی بلده ؟

A.H.201
20-02-2017, 11:31
سلام
منم مثل دوستمون همین مشکل رو دارم
میشه کدتون را واضح تر بنویسید و بیشتر در این مورد توضیح بدید