marcioe Posted December 20, 2022 Report Share Posted December 20, 2022 Pesquisa incremental, quando nao tem mais ocorrencia Imagina que tenha digitado ABRACADEIRAS dai queria uma forma de alertar ao usuario que não tem mais nada(nao está encontrando) oDB_CLIENTES := TXBrowse():New( oPES_CLIENTES ) oDB_CLIENTES:SetArray( a_Array_Pesq_Clientes,.T.,2, { 01,02,03,04,05,06,07,08,09,10,11,12,13,14 } ) oDB_CLIENTES:bKeyDown :={|nKey| SeekBrowseEmArray( oDB_CLIENTES ), if(nkey=13, COMPLEMENTO_PESQ_CLIENTES(VAL(a_Array_Pesq_Clientes[oDB_CLIENTES:nArrayAt,01]) , oPES_CLIENTES:End() ),0) } oDB_CLIENTES:bChange :={|| COMPLEMENTO_PESQ_CLIENTES(IF(len(a_Array_Pesq_Clientes)>0,VAL(a_Array_Pesq_Clientes[oDB_CLIENTES:nArrayAt,01]),0)) } oDB_CLIENTES:bLDblClick :={|| COMPLEMENTO_PESQ_CLIENTES(IF(len(a_Array_Pesq_Clientes)>0,VAL(a_Array_Pesq_Clientes[oDB_CLIENTES:nArrayAt,01]),0)) , oPES_CLIENTES:End() } oDB_CLIENTES:nHeaderLines := 2 //-----> Linhas do cabeçalho oDB_CLIENTES:nDataLines := 2 oDB_CLIENTES:lRecordSelector := .T. oDB_CLIENTES:lAllowColSwapping := .T. //-----> Trocar Colunas oDB_CLIENTES:lAllowRowSizing := .F. //-----> Nao move as Linhas oDB_CLIENTES:lColDividerComplete := .F. //-----> .T. Poe as colunas ate o final do browse. oDB_CLIENTES:lHScroll := .T. //-----> Barra Rolagem Horiz. oDB_CLIENTES:lFooter := .T. oDB_CLIENTES:bClrStd := { || IIF( oDB_CLIENTES:nArrayAt() %2 == 0 ,{ M->COR_LETRAS_GRID, COR_1_bClrStd },{ M->COR_LETRAS_GRID, COR_2_bClrStd }) } oDB_CLIENTES:bClrSelFocus := {|| { M->COR_1_bClrSelFocus, M->COR_2_bClrSelFocus } } oDB_CLIENTES:bClrRowFocus := {|| { M->COR_1_bClrRowFocus, M->COR_2_bClrRowFocus } } oDB_CLIENTES:nColDividerStyle := 4 oDB_CLIENTES:nRowDividerStyle := 4 oDB_CLIENTES:nMarqueeStyle := 4 oDB_CLIENTES:nFooterLines := 1 oDB_CLIENTES:lAllowColSwapping := .T. // Click no header (.f.)Trava oDB_CLIENTES:lAllowRowSizing := .T. // Nao move as Linhas (nao sei) oDB_CLIENTES:l2007 := M->ESTILO_l2007 oDB_CLIENTES:lAllowRowSizing := .T. oDB_CLIENTES:lAutoSort := .T. oDB_CLIENTES:lColChangeNotify := .T. &&&&& gerar evento por coluna oDB_CLIENTES:nStretchCol := STRETCHCOL_WIDEST // Ajusta as colunas do xBrowse. oDB_CLIENTES:nColSel := (p_ColAtu) // Jogar o Foco na Segunda coluna *---------------------------------------------------------------------------- WITH OBJECT oDB_CLIENTES :lIncrFilter := .T. :lSeekWild := .T. :aCols[02]:bFooter := { || "Qtde.: " + ALLTRIM(Str( oDB_CLIENTES:nLen )) +' Reg.' } END *------------------------------------------------------------------------- oDB_CLIENTES:nFreeze:=1 // congelar a coluna oDB_CLIENTES:nFreeze:=2 *---------------------------------------------------------------------------- oDB_CLIENTES:aCols[ 01 ]:cHeader := "Cód" oDB_CLIENTES:aCols[ 01 ]:nDataStrAlign := AL_LEFT oDB_CLIENTES:aCols[ 01 ]:nHeadStrAlign := AL_LEFT oDB_CLIENTES:aCols[ 01 ]:cToolTip := {"Código do Cliente","Ajuda","", } *---------------------------------------------------------------------------- oDB_CLIENTES:aCols[ 02 ]:cHeader := "Nome / Razão Social" oDB_CLIENTES:aCols[ 02 ]:nDataStrAlign := AL_LEFT oDB_CLIENTES:aCols[ 02 ]:nHeadStrAlign := AL_LEFT oDB_CLIENTES:aCols[ 02 ]:bClrStd := {|| { IF(len(a_Array_Pesq_Clientes)>0, IF( VAL(a_Array_Pesq_Clientes[oDB_CLIENTES:nArrayAt,04]) > 1 ,CLR_VERMELHO,CLR_VERDE) ,nil) , IIF((oDB_CLIENTES:KeyNo())%2==0, COR_1_bClrStd , COR_2_bClrStd ) } } oDB_CLIENTES:aCols[ 02 ]:oHeaderFont := O_F_GET oDB_CLIENTES:aCols[ 02 ]:oDataFont := O_F_DLG2 oDB_CLIENTES:aCols[ 02 ]:cToolTip := {"Nome ou Razao Social","Ajuda","", } *---------------------------------------------------------------------------- oDB_CLIENTES:aCols[ 03 ]:cHeader := "Apelido/Fantasia" oDB_CLIENTES:aCols[ 03 ]:nDataStrAlign := AL_LEFT oDB_CLIENTES:aCols[ 03 ]:nHeadStrAlign := AL_LEFT oDB_CLIENTES:aCols[ 03 ]:cToolTip := {"Apelido/Nome Fantasia","Ajuda","", } *---------------------------------------------------------------------------- oDB_CLIENTES:aCols[ 04 ]:bBmpData := { || if(len(a_Array_Pesq_Clientes)>0,VAL(a_Array_Pesq_Clientes[oDB_CLIENTES:nArrayAt,04]),nil) } oDB_CLIENTES:aCols[ 04 ]:AddResource("#8663") &&&& Verde 1 Liberado oDB_CLIENTES:aCols[ 04 ]:AddResource("#8664") &&&& Vermelho 2 Bloqueado oDB_CLIENTES:aCols[ 04 ]:bstrData := {|| '' } oDB_CLIENTES:aCols[ 04 ]:cHeader := "*" oDB_CLIENTES:aCols[ 04 ]:nWidth := 25 oDB_CLIENTES:aCols[ 04 ]:bLClickHeader := {|r,c,f,o| ( LEGENDA_CADASTRO_CLIENTE() )} oDB_CLIENTES:aCols[ 04 ]:cToolTip := {"Situação do Quanto ao Crédiário","Ajuda","", } *---------------------------------------------------------------------------- oDB_CLIENTES:aCols[ 05 ]:bBmpData := { || if(len(a_Array_Pesq_Clientes)>0,VAL(a_Array_Pesq_Clientes[oDB_CLIENTES:nArrayAt,05]),nil) } oDB_CLIENTES:aCols[ 05 ]:AddResource("#8457") &&&& Ativo Azul oDB_CLIENTES:aCols[ 05 ]:AddResource("#8456") &&&& Inativo Amarelo oDB_CLIENTES:aCols[ 05 ]:bstrData := {|| '' } oDB_CLIENTES:aCols[ 05 ]:cHeader := "*" oDB_CLIENTES:aCols[ 05 ]:nWidth := 25 oDB_CLIENTES:aCols[ 05 ]:bLClickHeader := {|r,c,f,o| ( LEGENDA_CADASTRO_CLIENTE() )} oDB_CLIENTES:aCols[ 05 ]:cToolTip := {"Situação do Quanto ao Cadastro","Ajuda","", } *---------------------------------------------------------------------------- oDB_CLIENTES:aCols[ 06 ]:cHeader := "Endereco" oDB_CLIENTES:aCols[ 06 ]:nDataStrAlign := AL_LEFT oDB_CLIENTES:aCols[ 06 ]:nHeadStrAlign := AL_LEFT oDB_CLIENTES:aCols[ 06 ]:cToolTip := {"Endereço do Cliente","Ajuda","", } *---------------------------------------------------------------------------- oDB_CLIENTES:aCols[ 07 ]:cHeader := "Bairro" oDB_CLIENTES:aCols[ 07 ]:nDataStrAlign := AL_LEFT oDB_CLIENTES:aCols[ 07 ]:nHeadStrAlign := AL_LEFT oDB_CLIENTES:aCols[ 07 ]:cToolTip := {"Bairro do Cliente","Ajuda","", } *---------------------------------------------------------------------------- oDB_CLIENTES:aCols[ 08 ]:cHeader := "Cpf/Cnpj" oDB_CLIENTES:aCols[ 08 ]:nDataStrAlign := AL_LEFT oDB_CLIENTES:aCols[ 08 ]:nHeadStrAlign := AL_LEFT oDB_CLIENTES:aCols[ 08 ]:cToolTip := {"Cpf ou Cnpj do Cliente","Ajuda","", } *---------------------------------------------------------------------------- oDB_CLIENTES:aCols[ 09 ]:cHeader := "Telefone" oDB_CLIENTES:aCols[ 09 ]:nDataStrAlign := AL_LEFT oDB_CLIENTES:aCols[ 09 ]:nHeadStrAlign := AL_LEFT oDB_CLIENTES:aCols[ 09 ]:cToolTip := {"Telefone do Cliente","Ajuda","", } *---------------------------------------------------------------------------- oDB_CLIENTES:aCols[ 10 ]:cHeader := "Whatsapp" oDB_CLIENTES:aCols[ 10 ]:nDataStrAlign := AL_LEFT oDB_CLIENTES:aCols[ 10 ]:nHeadStrAlign := AL_LEFT oDB_CLIENTES:aCols[ 10 ]:cToolTip := {"Whatsapp do Cliente","Ajuda","", } *---------------------------------------------------------------------------- oDB_CLIENTES:aCols[ 11 ]:cHeader := "Rg/Insc.Estadual" oDB_CLIENTES:aCols[ 11 ]:nDataStrAlign := AL_LEFT oDB_CLIENTES:aCols[ 11 ]:nHeadStrAlign := AL_LEFT oDB_CLIENTES:aCols[ 11 ]:cToolTip := {"Rg ou Insc.Estadual do Cliente","Ajuda","", } *---------------------------------------------------------------------------- oDB_CLIENTES:aCols[ 12 ]:cHeader := "Cep" oDB_CLIENTES:aCols[ 12 ]:nDataStrAlign := AL_LEFT oDB_CLIENTES:aCols[ 12 ]:nHeadStrAlign := AL_LEFT oDB_CLIENTES:aCols[ 12 ]:cToolTip := {"Cep do Cliente","Ajuda","", } *---------------------------------------------------------------------------- oDB_CLIENTES:aCols[ 13 ]:cHeader := "Cidade" oDB_CLIENTES:aCols[ 13 ]:nDataStrAlign := AL_LEFT oDB_CLIENTES:aCols[ 13 ]:nHeadStrAlign := AL_LEFT oDB_CLIENTES:aCols[ 13 ]:cToolTip := {"Cidade do Cliente","Ajuda","", } *---------------------------------------------------------------------------- oDB_CLIENTES:aCols[ 14 ]:cHeader := "UF" oDB_CLIENTES:aCols[ 14 ]:nDataStrAlign := AL_LEFT oDB_CLIENTES:aCols[ 14 ]:nHeadStrAlign := AL_LEFT oDB_CLIENTES:aCols[ 14 ]:cToolTip := {"Estado / UF do Cliente","Ajuda","", } *---------------------------------------------------------------------------- oDB_CLIENTES:CreateFromResource(4015) *---------------------------------------------------------------------------- mas a pesquisa de produtos segue a mesma logica. Etc. Queria que quando nao localizar indicar uma forma de avisar ao usuario que não localizou, pois tem cada imbecil que pegamos (o ultimo disse que o teclado estava com defeito) Quote Link to comment Share on other sites More sharing options...
marcioe Posted December 21, 2022 Author Report Share Posted December 21, 2022 Resolveu modificando a classe Xbrowse,(marcelo quem ajudou "na verdade ele fez" ) porem se alguem souber como sem modificar a classe nativa ficaria grato Dai depois melhorei um pouco e coloquei como Notificação no Windows Quote Link to comment Share on other sites More sharing options...
gilmer Posted December 23, 2022 Report Share Posted December 23, 2022 Bom Dia, Na pior da hipóteses você pode usar o override no método da classe nativa Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.