PDA

View Full Version : مبتدی: فيلترينگ گزارش به صورت ساب ريپورت



babak_1a
دوشنبه 19 اسفند 1392, 11:42 صبح
سلام به دوستان برنامه نويس و همچنين عرض ادب خدمت آقاي اميري. دو تا مشكل تو برنامه دارم. اولين و مهمترينش اينكه وقتي در فرم (frmReport)تاريخ رو درج ميكنم، گزارش (reportview) را درست نمايش ميده اما نميدونم چرا موقع چاپ 20 تا صفحه چاپ ميگيره. ديگر اينكه تو فرم( edit_frm ) موقع زدن باتون حذف مي خوام كل داده هاي تاريخ انتخاب شده حذف بشه نه اينكه تك تك حذف بشه.مثلاً وقتي تاريخ 1392/12/04 را انتخاب كنم كل داده هاي اون تاريخ حذف بشن. اگه امكان داره از اساتيد سايت خواهش مي كنم برنامه ضميمه رو اصلاح بفرمايند.ممنون.
http://uplod.ir/g6rvbiciypnk/cal2.rar.htm

babak_1a
چهارشنبه 21 اسفند 1392, 08:36 صبح
سلام به اساتيد محترم سايت. مشكل دوم رو تونستم به كمك دوستان حل كنم. تو رو خدا كمك كنيد مشكل اول كه خيلي هم مهمه حل بشه. اگه نوع گزارشگيري من غلطه لطف كنيد درستشو بهم ياد بدين. فقط مي خوام سه تا گزارش ( عادي، دربستي و جمع كل) توي يه گزارش نمايش داده بشه و بشه ازش چاپ گرفت. البته با فيلتر كردن تاريخ كه با توجه به فرم (frmReport) انجام ميشه. نمونه اصلاح مورد دوم رو ميذارم. فقط از دوستان خواهش ميكنم مشكل گزارشگيري رو حل بفرماييد./ممنون
http://uplod.ir/p2qoyhs5kab7/cal3.rar.htm

babak_1a
یک شنبه 25 اسفند 1392, 10:44 صبح
سلام به همه دوستان. چرا هيچكي به دادم نميرسه. خواهش ميكنم كمكم كنيد. من فبل از سال به اين برنامه نياز دارم.

Abbas Amiri
یک شنبه 25 اسفند 1392, 16:19 عصر
سلام به اساتيد محترم سايت. مشكل دوم رو تونستم به كمك دوستان حل كنم. تو رو خدا كمك كنيد مشكل اول كه خيلي هم مهمه حل بشه. اگه نوع گزارشگيري من غلطه لطف كنيد درستشو بهم ياد بدين. فقط مي خوام سه تا گزارش ( عادي، دربستي و جمع كل) توي يه گزارش نمايش داده بشه و بشه ازش چاپ گرفت. البته با فيلتر كردن تاريخ كه با توجه به فرم (frmReport) انجام ميشه. نمونه اصلاح مورد دوم رو ميذارم. فقط از دوستان خواهش ميكنم مشكل گزارشگيري رو حل بفرماييد./ممنون
http://uplod.ir/p2qoyhs5kab7/cal3.rar.htm

سلام

کد مربوط به روال حذف را مانند زیر تغییر دهید:

Private Sub Command5_Click()
If IsNull(Me!sub_frm![date]) Then Exit Sub
CurrentDb.Execute "DELETE * FROM data WHERE date='" & Me!sub_frm![date] & "'"
Form_sub_frm.Requery
End Sub

babak_1a
دوشنبه 26 اسفند 1392, 09:15 صبح
واقعاً از لطف و توجهتون ممنونم آقاي اميري. از تون خواهش مي كنم مشكل گزارشگيري منو حل بفرماييد. نمي دونم چرا وقتي تاريخ رو وارد مي كنم و گزارش ميگيرم موقع چاپ چندين صفحه رو چاپ مي گيره. خواهش ميكنم اين مشكلمو حل بفرمايين. ممنون

babak_1a
چهارشنبه 28 اسفند 1392, 08:07 صبح
خواهش مي كنم يكي به دادم برسه. ديگه وقتي ندارم.:گریه:

babak_1a
چهارشنبه 06 فروردین 1393, 10:45 صبح
با سلام و عرض تبريك خدمت اساتيد سايت. يكي از دوستان پيشنهاد زير رو بهم كرده ولي بازم نتونستم كاري بكنم. اگه براتون مقدور هست دستور كوئري را برام اصلاح كنيد. با تشكر


جدول زیر رو درنظر بگیرید. اسم جدول tb است.

[image: Inline image 6]

