- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Duvida Criação de Tela
×
Linguagem de Programação ADVPL
Perguntas Duvida Criação de Tela
- henry.charriere
- Autor do Tópico
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 492
- Obrigados Recebidos: 0
11 anos 6 meses atrás #13318
por henry.charriere
Duvida Criação de Tela foi criado por henry.charriere
Pessoal, Bom dia!
Estou fazendo um relatório que precisarei do código do vendedor, não quero fazer igual nós filtros do Protheus
De Vendedor
Ate Vendedor
Gostaria de fazer uma telinha para pesquisar e nessa telinha ter um checkbox, ai selecionaria os vendedores que quero. Retornando assim para o parâmetro
Alguém ai já fez alguma coisa parecida?
Atc,
Henry
Estou fazendo um relatório que precisarei do código do vendedor, não quero fazer igual nós filtros do Protheus
De Vendedor
Ate Vendedor
Gostaria de fazer uma telinha para pesquisar e nessa telinha ter um checkbox, ai selecionaria os vendedores que quero. Retornando assim para o parâmetro
Alguém ai já fez alguma coisa parecida?
Atc,
Henry
Por favor Acessar ou Registrar para participar da conversa.
- henry.charriere
- Autor do Tópico
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 492
- Obrigados Recebidos: 0
11 anos 6 meses atrás #13327
por henry.charriere
Respondido por henry.charriere no tópico Duvida Criação de Tela
Pessoal, Bom dia!
Como faço para inserir um checkbox neste Grid antes do código do vendedor.
User Function FVendedor()
Local oDlg
DEFINE MSDIALOG oDlg FROM 0,0 TO 302,402 PIXEL TITLE 'Filtro Vendedor'
DbSelectArea('SA3')
oBrowse := MsSelBr():New(1,1,200,150,,,,oDlg,,,,,,,,,,,,.F.,'SA3',.T.,,.F.,,, )
//Preciso colocar meu checkbox aqui para saber qual vendedor foi selecionado
oBrowse:AddColumn(TCColumn():New('Codigo' ,{||SA3->A3_COD},,,,'LEFT',,.F.,.F.,,,,.F.,))
oBrowse:AddColumn(TCColumn():New('Nome' ,{||SA3->A3_NOME},,,,'LEFT',,.F.,.F.,,,,.F.,))
oBrowse:AddColumn(TCColumn():New('Nome Red' ,{||SA3->A3_NREDUZ},,,,'LEFT',,.F.,.F.,,,,.F.,))
ACTIVATE MSDIALOG oDlg CENTERED
Return NIL
Atc,
Como faço para inserir um checkbox neste Grid antes do código do vendedor.
User Function FVendedor()
Local oDlg
DEFINE MSDIALOG oDlg FROM 0,0 TO 302,402 PIXEL TITLE 'Filtro Vendedor'
DbSelectArea('SA3')
oBrowse := MsSelBr():New(1,1,200,150,,,,oDlg,,,,,,,,,,,,.F.,'SA3',.T.,,.F.,,, )
//Preciso colocar meu checkbox aqui para saber qual vendedor foi selecionado
oBrowse:AddColumn(TCColumn():New('Codigo' ,{||SA3->A3_COD},,,,'LEFT',,.F.,.F.,,,,.F.,))
oBrowse:AddColumn(TCColumn():New('Nome' ,{||SA3->A3_NOME},,,,'LEFT',,.F.,.F.,,,,.F.,))
oBrowse:AddColumn(TCColumn():New('Nome Red' ,{||SA3->A3_NREDUZ},,,,'LEFT',,.F.,.F.,,,,.F.,))
ACTIVATE MSDIALOG oDlg CENTERED
Return NIL
Atc,
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
11 anos 6 meses atrás #13328
por kanaamlrr
Respondido por kanaamlrr no tópico Duvida Criação de Tela
Henry, eu faria o seguinte, colocaria um botão para selecionar os vendedores, quando clicar, abre um msselect, depois quando o cara clicar em ok, percorre a TRB e vê oq está marcado e joga para um array.
Não tenho nada pronto, mas acho que dá para fazer nessa linha.
Não tenho nada pronto, mas acho que dá para fazer nessa linha.
Por favor Acessar ou Registrar para participar da conversa.
- henry.charriere
- Autor do Tópico
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 492
- Obrigados Recebidos: 0
11 anos 6 meses atrás #13339
por henry.charriere
Respondido por henry.charriere no tópico Duvida Criação de Tela
Kanaãm,
conseguir fazer esse exemplo, pequei do tdn
vc sabe como percorro isso e coloco num array?
#include "protheus.ch"
User Function TestSelec()
Local _stru:={}
Local aCpoBro := {}
Local oDlgLocal
aCores := {}
Private lInverte := .F.
Private cMark := GetMark()
Private oMark
//Cria um arquivo de Apoio
AADD(_stru,{"OK" ,"C" ,2 ,0 })
AADD(_stru,{"COD" ,"C" ,6 ,0 })
AADD(_stru,{"NOME" ,"C" ,30 ,0 })
AADD(_stru,{"NOMERE" ,"C" ,30 ,0 })
cArq:=Criatrab(_stru,.T.)
DBUSEAREA(.t.,,carq,"TTRB")
//Alimenta o arquivo de apoio com os registros do cadastro de clientes (SA3)
DbSelectArea("SA3")
DbGotop()
While SA3->(!Eof())
DbSelectArea("TTRB")
RecLock("TTRB",.T.)
TTRB->COD := SA3->A3_COD
TTRB->NOME := SA3->A3_LOJA
TTRB->NOMERE := SA3->A3_NOME
MsunLock()
SA3->(DbSkip())
Enddo
//Define quais colunas (campos da TTRB) serao exibidas na MsSelect
aCpoBro := {{ "OK" ,, "Mark" ,"@!"},;
{ "COD" ,, "Codigo" ,"@!"},;
{ "NOME" ,, "Loja" ,"@1!"},;
{ "NOMERE" ,, "Nome Red" ,"@X"}}
//Cria uma Dialog
DEFINE MSDIALOG oDlg TITLE "MarkBrowse c/Refresh" From 9,0 To 315,800 PIXEL
DbSelectArea("TTRB")
DbGotop()
//Cria a MsSelect
oMark := MsSelect():New("TTRB","OK","",aCpoBro,@lInverte,@cMark,{17,1,150,400},,,,,)
oMark:bMark := {| | Disp()}
//Exibe a Dialog
ACTIVATE MSDIALOG oDlg CENTERED ON INIT EnchoiceBar(oDlg,{|| oDlg:End()},{|| oDlg:End()})
//Fecha a Area e elimina os arquivos de apoio criados em disco.
TTRB->(DbCloseArea())
Iif(File(cArq + GetDBExtension()),FErase(cArq + GetDBExtension()) ,Nil)
Return
conseguir fazer esse exemplo, pequei do tdn
vc sabe como percorro isso e coloco num array?
#include "protheus.ch"
User Function TestSelec()
Local _stru:={}
Local aCpoBro := {}
Local oDlgLocal
aCores := {}
Private lInverte := .F.
Private cMark := GetMark()
Private oMark
//Cria um arquivo de Apoio
AADD(_stru,{"OK" ,"C" ,2 ,0 })
AADD(_stru,{"COD" ,"C" ,6 ,0 })
AADD(_stru,{"NOME" ,"C" ,30 ,0 })
AADD(_stru,{"NOMERE" ,"C" ,30 ,0 })
cArq:=Criatrab(_stru,.T.)
DBUSEAREA(.t.,,carq,"TTRB")
//Alimenta o arquivo de apoio com os registros do cadastro de clientes (SA3)
DbSelectArea("SA3")
DbGotop()
While SA3->(!Eof())
DbSelectArea("TTRB")
RecLock("TTRB",.T.)
TTRB->COD := SA3->A3_COD
TTRB->NOME := SA3->A3_LOJA
TTRB->NOMERE := SA3->A3_NOME
MsunLock()
SA3->(DbSkip())
Enddo
//Define quais colunas (campos da TTRB) serao exibidas na MsSelect
aCpoBro := {{ "OK" ,, "Mark" ,"@!"},;
{ "COD" ,, "Codigo" ,"@!"},;
{ "NOME" ,, "Loja" ,"@1!"},;
{ "NOMERE" ,, "Nome Red" ,"@X"}}
//Cria uma Dialog
DEFINE MSDIALOG oDlg TITLE "MarkBrowse c/Refresh" From 9,0 To 315,800 PIXEL
DbSelectArea("TTRB")
DbGotop()
//Cria a MsSelect
oMark := MsSelect():New("TTRB","OK","",aCpoBro,@lInverte,@cMark,{17,1,150,400},,,,,)
oMark:bMark := {| | Disp()}
//Exibe a Dialog
ACTIVATE MSDIALOG oDlg CENTERED ON INIT EnchoiceBar(oDlg,{|| oDlg:End()},{|| oDlg:End()})
//Fecha a Area e elimina os arquivos de apoio criados em disco.
TTRB->(DbCloseArea())
Iif(File(cArq + GetDBExtension()),FErase(cArq + GetDBExtension()) ,Nil)
Return
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
11 anos 6 meses atrás #13343
por kanaamlrr
Respondido por kanaamlrr no tópico Duvida Criação de Tela
Faz assim
Mais ou menos isso
TRB->(dbGoTop())
While TRB->(!EOF())
If(TRB->OK==cMarca)
aAdd(aVendedores, TRB->COD_VEND)
EndIf
TRB->(dbSkip())
EndDo
Mais ou menos isso
Por favor Acessar ou Registrar para participar da conversa.
- henry.charriere
- Autor do Tópico
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 492
- Obrigados Recebidos: 0
11 anos 6 meses atrás - 11 anos 6 meses atrás #13353
por henry.charriere
Respondido por henry.charriere no tópico Duvida Criação de Tela
Bicho, corretíssimo.
Só mais 1 coisa, funcionou perfeitamente. Gostaria de saber como faço para chamar essa tela de outra tela. Exemplo;
DEFINE MSDIALOG oDlg FROM 0,0 TO 400,633 PIXEL TITLE 'Faturamento Preço Médio'
TGroup():New(005,005,60,315,'Agregadores',oDlg,CLR_HBLUE,,.T.)
oCheck1 := TCheckBox():New(014,010,'Região Estratégica',,oDlg, 100,210,,,oFont12,,,,,.T.,,,)
oCheck1 := TCheckBox():New(014,230,'Vendedor ',,oDlg, 100,210,,,oFont12,,,,,.T.,,,)
oCheck2 := TCheckBox():New(027,010,'Categoria' ,,oDlg, 100,210,,,oFont12,,,,,.T.,,,)
oCheck3 := TCheckBox():New(027,230,'Unid. Negocio' ,,oDlg, 100,210,,,oFont12,,,,,.T.,,,)
oCheck2 := TCheckBox():New(042,010,'Estado' ,,oDlg, 100,210,,,oFont12,,,,,.T.,,,)
oCheck3 := TCheckBox():New(042,230,'CIF x FOB' ,,oDlg, 100,210,,,oFont12,,,,,.T.,,,)
oSay1:= tSay():New(64,010,{||"Data Inicial:"},oDlg,,oFont12,,,,.T.,CLR_BLUE,CLR_RED,50,15)
oGet1:= TGet():New(64,045,{|u| if(PCount()>0,dGet3:=u,dGet3) } , oDlg, 80,10,"@!",,,,,,,.T.,,,,,,,,,,"dGet3")
oSay2:= tSay():New(64,200,{||"Data Final:"},oDlg,,oFont12,,,,.T.,CLR_BLUE,CLR_RED,50,15)
oGet2:= TGet():New(64,230,{|u| if(PCount()>0,dGet4:=u,dGet4) } , oDlg, 80,10,"@!",,,,,,,.T.,,,,,,,,,,"dGet4")
oSay2:= tSay():New(78,010,{||"Uni. Negoc:"},oDlg,,oFont12,,,,.T.,CLR_BLUE,CLR_RED,50,15)
oGet2:= TGet():New(78,045,{|u| if(PCount()>0,dGet5:=u,dGet5) } , oDlg, 80,10,"@!",,,,,,,.T.,,,,,,,,,,"oGet2")
oSay3:= tSay():New(78,200,{||"CIF x FOB: "},oDlg,,oFont12,,,,.T.,CLR_BLUE,CLR_RED,50,15)
oCombo:= tComboBox():New(74,230,{|u|if(PCount()>0,cCombo:=u,cCombo)}, aItems,80,10,oDlg,,,,,,.T.,,,,,,,,,'cCombo')
//Vendedores := chamar minha nova tela....
oButton1:=tButton():New(390,270,"&Imprimir",oDlg,{||Processa({||FProcREG1(oDlg)},"Aguarde...","Processando...")},40,10,,,,.T.)
ACTIVATE MSDIALOG oDlg CENTERED
Como faço para chama-lá por esse dialogo?
Só mais 1 coisa, funcionou perfeitamente. Gostaria de saber como faço para chamar essa tela de outra tela. Exemplo;
DEFINE MSDIALOG oDlg FROM 0,0 TO 400,633 PIXEL TITLE 'Faturamento Preço Médio'
TGroup():New(005,005,60,315,'Agregadores',oDlg,CLR_HBLUE,,.T.)
oCheck1 := TCheckBox():New(014,010,'Região Estratégica',,oDlg, 100,210,,,oFont12,,,,,.T.,,,)
oCheck1 := TCheckBox():New(014,230,'Vendedor ',,oDlg, 100,210,,,oFont12,,,,,.T.,,,)
oCheck2 := TCheckBox():New(027,010,'Categoria' ,,oDlg, 100,210,,,oFont12,,,,,.T.,,,)
oCheck3 := TCheckBox():New(027,230,'Unid. Negocio' ,,oDlg, 100,210,,,oFont12,,,,,.T.,,,)
oCheck2 := TCheckBox():New(042,010,'Estado' ,,oDlg, 100,210,,,oFont12,,,,,.T.,,,)
oCheck3 := TCheckBox():New(042,230,'CIF x FOB' ,,oDlg, 100,210,,,oFont12,,,,,.T.,,,)
oSay1:= tSay():New(64,010,{||"Data Inicial:"},oDlg,,oFont12,,,,.T.,CLR_BLUE,CLR_RED,50,15)
oGet1:= TGet():New(64,045,{|u| if(PCount()>0,dGet3:=u,dGet3) } , oDlg, 80,10,"@!",,,,,,,.T.,,,,,,,,,,"dGet3")
oSay2:= tSay():New(64,200,{||"Data Final:"},oDlg,,oFont12,,,,.T.,CLR_BLUE,CLR_RED,50,15)
oGet2:= TGet():New(64,230,{|u| if(PCount()>0,dGet4:=u,dGet4) } , oDlg, 80,10,"@!",,,,,,,.T.,,,,,,,,,,"dGet4")
oSay2:= tSay():New(78,010,{||"Uni. Negoc:"},oDlg,,oFont12,,,,.T.,CLR_BLUE,CLR_RED,50,15)
oGet2:= TGet():New(78,045,{|u| if(PCount()>0,dGet5:=u,dGet5) } , oDlg, 80,10,"@!",,,,,,,.T.,,,,,,,,,,"oGet2")
oSay3:= tSay():New(78,200,{||"CIF x FOB: "},oDlg,,oFont12,,,,.T.,CLR_BLUE,CLR_RED,50,15)
oCombo:= tComboBox():New(74,230,{|u|if(PCount()>0,cCombo:=u,cCombo)}, aItems,80,10,oDlg,,,,,,.T.,,,,,,,,,'cCombo')
//Vendedores := chamar minha nova tela....
oButton1:=tButton():New(390,270,"&Imprimir",oDlg,{||Processa({||FProcREG1(oDlg)},"Aguarde...","Processando...")},40,10,,,,.T.)
ACTIVATE MSDIALOG oDlg CENTERED
Como faço para chama-lá por esse dialogo?
Ultima edição: 11 anos 6 meses atrás por henry.charriere.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Duvida Criação de Tela
Tempo para a criação da página:0.116 segundos