namon Postado Setembro 3, 2010 Denunciar Share Postado Setembro 3, 2010 (editado) VB - Como somar colunas do GRID (filho) e alimentar campo do PAI. Já tentei de várias formas, inclusive com a função MeuGrid.GetColumnSum(Coluna), mas apenas o primeiro registro da tabela é transportado.Se alguém puder me ajudar, agradeço.namonnamon@uai.com.br Editado Setembro 5, 2010 por Jonathan Queiroz Remover caixa alta do título conforme regra 3.7 (Jonathan) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Setembro 3, 2010 Denunciar Share Postado Setembro 3, 2010 mas q grid é esse q você usa?? datagrid?? msflexgrid??não conheco esse metodo GetColumnSum() e tb não o encontrei em nenhum desses dois grids. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 namon Postado Setembro 3, 2010 Autor Denunciar Share Postado Setembro 3, 2010 mas q grid é esse q você usa?? datagrid?? msflexgrid??não conheco esse metodo GetColumnSum() e tb não o encontrei em nenhum desses dois grids.Prezado Kuroi,Encontrei num fragmento de uma função em VBA (apenas anotei, há algum tempo).Enéa Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Setembro 3, 2010 Denunciar Share Postado Setembro 3, 2010 hum, tem como postar o codigo??seria vba dentro de qual programa?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 namon Postado Setembro 4, 2010 Autor Denunciar Share Postado Setembro 4, 2010 (editado) hum, tem como postar o codigo??seria vba dentro de qual programa??Re: Help in Msflexgrid --------------------------------------------------------------------------------VB Code:Option Explicit Private Sub Command1_Click() '1st parameter is the first column and the 2nd one is the last column 'the result is calculated between those two columns, including both of theme Text1.Text = getColumnSum(MSFlexGrid1, 0, 1) Text2.Text = getColumnSum(MSFlexGrid1, 2, 8) End Sub Private Function getColumnSum(mfg As MSFlexGrid, clmn1 As Integer, clmn2 As Integer) As Double Dim i As Integer, j As Integer For i = clmn1 To clmn2 With mfg .Col = i For j = 0 To .Rows - 1 .Row = j getColumnSum = getColumnSum + Val(.Text) Next j End With Next End Function-> É no MSFLEXGrid Editado Setembro 4, 2010 por kuroi Adicionar tag CODE Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Setembro 4, 2010 Denunciar Share Postado Setembro 4, 2010 esse codigo é pra funcionar. so q ele não soma uma coluna so, ele soma um range de colunas q você passa por parametros.e se você estiver usando numeros com virgula (formatados com virgula e não com ponto), é melhor trocar o Val() por CDbl().você tentou esse codigo e ele so ta pegando a primera linha?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 namon Postado Setembro 4, 2010 Autor Denunciar Share Postado Setembro 4, 2010 Kuroi,Na realidade tentei de TUDO, inclusive adptar esse codigo que passei. Mas não consegui com nada! E mão tenho nenhuma idéia de como conseguir. Já vasculhei a nete não encontrei nada específico! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Setembro 5, 2010 Denunciar Share Postado Setembro 5, 2010 vou adaptar o codigo pra somar uma coluna so:Private Function getColumnSum(mfg As MSFlexGrid, clmn As Integer) As Double Dim j As Integer With mfg .Col = clmn For j = 0 To .Rows - 1 .Row = j getColumnSum = getColumnSum + CDbl(.Text) Next j End WithEnd Function[/code] ai pra somar a coluna 1 você faz assim (sendo q a primera coluna é a 0): [code]soma = getColumnSum(nome_do_seu_flexgrid, 1)não testei mas acho q não tem erro. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 namon Postado Setembro 5, 2010 Autor Denunciar Share Postado Setembro 5, 2010 Obrigado Kuroi! Vou testar e posto aqui!Até amanhã e abraços! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 namon Postado Setembro 6, 2010 Autor Denunciar Share Postado Setembro 6, 2010 Boa noite Kuroi,Fiz o teste mas não funcionou!Esse formulário com o Grid que utilizo é o padrão do VB6 (DataGrid) e não o MSFlexGrid. Trata-se de uma formulário que é alimentado por Importação de arquivo TXT e não permite alterações, somente visualização, razão pelo qual utilizo o DataGrid.Essa rotina que você me passou, como fica para o DataGrid?Agradeço!Enéa Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Setembro 7, 2010 Denunciar Share Postado Setembro 7, 2010 os dados tão vindo do banco de dados?? se você tiver usando um recordset, você pode pegar os dados direto dele.agora, quanto aquela funcao, eu não costumo trabalhar dessa forma em datagrid (sempre costumo usar recordsets e toda informacao q preciso, pego direto deles), então não sei ate onde esse codigo, funciona, mas acho q com datagrid, aquela funcao seria mais o menos assim:Private Function getColumnSum(mfg As DataGrid, clmn As Integer) As Double Dim j As Integer With mfg .Col = clmn For j = 0 To .ApproxCount - 1 .Row = j getColumnSum = getColumnSum + CDbl(.Text) Next j End WithEnd Function[/code] Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 namon Postado Setembro 10, 2010 Autor Denunciar Share Postado Setembro 10, 2010 Obrigado Kuroi!você é fera!Alguns ajuste vou ter que fazer ainda, mas já dei o pontepé inicial com seus esclarecimentosAbraçosEnéa Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
namon
VB - Como somar colunas do GRID (filho) e alimentar campo do PAI.
Já tentei de várias formas, inclusive com a função MeuGrid.GetColumnSum(Coluna), mas apenas o primeiro registro da tabela é transportado.
Se alguém puder me ajudar, agradeço.
namon
namon@uai.com.br
Editado por Jonathan QueirozRemover caixa alta do título conforme regra 3.7 (Jonathan)
Link para o comentário
Compartilhar em outros sites
11 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.