PDA

View Full Version : سوال در مورد گزارش فاکس تحت داس



hamidnikan
شنبه 01 مرداد 1390, 16:25 عصر
با سلام
این سوال رو در بخش اکسس هم مطرح کردم چون فایلی داشتم که تحت فاکس داس بوده و اون به اکسس کانورت کردم و حالا در خصوص یه سری گزارشات با مشکل مواجه هستم ، اگه امکان داره راهنمایی بفرمایید که چطور می شه و با چه دستوری در پنجره فرمان فاکس می شه به چنین گزارشی دست پیدا کرد:

فرض کنید یه فایل dbf داریم که :
فیلد bb برا هر خانواده مثل هم است یعنی الان در فایل زیری 4 تای اولی از یه خونواده ، دوتای بعدی هم یه خونواده و دوتای آخر هم یه خونواده هستند
فیلد cc یه کد هست که اگه 1 بود یعنی سرپرست خونواده است اگه غیر از 1 بود یعنی اعضای خونواده است و تحت تکفل اونی که عدد 1 داره
فیلد cc هم مبلغ واریزیه که ممکنه سرپرست و یکی از اعضا مبلغی واریز کرده باشند

فیلد aa ******فیلد bb ******فیلد cc ******فیلد dd
علی******** 12131******* *1 ***********0
حسن******* 12131******** 2*********** 0
احمد******* 12131 ********3 **********50000
مرتضی****** 12131******** 4*********** 0
نواب******** 12150 ********1*********** 0
شریف******* 12150 ********3*********** 0
شجاعت***** 12110******** 1 *********50000
محمد******* 12110******** 3 ***********0


***** سوال و تقاضای راهنمایی :
در همین جدول بالا احمد و شجاعت که از دو خونواده مستقل هستند پول واریز کردند و نواب که سرپرست یه خونواده ی دیگه است چیزی واریز نکرده
ما دستوری میخواهیم که چهار نفر اولی که خونواده ی احمد هستند و دو نفر آخری که خونواده ی شجاعت هستند رو بهمون نشون بده و نواب و شریف رو که یه خونواده ی دیگه بوده و وجهی واریز نکردند توی گزارش نباشه
لطفا جواب بدین که خیلی برام ضروریه

amir_1351
یک شنبه 02 مرداد 1390, 08:00 صبح
دوست عزيز شما فيلد آيدي BB رو كه داري ! فليد DD رو هم كه داري !
ساده ترين كار حالا چيه ؟!
1- يك create curs مانند STRUCTURE بالا
2- يك scan for bb>0 براي يافتن كد آيدي (bb) پرداختي
3- scat كردن ركوردها از اصلي به كرس
4- گزارش و تمام .

بني حسيني
جمعه 04 شهریور 1390, 00:21 صبح
با فرمانهاي زير كارت راه مي افته.
1) use filename (اين همون فايل dbf هست)
2) copy to \fname for dd>0 field bb (فقط فيلد bb تو يه فايل ذخيره مي كني و اونهايي كه فيلد dd بزرگتر از صفره)
3) use \fname to 0 (باز كردن فايل ايجاد شده تو اولين ناحيه خالي)
4) sele fname
5) scan
6) sele filename
7) scan for bb==fname.bb
8) فرامين مورد نظرت رو ميدي
9) endscna
10) endscan