Demanda Cenário: Quando a terceirização para salvar listas de materiais, de acordo com as propriedades do material das crianças de material, gancho julgamento cálculos de MRP desmarque.
using System;
utilizando System.Collections.Generic;
usando System.Linq;
usando System.Text;
usando Kingdee.BOS.Core.DynamicForm.PlugIn;
usando Kingdee.BOS.Core.Validation;
usando Kingdee.BOS.Core;
usando Kingdee.BOS;
usando Kingdee.BOS.App.Data;
usando System.Data;
usando Kingdee.BOS.Orm.DataEntity;
usando Kingdee.BOS.Core.Metadata.FieldElement;
usando Kingdee.BOS.Orm.Metadata.DataEntity;
usando Kingdee.BOS.Util;
usando Kingdee.BOS.Contracts;
usando Kingdee.BOS.Core.Metadata;
usando Kingdee.BOS.Orm;
usando System.ComponentModel;
usando Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
usando Kingdee.BOS.Core.DynamicForm;
o System.Web a usar;
o usando o System.IO;
namespace MRPSelect
{
[Description ( "bill Subcontract de materiais armazenados Analisando o MRP")]
public class SUBBOMMRP: AbstractOperationServicePlugIn
{
OnPrepareOperationServiceOption public void o override (OnPrepareOperationServiceEventArgs E)
{
base.OnPrepareOperationServiceOption (E);
}
/// <Resumo>
antes /// carregamento de dados, garantindo as propriedades necessárias para ser carregado
/// </ Resumo>
/// <param name = "E"> </ param>
/// <Observações>
// / quando uma operação, campo de documento não está completamente carregado na lista.
/// Se o operador usa um plug-in campo não estiver carregado, será interrompido;
/// Este evento permite que o plug-in, carregar alguns campos obrigatórios, a interrupção evitar
/// </ observações>
o override void OnPreparePropertys público (PreparePropertysEventArgs E)
{
// seguintes linhas, o campo especificado xxxxx Key, carregar campos obrigatórios
//e.FieldKeys.Add("FJSTORDERNO ");
//e.FieldKeys.Add("FSOURCETYPE") ;
//e.FieldKeys.Add("FSetAccountType ");
//e.FieldKeys.Add("FDATE");
}
OnAddValidators public void o override (AddValidatorsEventArgs E)
{
base.OnAddValidators (E);
this.OperationResult.IsShowMessage = para true;
}
BeginOperationTransaction public void o override (BeginOperationTransactionArgs E)
{
base.BeginOperationTransaction (E);
if (e.DataEntitys.Count () <1)
{
return;
}
Corda MatID = "";
cadeia de SQL = "";
DataSet ds = novo conjunto de dados ();
foreach (var item em e.DataEntitys)
{
DynamicObjectCollection PPBomEntry = produto [ "PPBomEntry"] como DynamicObjectCollection;
if (PPBomEntry.Count> 0)
{
for (int i = 0; i <PPBomEntry.Count; i ++)
{
MatID = PPBomEntry [i] [ "MaterialID_Id"]. ToString ();
Sql = "select FERPCLSID de t_BD_MaterialBase onde FMATERIALID = '" + MatID + "' ";
ds = Kingdee.BOS.ServiceHelper.DBServiceHelper.ExecuteDataSet (this.Context, SQL);
if (ds.Tables [0] .Rows.Count> 0)
{
if (ds.Tables [0] .Rows [0] [ "FERPCLSID"]. ToString () == "2" || ds.Tables [0 .] .Rows [0] [ "FERPCLSID"] ToString () == "3")
{
PPBomEntry [i] [ "IsMrpRun"] = 0;