ورود

View Full Version : كمك - بهترين روش انجام گزارش گيري براي اين مدل...!



web_user
دوشنبه 24 مهر 1391, 14:18 عصر
سلام خدمت همه برنامه نويس هاي محترم

من تويه يه نرم افزار ميخوام يه سري گزارش تهيه كنم كه مربوط به شركت هايي هست كه خريد ازشون انجام شده مثلا اگركاربر خواست بر اساس نام شركت گزارش تهيه كنه و بخواهد همه يا بعضي از شركت ها رو انتخاب كنه راه حلش چيه؟ البته اين نرم افزار تحت شبكه هست و امكان داره چندين كاربر بخوان همزمان همان گزارش را تهيه كنن!!!
چيزي كه به نظر خودم اومد اين بود كه براي هر قسمت از گزارش گيري يك جدول داشته باشم كه شركت هايي كه كاربر مي خواهد ازشون گزارش تهيه كنه ثبت بشن و با جدول اصلي مقايسه بشن و از شركت هايي كه انتخاب شده هستن گزارش گرفته بشه ولي چون آيتم هاي ديگري هم وجود داره اين كار عملاً امكان پذير نيست چون ممكنه يكي بخواد علاوه بر فيلد شركت ها از نوع خريد هاي انجام شده يا جنس خريداري شده هم بصورت همزمان گزارش بگيره!! كه اونوقت مشكل پيش مياد!! حالا شما لطف كنيد بهترين روش انجام اين كار رو به من آموزش بدين!! با تشكر از شما دوستان!

misaghi.nima
پنج شنبه 27 مهر 1391, 21:34 عصر
سلام
شما می توانید کلیه اطلاعات را در صفحه مورد نظر بیاورید ، سپس کاربر مورد نظر شما جستجو را بر روی این اطلاعات انجام می دهد ، در آخر پس از جستجو یک لیست از شرکت ها بدست می آید با استفاده از این لیست آن را به گزارش مورد نظر خود انتقال می دهید ، و نیاز به ذخیره کردن هم نیست .

باز اگر سوال خود با مثال دقیق تر بگی بیشتر میشه کمک کرد .

Hunter_Of_Kiss
جمعه 28 مهر 1391, 08:05 صبح
سلام دوست عزيز- از راهنماييتون متشكرم
ولي فكر كنم متوجه منظور من نشدين يا شايدم من!!!: گزارشي كه من ميخوام بگيرم اينطوري هست: كاربر انتخاب ميكنه نام شركت ها رو ممكنه 3 تا شركت رو انتخاب كنه ممكنه همه شركتها رو و بعد مياد سراغ مسوول خريدي كه خريد را انجام داده ممكنه كه همه مسوول خريدها را و انتخاب كنه ممكنه فقط يكي شو و ممكنه اين مراحل تا 10 فيلد بره يا شايدم با يه فيلد تموم بشه!! حالا چيزي كه من نياز دارم اينكه جايي باشه براي ذخيره كردن موقت اينا و وارد پروسه گزارش شدن!! مثلاً كاربر مي خواد در بازه زماني 1391/02/01 الي 1391/07/01 خريدهايي كه از شركت هاي ايران خودرو و محمدي و روانكار و شانديز شده است و مسوول خريد اونها آقايان رسولي و كرمي باشند و نوع خريد اونها هم نقدي باشد بگيرد براي شركت در گزارش نياز هست كه يك ليست از شركتهاي انتخاب شده و مسوولين خريد انتخاب شده و ... داشته باشيم و اون مقدار را مقايسه كنيم با جدولي كه اطلاعات كلي داخلش هست!! حالا مشكل من جايي براي ذخيره موقت هست!!! البته اين موضوع نبايد محدود به همين يك گزارش باشه چون براي بخش هاي ديگه هم نياز دارم يه همچين گزارشاتي تهيه بشه!!
بازم ممنون از اينكه لطف كردين و وقت گذاشتين!!

misaghi.nima
جمعه 28 مهر 1391, 20:08 عصر
آیا قرار این نحوه جستجو کردن یک

اینجوری که من متوجه شدم ، شما یک دیتا تیبل DataTable از اطلاعات دارید که شامل کلیه اطلاعات هست ، می خواهید بر اساس اطلاعات فیلد های اون دیتا تیبل DataTable جستجو کنید ، و با استفاده از این فیلد های جستجو به یک دیتا تیبل DataTable دیگه برسید .
برای جستجو کردن از دستور زیر استفاده می کنید . و این دستور اگر اشتباه نکنم به شما دیتارو DataRow بر می دهد . که به راحتی می توانید به دیتا تیبل DataTable تبدیل کنید .
متن جستجو هم بر اساس فیلد های جسنجو با استفاده از دستور sql می سازید
dtAll.Search("MatnJostejo")

