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