نقل قول: مشكل با DataEnvironment
خاصيت DataSource مربوط به DataReport موردنظر رو خالي بزارين. تو sql statement هم از ضرب دكارتي تيبل ها استفاده كنيد.
اگر متوجه نشديد دستوري كه تو sql statement نوشتيد رو اينجا بزاريد
نقل قول: مشكل با DataEnvironment
دوست خوبم من كدي ننوشتم ولي اگه منظورتون كدي هست كه در sql statement خودش مي نويسه اينه SELECT Piece.Code, Piece.Description, Package.Name, Product.Name AS Expr1, Product.Code AS Expr2 FROM Piece, Package, Product WHERE Piece.Code = Package.Code AND Piece.Code = Product.Code
بايد دستي كدي مي نوشتم ؟!
در ضمن وقتي خاصيت datasource رو خالي ميذارم مينويسه Invalid Data Source
نقل قول: مشكل با DataEnvironment
براي DataReport مورد نظر نيازي به ايجاد Command در DataEnvironment نيست.
و به همين خاطر نبايد به خاصيت DataSource مربوط به DataReport مقدار بديد.
اينكارو بايد تو زمان كدنويسي انجام بدين. يعني همون دستور بالارو كه يك نوع جستجو هست در DataSource مربوط به ابزار اتصال به بانك قرار بديد و بعد هم Datareport.DataSorce رو Set كنيد به ابزار اتصال به بانك. و در آخر هم report رو نمايش بديد.
نكته مهم اينكه خاصيت DataField مربوط به TextBox هاي گزارش رو بايد به نام فيلد موردنظر بانك تغيير بديد. چون DataSource گزارش مقداري نداره پس نام فيلدها توي DataField ظاهر نميشه، بايد نام فيلد رو تاپيك كنيد.
موفق باشيد/
نقل قول: مشكل با DataEnvironment
يعني همين كد را بنويسم كافيه يا اينكه بايد كد ديگه اي هم اضافه كنم ، ميشه يه مقدار ساده تر راهنمائيم كنين ! ممنون مي شم دوست پر تلاش من:تشویق:
1 ضمیمه
نقل قول: مشكل با DataEnvironment
برنامه ضميمه رو نگاه كنيد.
توضيح:
دو تا جدول داريم، تو هركدوم يك فيلد داريم. جدول اولي فيلد Name داره و جدول دومي فيلد Family داره.
شرط ميزاريم اگه مقادير Name و Family در هركدوم از جدول ها يكسان بود تو گزارش نشون بده.
تو صفحه گزارش هم دوتا TextBox هست كه DataField شون يكي Name هست و اون يكي Family
و ديگر هيچ:چشمک:
موفق باشيد/
نقل قول: مشكل با DataEnvironment
دوست خوبم من با يه DataGrid امتحان كردم وقتي از يه table استفاده مي كنم مشكلي نيست ولي وقتي از 2 تا table استفاده مي كنم اين ارور مي ده :
The specified field 'Code' could refer to more on table listed in the FROM clause of your SQL statement.
كدهام اينه :
Private Sub Form_Load()
On Error Resume Next
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db.mdb;"
Adodc1.RecordSource = "SELECT X,Y FROM Table1,Table2"
Adodc1.Refresh
End Sub
نقل قول: مشكل با DataEnvironment
به اين خاطر هست كه فيلدهاتون تو جدولهاي مختلف همنام هستند. (فيلد Code)
اينجور مواقع بايد تفاوتي بينشون قائل شد. براي همين بعد از نام فيلد مي نويسيم As newName
و همچنين بايد مشخص كنيم كه هر فيلد متعلق به كدوم جدول هست. براي اين كار قبل از نام فيلد بايد نام جدول رو بنويسيد و يك نقطه بگذاريد و بعد نام فيلد رو بنويسيد.
مثل زير:
"SELECT table1.Code,table2.Code as n2 FROM table1,table2 where table1.Code=table2.Code"
كه اينجا فيلد Code از جدول دوم رو با نام n2 (يه نام دلخواه) صدا ميزنيم.
نقل قول: مشكل با DataEnvironment
ممنون از كمكتون مشكلم حل شد ولي يه سوال اگه جواب بدين ممنون مي شم حالا من در datagrid اطلاعاتي كه مي خوام دارم چه جوري مي شه كه من روي يكي از رديف هاي datagrid كليك كنم فقط همون رديف در datareport بياد الان به اينجا رسيدم كه كل اطلاعات ذخيره شده را در datareport مي بينم مي خوام روي يه رديف datagrid كليك كنم و فقط همون رديف نمايش داده بشه ممنون از لطفتون با عرض شرمندگي:خجالت:
نقل قول: مشكل با DataEnvironment
فكر نمي كنم بشه با DataGrid به محتواي cell ها دسترسي داشت.
ولي اگر از Vsflex استفاده كنيد ميشه با متد TextMatrix به سلول ها دسترسي داشته باشيد و بعد هم مستقيماً ارسالشون كنيد به صفحه گزارش.
نقل قول: مشكل با DataEnvironment
پس چجوري ميشه تنها يه رديف از يك table ديتا بيس رو پرينت گرفت ؟!
نقل قول: مشكل با DataEnvironment
همون يك رديف(ركورد) رو select كنيد.
البته من كه نمي دونم شما هدفتون چيه و آيا مي تونيد براي اين كار از يه DataReport ديگه استفاده كنيد يا نه. آيا امكان داره كه بعداً بخواين بجاي يك ركورد، دو يا چند ركورد رو گزارش بگيريد؟
به هر حال شما مي تونيد از Label بجاي TextBox تو صفحه گزارش استفاده كنيد.
و بعد:
DataReport1.Sections("Section2").Controls("Label1").Caption = DataGrid1.Columns.Item(0)
DataReport1.Sections("Section2").Controls("Label2").Caption = DataGrid1.Columns.Item(1)
DataReport1.Sections("Section2").Controls("Label3").Caption = DataGrid1.Columns.Item(2)
' ...
DataReport1.Show
DataSource هم هرچي مي خواين بزارين ولي تو صفحه گزارش textboxي نباشه كه به فيلدهاي جدول وصل باشه.
نقل قول: مشكل با DataEnvironment
ممنونم ، من بيشتر منظورم با همون datareport ، يه مثال ساده بزنم اينكه ما مشخصات يه سري افراد مثل اسم ، فاميا ، شماره شناسنامه ، نام پدر را در table مشخصات وارد مي كنيم وقتي در datareport گزارش مي گيرم همه مشخصات ذخيره شده نمايش داده ميشه من اينو نميخوام مثلا من فقط مشخصات (علي ) رو مي خوام
1 ضمیمه
نقل قول: مشكل با DataEnvironment
خب اين كه شد همون موضوع اول. مگه نمي گفتيد كه كاربر رو DataGrid كليك كنه و اون ركورد رو تو گزارش بياره؟!!!
براي اين چيزي كه الان مي گيد شما بايد مشخصات فرد موردنظر رو جستجو كنيد. نتيجه رو ست كنيد رو Datareport.DataSource.
ضميمه رو نگاه كنيد:
نقل قول: مشكل با DataEnvironment
نقل قول:
نوشته شده توسط
xxxxx_xxxxx
خب اين كه شد همون موضوع اول. مگه نمي گفتيد كه كاربر رو DataGrid كليك كنه و اون ركورد رو تو گزارش بياره؟!!!
براي اين چيزي كه الان مي گيد شما بايد مشخصات فرد موردنظر رو جستجو كنيد. نتيجه رو ست كنيد رو Datareport.DataSource.
ضميمه رو نگاه كنيد:
سلام. من این کارو انجام دادم ولی خطای :
failed getting rowset(s) from current data base
داد. این یعنی چی اونوقت؟ ممنون.
نقل قول: مشكل با DataEnvironment
نقل قول:
نوشته شده توسط
farkhondehkar
سلام. من این کارو انجام دادم ولی خطای :
failed getting rowset(s) from current data base
داد. این یعنی چی اونوقت؟ ممنون.
اگر امکانش هست اون قسمت از برنامه تون رو اینجا قرار بدید.
من تا حالا با این پیغام مواجه نشدم.