#Include 'Protheus.ch' #Include 'FWMVCDef.ch' User Function FiltroF3() Local oModel := FWModelActive() Local oSubModel Static clocal Static cProd Static aCampos := {"BF_PRODUTO","BF_NUMSERI"} Static aHeader := {} Static aCols := {} Static oMSNewGe1 Static oDlg Static lRet := .F. oSubModel := oModel:getModel("TZP6DETAILS") cLocal := oModel:GetValue("TZP5MASTER","ZP5_LORIGE") cProd := oSubModel:GetValue("ZP6_PRODUT") DEFINE MSDIALOG oDlg TITLE "NÚMEROS DE SÉRIE DISPONÍVEIS" FROM 000, 000 TO 230, 400 PIXEL getdadoBF() @ 100, 100 BUTTON oButton1 PROMPT "Sair" SIZE 037, 012 ACTION oDlg:End() OF oDlg PIXEL @ 100, 150 BUTTON oButton2 PROMPT "Confirmar" SIZE 037, 012 ACTION confSeri(oSubModel) OF oDlg PIXEL ACTIVATE MSDIALOG oDlg CENTERED return lRet Static Function confSeri(oSubModel) if oMSNewGe1:aCols[oMSNewGe1:nAt][2] <> NIL lRet := .T. oSubModel:SetValue("ZP6_NUMSER",oMSNewGe1:aCols[oMSNewGe1:nAt][2]) oDlg:End() EndIf return Static Function getDadoBF Local nX := 0 Local aCamposF DbSelectArea("SX3") SX3->(DbSetOrder(2)) For nX := 1 to Len(aCampos) If SX3->(DbSeek(aCampos[nX])) Aadd(aHeader, {AllTrim(X3Titulo()),SX3->X3_CAMPO,SX3->X3_PICTURE,SX3->X3_TAMANHO,SX3->X3_DECIMAL,SX3->X3_VALID,; SX3->X3_USADO,SX3->X3_TIPO,SX3->X3_F3,SX3->X3_CONTEXT,SX3->X3_CBOX,SX3->X3_RELACAO}) Endif Next nX BeginSql alias "ZSBF" SELECT BF_PRODUTO, BF_NUMSERI FROM SBF010 SBF WHERE SBF.%notDel% AND SBF.BF_PRODUTO = %exp:cProd% AND SBF.BF_LOCAL = %EXP:cLocal% EndSql // DbSelectArea("SX3") // SX3->(DbSetOrder(2)) // If ZSBF->(Eof()) // For nX := 1 to Len(aCampos) // If DbSeek(aCampos[nX]) // Aadd(aCamposF, CriaVar(SX3->X3_CAMPO)) // Endif // Next nX // Aadd(aCamposF, .F.) // Aadd(aCols, aCamposF) // Else If !ZSBF->(Eof()) While !ZSBF->(Eof()) AADD(aCols,{ZSBF->BF_PRODUTO,ZSBF->BF_NUMSERI,.F.}) ZSBF->(dbSkip()) EndDo EndIf ZSBF->(dbCloseArea()) oMSNewGe1 := MsNewGetDados():New( 001, 001, 100, 300, GD_UPDATE, "AllwaysTrue", "AllwaysTrue", "+Field1+Field2",,, 999, "AllwaysTrue", "", "AllwaysTrue", oDlg, aHeader, aCols) return NIL