× Linguagem de Programação ADVPL

Perguntas Duvida Criação de Tela

Mais
11 anos 6 meses atrás #13318 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

Por favor Acessar ou Registrar para participar da conversa.

Mais
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,

Por favor Acessar ou Registrar para participar da conversa.

Mais
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.

Por favor Acessar ou Registrar para participar da conversa.

Mais
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

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 6 meses atrás #13343 por kanaamlrr
Respondido por kanaamlrr no tópico Duvida Criação de Tela
Faz assim
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.

Mais
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?
Ultima edição: 11 anos 6 meses atrás por henry.charriere.

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.116 segundos
Joomla templates by a4joomla