|
Bem Vindo, Visitante
|
Todos os Fórums
ADVPL
|
Imprimir
Enviar Para um Amigo Precisa estar Logado
|
|
|
Assunto: |
Atualizacao de Listbox |
|
Versão: |
12.1.25 |
|
Plataforma: |
Microsoft |
Complemento: |
|
|
DB: |
SQL Server |
Complemento: |
|
|
|
|
|
Mensagem do
WANDERSONW
em 08/05/2020, 11:11 h
Local: SP Registro: 01/07/2015 Postagens: 166 |
Bom dia Pessoal,
Estou precisando da ajuda de voces para atualizar um listbox, quando incluo/altero ou excluo ou pesquiso, em um objeto, ele devera pela logica atualizar o Listbox mas, isto nao esta acontecendo, alguem pode me ajudar.
Segue o Fonte?
#Define CLR_RGB_VERMELHO RGB(255,000,000) //Cor Vermelha em RGB
User Function VSPFATOE()
Local aButtons := {}
Local oOK := LoadBitmap(GetResources(),‘br_verde‘)
Local oNO := LoadBitmap(GetResources(),‘br_vermelho‘)
Local oBitmap1 := LoadBitmap(GetResources(),‘br_verde‘)
Local oBitmap2 := LoadBitmap(GetResources(),‘br_vermelho‘)
Private oPanel1
Private cVerde := "BR_VERDE"
Private cVerm := "BR_VERMELHO"
Private cLaran := "BR_LARANJA"
Private cCodProd := Space(15)
Private cCodGeme := Space(3)
Private cNomePro := Space(50)
Private cCodGAnt := Space(3)
Private cBloqPro := Space(1)
Private cBuscaG :=Space(3)
Private oSButton1
Private oSButton2
Private _aReceb :={}
Private _aPed :={}
Private aBrowse :={}
static oDlg
oFont3:= TFont():New( "Arial",,030,,.T.,,.T.,,,.f. )
oFont2:= TFont():New( "Arial",,100,,.T.,,.T.,,,.f. )
oFont1:= TFont():New( "Arial",,015,,.T.,,.T.,,,.f. )
oTFont := TFont():New(‘Courier new‘,,16,.T.)
DEFINE MSDIALOG oDlg TITLE "PRODUTOS GÊMEOS" FROM 000, 000 TO 600, 1500 COLORS 0, 16777215 PIXEL
@ 035, 011 SAY oSay5 PROMPT "Dados do Produto " SIZE 150, 020 OF oDlg FONT oFont3 color CLR_BLUE PIXEL
@ 060, 009 SAY oSay1 PROMPT "Produto" SIZE 025, 007 Font oFont1 OF oDlg COLORS 0, 16777215 PIXEL
@ 060, 125 SAY oSay2 PROMPT "Descricao" SIZE 035, 007 Font oFont1 OF oDlg COLORS 0, 16777215 PIXEL
@ 076, 000 GROUP oGroup3 TO 077, 1500 OF oDlg COLOR 0, 16777215 PIXEL
@ 080, 011 SAY oSay5 PROMPT "Produto Gêmeo" SIZE 150, 020 OF oDlg FONT oFont3 color CLR_BLUE PIXEL
@ 105, 008 SAY oSay3 PROMPT "Cod.Gemeo" SIZE 037, 007 Font oFont1 OF oDlg COLORS 0, 16777215 PIXEL
@ 060, 044 MSGET oCodProd Var cCodProd SIZE 060, 010 OF oDlg When .F. F3 "SB1" VALID PESQPRO(cCodProd) COLORS 0, 16777215 PIXEL
@ 060, 164 MSGET oNomePro VAR cNomePro SIZE 231, 010 OF oDlg When .F. COLORS 0, 16777215 PIXEL
@ 104, 042 MSGET oCodGeme Var cCodGeme SIZE 060, 010 OF oDlg When .F. /*Valid SLVNCM(cCodProd,cCodGeme,cCodGAnt)*/ COLORS 0, 16777215 PIXEL
@ 104, 200 MSGET oBuscaG Var cBuscaG SIZE 060, 010 OF oDlg When .T. Valid BscDados(cBuscaG) COLORS 0, 16777215 PIXEL
// Vetor com elementos do Browse
oBrowse := TCBrowse():New( 127 , 05, 670, 156,, {‘COD.PRODUTO‘,‘DESCRICAO DO PRODUTO ‘, ‘COD.GEMEO‘,‘STATUS PRODUTO‘},{20,100,50,100,20,100}, oDlg,,,,,{||},,,,,,,.F.,,.T.,,.F.,,, )
// Seta vetor para a browse
oBrowse:SetArray(aBrowse)
// Monta a linha a ser exibina no Browse
oBrowse:bLine := {||{ aBrowse[oBrowse:nAt,01],;
aBrowse[oBrowse:nAt,02],;
aBrowse[oBrowse:nAt,03],;
IIF (aBrowse[oBrowse:nAt,04]==‘2‘,oOk,IIF(aBrowse[oBrowse:nAt,04]==‘ ‘,oOk,oNo))} }
// Evento de clique no cabeçalho da browse
oBrowse:bHeaderClick := {|o, nCol| alert(‘bHeaderClick‘) }
// Evento de duplo click na celula
oBrowse:bLDblClick := {|| ATUACPO()}
Aadd( aButtons, {"HISTORIC", {|| IncFATOE()} , "Incluir ", "Incluir" , {|| .T.}} )
Aadd( aButtons, {"HISTORIC", {|| lAlCest(cCodProd,cCodGeme,cCodGant) } , "Alterar ", "Alterar" , {|| .T.}} )
Aadd( aButtons, {"HISTORIC", {|| lExCampos(cCodProd,cCodGeme,cCodGAnt)} , "Excluir ", "Excluir" , {|| .T.}} )
@ 285,155 Say "Produto Ativo" SIZE 100, 007 Font oFont1 OF oDlg COLORS 0, 16777215 PIXEL
@ 285,255 Say "Produto Bloqueado" SIZE 100, 007 Font oFont1 OF oDlg COLORS 0, 16777215 PIXEL
@ 285,145 BITMAP oBitmap1 SIZE 008, 008 OF oDlg FILENAME cVerde NOBORDER SCROLL ADJUST PIXEL
@ 285,245 BITMAP oBitmap2 SIZE 008, 008 OF oDlg FILENAME cVerm NOBORDER SCROLL ADJUST PIXEL
BscDados()
If Empty(cCodProd)
cNomePro:=Space(50)
Endif
//ACTIVATE MSDIALOG oDlg CENTERED
ACTIVATE MSDIALOG oDlg ON INIT (EnchoiceBar(oDlg,{||lOk:=.T.,oDlg:End()},{||oDlg:End()},,@aButtons))
Return
Static Function IncFATOE()
@ 060, 044 MSGET oCodProd Var cCodProd SIZE 060, 010 OF oDlg When .T. F3 "SB1" VALID PESQPRO(cCodProd) COLORS 0, 16777215 PIXEL
@ 060, 164 MSGET oNomePro VAR cNomePro SIZE 231, 010 OF oDlg When .T. COLORS 0, 16777215 PIXEL
@ 104, 042 MSGET oCodGeme Var cCodGeme SIZE 060, 010 OF oDlg When .T. Valid SLVNCM(cCodProd,cCodGeme,cCodGAnt) COLORS 0, 16777215 PIXEL
RETURN
// Busca Dados na Tabela fora do Protheus para alimentar o Grid
Static Function BscDados(cBuscaG)
If Empty(cBuscaG)
cQuery := " SELECT "
cQuery += " * "
cQuery += " FROM "
cQuery += " PRODXGEMEO"
else
cQuery := " SELECT "
cQuery += " * "
cQuery += " FROM "
cQuery += " PRODXGEMEO"
cQuery += " Where "
cQuery += " GEMEO=‘"+ cBuscaG +"‘"
Endif
TCQuery cQuery New Alias "TMPGEMEOG"
Count To nTotal
dbSelectArea("TMPGEMEOG")
dbGoTop()
oBrowse:Reset()
While TMPGEMEOG->(!EOF())
cNomePro:=Posicione("SB1",1,XFILIAL("SB1")+TMPGEMEOG->PRODUTO,"B1_DESC")
cBloqProd:=Posicione("SB1",1,XFILIAL("SB1")+TMPGEMEOG->PRODUTO,"B1_MSBLQL")
aadd(aBrowse,{TMPGEMEOG->PRODUTO,cNomePro,TMPGEMEOG->GEMEO,cBloqProd})
TMPGEMEOG->(dbSkip())
Enddo
oBrowse:Refresh()
oDlg:Refresh()
TMPGEMEOG->(dbClosearea())
oDlg:Refresh()
Return
// Rotina para exclusão com uma pergunta antes de excluir o registro
Static Function lExCampos(cCodProd,cCodGeme)
If MsgNoYes("Deseja Realmente Excluir o Registro: "+ CRLF + CRLF+;
"Produto : " + cCodProd+" - "+cNomePro + CRLF +;
"Gemeo....................: " + cCodGeme ,"AVISO DE EXCLUSÃO")=.T.
cQuery := " DELETE "
cQuery += " FROM "
cQuery += " PRODXGEMEO"
cQuery += " WHERE"
cQuery += " PRODUTO=‘" +cCodProd + "‘"
cQuery +=" AND GEMEO =‘" +cCodGeme + "‘"
TcSqlExec( cQuery )
MsgInfo("Registro Excluido com Sucesso!!!","Exclusão de Registro")
else
MsgInfo("Exslusão Abortada!!!")
Endif
oBrowse:Reset()
oBrowse:Refresh()
oDlg:Refresh()
Return
// Salva o Registro na tabela
Static Function SLVNCM(cCodProd,cCodGeme,cCodGAnt)
If Empty(cCodGAnt)
cQuery := " SELECT "
cQuery += " * "
cQuery += " FROM "
cQuery += " PRODXGEMEO"
TCQuery cQuery New Alias "TMPGEMEO"
If TMPGEMEO->PRODUTO = cCodProd .and. TMPGEMEO->GEMEO = cCodGeme
MsgInfo("Dados já existente, vafor verificar!!!","Inclusão Abortada")
else
cIns := " INSERT INTO PRODXGEMEO VALUES(‘"+cCodProd+"‘,‘"+cCodGeme+"‘)" "
TcSqlExec( cIns )
MSGINFO( "Registro Gravado com Sucesso!!!", "Novo Registro")
cCodProd:=Space(15)
cCodGeme:=Space(3)
cNomePro:=Space(50)
TMPGEMEO->(dbClosearea())
Endif
Else
cQuery := " SELECT "
cQuery += " * "
cQuery += " FROM "
cQuery += " PRODXGEMEO"
cQuery+= " WHERE "
cQuery+= " PRODUTO =‘" + cCodProd + "‘"
cQuery+= " AND GEMEO =‘" + cCodGeme + "‘"
TCQuery cQuery New Alias "TMPGEMEO"
If TMPGEMEO->PRODUTO == cCodProd .AND. TMPGEMEO->GEMEO == cCodGeme
ApMsgInfo("Código já cadastrado, Verifique!!!","Código Existente")
TMPGEMEO->(dbCloseArea())
Return
Else
cUpdate:= " UPDATE "
cUpdate+= " PRODXGEMEO "
cUpdate+= " SET GEMEO = ‘"+cCodGeme + "‘"
cUpdate+= " WHERE "
cUpdate+= " PRODUTO =‘" + cCodProd + "‘"
cUpdate+= " AND GEMEO =‘" + cCodGeme + "‘"
TCSQLExec(cUpdate)
oCodGeme:Refresh()
oDlg:Refresh()
ApMsgInfo("Codigo Gêmeo alterado com Sucesso!!!", "Alteração de Código")
Endif
Endif
oBrowse:Refresh()
oDlg:Refresh()
RETURN
// Pesquisa dados do Produto
Static Function PESQPRO(cCodProd)
DBSelectArea("SB1")
dbSetOrder(1)
dbSeek(xFilial("SB1")+cCodProd)
cNomePro:=SB1->B1_DESC
oNomePro:Refresh()
oDlg:Refresh()
Return
// Atualiza Header
Static Function ATUACPO()
cCodProd :=aBrowse[oBrowse:nAt,1]
cCodGeme :=aBrowse[oBrowse:nAt,3]
cCodGAnt :=aBrowse[oBrowse:nAt,3]
cNomePro :=Posicione("SB1",1,XFILIAL("SB1")+aBrowse[oBrowse:nAt,1],"B1_DESC")
oNomePro:Refresh()
oCodProd:Refresh()
oCodGeme:Refresh()
oDlg:Refresh()
RETURN
&& Rotina para Alteração
Static Function lAlCest(cCodProd,cCodGeme,cCodGAnt)
@ 060, 044 MSGET oCodProd Var cCodProd SIZE 060, 010 OF oDlg When .F. F3 "SB1" VALID PESQPRO(cCodProd) COLORS 0, 16777215 PIXEL
@ 060, 164 MSGET oNomePro VAR cNomePro SIZE 231, 010 OF oDlg When .F. COLORS 0, 16777215 PIXEL
@ 104, 042 MSGET oCodGeme Var cCodGeme SIZE 060, 010 OF oDlg When .T. Valid AltFATOE(cCodProd,cCodGeme,cCodGAnt) COLORS 0, 16777215 PIXEL
oDlg:Refresh()
oBrowse:Disable()
RETURN
Static Function AltFATOE(cCodProd,cCodGeme)
cUpdate:= " UPDATE "
cUpdate+= " PRODXGEMEO "
cUpdate+= " SET GEMEO = ‘"+cCodGeme + "‘"
cUpdate+= " WHERE "
cUpdate+= " PRODUTO =‘" + cCodProd + "‘"
cUpdate+= " AND GEMEO =‘" + cCodGeme + "‘"
TCSQLExec(cUpdate)
ApMsgInfo("Codigo Gêmeo alterado com Sucesso!!!", "Alteração de Código")
oBrowse:Reset()
oBrowse:Refresh()
oBrowse:Enable()
cCodGeme:=Space(3)
cCodGAnt:=Space(3)
oCodGeme:Refresh()
oDlg:Refresh()
RETURN(cCodGeme)
|
|
Para postar no Fórum você precisa efetuar o seu login ou se registrar
|
|