Member 12322217 Ответов: 0

Я хочу получить значение из одной строки сетки devexpress в другую строку сетки devexpress.


у меня есть форма, в которой я должен выбрать 2 элемента управления gridview . у меня есть выборка данных из базы данных в одной сетке и заданный столбец флажка на ней . я хочу установить значение всего столбца сетки в другой сетке по нажатию кнопки после флажка select .Я попробовал упомянуть код ниже это приложение оконной формы

Что я уже пробовал:

With dsDetail.Tables(0)
                   For iCount = 0 To .Rows.Count - 1
                       'If Val(.Rows(iCount).Item("BalanceAmount")) > 0 Then
                       If .Rows(iCount).Item("Checked") = 1 Then
                           ''' If dsMain.Tables("Detail").Rows.Count - 1 >= 0 Then
                           '''  For i = 0 To dsMain.Tables("Detail").Rows.Count - 1
                           'If dsDetail.Tables(0).Rows(i).Item("IdSInvoiceH") <> dsMain.Tables("Detail").Rows(iCount).Item("IdSInvoiceH") Then
                           '    drHeader = dsMain.Tables("Detail").NewRow
                           '    'drHeader.Item("AgainstType") = cboPartyName.Value
                           '    drHeader.Item("IdPartyH") = cboPartyName.Value
                           '    drHeader.Item("IdSInvoiceH") = .Rows(iCount).Item("IdSInvoiceH")
                           '    drHeader.Item("RefNo") = .Rows(iCount).Item("RefNo")
                           '    drHeader.Item("RefDate") = .Rows(iCount).Item("RefDate")
                           '    drHeader.Item("PartyDocNo") = .Rows(iCount).Item("PartyDocNo")
                           '    drHeader.Item("PartyDocDate") = .Rows(iCount).Item("PartyDocDate")
                           '    drHeader.Item("Amount") = .Rows(iCount).Item("Amount")
                           '    drHeader.Item("Checked") = .Rows(iCount).Item("Checked")
                           '    drHeader.Item("BalanceAmount") = .Rows(iCount).Item("BalanceAmount")
                           '    dsMain.Tables("Detail").Rows.Add(drHeader)
                           'End If
                           'Next
                           '' Else
                           drHeader = dsMain.Tables("Detail").NewRow
                           'drHeader.Item("AgainstType") = cboPartyName.Value
                           drHeader.Item("IdPartyH") = CboPartyName.Value
                           drHeader.Item("IdSInvoiceH") = .Rows(iCount).Item("IdSInvoiceH")
                           drHeader.Item("RefNo") = .Rows(iCount).Item("RefNo")
                           drHeader.Item("RefDate") = .Rows(iCount).Item("RefDate")
                           drHeader.Item("PartyDocNo") = .Rows(iCount).Item("PartyDocNo")
                           drHeader.Item("PartyDocDate") = .Rows(iCount).Item("PartyDocDate")
                           drHeader.Item("Amount") = .Rows(iCount).Item("Amount")
                           drHeader.Item("Checked") = .Rows(iCount).Item("Checked")
                           'drHeader.Item("BalanceAmount") = .Rows(iCount).Item("BalanceAmount")
                           drHeader.Item("Doc") = cboAdvType.Text
                           dsMain.Tables("Detail").Rows.Add(drHeader)
                       End If
                       '' End If
                   Next
               End With

               ''---------------------
               Dim totalamount As Double
               'Dim rwcounth As Integer
               Dim counth As Integer
               Dim countd As Integer
               Dim ipartycode As Integer
               If gStrPayMode = "CASH" Then
                   For counth = 0 To dsMain.Tables("Header").Rows.Count - 1
                       ipartycode = dsMain.Tables("Header").Rows(counth).Item("IdPartyH")
                       For countd = 0 To dsMain.Tables("Detail").Rows.Count - 1
                           If grdDetail.ActiveRow.Cells("Checked").Value = 1 Then
                               If ipartycode = dsMain.Tables("Detail").Rows(countd).Item("IdPartyH") Then
                                   totalamount = totalamount + dsMain.Tables("Detail").Rows(countd).Item("Amount")
                               End If
                           End If
                       Next
                       If IsDBNull(dsMain.Tables("Header").Rows(counth).Item("AdvType")) Then
                           dsMain.Tables("Header").Rows(counth).Item("AdvType") = ""
                       End If
                       If dsMain.Tables("Header").Rows(counth).Item("AdvType") <> "Open" Then
                           dsMain.Tables("Header").Rows(counth).Item("Amount") = totalamount
                       Else
                           dsMain.Tables("Header").Rows(counth).Item("Amount") = dsMain.Tables("Header").Rows(counth).Item("Amount")
                       End If

                   Next
               Else
                   For counth = 0 To dsMain.Tables("Header").Rows.Count - 1
                       totalamount = 0
                       ipartycode = dsMain.Tables("Header").Rows(counth).Item("IdPartyH")
                       For countd = 0 To dsMain.Tables("Detail").Rows.Count - 1
                           'If grdDetail.ActiveRow.Cells("Checked").Value = 1 Then
                           If ipartycode = dsMain.Tables("Detail").Rows(countd).Item("IdPartyH") Then
                               totalamount = totalamount + dsMain.Tables("Detail").Rows(countd).Item("Amount")
                           End If
                           'End If
                       Next
                       dsMain.Tables("Header").Rows(counth).Item("Amount") = totalamount
                       If IsDBNull(dsMain.Tables("Header").Rows(counth).Item("AdvType")) Then
                           dsMain.Tables("Header").Rows(counth).Item("AdvType") = ""
                           If dsMain.Tables("Header").Rows(counth).Item("AdvType") <> "Open" Then
                               dsMain.Tables("Header").Rows(counth).Item("Amount") = totalamount
                           Else
                               dsMain.Tables("Header").Rows(counth).Item("Amount") = dsMain.Tables("Header").Rows(counth).Item("Amount")
                           End If
                       Else
                       End If
                   Next
               End If

               ''------------------
               grdMain.DisplayLayout.Bands(1).Columns("IdPartyH").Hidden = True
               'grdMain.DisplayLayout.Bands(1).Columns("IdSInvoiceH").Hidden = True
               grdMain.DisplayLayout.Bands(1).Columns("Checked").Hidden = True
               grdMain.DisplayLayout.Bands(1).Columns("IdAccReceiptDocD").Hidden = True
           End If

           grdMain.DataSource = dsMain
           grdMain.DataBind()

Richard MacCutchan

В чем вопрос?

NightWizzard

Если вы привязываете сетку к таблице базы данных (или результату запроса), вы не можете вставлять строки непосредственно в сетку - выполняйте необходимые операции непосредственно в таблице базы данных, и сетка будет обновляться автоматически.

0 Ответов