با query زیر میتونید داده ها (رکورد های عادی، رکورد های دربستی، مجموع مبالغ
رکورد های عادی، مجموع مبالغ رکورد های دربستی) رو در یک جدول داشته باشید:


*SELECT* tb.date, tb.value, tb.type, CASE tb.type WHEN 0 THEN tb0._sum WHEN
1 THEN tb1._sum END AS sum
*FROM* tb,
(SELECT date, value, type, SUM(value) AS _sum FROM tb WHERE type=0) AS tb0,
(SELECT date, value, type, SUM(value) AS _sum FROM tb WHERE type=1) AS tb1
*ORDER BY* tb.type, tb.date

جدول خروجی

[image: Inline image 1]
داده ها بصورت زیر در جدول ترکیب شده اند:

رکورد های مربوط به عادی (type=0)
[image: Inline image 2]

رکورد های مربوط به دربستی (type=1)
[image: Inline image 3]

مجموع کل مبالغ رکورد های عادی
[image: Inline image 4]

مجموع کل مبالغ رکورد های دربستی
[image: Inline image 5]

از جدول مربوطه در تولید فرم گزارش نهایی استفاده کنید.

توضیحات:

- ساختار کلی SELECT * FROM table ORDER BY field1, field2 هستش. تاریخ
tb.date، مبلغ tb.value، نوع tb.type از جدول اصلی tb استخراج شده و بترتیب در
سه ستون date، value، و type در جدول خروجی مشاهده میشه.
- توسط دستور CASE field WHEN value1 THEN run1 WHEN value2 THEN run2 END
یک شرط if ایجاد کردم و اسم مقدار خروجیش sum هستش (AS sum). اگر type یا همون
نوع رکورد در جدول tb برابر 0 باشه یعنی عادی پس مقدار رو از جدول tb0 بخون،
در غیر این صورت یعنی دربستی پس مقدار رو از جدول tb1 بخون.
- دو جدول tb0 و tb1 هم توسط یک دستور SELECT ایجاد می شن. ابتدا SELECT
های داخل پرانتز مربوط به دو جدول tb0 و tb1 اجرا می شن. خروجی که مشخص شد،
SELECT اصلی مقدار tb0._sum یا tb1._sum رو از این جداول بر اساس بررسی انجام
شده توسط شرط if می خونه.
- برای مثال در (SELECT date, value, SUM(value) AS _sum FROM tb WHERE
type=0) خروجی مقادیر عادی خواهد بود که بصورت یک جدول به نام tb0 در query
قرار گرفته. اسم فیلد مجموع SUM(value) AS _sum درنظر گرفته شده. پس tb0._sum
یعنی از جدول tb0 مقدار فیلد sum_ خوانده بشه.
- در نهایت ابتدا تمامی فیلد ها بر اساس type و سپس بر اساس date توسط
دستور ORDER BY مرتب می شن.
- نکته مهم اینکه بعد از بخش FROM جداول tb و tb0 و tb1 با کاما از هم جدا
شدن.



>https://aa-mg4.mail.yahoo.com/ya/download?mid=2_0_0_1_15769_AO52w0MAAAakUyGk9QAAAKt 2bDs&pid=2&fid=Inbox&inline=1https://aa-mg4.mail.yahoo.com/ya/download?mid=2_0_0_1_15769_AO52w0MAAAakUyGk9QAAAKt 2bDs&pid=3&fid=Inbox&inline=1https://aa-mg4.mail.yahoo.com/ya/download?mid=2_0_0_1_15769_AO52w0MAAAakUyGk9QAAAKt 2bDs&pid=4&fid=Inbox&inline=1https://aa-mg4.mail.yahoo.com/ya/download?mid=2_0_0_1_15769_AO52w0MAAAakUyGk9QAAAKt 2bDs&pid=5&fid=Inbox&inline=1https://aa-mg4.mail.yahoo.com/ya/download?mid=2_0_0_1_15769_AO52w0MAAAakUyGk9QAAAKt 2bDs&pid=6&fid=Inbox&inline=1https://aa-mg4.mail.yahoo.com/ya/download?mid=2_0_0_1_15769_AO52w0MAAAakUyGk9QAAAKt 2bDs&pid=7&fid=Inbox&inline=1

