plug-in de serviço para atribuição de campo documento - exemplo simples

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;









Acho que você gosta

Origin www.cnblogs.com/zfangfang/p/12462819.html
Recomendado
Clasificación