コード例 #1
0
        public override void OnSetBusinessInfo(SetBusinessInfoArgs e)
        {
            new ExtensionPresenter(this);

            base.OnSetBusinessInfo(e);
            // 创建当前单据元数据副本,避免直接修改原始元数据,并发时串账
            FormMetadata currmetadata = (FormMetadata)ObjectUtils.CreateCopy(
                this.View.OpenParameter.FormMetaData);

            _currBusinessInfo = currmetadata.BusinessInfo;
            _currLayoutInfo   = currmetadata.GetLayoutInfo();

            // 取单据头的元数据模型
            currEntityKey = "FBillHead";
            currEntity    = _currBusinessInfo.GetEntity(currEntityKey);

            // 取配置字段的模板,动态添加的字段,是基于模板字段的一个分身
            modelTextField      = _currBusinessInfo.GetField("FModelText");      //文本模板
            modelDecimalField   = _currBusinessInfo.GetField("FModelDecimal");   //小数模板
            modelF8Field        = _currBusinessInfo.GetField("FModelF8");        //F8模板
            modelAssistantField = _currBusinessInfo.GetField("FModelAssistant"); //辅助资料模板


            var simpleExtension = this.View.OpenParameter.GetCustomParameter("simpleExtension") as DynamicObject;

            presenter.GenerateByJson(simpleExtension["FExtension"] as string);

            _currBusinessInfo.GetDynamicObjectType(true);
            e.BusinessInfo     = _currBusinessInfo;
            e.BillBusinessInfo = _currBusinessInfo;
        }
コード例 #2
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                //登录系统
                userServiceProxy.HostURL = txtServer.Text;
                var loginInfo = new Kingdee.BOS.Authentication.LoginInfo();
                loginInfo.AcctID   = txtDbId.Text;
                loginInfo.Lcid     = 2052;
                loginInfo.Username = txtUser.Text;
                loginInfo.Password = txtPassword.Text;
                var res = userServiceProxy.ValidateUser(txtServer.Text, loginInfo);
                if (res.LoginResultType == LoginResultType.Success)
                {
                    metaServiceProxy.HostURL = txtServer.Text;
                    //据业务对象Id 取得元数据
                    FormMetadata meta = metaServiceProxy.GetFormMetadata("PAEZ_Phone");
                    BusinessInfo info = meta.BusinessInfo;
                    //创建手机数据包
                    DynamicObject row = new DynamicObject(info.GetDynamicObjectType());
                    row["F_PAEZ_Brand"] = txtBrand.Text;
                    row["F_PAEZ_Model"] = txtModel.Text;

                    //保存至数据库
                    dataServiceProxy.HostURL = txtServer.Text;
                    var oResult = dataServiceProxy.SaveData(info, row);
                    if (oResult.IsSuccess)
                    {
                        MessageBox.Show("保存成功!");
                    }
                    else
                    {
                        MessageBox.Show("保存失败!");
                    }
                }
                else
                {
                    MessageBox.Show(string.Format("登录失败!{0}", res.Message));
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(string.Format("保存失败!{0}", ex.Message));
            }
        }