babak_1a
چهارشنبه 06 فروردین 1393, 10:55 صبح
https://aa-mg4.mail.yahoo.com/ya/download?mid=2_0_0_1_15769_AO52w0MAAAakUyGk9QAAAKt 2bDs&pid=2&fid=Inbox&inline=1https://aa-mg4.mail.yahoo.com/ya/download?mid=2_0_0_1_15769_AO52w0MAAAakUyGk9QAAAKt 2bDs&pid=3&fid=Inbox&inline=1https://aa-mg4.mail.yahoo.com/ya/download?mid=2_0_0_1_15769_AO52w0MAAAakUyGk9QAAAKt 2bDs&pid=4&fid=Inbox&inline=1https://aa-mg4.mail.yahoo.com/ya/download?mid=2_0_0_1_15769_AO52w0MAAAakUyGk9QAAAKt 2bDs&pid=5&fid=Inbox&inline=1https://aa-mg4.mail.yahoo.com/ya/download?mid=2_0_0_1_15769_AO52w0MAAAakUyGk9QAAAKt 2bDs&pid=6&fid=Inbox&inline=1https://aa-mg4.mail.yahoo.com/ya/download?mid=2_0_0_1_15769_AO52w0MAAAakUyGk9QAAAKt 2bDs&pid=7&fid=Inbox&inline=1

babak_1a
یک شنبه 31 فروردین 1393, 10:25 صبح
با عرض سلام خدمت دوستان برنامه نويس. متاسفانه برنامه قبل از سال جديد درست نشد. پيشنهاد دوستمم كاري از پيش نبرد. خواهش ميكنم قسمت گزارشگيري منو با در نظر گرفتن فيلتر انجام بفرماييد.

majid_tiger
دوشنبه 01 اردیبهشت 1393, 02:00 صبح
سلام دوست عزیز ، مشکل اولی که گزارش شما داره اینه : با توجه به اینکه از زیر گزارش ها استفاده کرده اید ، ولی باز هم گزارش اصلی به جدول Data لینک شده ! ، این عاملی است برای اینکه به تعداد رکوردهای موجود در جدول Data گزارش پردازش شود ، پس قسمت Detail نیاز به رکوردهای جدول - دیتا - دارد ولی نیستند ! .
-کوئری های شما که برای گزارش های دیگر ساخته شده همه فقط از جدول Data استفاده می کنند ! ...
-بطور کل اشکالاتی در کل برنامه وجود دارد ، اگر ناراحت نمی شوید باید بگویم کسی که به شما در تهیه برنامه کمک کرده کمی ناشیانه عمل کرده ! بطور مثال در فرم edit-frm ساب فرم تعبیه شده بطور غیر مستقیم به جدول data لینک شده و قرار گرفتن دکمه هایی مانند -ثبت- و -ویرایش- ، کار خاصی انجام نمی دهند .

babak_1a
دوشنبه 01 اردیبهشت 1393, 09:00 صبح
سلام دوست عزيز. واقعاً از انتقادات دوستانه شما ممنونم. اصلاً ناراحت نشدم، خيلي هم خوشحال شدم. راستشو بخواي خودم اين اعمال ناشيانه رو انجام دادم. من لينك data رو حذف كردم ولي بازم درست نشد. يعني موقع نمايش درست عمل مي كنه ولي موقع چاپ مشكل داره. مي خواستم خواهش كنم اگه براتون امكان داره فايلمو اصلاح بفرماييد. واقعاً ممنون ميشم.

majid_tiger
دوشنبه 01 اردیبهشت 1393, 09:39 صبح
اگر دوست دارید هدف برنامه ( یعنی ورودی ها و خروجی ها و در صورت لزوم محاسبات ) را برای من تعریف کنید . می توانید از email یا از همین پست هم استفاده کنید تا طراحی جداول و کوئری ها بازسازی شود .

babak_1a
دوشنبه 01 اردیبهشت 1393, 12:46 عصر
سلام. ممنون از پيگيريتون. برنامه اي كه مي خوام درست كنم مربوط به يه شركت مسافربري هست، كه دو نوع صورت حساب صادر مي كنه. (صورتحساب عادي و صورتحساب دربستي). در صورتحساب عادي اسم شهرها و مبالغ شهر مورد نظر طبق جدول adi انجام ميشه. ولي در صدور صورتحساب دربستي دو نوع مسير بيشتر نداريم. يكي شهرهاي داخل استان و ديگري شهرهاي خارج استان كه من تو جدول darbasti مبالغشو نوشتم. حالا موقع ثبت كردن تعداد صورت حسابي كه در يك روز صادر ميشه، صورتحسابهاي عادي رو از جدول adi و صورتحسابهاي دربستي رو از جدول darbasti استفاده مي كنم. تا اينجاي كار همه صورتحسابها با درج روز و تاريخ در جدول Data ذخيره ميشن. مشكل از اينجا شروع ميشه كه من مي خوام يه گزارش روزانه داشته باشم و يه گزارشي كه بتونم در تاريخ معين يا فاصله زماني، مثلاً از 15 روز اول فروردين گزارش تهيه كنم كه چه تعداد صورت عادي به همراه مبالغ و چه تعداد صورت دربستي به همراه مبالغ و جمع كل صورتهاي صادره رو مشاهده و چاپ بگيرم. در حال حاضر دست و پا شكسته تونستم يه جورايي نمايش گزارش رو ببينم ولي موقع چاپ چندين برگ پرينت ميگيره. كه شما فرمودين اصل قضيه مشكل داره. ممنون ميشم ازتون كه بهم كمك كنيد و هرجايي كه مشكل داره رو حذف يا اضافه كنيد مثل edit_frm

