- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Ajuda com alguma da classe de Browse
×
Linguagem de Programação ADVPL
Perguntas Ajuda com alguma da classe de Browse
- fkuhn
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 16
- Obrigados Recebidos: 0
11 anos 7 meses atrás #11866
por fkuhn
Ajuda com alguma da classe de Browse foi criado por fkuhn
Fala Pessoal blz?
Preciso fazer uma telinha simples aqui.
Quando o cliente posiciona o o ponteiro encima de um pedido de venda, no mBrowse.
Preciso que ele clique em um botão no ações relacionadas (vou criar o ponto de entrada pra isso)
que apareça uma tela, que de um lado apareça as notas fiscais pra que foram faturadas nesse pedido e do outro lado os itens, quantidades e tudo mais...ai se ele clica na segunda nota faturada do lado esquerdo o lado direito seja atualizado com os dados dessa nota.
Preciso fazer isso por que o pessoal faz busca pelo numero do pedido do cliente. senao poderia ver isso la pelo documento de saida
Preciso fazer uma telinha simples aqui.
Quando o cliente posiciona o o ponteiro encima de um pedido de venda, no mBrowse.
Preciso que ele clique em um botão no ações relacionadas (vou criar o ponto de entrada pra isso)
que apareça uma tela, que de um lado apareça as notas fiscais pra que foram faturadas nesse pedido e do outro lado os itens, quantidades e tudo mais...ai se ele clica na segunda nota faturada do lado esquerdo o lado direito seja atualizado com os dados dessa nota.
Preciso fazer isso por que o pessoal faz busca pelo numero do pedido do cliente. senao poderia ver isso la pelo documento de saida
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
11 anos 7 meses atrás #11881
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Ajuda com alguma da classe de Browse
Eita, telinha simples rsrs. Vou ver se consigo algo pra vc ok.
Abraços.
Abraços.
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- fkuhn
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 16
- Obrigados Recebidos: 0
11 anos 7 meses atrás #11952
por fkuhn
Respondido por fkuhn no tópico Ajuda com alguma da classe de Browse
Então Luiz,
a tela eu fiz, usei duas newgetdados
Mas só estou apanhando, para fazer ela trocar de os itens da nota quando clico na segunda nota faturada
se trocar de celula da primeira newgetdados a propriedade q deve alimentar o outro newgetdados é a bchange?
segue fonte:
Desconsidere aquele for da função monheader2() tava testando uma melhor forma de pegar o numero da nota pra jogar pro sql
#INCLUDE "TOTVS.CH"
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³ESFAT007 ºAutor ³Microsiga º Data ³ 03/15/13 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³ º±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ AP º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
User Function ESFAT007()
/*ÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±± Declaração de Variaveis Private dos Objetos ±±
Ù±±ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*/
Private oDlg1
Private oBrw1
Private oBrw2
Private oBtn1
Private aHeader1 := {}
Private aHeader2 := {}
Private aCols1 := {}
Private aCols2 := {}
Private aStru2 := {}
Private cAlias
Private cAlias2
Private cPedido := SC5->C5_NUM
Private cNFant := ""
Private cNFatu := ""
Private cNumNFE
Private nI
/*ÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±± Definicao do Dialog e todos os seus componentes. ±±
Ù±±ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*/
oDlg1 := MSDialog():New( 092,232,391,927,"Relação NFe x Pedido",,,.F.,,,,,,.T.,,,.T. )
SQL01()
MontaStru()
oBrw1 := MsNewGetDados():New(004,004,116,060,,,,,,,120,,,,oDlg1,aHeader1,aCols1,{||MonHeader2()})
oBrw2 := MsNewGetDados():New(004,064,116,336,,,,,,,120,,,,oDlg1,aHeader2,aCols2)
oBtn1 := TButton():New( 124,300,"Fecha",oDlg1,{||oDlg1:End()},037,012,,,,.T.,,"",,,,.F. )
oDlg1:Activate(,,,.T.)
Return
Static Function MontaStru()
//aHeader do primeiro browse
aAdd(aHeader1, {"NFe Num" ,"F2_DOC" ,"@!" ,9,,,,"C",,"R"})
//aHeader do segundo browse buscando as informações no SX3
aAdd(aStru2, {"CODIGO" , "B1_COD"})
aAdd(aStru2, {"DESCRICAO", "B5_CEME"})
aAdd(aStru2, {"QTD PED" , "C6_QTDVEN"})
aAdd(aStru2, {"QTD ENT" , "D2_QUANT"})
aAdd(aStru2, {"PREÇO" , "C6_PRCVEN"})
dbSelectArea("SX3")
dbSetOrder(2)
For nI := 1 To Len(aStru2)
dbSeek(aStru2[nI,2])
aAdd(aHeader2, {aStru2[nI,1],X3_CAMPO,X3_PICTURE,X3_TAMANHO,X3_DECIMAL,,, X3_TIPO,,"R" })
Next nI
//Preenche primeiro aCols do primeiro browse
(cAlias)->(DBGoTop())
WHILE !(cAlias)->(EOF())
cNFatu := alltrim((cAlias)->F2_DOC)
IF cNFatu != cNFAnt
aAdd(aCols1, {(cAlias)->F2_DOC,.F.})
cNFant := cNFatu
ENDIF
(cAlias)->(DBSkip())
ENDDO
Return
Static Function MonHeader2()
nI :=0
For nI := 1 To Len(aCols) step 1
cNumNFE := aCols [nI][1]
SQL02(cNumNFE)
(cAlias2)->(DBGoTop())
WHILE !(cAlias2)->(EOF())
aAdd(aCols2, { (cAlias2)->D2_COD,(cAlias2)->B5_CEME,(cAlias2)->C6_QTDVEN,(cAlias2)->D2_QUANT,.F.})
(cAlias2)->(DBSkip())
ENDDO
Next nI
oBrw2:Refresh()
Return()
Static Function SQL01()
cAlias := GetNextAlias()
BEGINSQl Alias cAlias
SELECT F2_DOC
FROM SF2010 JOIN SD2010 ON F2_DOC = D2_DOC
WHERE D2_PEDIDO = %Exp:cPedido%
AND %table:SD2%.%NOTDEL%
AND F2_FILIAL =%exp:xFilial("SF2")%
AND %table:SF2%.%NOTDEL%
AND D2_FILIAL =%exp:xFilial("SD2")%
ENDSQL
Return
Static Function SQL02()
cAlias2 := GetNextAlias()
BEGINSQL Alias cAlias2
SELECT D2_COD, B5_CEME, C6_QTDVEN, D2_QUANT, C6_PRCVEN
FROM SD2010 JOIN SB5010 ON D2_COD = B5_COD
JOIN SC6010 ON D2_PEDIDO = C6_NUM
WHERE C6_NUM = %exp:cPedido%
AND D2_DOC = %exp:cNumNFE%
AND %table:SD2%.%NOTDEL%
AND D2_FILIAL =%exp:xFilial("SD2")%
AND %table:SB5%.%NOTDEL%
AND B5_FILIAL =%exp:xFilial("SB5")%
AND %table:SC6%.%NOTDEL%
AND C6_FILIAL =%exp:xFilial("SC6")%
ENDSQL
Return
a tela eu fiz, usei duas newgetdados
Mas só estou apanhando, para fazer ela trocar de os itens da nota quando clico na segunda nota faturada
se trocar de celula da primeira newgetdados a propriedade q deve alimentar o outro newgetdados é a bchange?
segue fonte:
Desconsidere aquele for da função monheader2() tava testando uma melhor forma de pegar o numero da nota pra jogar pro sql
#INCLUDE "TOTVS.CH"
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³ESFAT007 ºAutor ³Microsiga º Data ³ 03/15/13 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³ º±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ AP º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
User Function ESFAT007()
/*ÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±± Declaração de Variaveis Private dos Objetos ±±
Ù±±ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*/
Private oDlg1
Private oBrw1
Private oBrw2
Private oBtn1
Private aHeader1 := {}
Private aHeader2 := {}
Private aCols1 := {}
Private aCols2 := {}
Private aStru2 := {}
Private cAlias
Private cAlias2
Private cPedido := SC5->C5_NUM
Private cNFant := ""
Private cNFatu := ""
Private cNumNFE
Private nI
/*ÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±± Definicao do Dialog e todos os seus componentes. ±±
Ù±±ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*/
oDlg1 := MSDialog():New( 092,232,391,927,"Relação NFe x Pedido",,,.F.,,,,,,.T.,,,.T. )
SQL01()
MontaStru()
oBrw1 := MsNewGetDados():New(004,004,116,060,,,,,,,120,,,,oDlg1,aHeader1,aCols1,{||MonHeader2()})
oBrw2 := MsNewGetDados():New(004,064,116,336,,,,,,,120,,,,oDlg1,aHeader2,aCols2)
oBtn1 := TButton():New( 124,300,"Fecha",oDlg1,{||oDlg1:End()},037,012,,,,.T.,,"",,,,.F. )
oDlg1:Activate(,,,.T.)
Return
Static Function MontaStru()
//aHeader do primeiro browse
aAdd(aHeader1, {"NFe Num" ,"F2_DOC" ,"@!" ,9,,,,"C",,"R"})
//aHeader do segundo browse buscando as informações no SX3
aAdd(aStru2, {"CODIGO" , "B1_COD"})
aAdd(aStru2, {"DESCRICAO", "B5_CEME"})
aAdd(aStru2, {"QTD PED" , "C6_QTDVEN"})
aAdd(aStru2, {"QTD ENT" , "D2_QUANT"})
aAdd(aStru2, {"PREÇO" , "C6_PRCVEN"})
dbSelectArea("SX3")
dbSetOrder(2)
For nI := 1 To Len(aStru2)
dbSeek(aStru2[nI,2])
aAdd(aHeader2, {aStru2[nI,1],X3_CAMPO,X3_PICTURE,X3_TAMANHO,X3_DECIMAL,,, X3_TIPO,,"R" })
Next nI
//Preenche primeiro aCols do primeiro browse
(cAlias)->(DBGoTop())
WHILE !(cAlias)->(EOF())
cNFatu := alltrim((cAlias)->F2_DOC)
IF cNFatu != cNFAnt
aAdd(aCols1, {(cAlias)->F2_DOC,.F.})
cNFant := cNFatu
ENDIF
(cAlias)->(DBSkip())
ENDDO
Return
Static Function MonHeader2()
nI :=0
For nI := 1 To Len(aCols) step 1
cNumNFE := aCols [nI][1]
SQL02(cNumNFE)
(cAlias2)->(DBGoTop())
WHILE !(cAlias2)->(EOF())
aAdd(aCols2, { (cAlias2)->D2_COD,(cAlias2)->B5_CEME,(cAlias2)->C6_QTDVEN,(cAlias2)->D2_QUANT,.F.})
(cAlias2)->(DBSkip())
ENDDO
Next nI
oBrw2:Refresh()
Return()
Static Function SQL01()
cAlias := GetNextAlias()
BEGINSQl Alias cAlias
SELECT F2_DOC
FROM SF2010 JOIN SD2010 ON F2_DOC = D2_DOC
WHERE D2_PEDIDO = %Exp:cPedido%
AND %table:SD2%.%NOTDEL%
AND F2_FILIAL =%exp:xFilial("SF2")%
AND %table:SF2%.%NOTDEL%
AND D2_FILIAL =%exp:xFilial("SD2")%
ENDSQL
Return
Static Function SQL02()
cAlias2 := GetNextAlias()
BEGINSQL Alias cAlias2
SELECT D2_COD, B5_CEME, C6_QTDVEN, D2_QUANT, C6_PRCVEN
FROM SD2010 JOIN SB5010 ON D2_COD = B5_COD
JOIN SC6010 ON D2_PEDIDO = C6_NUM
WHERE C6_NUM = %exp:cPedido%
AND D2_DOC = %exp:cNumNFE%
AND %table:SD2%.%NOTDEL%
AND D2_FILIAL =%exp:xFilial("SD2")%
AND %table:SB5%.%NOTDEL%
AND B5_FILIAL =%exp:xFilial("SB5")%
AND %table:SC6%.%NOTDEL%
AND C6_FILIAL =%exp:xFilial("SC6")%
ENDSQL
Return
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
11 anos 7 meses atrás #11962
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Ajuda com alguma da classe de Browse
Felipe hoje a noite vou ver essa rotina pra vc ok.
Abraços.
Abraços.
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
11 anos 7 meses atrás #11980
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Ajuda com alguma da classe de Browse
Brother dei uma analisada no seu fonte e realmente está um pouco confuso, olha o ideal neste caso é o uso do objeto listbox, estou procurando alguma coisa aqui pra te mandar mas ainda não achei, mas guenta ai que vou te dar uma força sim ok.
Abraços
me aguarde.
Abraços
me aguarde.
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
11 anos 7 meses atrás #11981
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Ajuda com alguma da classe de Browse
Brother fiz algumas alterações mas não terminei, mas já ta do jeito que vc quer, agora precisa melhorar, segue o fonte alterado, estou usando o objeto listbox.
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Ajuda com alguma da classe de Browse
Tempo para a criação da página:0.130 segundos