PDA

View Full Version : سوال: ایراد حلقه



kafinetetaha
دوشنبه 13 دی 1389, 13:15 عصر
سلام دوستان من این حلقه for رو نوشتم ولیاین حلقه درست کار نمیکنه این حلقه برای این نوشته شده که میخوام چند تا گرید رو بریزم تو یک گرید بصورتی که اگه یک جنس همنام و هم ماخذ بود رو فقط مقادیر گرم و کیلوشو رو با هم جمع کنه واگه همنام نبود در ردیف جدید اضافه کنه این کدی که من نوشتم مشکل اینه که به جنس هم نام که میرسه حلقه به پایان میرسه و اگه exit sub رو بردارم چندبار جنس ها رو تکرار میکنه اینم کدی که نوشتم

For i As Integer = 0 To dgv1.Rows.Count - 1
Dim jens As String = dgv1.Item("col1", i).Value
Dim ma1 As String = dgv1.Item("col_ma1", i).Value
If dgv4.Rows.Count = 0 Then
dgv4.Rows.Add()
dgv4.Item("col_name4", dgv4.Rows.Count - 1).Value = dgv1.Item("col1", i).Value
dgv4.Item("col_gramkol", dgv4.Rows.Count - 1).Value = dgv1.Item("col_gram1", i).Value
dgv4.Item("col_kilokol", dgv4.Rows.Count - 1).Value = dgv1.Item("col_kilo1", i).Value
dgv4.Item("col_makol", dgv4.Rows.Count - 1).Value = dgv1.Item("col_ma1", i).Value
Else
For j As Integer = 0 To dgv4.Rows.Count - 1
Dim jkol As String = dgv4.Item("col_name4", j).Value
Dim makol As String = dgv4.Item("col_makol", j).Value
If jkol = jens And ma1 = makol Then

Dim skol As String
skol = Val(dgv1.Item("col_gram1", i).Value) + Val(dgv4.Item("col_gramkol", j).Value)
If skol >= 1000 Then
Dim gkol As String
gkol = skol Mod 1000
dgv4.Item("col_gramkol", j).Value = gkol
Dim kkol As String
kkol = skol \ 1000
dgv4.Item("col_kilokol", j).Value = Val(kkol) + Val(dgv4.Item("col_kilokol", j).Value)
Else
dgv4.Item("col_gramkol", j).Value = Val(dgv1.Item("col_gram1", i).Value) + Val(dgv4.Item("col_gramkol", j).Value)
dgv4.Item("col_kilokol", j).Value = Val(dgv1.Item("col_kilo1", i).Value) + Val(dgv4.Item("col_kilokol", j).Value)
End If
Exit Sub
End If
Next j
End If
dgv4.Rows.Add()
dgv4.Item("col_name4", dgv4.Rows.Count - 1).Value = dgv1.Item("col1", i).Value
dgv4.Item("col_gramkol", dgv4.Rows.Count - 1).Value = dgv1.Item("col_gram1", i).Value
dgv4.Item("col_kilokol", dgv4.Rows.Count - 1).Value = dgv1.Item("col_kilo1", i).Value
dgv4.Item("col_makol", dgv4.Rows.Count - 1).Value = dgv1.Item("col_ma1", i).Value
Next i

kafinetetaha
دوشنبه 13 دی 1389, 13:16 عصر
For i As Integer = 0 To dgv1.Rows.Count - 1
Dim jens As String = dgv1.Item("col1", i).Value
Dim ma1 As String = dgv1.Item("col_ma1", i).Value
If dgv4.Rows.Count = 0 Then
dgv4.Rows.Add()
dgv4.Item("col_name4", dgv4.Rows.Count - 1).Value = dgv1.Item("col1", i).Value
dgv4.Item("col_gramkol", dgv4.Rows.Count - 1).Value = dgv1.Item("col_gram1", i).Value
dgv4.Item("col_kilokol", dgv4.Rows.Count - 1).Value = dgv1.Item("col_kilo1", i).Value
dgv4.Item("col_makol", dgv4.Rows.Count - 1).Value = dgv1.Item("col_ma1", i).Value
Else
For j As Integer = 0 To dgv4.Rows.Count - 1
Dim jkol As String = dgv4.Item("col_name4", j).Value
Dim makol As String = dgv4.Item("col_makol", j).Value
If jkol = jens And ma1 = makol Then

