× Linguagem de Programação ADVPL

Perguntas Ajuda com alguma da classe de Browse

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

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 7 meses atrás #11881 por lalberto
Eita, telinha simples rsrs. Vou ver se consigo algo pra vc ok.

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.

Mais
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

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 7 meses atrás #11962 por lalberto
Felipe hoje a noite vou ver essa rotina pra vc ok.

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.

Mais
11 anos 7 meses atrás #11980 por lalberto
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.

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.

Mais
11 anos 7 meses atrás #11981 por lalberto
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.


Arquivo Anexo:

Nome do Arquivo: ESFAT007.rar
Tamanho do Arquivo:1 KB





Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Anexos:

Por favor Acessar ou Registrar para participar da conversa.

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