2016-05-24 3 views
0

DataGridView1のセル値であれば、DataGridView1.Columns(6)のセルに値を入力するときにチェックしたいデータグリッドがあります。 Columns(7)は、DataGridView1.Columns(6)のセル値とDataGridView1.Columns(1)という引数を持つ関数の結果を加算し、DataGridView1.Columns(6)から前回挿入した値の合計を取得します。私が知らない何か他のセルと関数の合計と比較して、DataGridセルを検証します。

:このチェックをすると、それを行う方法を

  • DataGridの各行のチェック式で関数の引数を割り当てる方法は?

機能は次のとおりです。

Public Shared Function getproddeclarata(ByVal nrfpo As String) As Integer 
    Dim total As Integer 
    Dim con As New SqlConnection 
    Try 
     con = New SqlConnection("Data Source=SVNAV;Initial Catalog=NAV_Vermorel_Live;User ID=sa;Password=1234") 
     Using cmd As SqlCommand = New SqlCommand("SELECT cast(SUM([Productie Declarata]) as Decimal(18,2)) as TotalOreDeclarate FROM [SC Vermorel SRL$ProductieZilnica] WHERE FPO = @nrfpo", con) 
      cmd.Parameters.AddWithValue("@nrfpo", nrfpo) 
      con.Open() 
      total = Convert.ToInt32(cmd.ExecuteScalar()) 
      con.Close() 
     End Using 
    Catch ex As Exception 
     Console.WriteLine(ex.Message) 
    Finally 
     If con IsNot Nothing Then 
      If con.State = ConnectionState.Open Then     ' 
       con.Close() 
      End If 
      con.Dispose() 
     End If 
    End Try 
    Return total 
End Function 
+0

?あなたのデータグリッドビューにデータが割り当てられているときにデータをチェックしようとしていますか? – codeMonger123

+0

こんにちは!はい。関数を呼び出すことによってデータグリッドに値が設定されます。私はDataGridと呼ばれるこの関数の特定のセルに値を入力するときにデータをチェックしようとしています。 Private Sub frmFpoList_Load(送信者オブジェクトとして、EventArgsとして)MyBase.Loadを処理します。 DataTable = functiicomune.getFpo(functiicomune.ProceseazaSCH(Now)、Now.Date)としてDim dtを作成します。DataGridView1.DataSource = dt –

答えて

0

あなたのようなイベントDataGridView1_CellEndEditをヘンデルことができるために:だからあなたはdatagridviewfromのSQLを移入している

Private Sub DataGridView1_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit 
     Try 
      Dim rw As DataGridView = DirectCast(sender, DataGridView) 

      If e.ColumnIndex = 6 Then 
      If IsNumeric (rw(e.ColumnIndex, e.RowIndex).Value) andalso rw(e.ColumnIndex, e.RowIndex).Value)>0 Then 
       If rw(7, e.RowIndex).Value > rw(e.ColumnIndex, e.RowIndex).Value + getproddeclarata(rw(1, e.RowIndex).Value.ToString()) Then 

        'Same code here 

       End If 
      End If 
     End If 

     Catch ex As Exception 

     End Try 
End Sub 
+0

hello! tks。それは動作しません。その奇妙なも:私は7未満のセルに任意の値を置く場合は、数式をトリガします。 7より大きい何かのためにそれdoesnt。たとえば、列インデックス7のセル内の数量は11で、列インデックス6に対応するセルに15を入力しようとしました。 –

+0

ああ、それは動作します!待つ!私はばかです!しかし、私はどのように0にセルの値をリセットするのですか?つまり、ユーザーがqtyを入れると、メッセージは表示されますが、qtyはセルに残ります。私は間違ったqtyを検証するのをユーザーが止める必要があります。 –

+0

あなたは値をevcalatingするためのテストを行うことができます:私の答えを見てください私はそれを編集する –

関連する問題