コード例 #3
0
ファイル: WinOrLose.cs プロジェクト: radtek/Project_SiasunCRM
        public static IOperationResult DoAction(Context context, string[] selPKArray, Enum_OPPAction action)
        {
            IOperationResult            operationResult         = new OperationResult();
            OperateResultCollection     operateResultCollection = new OperateResultCollection();
            Dictionary <string, string> dictionary = new Dictionary <string, string>();
            List <DynamicObject>        list       = new List <DynamicObject>();
            FormMetadata formMetadata = (FormMetadata)MetaDataServiceHelper.Load(context, "CRM_OPP_Opportunity", true);
            BusinessInfo businessInfo = formMetadata.BusinessInfo;

            DynamicObject[] array = BusinessDataServiceHelper.Load(context, selPKArray, businessInfo.GetDynamicObjectType());
            if (array == null || array.Length == 0)
            {
                operateResultCollection.Add(OpportunityCommon.CreateOperateResult(false, ResManager.LoadKDString("未找到对应的数据,可能已被删除!", "006008030001276", SubSystemType.CRM, new object[0])));
                operationResult.OperateResult = operateResultCollection;
                return(operationResult);
            }
            DynamicObject[] array2 = array;
            for (int i = 0; i < array2.Length; i++)
            {
                DynamicObject dynamicObject = array2[i];
                string        text          = CheckBeforeAction(dynamicObject, action);
                if (text != "")
                {
                    operateResultCollection.Add(OpportunityCommon.CreateOperateResult(false, text));
                    operationResult.OperateResult = operateResultCollection;
                }
                else
                {
                    if (action == Enum_OPPAction.WIN)
                    {
                        dynamicObject["FDocumentStatus"] = "E";
                    }
                    else
                    {
                        if (action == Enum_OPPAction.LOSE)
                        {
                            dynamicObject["FDocumentStatus"] = "F";
                        }
                        else
                        {
                            if (action == Enum_OPPAction.UNWIN || action == Enum_OPPAction.UNLOSE)
                            {
                                dynamicObject["FDocumentStatus"] = "G";
                            }
                        }
                    }
                    if (action == Enum_OPPAction.WIN || action == Enum_OPPAction.LOSE)
                    {
                        DynamicObjectCollection dynamicObjectCollection = dynamicObject["T_CRM_OppPhase"] as DynamicObjectCollection;
                        foreach (DynamicObject current in dynamicObjectCollection)
                        {
                            if (current["FIsCurrent"].ToString() == "True")
                            {
                                current["FEndtimeReal"] = DateTime.Now;
                                break;
                            }
                        }
                    }
                    dictionary.Add(dynamicObject["Id"].ToString(), dynamicObject["FOPPName"].ToString());
                    list.Add(dynamicObject);
                }
            }
            if (list.Count > 0)
            {
                IOperationResult operationResult2 = BusinessDataServiceHelper.Save(context, businessInfo, list.ToArray(), null, "");
                if (action == Enum_OPPAction.WIN || action == Enum_OPPAction.LOSE)
                {
                    Dictionary <string, string> dictionary2 = new Dictionary <string, string>();
                    string format = ResManager.LoadKDString("赢单商机【{0}】", "006008030001476", SubSystemType.CRM, new object[0]);
                    string text2  = "Win";
                    if (action == Enum_OPPAction.LOSE)
                    {
                        format = ResManager.LoadKDString("输单商机【{0}】", "006008030001477", SubSystemType.CRM, new object[0]);
                        text2  = "Lose";
                    }
                    foreach (OperateResult current2 in operationResult2.OperateResult)
                    {
                        if (current2.SuccessStatus)
                        {
                            dictionary2.Add(current2.PKValue.ToString(), string.Format(format, dictionary[current2.PKValue.ToString()]));
                        }
                    }
                    if (dictionary2.Count > 0)
                    {
                        ILatestInfoService latestInfoService = ServiceFactory.GetLatestInfoService(context);
                        latestInfoService.AddActionInfo(context, "CRM_OPP_Opportunity", text2, dictionary2);
                    }
                }
                if (operationResult.OperateResult.Count > 0)
                {
                    using (IEnumerator <OperateResult> enumerator3 = operationResult2.OperateResult.GetEnumerator())
                    {
                        while (enumerator3.MoveNext())
                        {
                            OperateResult current3 = enumerator3.Current;
                            operationResult.OperateResult.Add(current3);
                        }
                        return(operationResult);
                    }
                }
                operationResult.OperateResult = operationResult2.OperateResult;
            }
            return(operationResult);
        }