حالا به دیتا تیبل جستجو می رسید که ان را به چاپ پاس می دهید .

اگر می خواهید این طریقه جستجو رو ذخیره کنید برای استفاده دیگر کاربر بحث دیگری می شود .

اگر جایی رو متوجه نشدید یا بد توضیح دادم بگید شفاف تر بگم .

Hunter_Of_Kiss
شنبه 29 مهر 1391, 14:27 عصر
nimaجان براي گزارشگيري من كوري هام از ديتا ست مي گيرم!! مشكل من براي زماني هست كه ميخوام از حجم انبوهي از اطلاعات گزارش بگيرم كه نياز هست اطلاعات با ديتا تيبل اصلي مقايسه بشه و فقط اطلاعات انتخاب شده گزارش داده بشه!! در ضمن من براي گزارش از يك شركت يا كليه فيلدها بصورتي كه شامل فقط يكي از آيتم هاش باشه مشكلي ندارم !! مثلاً اگه بخوام از اطلاعات مربوط به شركت ايران خودرو باشه مشكلي وجود نداره!! مشكل زماني پيش مياد كه بخوام شركت ايران خودرو و شانديز و ... با هم در يك گزارش شركت كنن!! پس در نتيجه من روشي رو ميخوام كه اطلاعات رو بصورت موقت بگيره و بعد از بستن فرم ديگه از بين بره و نياز نباشه براي هر گزارش من يك جدول تو ديتابيسم ايجاد كنم براي مقايسه!!! كه به نظر من كاري منطقي و علمي نيست!!!!
در ضمن من منظور شمارو از اين "برای جستجو کردن از دستور زیر استفاده می کنید . و این دستور اگر اشتباه نکنم به شما دیتارو DataRow بر می دهد . که به راحتی می توانید به دیتا تیبل DataTable تبدیل کنید .
متن جستجو هم بر اساس فیلد های جسنجو با استفاده از دستور sql می سازید
dtAll.Search("MatnJostejo") " نگرفتم

Hunter_Of_Kiss
شنبه 29 مهر 1391, 15:04 عصر
http://tlvmrs.tk/img/1e4ef94f2a6b.jpg http://tlvmrs.tk/img/4917db15c4e3.jpg http://tlvmrs.tk/img/e04e05fbe489.jpg

چيزي كه من ميخوام نرم افزار همكاران سيستم داره كه به اين شكل هست

misaghi.nima
شنبه 29 مهر 1391, 16:33 عصر
خوب همون روش جستجو روی دیتا تیبل جواب میده برای کاره شما .
شما روی تیبل مورد نظر خودتون بر روی دیتا ست نیز این کار را انجام بدید نیز حواب می دهد .


Dim row_Search As DataRow()
row_Search = DataSet1.DataTable1.Select("CompanyID="&id1&" or CompanyID="&id2")
For i = 0 To row_Search.Length - 1
Tabletest1.ImportRow(row_Search(i))
Next

با روش بالا شما از کلیه اطلاعات خود که در دیتاست بوده است و بر روی دول دیتا تیبل 1 بوده جستجو کردید و 2 تا از کمپانی ها را آوردید یعنی id1 و id 2 که این اطلاعات را ابتدا در داخل دیتا رو سپس به دیتاتیبل تست انتقال می دهید ، شما الان در دیتا تیبل تست به صورت موقت فقط الاعات 2 شرکت را دارید .

اگر متن جستو خودتون را به صورت دینامیک گسترش بدهید مشکل شما رفع می شود .
کد بالا به زبان vb.net است

Hunter_Of_Kiss
سه شنبه 02 آبان 1391, 14:56 عصر
سلام دوست عزيز از وقتي كه به اين موضونع اختصاص دادين بي نهايت متشكر!!

پس نظر شما هم اين است كه براي هر گزارش يك ديتا تيبل ايجاد بشه!! به نظرتون يه كم غير منطقي نيست اين كار چون من بخشهاي ديگري هم براي گزارش گيري به اين صورت دارم در نرم افزار يعني من بايد حدود 20-30 تا جدول ديگر ايجاد كنم!!؟؟