Пример #1
0
            /// <summary>
            /// 保存
            /// </summary>
            /// <param name="step">第几步</param>
            /// <param name="fldDatas">字段信息与数据</param>
            /// <param name="attacheIdList">附件id列表</param>
            /// <param name="attacheNameList">附件Name列表</param>
            /// <param name="signText"></param>
            /// <param name="signData"></param>
            /// <param name="flag">状态</param>
            /// <returns></returns>
            public int Save(int step, FormFieldCollection fldDatas, string attacheIdList, string attacheNameList, string signText, string signData, int flag)
            {
                //1.保存fldDatas到FL_RunDatas_{N}中
                this.LoadMyForm(false);
                String sSql = String.Format("select * from sysobjects where xtype='u' and name='FL_RunDatas_{0}'", this.MyForm.Id);

                if (!ULCode.QDA.XSql.IsHasRow(sSql))
                {
                    sSql = String.Format("Select * into FL_RunDatas_{0} from FL_RunDatas", this.MyForm.Id);
                    ULCode.QDA.XSql.Execute(sSql);
                }
                sSql = String.Format("Select * from FL_RunDatas_{0} where RunId={1}", this.MyForm.Id, this.Id);
                if (ULCode.QDA.XSql.IsHasRow(sSql))
                {
                    sSql = String.Format("Update FL_RunDatas_{0} set Datas='{2}' where RunId={0}", this.MyForm.Id, this.Id, fldDatas.GetSavedDatas(FormFieldDataType.Data));
                }
                else
                {
                    sSql = String.Format("insert into FL_RunDatas_{0}(Name,FormId,RunId,BeginUserId,BeginTime,Datas) Values('{2}','{0}','{1}','{3}','{4}','{5}')"
                                         , this.MyForm.Id
                                         , this.Id
                                         , this.Name
                                         , this.BeginUser.ToString()
                                         , this.BeginTime
                                         , fldDatas.GetSavedDatas(FormFieldDataType.Data));
                }
                int iR0 = ULCode.QDA.XSql.Execute(sSql);

                //2.保存attacheIdList, attacheNameList到当前步骤
                if (!String.IsNullOrEmpty(attacheIdList))
                {
                    if (this.Attach_IdList.isEmpty)
                    {
                        this.Attach_IdList.set_String_Append(attacheIdList);
                    }
                    else
                    {
                        this.Attach_IdList.set_String_Append("," + attacheIdList);
                    }
                }
                if (!String.IsNullOrEmpty(attacheNameList))
                {
                    if (this.Attach_NameList.isEmpty)
                    {
                        this.Attach_NameList.set_String_Append("," + attacheNameList);
                    }
                    else
                    {
                        this.Attach_NameList.set_String_Append("," + attacheNameList);
                    }
                }
                //this.Attach_IdList.set_String_AppendFormat(",{0}", attacheIdList);
                //this.Attach_NameList.set_String_AppendFormat(",{0}", attacheNameList);

                int iR1 = this.Update();

                //3.保存SignText与SignData
                sSql = String.Format("if exists(select * from FL_RunFeedBack where RunId={0} and StepNo={1} and UserId='{4}' and FeedFlag=0)"
                                     + " Update FL_RunFeedBack set Content='{2}',SignData='{3}',FeedFlag={7},EditTime=GetDate(),CheckUserID='" + WX.Public.CurUser.UserID + "' where RunId={0} and StepNo={1} and UserId='{4}' and FeedFlag=0;"
                                     + " else "
                                     + " Insert into FL_RunFeedBack(RunId,StepNo,UserId,Content,Attach_IdList,Attach_NameList,EditTime,FeedFlag,SignData,ReplyId,CheckUserID)"
                                     + "                         values({0},{1},'{4}','{2}','{5}','{6}',GetDate(),{7},'{3}',0,'{8}');"
                                     , this.Id, step, signText, signData, this.BeginUser.ToString(), null, null, flag, WX.Public.CurUser.UserID);

                int iR2 = ULCode.QDA.XSql.Execute(sSql);

                WX.Flow.Model.Process.MODEL proc = WX.Flow.Model.Process.GetModel("select * from FL_Process where FlowID=" + this.FlowId.ToString() + " and StepNo=" + step);
                if (proc != null && proc.UpdateTable.ToString() != "")
                {
                    sSql = String.Format("if exists(select * from {0} where UserID='{2}')  update {0} set {1} where UserID='{2}'; else begin Insert into {0} (UserID) values('{2}');update {0} set {1} where UserID='{2}';end", proc.UpdateTable.ToString(), proc.UpdateKeyValue, this.BeginUser.ToString());
                    ULCode.QDA.XSql.Execute(sSql);
                }
                if (iR0 * iR1 * iR2 > 0)
                {
                    //Succeess;
                }
                else
                {
                    //Faild
                }
                return(iR2);
            }