コード例 #4
0
        //创建销售预测变更单
        private void CreateForecastChangeBill()
        {
            //分组集合
            List <string> lstGroups = new List <string>();
            string        sGroup    = string.Empty;

            foreach (DynamicObject lstEntry in lstEntrys)
            {
                sGroup = Convert.ToString(lstEntry["FSaleOrgId_ID"]) + "+" + Convert.ToString(lstEntry["FSaleDeptId_ID"]) + "+" +
                         Convert.ToString(lstEntry["FSaleGroupId_ID"]) + "+" + Convert.ToString(lstEntry["FSalerId_ID"]);
                if (!lstGroups.Contains(sGroup))
                {
                    lstGroups.Add(sGroup);
                }
            }

            //插入数据

            //销售预测变更单的信息
            BusinessInfo businessInfo = ((FormMetadata)MetaDataServiceHelper.Load(this.Context, "JN_YDL_SAL_ForecastChange", true)).BusinessInfo;

            DynamicObject           billHead   = null;
            DynamicObjectCollection billEntrys = null;
            List <DynamicObject>    lstBills   = new List <DynamicObject>();
            List <DynamicObject>    lstSelectEntrys;

            long lSaleOrgId   = 0;
            long lSaleDeptId  = 0;
            long lSaleGroupId = 0;
            long lSalerId     = 0;

            foreach (string lstGroup in lstGroups)
            {
                //单据头
                billHead = businessInfo.GetDynamicObjectType().CreateInstance() as DynamicObject;
                //单据体
                billEntrys = billHead["FEntity"] as DynamicObjectCollection;

                if (billHead == null || billEntrys == null)
                {
                    continue;
                }

                string[] sGroupSplit = lstGroup.Split('+');

                if (sGroupSplit == null || sGroupSplit.Count() != 4)
                {
                    continue;
                }

                lSaleOrgId   = Convert.ToInt64(sGroupSplit[0]);
                lSaleDeptId  = Convert.ToInt64(sGroupSplit[1]);
                lSaleGroupId = Convert.ToInt64(sGroupSplit[2]);
                lSalerId     = Convert.ToInt64(sGroupSplit[3]);

                billHead["FBillTypeID_Id"]    = "58b2a721c7f776";
                billHead["FJNSaleOrgId_Id"]   = lSaleOrgId;
                billHead["FJNSaleDeptId_Id"]  = lSaleDeptId;
                billHead["FJNSaleGroupId_Id"] = lSaleGroupId;
                billHead["FJNSalerId_Id"]     = lSalerId;
                billHead["FDocumentStatus"]   = "A";
                billHead["FJNDate"]           = DateTime.Now;
                billHead["FDirection"]        = sAdjustType == "A" ? "B" : "A";
                billHead["FCreateDate"]       = DateTime.Now;
                billHead["FCreatorId_Id"]     = this.Context.UserId;

                lstSelectEntrys = lstEntrys.Where(p => Convert.ToInt64(p["FSaleOrgId_Id"]) == lSaleOrgId && Convert.ToInt64(p["FSaleDeptId_Id"]) == lSaleDeptId && Convert.ToInt64(p["FSaleGroupId_Id"]) == lSaleGroupId && Convert.ToInt64(p["FSalerId_Id"]) == lSalerId).ToList();

                if (lstSelectEntrys == null || lstSelectEntrys.Count() <= 0)
                {
                    continue;
                }

                int seq = 1;
                foreach (DynamicObject entry in lstSelectEntrys)
                {
                    DynamicObject billEntry = new DynamicObject(billEntrys.DynamicCollectionItemPropertyType);
                    billEntry["Seq"] = seq;
                    billEntry["FJNMaterialId_Id"] = entry["FMaterialId_Id"];
                    billEntry["FJNAUXPROP_Id"]    = entry["FAuxPropId_Id"];
                    billEntry["FJNForecastQty"]   = entry["FAdjustQty"];
                    billEntry["FJNUnitID_Id"]     = entry["FUnitID_Id"];
                    billEntry["FJNBaseUnitID_Id"] = entry["FUnitID_Id"];
                    billEntry["FJNBaseUnitQty"]   = entry["FAdjustQty"];

                    billEntry["FJNStockOrg_Id"]  = this.Context.CurrentOrganizationInfo.ID;
                    billEntry["FJNSettleOrg_Id"] = this.Context.CurrentOrganizationInfo.ID;
                    billEntry["FJNSupplyOrg_Id"] = this.Context.CurrentOrganizationInfo.ID;
                    DynamicObject material = entry["FMaterialId"] as DynamicObject;
                    if (material != null)
                    {
                        string Materialname = material["Name"].ToString();
                        string sql          = "";
                        if (Materialname.IndexOf("(内蒙)") > 0 || Materialname.IndexOf("(内蒙)") > 0 || Materialname.IndexOf("(内蒙)") > 0)
                        {
                            billEntry["FJNSupplyOrg_Id"] = 100063;
                            sql = string.Format(@"select t2.FWORKSHOPID  as FWORKSHOPID from T_BD_MATERIAL  t1
join T_BD_MATERIALPRODUCE t2 on t1.FMATERIALID=t2.FMATERIALID
where t1.FMASTERID in(
select FMASTERID from T_BD_MATERIAL where FMATERIALID={0})
and t1.FUSEORGID={1}", Convert.ToInt32(entry["FMaterialId_Id"]), 100063);
                        }
                        else
                        {
                            billEntry["FJNSupplyOrg_Id"] = 100062;
                            sql = string.Format(@"select t2.FWORKSHOPID  as FWORKSHOPID from T_BD_MATERIAL  t1
join T_BD_MATERIALPRODUCE t2 on t1.FMATERIALID=t2.FMATERIALID
where t1.FMASTERID in(
select FMASTERID from T_BD_MATERIAL where FMATERIALID={0})
and t1.FUSEORGID={1}", Convert.ToInt32(entry["FMaterialId_Id"]), 100062);
                        }

                        DynamicObjectCollection FWORKSHOPID = DBServiceHelper.ExecuteDynamicObject(this.Context, sql);
                        if (FWORKSHOPID.Count > 0)
                        {
                            int WORKSHOP = Convert.ToInt32(FWORKSHOPID[0]["FWORKSHOPID"]);
                            billEntry["F_VTR_PrdDeptId_Id"] = WORKSHOP;
                        }

                        /* else
                         * {
                         *   billEntry["F_VTR_PrdDeptId"] = 0;
                         * }*/
                    }

                    billEntrys.Add(billEntry);
                    seq++;
                }

                lstBills.Add(billHead);
            }

            if (lstBills.Count <= 0)
            {
                return;
            }

            //生成编码
            MakeBillNo(lstBills);

            Kingdee.BOS.ServiceHelper.DBServiceHelper.LoadReferenceObject(this.Context, lstBills.ToArray(), businessInfo.GetDynamicObjectType(), false);
            DynamicObject[] billDatas = BusinessDataServiceHelper.Save(this.Context, lstBills.ToArray());

            if (billDatas == null || billDatas.Count() <= 0)
            {
                //K3DisplayerModel model = K3DisplayerModel.Create(this.Context, "调整失败,未成功创建销售预测变更单");
                //// 创建一个交互提示错误对象,并设置错误来源,相互隔离
                //KDInteractionException ie = new KDInteractionException("错误提示");
                //ie.InteractionContext.InteractionFormId = FormIdConst.BOS_K3Displayer; // 提示信息显示界面
                //ie.InteractionContext.K3DisplayerModel = model; // 提示内容
                //ie.InteractionContext.IsInteractive = true; // 是否需要交互
                //throw ie; // 抛出错误,终止流程
                this.OperationResult.OperateResult[0].SuccessStatus = false;
                this.OperationResult.OperateResult[0].Message       = "创建销售预测变更单失败";
            }
            else
            {
                OperateResult result;
                foreach (var item in billDatas)
                {
                    result = new OperateResult
                    {
                        SuccessStatus = true,
                        Message       = "创建销售预测变更单成功",
                        MessageType   = MessageType.Normal,
                        Name          = "生成销售预测变更单:" + Convert.ToString(item["FBillNo"]) + "成功",
                        PKValue       = item
                    };
                    this.OperationResult.OperateResult.Add(result);
                }
            }
            this.OperationResult.IsShowMessage = true;
        }
コード例 #5
0
        public override void ButtonClick(ButtonClickEventArgs e)
        {
            if (e.Key.EqualsIgnoreCase("F_JD_BTNOK"))
            {
                this.View.GetControl("F_JD_BTNOK").Enabled = false;

                if (FileNameList.Count < 1)
                {
                    this.View.ShowMessage("未检测到需要引入的txt文件!", MessageBoxType.Error);
                }
                else
                {
                    string result = "";
                    for (int f = 0; f < FileNameList.Count; f++)
                    {
                        result += "\r\n《" + _FileList[f] + "》结果:";
                        try
                        {
                            string        CustomKey = this.View.OpenParameter.GetCustomParameter("CustomKey").ToString();//获取父级页面传参的参数
                            List <object> analysis  = new List <object> {
                            };
                            if (CustomKey == "2001")
                            {
                                analysis = GetAnalysisTxt(FileNameList[f]);
                            }
                            else
                            {
                                analysis = GetAnalysisTxt2(FileNameList[f]);
                            }

                            string sql_3 = @"select tt.FID,t1.FENTRYID,t2.FMATERIALID,t2.FNUMBER from t_STK_InStock tt
                            left outer join T_STK_INSTOCKENTRY t1 on tt.FID=t1.FID
                            left outer join T_BD_MATERIAL t2 on t1.FMATERIALID=t2.FMATERIALID
                            where tt.FCancelStatus='A' and tt.FDocumentStatus in('A','B') and tt.F_PAEZ_Text='" + analysis[0].ToString() + "'";


                            DataSet   ds_3    = DBServiceHelper.ExecuteDataSet(this.Context, sql_3);
                            DataTable dt_head = ds_3.Tables[0]; dt_head.PrimaryKey = new DataColumn[] { dt_head.Columns["FENTRYID"] };
                            if (dt_head.Rows.Count < 1)
                            {
                                result += "\r\n 不存在Invoice No:“" + analysis[0].ToString() + "”的单据或已提交或已审核,无法更新单价。\r\n________________________________________________________________________\r\n";
                                continue;
                            }
                            long      BillID   = Convert.ToInt64(dt_head.Rows[0]["FID"]);
                            DataTable dt_entry = (DataTable)analysis[1];

                            #region 修改单据数据

                            FormMetadata  meta        = MetaDataServiceHelper.Load(this.Context, "STK_InStock") as FormMetadata;
                            BusinessInfo  info        = meta.BusinessInfo;
                            DynamicObject toModifyObj = Kingdee.BOS.ServiceHelper.BusinessDataServiceHelper.LoadSingle(this.Context, BillID, info.GetDynamicObjectType());

                            if (toModifyObj != null)
                            {
                                decimal FEXCHANGERATE = 1;
                                DynamicObjectCollection InStockFin = toModifyObj["InStockFin"] as DynamicObjectCollection;
                                foreach (DynamicObject StockFin in InStockFin)
                                {
                                    FEXCHANGERATE = Convert.ToDecimal(info.GetField("FEXCHANGERATE").DynamicProperty.GetValue(StockFin));//汇率
                                }

                                DynamicObjectCollection entryObjs = toModifyObj["InStockEntry"] as DynamicObjectCollection;
                                string  FNUMBER = string.Empty;
                                decimal FTaxPrice = 0; decimal FTAXRATE = 0; decimal FPRICEUNITQTY = 0;
                                string  err_row = "";
                                foreach (DynamicObject entryObj in entryObjs)
                                {
                                    int FENTRYID = Convert.ToInt32(entryObj["Id"]);
                                    FTAXRATE      = Convert.ToDecimal(info.GetField("FTAXRATE").DynamicProperty.GetValue(entryObj)) / 100;
                                    FPRICEUNITQTY = Convert.ToDecimal(info.GetField("FPRICEUNITQTY").DynamicProperty.GetValue(entryObj));
                                    DataRow dr = dt_head.Rows.Find(FENTRYID);
                                    if (dr != null)
                                    {
                                        FNUMBER = dr["FNUMBER"].ToString();
                                        DataRow[] dr_r = dt_entry.Select("FPartID='" + FNUMBER + "'");
                                        if (dr_r.Length > 0)
                                        {
                                            FTaxPrice = Convert.ToDecimal(dr_r[0]["FUnitPrice"]);
                                            decimal FPRICE     = Math.Round((FTaxPrice / (1 + FTAXRATE)), 6, MidpointRounding.AwayFromZero);
                                            decimal FALLAMOUNT = Math.Round((FTaxPrice * FPRICEUNITQTY), 2, MidpointRounding.AwayFromZero);
                                            decimal FAMOUNT    = Math.Round((FTaxPrice / (1 + FTAXRATE) * FPRICEUNITQTY), 2, MidpointRounding.AwayFromZero);

                                            info.GetField("FPRICE").DynamicProperty.SetValue(entryObj, FPRICE);
                                            info.GetField("FTaxPrice").DynamicProperty.SetValue(entryObj, FTaxPrice);
                                            info.GetField("FALLAMOUNT").DynamicProperty.SetValue(entryObj, FALLAMOUNT);
                                            info.GetField("FAMOUNT").DynamicProperty.SetValue(entryObj, FAMOUNT);
                                            info.GetField("FTAXAMOUNT").DynamicProperty.SetValue(entryObj, FALLAMOUNT - FAMOUNT);
                                            info.GetField("FTAXNETPRICE").DynamicProperty.SetValue(entryObj, FTaxPrice);

                                            info.GetField("FTAXAMOUNT_LC").DynamicProperty.SetValue(entryObj, Math.Round((FALLAMOUNT - FAMOUNT) * FEXCHANGERATE, 2, MidpointRounding.AwayFromZero)); //税额(本位币)
                                            info.GetField("FAMOUNT_LC").DynamicProperty.SetValue(entryObj, Math.Round((FAMOUNT * FEXCHANGERATE), 2, MidpointRounding.AwayFromZero));                 //金额(本位币)FAMOUNT_LC
                                            info.GetField("FALLAMOUNT_LC").DynamicProperty.SetValue(entryObj, Math.Round((FALLAMOUNT * FEXCHANGERATE), 2, MidpointRounding.AwayFromZero));           //含税金额(本位币)FAMOUNT_LC
                                        }
                                        else
                                        {
                                            err_row += "物料【" + FNUMBER + "】未检测到导入的数据。\r\n";
                                            continue;
                                        }
                                    }
                                    else
                                    {
                                        err_row += "分录【" + FENTRYID + "】未检测对应物料数据,请检查。\r\n";
                                        continue;
                                    }
                                }
                                if (err_row == "")
                                {
                                    IOperationResult save_result = Kingdee.BOS.ServiceHelper.BusinessDataServiceHelper.Save(this.Context, info, new DynamicObject[] { toModifyObj }, null, "Save");
                                    if (save_result.IsSuccess)
                                    {
                                        Import  = true;
                                        result += "\r\n引入成功!\r\n________________________________________________________________________\r\n";
                                        continue;
                                    }
                                    else
                                    {
                                        for (int mf = 0; mf < save_result.ValidationErrors.Count; mf++)
                                        {
                                            result += "\r\n" + save_result.ValidationErrors[mf].Message;
                                        }
                                        result += "\r\n________________________________________________________________________\r\n";
                                        continue;
                                    }
                                }
                                else
                                {
                                    result += "\r\n" + err_row;
                                    result += "\r\n________________________________________________________________________\r\n";
                                    continue;
                                }
                            }
                            #endregion
                        }
                        catch (Exception ex)
                        {
                            result += "\r\n" + ex.Message.ToString() + "\r\n________________________________________________________________________\r\n";
                            continue;
                        }
                    }

                    this._FileList.Clear();
                    this.FileNameList.Clear();
                    this.View.GetControl("F_JD_FileUpdate").SetValue(DBNull.Value);
                    this.View.Refresh();
                    this.View.ShowMessage("导入完成,以下为具体的引入情况:" + result, MessageBoxType.Advise);
                }
            }
            else if (e.Key.EqualsIgnoreCase("F_JD_BTNCancel"))
            {
                this.View.ReturnToParentWindow(new FormResult(Import));
                this.View.Close();
            }
        }
コード例 #6
0
        public override void AfterConvert(Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args.AfterConvertEventArgs e)
        {
            ExtendedDataEntity[] dataEntitys = e.Result.FindByEntityKey("FBillHead");
            if (dataEntitys == null || dataEntitys.Count() == 0)
            {
                return;
            }
            foreach (var dataEntity in dataEntitys)
            {
                DynamicObject data = dataEntity.DataEntity;
                //往来单位类型=客户,一级业务员=往来单位.一级业务员
                if (Convert.ToString(data["CONTACTUNITTYPE"]).EqualsIgnoreCase("BD_Customer"))
                {
                    DynamicObject contact = data["CONTACTUNIT"] as DynamicObject;

                    BusinessInfo customerBusinfo = ((FormMetadata)Kingdee.BOS.App.ServiceHelper.GetService <IMetaDataService>().Load(this.Context, "BD_Customer")).BusinessInfo;

                    DynamicObject customer = Kingdee.BOS.App.ServiceHelper.GetService <IViewService>().LoadSingle(this.Context, contact["Id"], customerBusinfo.GetDynamicObjectType());
                    if (customer != null)
                    {
                        data["FJNFistSaler_Id"] = customer["JN_SalesId_Id"];
                    }
                    Kingdee.BOS.ServiceHelper.DBServiceHelper.LoadReferenceObject(this.Context, new DynamicObject[] { data }, e.TargetBusinessInfo.GetDynamicObjectType());
                }
            }
        }
コード例 #7
0
        public override void OnSetBusinessInfo(SetBusinessInfoArgs e)
        {
            base.OnSetBusinessInfo(e);

            FormMetadata currmetadata = (FormMetadata)ObjectUtils.CreateCopy(this.View.OpenParameter.FormMetaData);

            _currBusinessInfo = currmetadata.BusinessInfo;
            _currLayoutInfo   = currmetadata.GetLayoutInfo();
            // 获取单据体表格的元数据及布局
            string entityKey = "FEntity";
            Entity entity    = _currBusinessInfo.GetEntity(entityKey);
            //EntityAppearance entityApp = _currLayoutInfo.GetEntityAppearance(entityKey);

            string FSDate = this.View.OpenParameter.GetCustomParameter("FSDate") == null ? "" :
                            this.View.OpenParameter.GetCustomParameter("FSDate").ToString();
            string FEDate = this.View.OpenParameter.GetCustomParameter("FEDate") == null ? "" :
                            this.View.OpenParameter.GetCustomParameter("FEDate").ToString();
            string FOrgId = this.View.OpenParameter.GetCustomParameter("FOrgId") == null ? "0" :
                            this.View.OpenParameter.GetCustomParameter("FOrgId").ToString();
            string FDeptID = this.View.OpenParameter.GetCustomParameter("FDeptID") == null ? "0" :
                             this.View.OpenParameter.GetCustomParameter("FDeptID").ToString();
            string FAccountId = this.View.OpenParameter.GetCustomParameter("FAccountId") == null ? "0" :
                                this.View.OpenParameter.GetCustomParameter("FAccountId").ToString();

            string sql = string.Format(@"EXEC proc_czly_AccountDept @SDt='{0}', @EDt='{1}', 
@FOrgId='{2}', @FDeptId='{3}', @FAccountId='{4}'",
                                       FSDate, FEDate, FOrgId, FDeptID, FAccountId);


            Field textField    = _currBusinessInfo.GetField("FField");
            Field decimalField = _currBusinessInfo.GetField("FDecimal");

            //var textApp = _currLayoutInfo.GetEntityAppearance("FField");

            entityData = DBUtils.ExecuteDataSet(this.Context, sql).Tables[0];

            // 获取生成的费用项目列
            sql = string.Format(@"EXEC proc_czly_AccountOrg @SDt='{0}', @EDt='{1}', 
@FOrgId='{2}', @FDeptId='{3}', @FAccountId='{4}'",
                                FSDate, FEDate, FOrgId, FDeptID, FAccountId);
            costItems = DBUtils.ExecuteDataSet(this.Context, sql).Tables[0];

            for (int i = 0; i < entityData.Columns.Count; i++)
            {
                string name = "FField_" + (i + 1).ToString();
                //Field field = new Field();
                Field field;
                if (i == 0)
                {
                    field = (Field)ObjectUtils.CreateCopy(textField);
                }
                else
                {
                    field = (Field)ObjectUtils.CreateCopy(decimalField);
                    // 增加合计列
                    GroupSumColumn sumColumn = new GroupSumColumn();
                    sumColumn.FieldKey  = name;
                    sumColumn.Precision = -1;
                    sumColumn.SumType   = 1;
                    entity.GroupColumnInfo.AddGroupSumColumn(sumColumn);
                }

                field.DynamicProperty = null;
                //field.ElementType = ElementType.BarItemElementType_TextField;
                field.Entity       = entity;
                field.EntityKey    = entityKey;
                field.Key          = name;
                field.FieldName    = name;
                field.PropertyName = name;
                field.Name         = new LocaleValue(name);
                _currBusinessInfo.Add(field);
            }

            _currBusinessInfo.Remove(textField);
            _currBusinessInfo.Remove(decimalField);
            // 强制要求重新构建单据的ORM模型
            _currBusinessInfo.GetDynamicObjectType(true);

            // 输出动态调整后的单据逻辑元数据模型(BusinessInfo)
            e.BusinessInfo     = _currBusinessInfo;
            e.BillBusinessInfo = _currBusinessInfo;
        }
コード例 #8
0
 public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e)
 {
     oldvaluesfoItem = new List <Dictionary <string, string> >();
     //newvaluesfoItem = new List<Dictionary<string, string>>();
     string[] arr = new string[e.SelectedRows.Count()];
     //DynamicObject[] newData = new DynamicObject[e.SelectedRows.Count()];
     for (int i = 0; i < arr.Length; i++)
     {
         //获取新值的DataEntity
         //newData[i] = e.SelectedRows.ElementAt(i).DataEntity;
         arr[i] = e.SelectedRows.ElementAt(i).DataEntity["id"].ToString();
     }
     DynamicObject[] oldData = BusinessDataServiceHelper.Load(this.Context, arr, BusinessInfo.GetDynamicObjectType());
     GetOldOrNewDataList(oldData, oldvaluesfoItem);
 }
コード例 #9
0
        }//end static method

        public static Context CreateInstanceFromCache(this Context ctx, string dataCenterId, long userId)
        {
            Context contextByDataCenterId = DataCenterService.GetDataCenterContextFromCache(dataCenterId);

            //处理用户登录名
            {
                FormMetadata metadata     = FormMetaDataCache.GetCachedFormMetaData(contextByDataCenterId, FormIdConst.SEC_User);
                BusinessInfo businessInfo = metadata.BusinessInfo.GetSubBusinessInfo(new List <string> {
                    "FNumber", "FUserAccount", "FName"
                });
                DynamicObject dataObject = BusinessDataServiceHelper.LoadFromCache(contextByDataCenterId, new object[] { userId }, businessInfo.GetDynamicObjectType()).FirstOrDefault();
                contextByDataCenterId.UserId = dataObject.PkId <long>();
                if (businessInfo.GetField("FNumber") != null)
                {
                    contextByDataCenterId.LoginName = dataObject.FieldProperty <string>(businessInfo.GetField("FNumber"));
                }
                if (businessInfo.GetField("FUserAccount") != null)
                {
                    contextByDataCenterId.LoginName = dataObject.FieldProperty <string>(businessInfo.GetField("FUserAccount"));
                }
                contextByDataCenterId.UserName = dataObject.FieldProperty <string>(businessInfo.GetField("FName"));
            }

            return(contextByDataCenterId);
        }//end static method