Dim skol As String
skol = Val(dgv1.Item("col_gram1", i).Value) + Val(dgv4.Item("col_gramkol", j).Value)
If skol >= 1000 Then
Dim gkol As String
gkol = skol Mod 1000
dgv4.Item("col_gramkol", j).Value = gkol
Dim kkol As String
kkol = skol \ 1000
dgv4.Item("col_kilokol", j).Value = Val(kkol) + Val(dgv4.Item("col_kilokol", j).Value)
Else
dgv4.Item("col_gramkol", j).Value = Val(dgv1.Item("col_gram1", i).Value) + Val(dgv4.Item("col_gramkol", j).Value)
dgv4.Item("col_kilokol", j).Value = Val(dgv1.Item("col_kilo1", i).Value) + Val(dgv4.Item("col_kilokol", j).Value)
End If
Exit Sub
End If
Next j
End If
dgv4.Rows.Add()
dgv4.Item("col_name4", dgv4.Rows.Count - 1).Value = dgv1.Item("col1", i).Value
dgv4.Item("col_gramkol", dgv4.Rows.Count - 1).Value = dgv1.Item("col_gram1", i).Value
dgv4.Item("col_kilokol", dgv4.Rows.Count - 1).Value = dgv1.Item("col_kilo1", i).Value
dgv4.Item("col_makol", dgv4.Rows.Count - 1).Value = dgv1.Item("col_ma1", i).Value
Next i

kafinetetaha
دوشنبه 13 دی 1389, 16:24 عصر
کسی نیست جواب منو بده

kafinetetaha
چهارشنبه 15 دی 1389, 13:33 عصر
تورو خدا یکی جواب منو بده خواهش میکنم

kebriya
چهارشنبه 15 دی 1389, 18:41 عصر
اگه منظورتون اینه که از for دوم بیاد بیرون این کد رو امتحان کن. اگه error میده بگو آخه تست نکردم فقط نوشتم



Dim flag As Boolean
Dim j As Int16
For i As Integer = 0 To dgv1.Rows.Count - 1
Dim jens As String = dgv1.Item("col1", i).Value
Dim ma1 As String = dgv1.Item("col_ma1", i).Value
If dgv4.Rows.Count = 0 Then
dgv4.Rows.Add()
dgv4.Item("col_name4", dgv4.Rows.Count - 1).Value = dgv1.Item("col1", i).Value
dgv4.Item("col_gramkol", dgv4.Rows.Count - 1).Value = dgv1.Item("col_gram1", i).Value
dgv4.Item("col_kilokol", dgv4.Rows.Count - 1).Value = dgv1.Item("col_kilo1", i).Value
dgv4.Item("col_makol", dgv4.Rows.Count - 1).Value = dgv1.Item("col_ma1", i).Value
Else
flag = True
j As Integer = 0
While j <= dgv4.Rows.Count - 1 And flag
Dim jkol As String = dgv4.Item("col_name4", j).Value
Dim makol As String = dgv4.Item("col_makol", j).Value
If jkol = jens And ma1 = makol Then

Dim skol As String
skol = Val(dgv1.Item("col_gram1", i).Value) + Val(dgv4.Item("col_gramkol", j).Value)
If skol >= 1000 Then
Dim gkol As String
gkol = skol Mod 1000
dgv4.Item("col_gramkol", j).Value = gkol
Dim kkol As String
kkol = skol \ 1000
dgv4.Item("col_kilokol", j).Value = Val(kkol) + Val(dgv4.Item("col_kilokol", j).Value)
Else
dgv4.Item("col_gramkol", j).Value = Val(dgv1.Item("col_gram1", i).Value) + Val(dgv4.Item("col_gramkol", j).Value)
dgv4.Item("col_kilokol", j).Value = Val(dgv1.Item("col_kilo1", i).Value) + Val(dgv4.Item("col_kilokol", j).Value)
End If
flag = False
End If
j++
End While
End If
dgv4.Rows.Add()
dgv4.Item("col_name4", dgv4.Rows.Count - 1).Value = dgv1.Item("col1", i).Value
dgv4.Item("col_gramkol", dgv4.Rows.Count - 1).Value = dgv1.Item("col_gram1", i).Value
dgv4.Item("col_kilokol", dgv4.Rows.Count - 1).Value = dgv1.Item("col_kilo1", i).Value
dgv4.Item("col_makol", dgv4.Rows.Count - 1).Value = dgv1.Item("col_ma1", i).Value
Next i

kafinetetaha
سه شنبه 21 دی 1389, 13:47 عصر
دوست عزیز این اجرا نمیشه هنگ می کنه

kafinetetaha
سه شنبه 21 دی 1389, 13:48 عصر
یکی ه دادم برسه مشکل این حلقه کجاست