- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Abrir tela de registro apos item marcado no browse
×
Linguagem de Programação ADVPL
Perguntas Abrir tela de registro apos item marcado no browse
- Wanderson
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 39
- Obrigados Recebidos: 0
3 anos 3 meses atrás #33123
por Wanderson
Abrir tela de registro apos item marcado no browse foi criado por Wanderson
Bom dia Turma,
Estou precisando da ajuda de vocês para concluir um fonte que comecei a fazer, ele cria a FWMBROWSE usando uma tabela temporária pois esta tabela não faz parte das tabelas disponíveis no Protheus mas utiliza a mesma base de dados. A Inclusão já está funcionando corretamente agora a Alteração é onde estou tendo problemas e preciso da ajuda de voce se possível. Quando selecione um registro no browse e seleciono a opção Alterar, ele não esta me trazendo os dados selecionado no browse, estou disponibilizando o fonte caso alguém possa me ajudar nesta questão.
Fonte:
#Include ‘Totvs.ch‘
#Include ‘Topconn.ch‘
User Function VSPFIN29()
Local cArqTrb, cIndice1, cIndice2, cIndice3
Local i
Private oBrowse
Private aRotina := MenuDef()
Private cCadastro := "DIRETORES"
Private aCampos := {}, aSeek := {}, aDados := {}, aValores := {}, aFieFilter := {}
//Array contendo os campos da tabela temporária
AAdd(aCampos,{"TR_ST" , "C" , 01 , 0})
AAdd(aCampos,{"TR_Diret", "C" , 20 , 0})
AAdd(aCampos,{"TR_Natur", "C" , 10 , 0})
AAdd(aCampos,{"TR_DtCad", "D" , 08 , 0})
AAdd(aCampos,{"TR_Venci", "D" , 08 , 0})
AAdd(aCampos,{"TR_Valor", "N" , 14 , 2})
AAdd(aCampos,{"TR_Descr", "C" , 99 , 0})
//Antes de criar a tabela, verificar se a mesma já foi aberta
If (Select("TRB") <> 0)
dbSelectArea("TRB")
TRB->(dbCloseArea ())
Endif
//Criar tabela temporária
cArqTrb := CriaTrab(aCampos,.T.)
//Definir indices da tabela
cIndice1 := Alltrim(CriaTrab(,.F.))
cIndice2 := cIndice1
cIndice3 := cIndice1
cIndice1 := Left(cIndice1,5)+Right(cIndice1,2)+"A"
cIndice2 := Left(cIndice2,5)+Right(cIndice2,2)+"B"
cIndice3 := Left(cIndice3,5)+Right(cIndice3,2)+"C"
If File(cIndice1+OrdBagExt())
FErase(cIndice1+OrdBagExt())
EndIf
If File(cIndice2+OrdBagExt())
FErase(cIndice2+OrdBagExt())
EndIf
If File(cIndice3+OrdBagExt())
FErase(cIndice3+OrdBagExt())
EndIf
//Criar e abrir a tabela
dbUseArea(.T.,,cArqTrb,"TRB",Nil,.F.)
/*Criar indice*/
IndRegua("TRB", cIndice1, "TR_Diret",,, "Indice ID...")
IndRegua("TRB", cIndice2, "TR_Natur",,, "Indice Login...")
IndRegua("TRB", cIndice3, "TR_DtCad",,, "Indice Nome...")
dbClearIndex()
dbSetIndex(cIndice1+OrdBagExt())
dbSetIndex(cIndice2+OrdBagExt())
dbSetIndex(cIndice3+OrdBagExt())
/*popular a tabela*/
cQuery:=‘ SELECT * FROM FLUXO_DIRETORES‘
TcQuery cQuery New Alias "TMPDIRETORES"
While ! TMPDIRETORES->( EOF() )
aAdd(avalores,{‘a‘,TMPDIRETORES->DIRETOR,TMPDIRETORES->NATUREZA,TMPDIRETORES->DTCADASTRO,TMPDIRETORES->VENCIMENTO,TMPDIRETORES->VALOR,TMPDIRETORES->DESCRICAO})
TMPDIRETORES->( dbSkip() )
ENDDO
For i:= 1 to len(aValores)
If RecLock("TRB",.t.)
TRB->TR_Diret := aValores[i,2]
TRB->TR_Natur := aValores[i,3]
TRB->TR_DtCad := sTod(aValores[i,4])
TRB->TR_Venci := sTod(aValores[i,5])
TRB->TR_Valor := (aValores[i,6])
TRB->TR_Descr := aValores[i,7]
// TRB->TR_POS := i
MsUnLock()
Endif
Next
dbSelectArea("TRB")
TRB->(DbGoTop())
//Campos que irão compor o combo de pesquisa na tela principal
Aadd(aSeek,{"Diretor" , {{"","C",06,0, "TR_Diret" ,"@!"}}, 1, .T. } )
Aadd(aSeek,{"Natureza" , {{"","C",20,0, "TR_Natur","@!"}}, 2, .T. } )
Aadd(aSeek,{"Dta.Cadastro" , {{"","D",08,0, "TR_DtCad" ,"@!"}}, 3, .T. } )
//Campos que irão compor a tela de filtro
Aadd(aFieFilter,{"TR_Diret" , "Diretor" , "C", 10, 0,"@!"})
Aadd(aFieFilter,{"TR_Natur" , "Natureza" , "C", 10, 0,"@!"})
Aadd(aFieFilter,{"TR_DtCad" , "Dta.Cadastro" , "D", 08, 0,"@!"})
oBrowse := FWmBrowse():New()
oBrowse:SetAlias( "TRB" )
oBrowse:SetDescription( cCadastro )
oBrowse:SetSeek(.T.,aSeek)
oBrowse:SetTemporary(.T.)
oBrowse:SetLocate()
oBrowse:SetUseFilter(.T.)
oBrowse:SetDBFFilter(.T.)
oBrowse:SetFilterDefault( "" ) //Exemplo de como inserir um filtro padrão >>> "TR_ST == ‘A‘"
oBrowse:SetFieldFilter(aFieFilter)
oBrowse:DisableDetails()
// Seta o Array de dados para a browse
oBrowse:SetArray(aValores)
//Legenda da grade, é obrigatório carregar antes de montar as colunas
oBrowse:AddLegend("TR_ST==‘A‘","GREEN" ,"Grupo Administradores")
oBrowse:AddLegend("TR_ST==‘C‘","BLUE" ,"Grupo Contábil")
oBrowse:AddLegend("TR_ST==‘R‘","RED" ,"Grupo RH")
//Detalhes das colunas que serão exibidas
oBrowse:SetColumns(MontaColunas("TR_Diret" ,"Diretor" ,01,"@!",0,010,0))
oBrowse:SetColumns(MontaColunas("TR_Natur" ,"Natureza" ,02,"@!",1,080,0))
oBrowse:SetColumns(MontaColunas("TR_DtCad" ,"Dt.Cadastro" ,03,"D" ,1,008,0))
oBrowse:SetColumns(MontaColunas("TR_Venci" ,"Vencimento" ,04,"D" ,1,008,0))
oBrowse:SetColumns(MontaColunas("TR_Valor" ,"Valor" ,05,"N" ,1,10,2))
oBrowse:SetColumns(MontaColunas("TR_Descr" ,"Descricao" ,06,"@!",1,100,0))
oBrowse:Activate()
If !Empty(cArqTrb)
Ferase(cArqTrb+GetDBExtension())
Ferase(cArqTrb+OrdBagExt())
cArqTrb := ""
TRB->(DbCloseArea())
delTabTmp(‘TRB‘)
dbClearAll()
Endif
return(Nil)
Static Function MontaColunas(cCampo,cTitulo,nArrData,cPicture,nAlign,nSize,nDecimal)
Local aColumn
Local bData :={||}
Default nAlign := 1
Default nSize := 20
Default nDecimal := 0
Default nArrData := 0
If nArrData > 0
bData := &("{||" + cCampo +"}")
EndIf
aColumn := {cTitulo,bData,,cPicture,nAlign,nSize,nDecimal,.F.,{||.T.},.F.,{||.T.},NIL,{||.T.},.F.,.F.,{}}
Return {aColumn}
Static Function MenuDef()
Local aArea := GetArea()
Local aRotina := {}
Local aRotina1 := {}
AADD(aRotina1, {"Consulta Produto" , "MATC050()" , 0, 6, 0, Nil })
AADD(aRotina1, {"Legenda" , "U_EXEM992L" , 0,11, 0, Nil })
AADD(aRotina, {"Pesquisar" , "PesqBrw" , 0, 1, 0, .T. })
AADD(aRotina, {"Visualizar" , "U_EXEM992I" , 0, 2, 0, .F. })
AADD(aRotina, {"Incluir" , "U_BtnInclui" , 0, 3, 0, Nil })
AADD(aRotina, {"Alterar" , "U_BtnAlter" , 0, 4, 0, Nil })
AADD(aRotina, {"Excluir" , "U_EXEM992I" , 0, 5, 3, Nil })
AADD(aRotina, {"Mais ações..." , aRotina1 , 0, 4, 0, Nil } )
Return( aRotina )
User Function BtnInclui()
Private cCpoDire := Space(20)
Private cCpoNatu := Space(15)
Private cmCpoDesc
Private dCpoDtCa := CtoD(" ")
Private dCpoDtvenc := CtoD(" ")
Private nCpoValo := 0
Private cTitulo := " Inclusão de Dados "
SetPrvt("oDlg","oSay1","oSay2","oSay3","oSay4","oSay5","oSay6","cCpoDire","cCpoNatu","dCpoDtCa","dCpoDtvenc")
SetPrvt("mCpoDesc","oGet1","oBtn1")
oDlg := MSDialog():New( 138,1569,485,2259,"Inclusão - Diretor",,,.F.,,,,,,.T.,,,.T. )
U_VSPTIT(cTitulo)
oSay1 := TSay():New( 036,008,{||"Diretor"},oDlg,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,050,010)
oSay2 := TSay():New( 056,008,{||"Natureza"},oDlg,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,050,010)
oSay3 := TSay():New( 076,008,{||"Data Cadastro"},oDlg,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,050,010)
oSay4 := TSay():New( 100,008,{||"Data Vencimento"},oDlg,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,050,010)
oSay5 := TSay():New( 120,008,{||"Valor"},oDlg,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,050,010)
oSay6 := TSay():New( 076,144,{||"Descricao"},oDlg,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,032,008)
oCpoDire := TGet():New( 036,068,{|u| If(PCount()>0,cCpoDire:=u,cCpoDire)},oDlg,176,013,‘‘,,CLR_BLACK,CLR_WHITE,,,,.T.,"",,,.T.,.F.,,.F.,.F.,"","cCpoDire",,)
oCpoNatu := TGet():New( 056,068,{|u| If(PCount()>0,cCpoNatu:=u,cCpoNatu)},oDlg,065,013,‘‘,,CLR_BLACK,CLR_WHITE,,,,.T.,"",,,.T.,.F.,,.F.,.F.,"SED","cCpoNatu",,)
oCpoDtCa := TGet():New( 076,068,{|u| If(PCount()>0,dCpoDtCa:=u,dCpoDtCa)},oDlg,065,013,‘‘,,CLR_BLACK,CLR_WHITE,,,,.T.,"",,,.T.,.F.,,.F.,.F.,"","dCpoDtCa",,)
oCpoDtvenc := TGet():New( 100,068,{|u| If(PCount()>0,dCpoDtvenc:=u,dCpoDtvenc)},oDlg,065,013,‘‘,,CLR_BLACK,CLR_WHITE,,,,.T.,"",,,.T.,.F.,,.F.,.F.,"","dCpoDtvenc",,)
oCpoValo := TGet():New( 120,068,{|u| If(PCount()>0,nCpoValo:=u,nCpoValo)},oDlg,065,013,‘999,999,999.99‘,,CLR_BLACK,CLR_WHITE,,,,.T.,"",,,.F.,.F.,,.F.,.F.,"","nCpoValo",,)
oCpoDesc := TMultiGet():New( 088,144,{|u| If(PCount()>0,cmCpoDesc:=u,cmCpoDesc)},oDlg,188,044,,,CLR_BLACK,CLR_WHITE,,.T.,"",,,.F.,.F.,.F.,,,.F.,, )
oGet1 := TGet():New( 056,136,,oDlg,200,013,‘‘,,CLR_BLACK,CLR_HGRAY,,,,.T.,"",,,.T.,.F.,,.F.,.F.,"","",,)
oGet1:Disable()
oBtn1 := TButton():New( 004,260,"Incluir" ,oDlg,{||InseCpos()}, 40,10,,,.F.,.T.,.F.,,.F.,,,.F. )
oDlg:Activate(,,,.T.)
Return
Static Function InseCpos()
cIns := " INSERT INTO FLUXO_DIRETORES VALUES(‘"+cCpoDire+"‘,‘"+cCpoNatu+"‘,‘"+Dtos(dCpoDtCa)+"‘,‘"+Dtos(dCpoDtvenc)+"‘,‘"+cValToChar(nCpoValo)+"‘,‘"+cmCpoDesc+"‘)"
TcSqlExec( cIns )
FWAlertSuccess( "Registro Gravado com Sucesso!!!", "Novo Registro")
LimpaCpo()
Return
Static Function LimpaCpo()
cCpoDire :=‘‘
cCpoNatu :=‘‘
dCpoDtCa :=‘‘
dCpoDtvenc:=‘‘
nCpoValo := 0
cmCpoDesc:=‘‘
oDlg:Refresh()
Return
User Function BtnAlter()
Local Ivsp:= 0
For Ivsp:= 1 To Len(aValores)
cCpoDire :=aValores[Ivsp,1]
cCpoNatu :=aValores[Ivsp,2]
cmCpoDesc :=aValores[Ivsp,3]
dCpoDtCa :=aValores[Ivsp,4]
dCpoDtvenc :=aValores[Ivsp,5]
nCpoValo :=aValores[Ivsp,6]
Next
Private cTitulo := " Alteração de Dados "
SetPrvt("oDlg","oSay1","oSay2","oSay3","oSay4","oSay5","oSay6","cCpoDire","cCpoNatu","dCpoDtCa","dCpoDtvenc")
SetPrvt("mCpoDesc","oGet1","oBtn1")
oDlg := MSDialog():New( 138,1569,485,2259,"Inclusão - Alteração",,,.F.,,,,,,.T.,,,.T. )
U_VSPTIT(cTitulo)
oSay1 := TSay():New( 036,008,{||"Diretor"},oDlg,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,050,010)
oSay2 := TSay():New( 056,008,{||"Natureza"},oDlg,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,050,010)
oSay3 := TSay():New( 076,008,{||"Data Cadastro"},oDlg,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,050,010)
oSay4 := TSay():New( 100,008,{||"Data Vencimento"},oDlg,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,050,010)
oSay5 := TSay():New( 120,008,{||"Valor"},oDlg,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,050,010)
oSay6 := TSay():New( 076,144,{||"Descricao"},oDlg,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,032,008)
oCpoDire := TGet():New( 036,068,{|u| If(PCount()>0,cCpoDire:=u,cCpoDire)},oDlg,176,013,‘‘,,CLR_BLACK,CLR_WHITE,,,,.T.,"",,,.T.,.F.,,.F.,.F.,"","cCpoDire",,)
oCpoNatu := TGet():New( 056,068,{|u| If(PCount()>0,cCpoNatu:=u,cCpoNatu)},oDlg,065,013,‘‘,,CLR_BLACK,CLR_WHITE,,,,.T.,"",,,.T.,.F.,,.F.,.F.,"SED","cCpoNatu",,)
oCpoDtCa := TGet():New( 076,068,{|u| If(PCount()>0,dCpoDtCa:=u,dCpoDtCa)},oDlg,065,013,‘‘,,CLR_BLACK,CLR_WHITE,,,,.T.,"",,,.T.,.F.,,.F.,.F.,"","dCpoDtCa",,)
oCpoDtvenc := TGet():New( 100,068,{|u| If(PCount()>0,dCpoDtvenc:=u,dCpoDtvenc)},oDlg,065,013,‘‘,,CLR_BLACK,CLR_WHITE,,,,.T.,"",,,.T.,.F.,,.F.,.F.,"","dCpoDtvenc",,)
oCpoValo := TGet():New( 120,068,{|u| If(PCount()>0,nCpoValo:=u,nCpoValo)},oDlg,065,013,‘999,999,999.99‘,,CLR_BLACK,CLR_WHITE,,,,.T.,"",,,.F.,.F.,,.F.,.F.,"","nCpoValo",,)
oCpoDesc := TMultiGet():New( 088,144,{|u| If(PCount()>0,cmCpoDesc:=u,cmCpoDesc)},oDlg,188,044,,,CLR_BLACK,CLR_WHITE,,.T.,"",,,.F.,.F.,.F.,,,.F.,, )
oGet1 := TGet():New( 056,136,,oDlg,200,013,‘‘,,CLR_BLACK,CLR_HGRAY,,,,.T.,"",,,.T.,.F.,,.F.,.F.,"","",,)
oGet1:Disable()
oBtn1 := TButton():New( 004,260,"Incluir" ,oDlg,{||InseCpos()}, 40,10,,,.F.,.T.,.F.,,.F.,,,.F. )
oDlg:Activate(,,,.T.)
Return
Estou precisando da ajuda de vocês para concluir um fonte que comecei a fazer, ele cria a FWMBROWSE usando uma tabela temporária pois esta tabela não faz parte das tabelas disponíveis no Protheus mas utiliza a mesma base de dados. A Inclusão já está funcionando corretamente agora a Alteração é onde estou tendo problemas e preciso da ajuda de voce se possível. Quando selecione um registro no browse e seleciono a opção Alterar, ele não esta me trazendo os dados selecionado no browse, estou disponibilizando o fonte caso alguém possa me ajudar nesta questão.
Fonte:
#Include ‘Totvs.ch‘
#Include ‘Topconn.ch‘
User Function VSPFIN29()
Local cArqTrb, cIndice1, cIndice2, cIndice3
Local i
Private oBrowse
Private aRotina := MenuDef()
Private cCadastro := "DIRETORES"
Private aCampos := {}, aSeek := {}, aDados := {}, aValores := {}, aFieFilter := {}
//Array contendo os campos da tabela temporária
AAdd(aCampos,{"TR_ST" , "C" , 01 , 0})
AAdd(aCampos,{"TR_Diret", "C" , 20 , 0})
AAdd(aCampos,{"TR_Natur", "C" , 10 , 0})
AAdd(aCampos,{"TR_DtCad", "D" , 08 , 0})
AAdd(aCampos,{"TR_Venci", "D" , 08 , 0})
AAdd(aCampos,{"TR_Valor", "N" , 14 , 2})
AAdd(aCampos,{"TR_Descr", "C" , 99 , 0})
//Antes de criar a tabela, verificar se a mesma já foi aberta
If (Select("TRB") <> 0)
dbSelectArea("TRB")
TRB->(dbCloseArea ())
Endif
//Criar tabela temporária
cArqTrb := CriaTrab(aCampos,.T.)
//Definir indices da tabela
cIndice1 := Alltrim(CriaTrab(,.F.))
cIndice2 := cIndice1
cIndice3 := cIndice1
cIndice1 := Left(cIndice1,5)+Right(cIndice1,2)+"A"
cIndice2 := Left(cIndice2,5)+Right(cIndice2,2)+"B"
cIndice3 := Left(cIndice3,5)+Right(cIndice3,2)+"C"
If File(cIndice1+OrdBagExt())
FErase(cIndice1+OrdBagExt())
EndIf
If File(cIndice2+OrdBagExt())
FErase(cIndice2+OrdBagExt())
EndIf
If File(cIndice3+OrdBagExt())
FErase(cIndice3+OrdBagExt())
EndIf
//Criar e abrir a tabela
dbUseArea(.T.,,cArqTrb,"TRB",Nil,.F.)
/*Criar indice*/
IndRegua("TRB", cIndice1, "TR_Diret",,, "Indice ID...")
IndRegua("TRB", cIndice2, "TR_Natur",,, "Indice Login...")
IndRegua("TRB", cIndice3, "TR_DtCad",,, "Indice Nome...")
dbClearIndex()
dbSetIndex(cIndice1+OrdBagExt())
dbSetIndex(cIndice2+OrdBagExt())
dbSetIndex(cIndice3+OrdBagExt())
/*popular a tabela*/
cQuery:=‘ SELECT * FROM FLUXO_DIRETORES‘
TcQuery cQuery New Alias "TMPDIRETORES"
While ! TMPDIRETORES->( EOF() )
aAdd(avalores,{‘a‘,TMPDIRETORES->DIRETOR,TMPDIRETORES->NATUREZA,TMPDIRETORES->DTCADASTRO,TMPDIRETORES->VENCIMENTO,TMPDIRETORES->VALOR,TMPDIRETORES->DESCRICAO})
TMPDIRETORES->( dbSkip() )
ENDDO
For i:= 1 to len(aValores)
If RecLock("TRB",.t.)
TRB->TR_Diret := aValores[i,2]
TRB->TR_Natur := aValores[i,3]
TRB->TR_DtCad := sTod(aValores[i,4])
TRB->TR_Venci := sTod(aValores[i,5])
TRB->TR_Valor := (aValores[i,6])
TRB->TR_Descr := aValores[i,7]
// TRB->TR_POS := i
MsUnLock()
Endif
Next
dbSelectArea("TRB")
TRB->(DbGoTop())
//Campos que irão compor o combo de pesquisa na tela principal
Aadd(aSeek,{"Diretor" , {{"","C",06,0, "TR_Diret" ,"@!"}}, 1, .T. } )
Aadd(aSeek,{"Natureza" , {{"","C",20,0, "TR_Natur","@!"}}, 2, .T. } )
Aadd(aSeek,{"Dta.Cadastro" , {{"","D",08,0, "TR_DtCad" ,"@!"}}, 3, .T. } )
//Campos que irão compor a tela de filtro
Aadd(aFieFilter,{"TR_Diret" , "Diretor" , "C", 10, 0,"@!"})
Aadd(aFieFilter,{"TR_Natur" , "Natureza" , "C", 10, 0,"@!"})
Aadd(aFieFilter,{"TR_DtCad" , "Dta.Cadastro" , "D", 08, 0,"@!"})
oBrowse := FWmBrowse():New()
oBrowse:SetAlias( "TRB" )
oBrowse:SetDescription( cCadastro )
oBrowse:SetSeek(.T.,aSeek)
oBrowse:SetTemporary(.T.)
oBrowse:SetLocate()
oBrowse:SetUseFilter(.T.)
oBrowse:SetDBFFilter(.T.)
oBrowse:SetFilterDefault( "" ) //Exemplo de como inserir um filtro padrão >>> "TR_ST == ‘A‘"
oBrowse:SetFieldFilter(aFieFilter)
oBrowse:DisableDetails()
// Seta o Array de dados para a browse
oBrowse:SetArray(aValores)
//Legenda da grade, é obrigatório carregar antes de montar as colunas
oBrowse:AddLegend("TR_ST==‘A‘","GREEN" ,"Grupo Administradores")
oBrowse:AddLegend("TR_ST==‘C‘","BLUE" ,"Grupo Contábil")
oBrowse:AddLegend("TR_ST==‘R‘","RED" ,"Grupo RH")
//Detalhes das colunas que serão exibidas
oBrowse:SetColumns(MontaColunas("TR_Diret" ,"Diretor" ,01,"@!",0,010,0))
oBrowse:SetColumns(MontaColunas("TR_Natur" ,"Natureza" ,02,"@!",1,080,0))
oBrowse:SetColumns(MontaColunas("TR_DtCad" ,"Dt.Cadastro" ,03,"D" ,1,008,0))
oBrowse:SetColumns(MontaColunas("TR_Venci" ,"Vencimento" ,04,"D" ,1,008,0))
oBrowse:SetColumns(MontaColunas("TR_Valor" ,"Valor" ,05,"N" ,1,10,2))
oBrowse:SetColumns(MontaColunas("TR_Descr" ,"Descricao" ,06,"@!",1,100,0))
oBrowse:Activate()
If !Empty(cArqTrb)
Ferase(cArqTrb+GetDBExtension())
Ferase(cArqTrb+OrdBagExt())
cArqTrb := ""
TRB->(DbCloseArea())
delTabTmp(‘TRB‘)
dbClearAll()
Endif
return(Nil)
Static Function MontaColunas(cCampo,cTitulo,nArrData,cPicture,nAlign,nSize,nDecimal)
Local aColumn
Local bData :={||}
Default nAlign := 1
Default nSize := 20
Default nDecimal := 0
Default nArrData := 0
If nArrData > 0
bData := &("{||" + cCampo +"}")
EndIf
aColumn := {cTitulo,bData,,cPicture,nAlign,nSize,nDecimal,.F.,{||.T.},.F.,{||.T.},NIL,{||.T.},.F.,.F.,{}}
Return {aColumn}
Static Function MenuDef()
Local aArea := GetArea()
Local aRotina := {}
Local aRotina1 := {}
AADD(aRotina1, {"Consulta Produto" , "MATC050()" , 0, 6, 0, Nil })
AADD(aRotina1, {"Legenda" , "U_EXEM992L" , 0,11, 0, Nil })
AADD(aRotina, {"Pesquisar" , "PesqBrw" , 0, 1, 0, .T. })
AADD(aRotina, {"Visualizar" , "U_EXEM992I" , 0, 2, 0, .F. })
AADD(aRotina, {"Incluir" , "U_BtnInclui" , 0, 3, 0, Nil })
AADD(aRotina, {"Alterar" , "U_BtnAlter" , 0, 4, 0, Nil })
AADD(aRotina, {"Excluir" , "U_EXEM992I" , 0, 5, 3, Nil })
AADD(aRotina, {"Mais ações..." , aRotina1 , 0, 4, 0, Nil } )
Return( aRotina )
User Function BtnInclui()
Private cCpoDire := Space(20)
Private cCpoNatu := Space(15)
Private cmCpoDesc
Private dCpoDtCa := CtoD(" ")
Private dCpoDtvenc := CtoD(" ")
Private nCpoValo := 0
Private cTitulo := " Inclusão de Dados "
SetPrvt("oDlg","oSay1","oSay2","oSay3","oSay4","oSay5","oSay6","cCpoDire","cCpoNatu","dCpoDtCa","dCpoDtvenc")
SetPrvt("mCpoDesc","oGet1","oBtn1")
oDlg := MSDialog():New( 138,1569,485,2259,"Inclusão - Diretor",,,.F.,,,,,,.T.,,,.T. )
U_VSPTIT(cTitulo)
oSay1 := TSay():New( 036,008,{||"Diretor"},oDlg,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,050,010)
oSay2 := TSay():New( 056,008,{||"Natureza"},oDlg,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,050,010)
oSay3 := TSay():New( 076,008,{||"Data Cadastro"},oDlg,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,050,010)
oSay4 := TSay():New( 100,008,{||"Data Vencimento"},oDlg,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,050,010)
oSay5 := TSay():New( 120,008,{||"Valor"},oDlg,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,050,010)
oSay6 := TSay():New( 076,144,{||"Descricao"},oDlg,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,032,008)
oCpoDire := TGet():New( 036,068,{|u| If(PCount()>0,cCpoDire:=u,cCpoDire)},oDlg,176,013,‘‘,,CLR_BLACK,CLR_WHITE,,,,.T.,"",,,.T.,.F.,,.F.,.F.,"","cCpoDire",,)
oCpoNatu := TGet():New( 056,068,{|u| If(PCount()>0,cCpoNatu:=u,cCpoNatu)},oDlg,065,013,‘‘,,CLR_BLACK,CLR_WHITE,,,,.T.,"",,,.T.,.F.,,.F.,.F.,"SED","cCpoNatu",,)
oCpoDtCa := TGet():New( 076,068,{|u| If(PCount()>0,dCpoDtCa:=u,dCpoDtCa)},oDlg,065,013,‘‘,,CLR_BLACK,CLR_WHITE,,,,.T.,"",,,.T.,.F.,,.F.,.F.,"","dCpoDtCa",,)
oCpoDtvenc := TGet():New( 100,068,{|u| If(PCount()>0,dCpoDtvenc:=u,dCpoDtvenc)},oDlg,065,013,‘‘,,CLR_BLACK,CLR_WHITE,,,,.T.,"",,,.T.,.F.,,.F.,.F.,"","dCpoDtvenc",,)
oCpoValo := TGet():New( 120,068,{|u| If(PCount()>0,nCpoValo:=u,nCpoValo)},oDlg,065,013,‘999,999,999.99‘,,CLR_BLACK,CLR_WHITE,,,,.T.,"",,,.F.,.F.,,.F.,.F.,"","nCpoValo",,)
oCpoDesc := TMultiGet():New( 088,144,{|u| If(PCount()>0,cmCpoDesc:=u,cmCpoDesc)},oDlg,188,044,,,CLR_BLACK,CLR_WHITE,,.T.,"",,,.F.,.F.,.F.,,,.F.,, )
oGet1 := TGet():New( 056,136,,oDlg,200,013,‘‘,,CLR_BLACK,CLR_HGRAY,,,,.T.,"",,,.T.,.F.,,.F.,.F.,"","",,)
oGet1:Disable()
oBtn1 := TButton():New( 004,260,"Incluir" ,oDlg,{||InseCpos()}, 40,10,,,.F.,.T.,.F.,,.F.,,,.F. )
oDlg:Activate(,,,.T.)
Return
Static Function InseCpos()
cIns := " INSERT INTO FLUXO_DIRETORES VALUES(‘"+cCpoDire+"‘,‘"+cCpoNatu+"‘,‘"+Dtos(dCpoDtCa)+"‘,‘"+Dtos(dCpoDtvenc)+"‘,‘"+cValToChar(nCpoValo)+"‘,‘"+cmCpoDesc+"‘)"
TcSqlExec( cIns )
FWAlertSuccess( "Registro Gravado com Sucesso!!!", "Novo Registro")
LimpaCpo()
Return
Static Function LimpaCpo()
cCpoDire :=‘‘
cCpoNatu :=‘‘
dCpoDtCa :=‘‘
dCpoDtvenc:=‘‘
nCpoValo := 0
cmCpoDesc:=‘‘
oDlg:Refresh()
Return
User Function BtnAlter()
Local Ivsp:= 0
For Ivsp:= 1 To Len(aValores)
cCpoDire :=aValores[Ivsp,1]
cCpoNatu :=aValores[Ivsp,2]
cmCpoDesc :=aValores[Ivsp,3]
dCpoDtCa :=aValores[Ivsp,4]
dCpoDtvenc :=aValores[Ivsp,5]
nCpoValo :=aValores[Ivsp,6]
Next
Private cTitulo := " Alteração de Dados "
SetPrvt("oDlg","oSay1","oSay2","oSay3","oSay4","oSay5","oSay6","cCpoDire","cCpoNatu","dCpoDtCa","dCpoDtvenc")
SetPrvt("mCpoDesc","oGet1","oBtn1")
oDlg := MSDialog():New( 138,1569,485,2259,"Inclusão - Alteração",,,.F.,,,,,,.T.,,,.T. )
U_VSPTIT(cTitulo)
oSay1 := TSay():New( 036,008,{||"Diretor"},oDlg,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,050,010)
oSay2 := TSay():New( 056,008,{||"Natureza"},oDlg,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,050,010)
oSay3 := TSay():New( 076,008,{||"Data Cadastro"},oDlg,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,050,010)
oSay4 := TSay():New( 100,008,{||"Data Vencimento"},oDlg,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,050,010)
oSay5 := TSay():New( 120,008,{||"Valor"},oDlg,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,050,010)
oSay6 := TSay():New( 076,144,{||"Descricao"},oDlg,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,032,008)
oCpoDire := TGet():New( 036,068,{|u| If(PCount()>0,cCpoDire:=u,cCpoDire)},oDlg,176,013,‘‘,,CLR_BLACK,CLR_WHITE,,,,.T.,"",,,.T.,.F.,,.F.,.F.,"","cCpoDire",,)
oCpoNatu := TGet():New( 056,068,{|u| If(PCount()>0,cCpoNatu:=u,cCpoNatu)},oDlg,065,013,‘‘,,CLR_BLACK,CLR_WHITE,,,,.T.,"",,,.T.,.F.,,.F.,.F.,"SED","cCpoNatu",,)
oCpoDtCa := TGet():New( 076,068,{|u| If(PCount()>0,dCpoDtCa:=u,dCpoDtCa)},oDlg,065,013,‘‘,,CLR_BLACK,CLR_WHITE,,,,.T.,"",,,.T.,.F.,,.F.,.F.,"","dCpoDtCa",,)
oCpoDtvenc := TGet():New( 100,068,{|u| If(PCount()>0,dCpoDtvenc:=u,dCpoDtvenc)},oDlg,065,013,‘‘,,CLR_BLACK,CLR_WHITE,,,,.T.,"",,,.T.,.F.,,.F.,.F.,"","dCpoDtvenc",,)
oCpoValo := TGet():New( 120,068,{|u| If(PCount()>0,nCpoValo:=u,nCpoValo)},oDlg,065,013,‘999,999,999.99‘,,CLR_BLACK,CLR_WHITE,,,,.T.,"",,,.F.,.F.,,.F.,.F.,"","nCpoValo",,)
oCpoDesc := TMultiGet():New( 088,144,{|u| If(PCount()>0,cmCpoDesc:=u,cmCpoDesc)},oDlg,188,044,,,CLR_BLACK,CLR_WHITE,,.T.,"",,,.F.,.F.,.F.,,,.F.,, )
oGet1 := TGet():New( 056,136,,oDlg,200,013,‘‘,,CLR_BLACK,CLR_HGRAY,,,,.T.,"",,,.T.,.F.,,.F.,.F.,"","",,)
oGet1:Disable()
oBtn1 := TButton():New( 004,260,"Incluir" ,oDlg,{||InseCpos()}, 40,10,,,.F.,.T.,.F.,,.F.,,,.F. )
oDlg:Activate(,,,.T.)
Return
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Abrir tela de registro apos item marcado no browse
Tempo para a criação da página:0.099 segundos