Versão atual:

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

Versão (1):

Ver a versão formatada

Trazer código do produto selecionado no Parâmetro

  • criado 19 de Mar de 2024

Comentário

new question