PDA

View Full Version : مجموع ستون ها در VSFlexGrid



samiasoft
دوشنبه 25 اسفند 1393, 13:29 عصر
سلام دوستان

در VSFlexGrid برای اینکه مجموع ستون اول رو بدست بیارم بدین صورت عمل کردم :

For i = 1 To 15
text1.text= Text1.Text + VSFlexGrid1.TextMatrix(i, 1)
next

حال میخواستم برای ستون 2 اینطور عمل کنم :
(این رو برای 4 ردیف نوشتم. اما همانند این رو برای 15 ردیف میخواستم)

ردیف اول ستون دوم=ردیف چهارم ستون اول + ردیف سوم ستون اول + ردیف دوم ستون اول + ردیف اول ستون اول
ردیف دوم ستون دوم =ردیف چهارم ستون اول + ردیف سوم ستون اول + ردیف دوم ستون اول
ردیف سوم ستون دوم=ردیف چهارم ستون اول + ردیف سوم ستون اول
اخرین ردیف ستون دوم = اخرین ردیف ستون اول

http://samisoft.ir/1/images/zxSX.gif

ممنون میشم منو راهنمایی کنید.

ahmad abdoli
دوشنبه 25 اسفند 1393, 16:39 عصر
سلام

نمی دونم جواب می ده یا نه ولی خودت امتحان کن من که امتحان نکردم


For i = 1 To 15
For j = 15 To i Step -1
Sum = Sum + vs.TextMatrix(j, 1)
Next j
vs.TextMatrix(i, 2) = Sum
Next i

samiasoft
دوشنبه 25 اسفند 1393, 19:08 عصر
سلام

نمی دونم جواب می ده یا نه ولی خودت امتحان کن من که امتحان نکردم


For i = 1 To 15
For j = 15 To i Step -1
Sum = Sum + vs.TextMatrix(j, 1)
Next j
vs.TextMatrix(i, 2) = Sum
Next i


کدتون تا حدی درسته اما بصورت برعکس اعداد رو جمع کرده هرکار کردم باز نتونستم به اون چیزی که میخوام تغییرش بدم:متفکر: در واقع میخواستم بصورت تصویر زیر باشه :

http://samisoft.ir/1/images/jUqa.gif

ahmad abdoli
دوشنبه 25 اسفند 1393, 21:46 عصر
دوست عزیز من طبق پست اول که مثال زدید کد رو نوشتم ولی حالا اشکال نداره حلقه داخلی رو مقدار اولیش رو روی 1 تا i-15 بزارید و step - 1 رو هم پاک کنید درست می شه



For i = 1 To 15
For j = i To 15
Sum = Sum + Val(VS.TextMatrix(j, 1))
Next j
VS.TextMatrix(i, 2) = Sum
Sum = 0
Next i

ahmad abdoli
دوشنبه 25 اسفند 1393, 22:38 عصر
معذرت می خوام بابت بی توجهی توی کد الان کد رو تصحیح کردم و درست چیزیه که شما می خوایید

samiasoft
دوشنبه 25 اسفند 1393, 23:14 عصر
دوست عزیز من طبق پست اول که مثال زدید کد رو نوشتم ولی حالا اشکال نداره حلقه داخلی رو مقدار اولیش رو روی 1 تا i-15 بزارید و step - 1 رو هم پاک کنید درست می شه



For i = 1 To 15
For j = i To 15
Sum = Sum + Val(VS.TextMatrix(j, 1))
Next j
VS.TextMatrix(i, 2) = Sum
Sum = 0
Next i



متاسفانه کدتون بازم اونی نیست که میخواستم:لبخند:در این کد هم وقتی Sum = 0 رو پاک نکنم کلا درست نمایش نمیده.الان کد نوشتاری شما ارایش جدول رو بصورت زیر درست میکنه :

http://samisoft.ir/1/images/nsaw9.gif

اما من میخواستم بطور زیرباشه

http://samisoft.ir/1/images/jUqa.gif

ahmad abdoli
سه شنبه 26 اسفند 1393, 01:43 صبح
دوست عزیر نمونه رو ببینید مشکلی نداره

فقط به جای عدد از حرف استفاده کردم که معلوم بشه کد درست عمل می کنه

129500

samiasoft
سه شنبه 26 اسفند 1393, 14:45 عصر
دوست عزیر نمونه رو ببینید مشکلی نداره

فقط به جای عدد از حرف استفاده کردم که معلوم بشه کد درست عمل می کنه

129500

با تشکر از شما فقط یه مشکلی هست وقتی ستون اول دارای اعداد ممیزدار باشند حاصلشون رو درست محاسبه نمیکنه. من حتی از val هم استفاده کردم اما نشد
http://samisoft.ir/1/images/Q7IYa.gif

samiasoft
سه شنبه 26 اسفند 1393, 14:57 عصر
فک کنم مشکل با ممیز بصورت / بود که وقتی جمع بسته میشد دچار اشکال میشد که با دستور رپلیز اونو به نقطه تبدیل کردم و اینطوری نوشتم.الان درست شد.رقم اعشارش رو هم تا 2 رقم گرد کردم

For i = 1 To 4
For j = i To 4
p = Val(Sum) + Val(VSFlexGrid1.TextMatrix(j, 1))
Sum = Replace(p, "/", ".")
s = InStr(1, Sum, ".")
If s <> 0 Then Sum = Left$(Sum, s + 2) Else: Sum = Sum & ".00"

Next j
VSFlexGrid1.TextMatrix(i, 2) = Sum

Sum = ""
Next