PDA

View Full Version : ایجاد نمودار هفتگی



akbar_2020
سه شنبه 26 فروردین 1393, 16:53 عصر
سلام دوستان

فرض کنیم یکسری داده که شامل تاریخ ، کالا و تعداد باشه رو داریم
برای مثال در 93/01/01 کالای x دارای تعداد 20 است
حالا ما می خواییم تعداد کالا ها رو بصورت هفتگی در نمودار نشون بدیم
از دوستان خواهشم اینکه بهترین راه حلی که به نظرشون می رسه رو
به اشتراک بذارن

ممنون.

binyaz2003
چهارشنبه 27 فروردین 1393, 05:41 صبح
خب این داده های شما دقیقا با چه ساختاری ذخیره میشن، مثلا هر کالا یک کد داره؟

akbar_2020
چهارشنبه 27 فروردین 1393, 08:51 صبح
مجموع تعداد کل فروش یک کالا در یک تاریخ رو نشون میده ، هر کالا هم یه کد داره که مربوط به خودشه

gh_khajehzade
چهارشنبه 27 فروردین 1393, 10:17 صبح
https://vfpx.codeplex.com/wikipage?title=FoxCharts

akbar_2020
چهارشنبه 27 فروردین 1393, 10:32 صبح
https://vfpx.codeplex.com/wikipage?title=FoxCharts

ممنون
ولی من دنبال یه الگوریتم مناسب می گردم

binyaz2003
چهارشنبه 27 فروردین 1393, 15:19 عصر
به فرض اگر سه فیلد :code, num, pdate داشته باشیم، با پرسش از گاربر که هفته چندم رو میخواد بازه زمانی مشخص میشه و با یک دستور sql مثل زیر میشه تعداد هر کالا رو در اون هفته بدست آورد:

SELECT code,SUM(num) as total FROM table1 WHERE BETWEEN(pdate,CTOD("01/01/2013"),CTOD("06/01/2013")) GROUP BY code

akbar_2020
چهارشنبه 27 فروردین 1393, 16:09 عصر
ممنون از راه حل تون
ولی راستش بازه مشخص نیست
البته من راه حلم این بود که اولین روز هفته اول سال رو بدست می آوردم (یعنی اول ماه تو کدوم روز می افته)
بعد از روی اون با یه while روی جدولم حرکت می کردم و مقادیر رو برای تمام هفته های سال بدست می آوردم.

akbar_2020
چهارشنبه 27 فروردین 1393, 16:20 عصر
ممنون از راه حل تون
ولی راستش بازه مشخص نیست
البته من راه حلم این بود که اولین روز هفته اول سال رو بدست می آوردم (یعنی اول ماه تو کدوم روز می افته)
بعد از روی اون با یه while روی جدولم حرکت می کردم و مقادیر رو برای تمام هفته های سال بدست می آوردم.


Dimension ch_arr(48,2)
_dofyears=dofyear()
Do Case
Case Alltrim(_dofyears)=='ÔäÈå'
i=6
Case Alltrim(_dofyears)=='í˜ ÔäÈå'
i=5
Case Alltrim(_dofyears)=='Ïæ ÔäÈå'
i=4
Case Alltrim(_dofyears)=='Óå ÔäÈå'
i=3
Case Alltrim(_dofyears)=='åÇÑ ÔäÈå'
i=2
Case Alltrim(_dofyears)=='äÌ ÔäÈå'
i=1
Case Alltrim(_dofyears)=='ÌãÚå'
i=7
Endcase

Set Century Off

j=1
_end=''
_begin=''

Select vmaster
Index On Date Tag _d Of vmaster..&_cdx

Select c_vmaster
Set Order To _d
Go Top
_begin=mali_year+"/01/01"
_end=Ctod(Dtoc(Date)+i)
Do While !Eof()

Do While Date>=_begin And Date<=_end
ch_arr(j,1)=ch_arr(j,1)+quantity
ch_arr(j,2)=ch_arr(j,2)+amount
Skip
Enddo
j=j+1
_begin=_end
_end=Ctod(Dtoc(_end)+7)

Enddo

Set Century On