majid_tiger
دوشنبه 01 اردیبهشت 1393, 15:39 عصر
سلام
فعلاً در فایل شما تغییراتی برای گزارش گیری انجام دادم اگر مورد پسند بود و دوست داشتید به قسمتهای دیگر بپردازیم .
در فایل ضمیمه موضوعاتی را حذف کرده ام شما می توانید قسمتهای این فایل را در فایل یا برنامه خودتان وارد کنید .

babak_1a
سه شنبه 02 اردیبهشت 1393, 09:15 صبح
سلام آقا مجيد. خيلي خيلي از لطفت ممنون. خيلي عالي بود. در حال مطالعه كردنم كه ببينم چي كار كردي. اگه به مشكلي بر خوردم مزاحمتون ميشم. فقط اگه ممكنه مي خوام يه نوع گزارش هم مثل فايل پيوست كه با اكسل انجام ميدادم داشته باشم كه هم گزارش روزانه و هم گزارش با بازه زماني داشته باشه، با اين تفاوت كه هم صورتهاي دربستي و هم صورتهاي عادي و همچنين جمع كل صورتهاي عادي و دربستي در آن نمايش داده بشه و قابليت چاپ داشته باشه.
http://uplod.ir/boifkng6zccb/گزارش_تحت_اكسل.rar.htm

majid_tiger
سه شنبه 02 اردیبهشت 1393, 17:59 عصر
دوست عزیز این تاپیک مربوط به اکسس است و جهت احترام به قوانین و مدیران سایت بهتر است که سوال مربوط به اکسل را در تاپیک مربوطه مطرح نمایید . متشکرم .

babak_1a
چهارشنبه 03 اردیبهشت 1393, 08:38 صبح
سلام آقا مجيد. مثل اينكه منظورمو نتونستم خوب بيان كنم. من نمي خوام با اكسل انجام بشه. مي خوام يه نوع گزارش هم مثل خروجي pdf كه ضميمه كردم به گزارشهايي كه واسم با اكسس زحمتشو كشيدين اضافه كنيد كه هم بشه به صورت روزانه ازش گزارش و چاپ گرفت و هم بصورت بازه زماني. با اين تفاوت كه وقتي تاريخ مورد نظر رو فيلتر مي كنم، مثل فايل ضميمه شهرهاي صورتهاي عادي ثابت بمونه و مبالغ اون تغيير كنه و براي دربستي هم همينطور، فقط داخل استان و خارج استان ذكر بشه و مبالغ اون تغيير بكنه. و قسمت جمع كل هم همينطور. يه جورايي تو فايل اكسسي كه درست كرده بودم انجام ميشد، ولي موقع چاپ مشكل داشت.
بازم ازتون معذرت مي خوام كه نتونستم منظورمو درست بيان كنم.

babak_1a
یک شنبه 07 اردیبهشت 1393, 19:07 عصر
سلام دوستان عزیز. خواهش میکنم یکی ادامه زحمتهایی که آقا مجید کشیدن رو تکمیل کنه و یه نوع گزارش مثل فایل پیوستی با اکسس واسم درست کنه. ممنون از لطفتون

babak_1a
سه شنبه 09 اردیبهشت 1393, 08:17 صبح
سلام به دوستان عزيز برنامه نويس. چرا هيچكي جواب اين تاپيك و نميده. بابا اگه نميشه اين نوع گزارشگيري رو انجام داد، لااقل بهم بگين خيالم راحت شه. ممنون

babak_1a
شنبه 13 اردیبهشت 1393, 12:44 عصر
سلام به همه دوستان عزيز. من همچنان منتظر لطف شما هستم......................................:ن راحت::ناراحت::ناراحت::ناراح ::ناراحت:

babak_1a
یک شنبه 28 اردیبهشت 1393, 09:13 صبح
سلام آقا مجيد خواهش ميكنم اگه براتون امكان داره گزارشگيري مثل فايل pdf رو هم واسم با اكسس انجام بدين . ممنون