Olá!
Preciso selecionar várias linhas em um xBrowse (uso MySQL).
Vou mostrar uma lista de clientes e o usuário seleciona quais ele deseja.
Alguém indica um exemplo?
Obrigado!
Hello!
I need to select multiple rows in an xBrowse (MySQL usage).
I will show a list of clients and the user selects which ones he wants.
Does anyone indicate an example?
Thank you!
Rodrigo Melo
Belo Horizonte / MG
Brasil
xBrowse multi selects (resolvido)
xBrowse multi selects (resolvido)
Last edited by ip_ram on Tue Sep 25, 2018 8:09 pm, edited 1 time in total.
Re: xBrowse multi selects
Please search for "xbrowse multiselect" in forum
http://forums.fivetechsupport.com/searc ... ultiselect
Samples:
http://forums.fivetechsupport.com/viewt ... ct#p189117
http://forums.fivetechsupport.com/viewt ... ct#p136254
http://forums.fivetechsupport.com/searc ... ultiselect
Samples:
http://forums.fivetechsupport.com/viewt ... ct#p189117
http://forums.fivetechsupport.com/viewt ... ct#p136254
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Re: xBrowse multi selects
Navarro,
Gracias.
Gracias.
Re: xBrowse multi selects
Navarro,
Após selecionar os registros no browse (oBrw) como recuperar os registros selecionados em aPes?
Gracias
Rodrigo Melo
Após selecionar os registros no browse (oBrw) como recuperar os registros selecionados em aPes?
Code: Select all
Function GrupoListarPessoa()
Local oDlg, oBrw, oSay, oPar, oCon, oRet, lRet := .f.
If ! Conectar(.f.)
Return(Nil)
EndIf
oPar := oDba:RowSet("select id,nom_pes from tb_pes order by nom_pes",,.t.)
If oPar == Nil
Return(lRet)
EndIf
Define Dialog oDlg Title "Selecionar Participantes" Size 516,358 Of oWnd Pixel
@ 28,2 xBrowse oBrw Of oDlg DataSource oPar ;
Columns 'id','nom_pes' ;
Headers 'ID','Pessoa' ;
Pictures "999","@A" ;
ColSizes 60,400 ;
Font oFnt2 Size 255,150 Pixel UpDate Cell AutoSort
oBrw:nMarqueeStyle := 5
oBrw:nDataType := 64
oBrw:nRowDividerStyle := 3
oBrw:nColDividerStyle := 2
With Object oBrw:InsCol(1)
:bEditValue := { || AScan( oBrw:aSelected, oBrw:BookMark ) > 0 }
:SetCheck()
:nHeadBmpNo := { || If( Len( oBrw:aSelected ) == oBrw:nLen, 1, 2 ) }
End
oBrw:bLClicked := { |r,c,f,oBrw| If( oBrw:MouseColPos( c ) == 1 , ;
If( ( f := AScan( oBrw:aSelected, oBrw:BookMark ) ) == 0, ;
AAdd( oBrw:aSelected, oBrw:BookMark ), ;
ADel( oBrw:aSelected, f, .t. ) ), Nil ), ;
oBrw:RefreshCurrent() }
oBrw:aCols[1]:nHeadStrAlign := 2
oBrw:aCols[2]:nHeadStrAlign := 2
oBrw:aCols[3]:nHeadStrAlign := 0
oBrw:aJustify := {2,1,0}
oBrw:bOnRefresh := { || oSay:Refresh() }
@ 8,05 Say 'Selecionados:' Of oDlg Pixel Font oFnt2
@ 8,48 Say oSay Prompt Len(oBrw:aSelected) Size 12,12 Of oDlg Pixel Font oFnt2 Picture '99'
@ 6,190 BTNBMP oCon Resource 'sel26' Of oDlg Size 32,16 Pixel 2007 ;
Action(lRet:=.t.,oDlg:End()) ToolTip "Confirmar os selecionados"
@ 6,226 BTNBMP oRet Resource 'sair16' Of oDlg Size 32,16 Pixel 2007 ;
Action(lRet:=.f.,oDlg:End()) ToolTip "Retornar"
oBrw:SetMySQL(oPar)
oBrw:CreateFromCode()
oDlg:oClient := oBrw
oDlg:lHelpIcon := .f.
Activate Dialog oDlg Centered On Init oBrw:SetFocus()
If lRet
If Len(oBrw:aSelected) > 0
aPes := oBrw:aSelected
EndIf
EndIf
Return(lRet)
Rodrigo Melo
Re: xBrowse multi selects
Rodrigo, intenta con oBrw:aSelected
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Re: xBrowse multi selects (resolvido)
Navarro,
Resolvido assim:
Agradecimento ao JMSilva (silva.ifsp@gmail.com).
Um abraço!
Rodrigo Melo
Resolvido assim:
Code: Select all
Function GrupoListarPessoa()
Local oDlg, oBrw, oSay, oPar, oCon, oRet, lRet := .f.
If ! Conectar(.f.)
Return(Nil)
EndIf
oPar := oDba:RowSet("select id,nom_pes from tb_pes order by nom_pes",,.t.)
If oPar == Nil
Return(lRet)
EndIf
Define Dialog oDlg Title "Selecionar Participantes" Size 516,358 Of oWnd Pixel
@ 28,2 xBrowse oBrw Of oDlg DataSource oPar ;
Columns 'id','nom_pes' ;
Headers 'ID','Pessoa' ;
Pictures "999","@A" ;
ColSizes 60,400 ;
Font oFnt2 Size 255,150 Pixel UpDate Cell AutoSort
oBrw:nMarqueeStyle := 5
oBrw:nDataType := 64
oBrw:nRowDividerStyle := 3
oBrw:nColDividerStyle := 2
With Object oBrw:InsCol(1)
:bEditValue := { || AScan( oBrw:aSelected, oBrw:BookMark ) > 0 }
:SetCheck()
:nHeadBmpNo := { || If( Len( oBrw:aSelected ) == oBrw:nLen, 1, 2 ) }
End
oBrw:bLClicked := { |r,c,f,oBrw| If( oBrw:MouseColPos( c ) == 1 , ;
If( ( f := AScan( oBrw:aSelected, oBrw:BookMark ) ) == 0, ;
AAdd( oBrw:aSelected, oBrw:BookMark ), ;
ADel( oBrw:aSelected, f, .t. ) ), Nil ), ;
oBrw:RefreshCurrent() }
oBrw:aCols[1]:nHeadStrAlign := 2
oBrw:aCols[2]:nHeadStrAlign := 2
oBrw:aCols[3]:nHeadStrAlign := 0
oBrw:aJustify := {2,1,0}
oBrw:bOnRefresh := { || oSay:Refresh() }
@ 8,05 Say 'Selecionados:' Of oDlg Pixel Font oFnt2
@ 8,48 Say oSay Prompt Len(oBrw:aSelected) Size 12,12 Of oDlg Pixel Font oFnt2 Picture '99'
@ 6,190 BTNBMP oCon Resource 'sel26' Of oDlg Size 32,16 Pixel 2007 ;
Action(lRet:=.t.,aPes:=GrupoRecuperarPessoa(oBrw,oPar),oDlg:End()) ToolTip "Confirmar os selecionados"
@ 6,226 BTNBMP oRet Resource 'sair16' Of oDlg Size 32,16 Pixel 2007 ;
Action(lRet:=.f.,aPes:={},oDlg:End()) ToolTip "Retornar"
oBrw:SetMySQL(oPar)
oBrw:CreateFromCode()
oDlg:oClient := oBrw
oDlg:lHelpIcon := .f.
Activate Dialog oDlg Centered On Init oBrw:SetFocus()
Return(lRet)
Function GrupoRecuperarPessoa(oBrw,oPar)
Local aVet := {}, nCtr := 0
If Len(oBrw:aSelected) > 0
For nCtr := 1 To Len(oBrw:aSelected)
oPar:GoTo(oBrw:aSelected[nCtr])
AAdd(aVet,oPar:Id)
Next
EndIf
Return(aVet)
Um abraço!
Rodrigo Melo
- nageswaragunupudi
- Posts: 8017
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Contact:
Re: xBrowse multi selects (resolvido)
This is wrong.oBrw:nDataType := 64
Correct nDataType is DATATYPE_ODBF (16)
XBrowse automatically decides the correct datatype, when you create the browse based on the type of DATASOURCE.
Not only that you do not have to assign the value yourself, but it is also highly undesirable as in the above case.
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
Re: xBrowse multi selects (resolvido)
Rao,
Tks.
Tks.