Trazer código do produto selecionado no Parâmetro

Boa tarde, tenho uma função que chama uma janela com 3 parâmetros: Data inicial (MV_PAR01), Data Final (MV_PAR02) e código do produto(MV_PAR03)

Teria como fazer com que quando abrir essa janela o código que irá vir no (MV_PAR03) seja o código do produto que foi pesquisado?

/ Extrato do produto - tem o objetivo de trazer em tela o extrato do produto /

User Function ExtrSB1(cProd,cDtini,cDtFim,cDtEnc)

Local cPerg := "EXTRATOSB1" // PADR("EXTRATOSB1", LEN(SX1->X1_GRUPO)) Local aArea := GetArea() Local aSize := {}, aObjects := {}, aInfo := {}, aPObjs := {} Local oDlg Local cNotArmazem

Private dDtDe := "" Private dDtAte := ""

Private cCodProdcPerg Private cDesc := "" Private nEst := 0 Private oPanel, oGetDad Private aHeader := {}, aCols := {} Private cFieldOk := "allwaystrue()" // funcao para validacao apos confirmar digitacao de um campo da getdados Private cLinOk := "allwaystrue()" // funcao para validar mudanca de linha na getdados Private cTudOk := "allwaystrue()" // validacao para botao de confimacao (OK) do modelo 3 Private oFont := TFont():New("Arial", , 16, , .T.)

Default cProd := "" Default cDtini := "" Default cDtFim := "" Default cDtEnc := ""

if cProd == ""

If !Pergunte(cPerg, .T.) Return EndIf

dDtDe := DTOS(MV_PAR01)

If Empty(AllTrim(dDtDe)) MsgAlert("Data Inicial não pode ser vazia!!") Return EndIf

If !Empty(AllTrim(DTOS(MV_PAR02))) dDtAte := DTOS(MV_PAR02) Else dDtAte := DTOS(dDataBase) EndIf

cCodProd := MV_PAR03 else dDtDe := cDtini cCodProd := cProd

if ALLTRIM(cDtEnc) != "" dDtAte := cDtEnc elseif ALLTRIM(cDtFim) != "" dDtAte := cDtFim else dDtAte := DTOS(dDataBase) Endif endif

aSize := MsAdvSize(.T.)

aObjects := {}

aAdd( aObjects, { 100, 010, .T.,.T., .T.} ) aAdd( aObjects, { 100, 080, .T.,.T., .T.} ) aAdd( aObjects, { 100, 010, .T.,.T., .T.} )

aInfo := { aSize[ 1 ], aSize[ 2 ], aSize[ 3 ], aSize[ 4 ], 0, 0 } aPObjs := MsObjSize( aInfo, aObjects, .T. )

cNotArmazem := "‘03‘,‘53‘,‘04‘,‘54‘,‘07‘,‘57‘" nEst := U_EstTotal(cCodProd, cNotArmazem, dDtAte) cDesc := Posicione("SB1", 1, xFilial("SB1") + cCodProd, "B1_DESC")

GeraHeader() MontaAcols()

DEFINE MSDIALOG oDlg TITLE OemToAnsi("Extrato do Produto") From aSize[7], 000 To aSize[6], aSize[5] Of oMainWnd Pixel

oPanel := TPanel():New(aPObjs[1, 2], aPObjs[1, 2],, oDlg,,,,,, aPObjs[1, 3], 050) oPanel:Align := CONTROL_ALIGN_TOP

// Verifica se existe o logo na basta system If File("lgrl"+ALLTRIM(cEmpAnt)+".bmp") oTBitmap1 := TBitmap():New(010,010,450,315,,"lgrl"+ALLTRIM(cEmpAnt)+".bmp",.T.,oPanel,,,.F.,.F.,,,.F.,,.T.,,.F.) //oTBitmap1:lAutoSize := .T. @ 005, 080 Say OemToAnsi("Período de: " + DTOC(STOD(dDtDe)) + " até: " + DTOC(STOD(dDtAte))) Size 500, 030 COLORS CLR_BLACK FONT oFont OF oPanel Pixel @ 015, 080 Say OemToAnsi("Código: " + AllTrim(cCodProd)) Size 500, 030 COLORS CLR_BLACK FONT oFont OF oPanel Pixel @ 025, 080 Say OemToAnsi("Descrição: " + cDesc) Size 500, 030 COLORS CLR_BLACK FONT oFont OF oPanel Pixel EndIf

oGetDad := MsNewGetDados():New(aPObjs[2, 1], aPObjs[2, 2], aPObjs[2, 3], aPObjs[2, 4], /nOpcGet/, cLinOk, cTudOk,,,, 99999, cFieldOk,,,, aHeader, aCols) oGetDad:oBrowse:Align := CONTROL_ALIGN_ALLCLIENT

@ 030, aSize[3]-45 Button oBtn PROMPT "Exp. Excel" Size 040, 15 Action (ExtratoExcel()) OF oPanel Pixel

ACTIVATE MSDIALOG oDlg CENTERED

RestArea(aArea)

Return

compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags protheus parametros ou faça a sua própria pergunta.