Ejemplo n.º 1
0
        public int AddDocObject(DocObject element)
        {
            string s = "";

            if (element.Owner != null)
            {
                s = element.Owner.ID.ToString();
            }
            else
            {
                s = "0";
            }
            string sql = "insert into TF_DocObject (Name, FormID, DocItems, Owner, Remark) values ('" + element.Name + "', " + element.Form.ID + ", '" + FormItemLogic.GetItemString(element.DocItems) + "', " + s + ", '" + element.Remark + "'); select SCOPE_IDENTITY()";
            object obj = sqlHelper.ExecuteSqlReturn(sql);
            int    R;

            if (obj != null && obj != DBNull.Value && int.TryParse(obj.ToString(), out R))
            {
                return(R);
            }
            else
            {
                return(0);
            }
        }
Ejemplo n.º 2
0
 private void LoadDocObject(DocObject doc)
 {
     if (doc != null)
     {
         LoadItems(doc.DocItems);
     }
 }
Ejemplo n.º 3
0
        public List <DocObject> GetDocObjectsByOwner(User user)
        {
            List <DocObject> elements = new List <DocObject>();
            string           sql      = "select * from TF_DocObject where Owner=" + user.ID;
            DataTable        dt       = sqlHelper.Query(sql);

            if (dt != null && dt.Rows.Count > 0)
            {
                FormObjectLogic fol = FormObjectLogic.GetInstance();
                FormItemLogic   fil = FormItemLogic.GetInstance();
                UserLogic       ul  = UserLogic.GetInstance();
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    DocObject element = new DocObject();
                    element.ID       = Convert.ToInt32(dt.Rows[i]["ID"]);
                    element.Name     = dt.Rows[i]["Name"].ToString();
                    element.Form     = fol.GetFormObject(Convert.ToInt32(dt.Rows[i]["FormID"]));
                    element.DocItems = fil.GetFormItemsByIds(dt.Rows[i]["DocItems"].ToString());
                    element.Owner    = ul.GetUser(Convert.ToInt32(dt.Rows[i]["Owner"]));
                    element.Remark   = dt.Rows[i]["Remark"].ToString();
                    element.Flag     = Convert.ToInt32(dt.Rows[i]["Flag"]);
                    elements.Add(element);
                }
            }
            return(elements);
        }
Ejemplo n.º 4
0
        public List <DocObject> GetDocObjectsByTemplateId(List <int> flowTemplateIds)
        {
            List <DocObject> elements = new List <DocObject>();

            if (flowTemplateIds != null && flowTemplateIds.Count > 0)
            {
                string    sql = "select TF_DocObject.* from TF_DocObject,TaskInfo,Flow,FlowTemplate where TF_DocObject.ID=TaskInfo.EntityId and TaskInfo.FlowID=Flow.ID and Flow.TemplateID in (" + flowTemplateIds + ")";
                DataTable dt  = sqlHelper.Query(sql);
                if (dt != null && dt.Rows.Count > 0)
                {
                    FormObjectLogic fol = FormObjectLogic.GetInstance();
                    FormItemLogic   fil = FormItemLogic.GetInstance();
                    UserLogic       ul  = UserLogic.GetInstance();
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        DocObject element = new DocObject();
                        element.ID       = Convert.ToInt32(dt.Rows[i]["ID"]);
                        element.Name     = dt.Rows[i]["Name"].ToString();
                        element.Form     = fol.GetFormObject(Convert.ToInt32(dt.Rows[i]["FormID"]));
                        element.DocItems = fil.GetFormItemsByIds(dt.Rows[i]["DocItems"].ToString());
                        element.Owner    = ul.GetUser(Convert.ToInt32(dt.Rows[i]["Owner"]));
                        element.Remark   = dt.Rows[i]["Remark"].ToString();
                        element.Flag     = Convert.ToInt32(dt.Rows[i]["Flag"]);
                        elements.Add(element);
                    }
                }
            }
            return(elements);
        }
Ejemplo n.º 5
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (alert != null)
            {
                switch (alert.提醒方式)
                {
                case 提醒方式.系统提示:
                    bool f = AlertLogic.GetInstance().SetFlag(alert.ID, 1);
                    if (!f)
                    {
                        MessageBox.Show("已阅置位失败!");
                    }
                    else
                    {
                        this.Close();
                    }
                    break;

                case 提醒方式.执行流程:
                    DocObject doc = DocObjectLogic.GetInstance().GetDocObject(Convert.ToInt32(alert.备注));
                    if (doc != null)
                    {
                        TaskInfo task = TaskInfoLogic.GetInstance().GetTaskInfoByEntityId(doc.ID);
                        if (task != null)
                        {
                            TaskStageLogic.GetInstance().SetReceiveToExec(task.Flow.Current.ID);
                        }
                        DocEditForm def = new DocEditForm(this.User, this.owner, doc.Form, doc, alert.ID);
                        if (def.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                        {
                            this.Close();
                        }
                    }
                    break;

                case 提醒方式.审批流程:
                    DocObject doc2 = DocObjectLogic.GetInstance().GetDocObject(Convert.ToInt32(alert.备注));
                    if (doc2 != null)
                    {
                        TaskInfo task = TaskInfoLogic.GetInstance().GetTaskInfoByEntityId(doc2.ID);
                        if (task != null)
                        {
                            TaskStageLogic.GetInstance().SetReceiveToExec(task.Flow.Current.ID);
                        }
                        DocEditForm def = new DocEditForm(this.User, this.owner, doc2.Form, doc2, alert.ID);
                        if (def.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                        {
                            this.Close();
                        }
                    }
                    break;

                default:
                    break;
                }
            }
        }
Ejemplo n.º 6
0
 public DocInfoForm(User user, MainForm owner, DocObject doc)
 {
     this.User = user;
     InitializeComponent();
     this.owner = owner;
     this.doc   = doc;
     if (doc != null)
     {
         DocObjectLogic.GetInstance().Increase(doc.ID);
         this.Text = doc.DocInfo;
     }
 }
Ejemplo n.º 7
0
        public NewFlowForm(User user, DocObject doc, int maxApprLevel)
        {
            if (doc == null)
            {
                throw new ArgumentNullException("doc");
            }

            this.User = user;
            InitializeComponent();
            this.doc          = doc;
            this.maxApprLevel = maxApprLevel;
        }
Ejemplo n.º 8
0
 /// <summary>
 /// 快速复制一份文档(文档名在原名后加上时间,返回新文档的ID)
 /// </summary>
 /// <param name="element">原表单</param>
 /// <param name="newDocName">复制后的新的文档名</param>
 /// <returns></returns>
 public int CopyDocObject(DocObject element, out string newDocName)
 {
     if (element.Name.Length > 20)
     {
         element.Name = element.Name.Substring(0, element.Name.Length - 17) + DateTime.Now.ToString("yy_MM_dd_HH_mm_ss");
     }
     else
     {
         element.Name = element.Name + DateTime.Now.ToString("yy_MM_dd_HH_mm_ss");
     }
     newDocName = element.Name;
     return(AddDocObject(element));
 }
Ejemplo n.º 9
0
        private void ShowDoc()
        {
            DocObject doc = listBox1.SelectedItem as DocObject;

            if (doc != null)
            {
                DocInfoForm dif = new DocInfoForm(this.User, this.owner, doc);
                dif.ShowDialog();
            }
            else
            {
                MessageBox.Show("请先选定要查看的文档!");
            }
        }
Ejemplo n.º 10
0
 public DocEditForm(User user, MainForm owner, FormObject form, DocObject doc = null, int appr = 0, int exeORapp = 0)
 {
     this.User = user;
     InitializeComponent();
     this.owner    = owner;
     this.form     = form;
     this.doc      = doc;
     this.appr     = appr;
     this.exeORapp = exeORapp;
     if (appr > 0)
     {
         button1.Text = "审批";
     }
 }
Ejemplo n.º 11
0
        private void EditDoc()
        {
            DocObject doc = listBox1.SelectedItem as DocObject;

            if (doc != null)
            {
                DocEditForm def = new DocEditForm(this.User, this.owner, doc.Form, doc);
                def.ShowDialog();
                LoadAllDocs(null);
            }
            else
            {
                MessageBox.Show("请先选定要修改的文档!");
            }
        }
Ejemplo n.º 12
0
        public bool UpdateDocObject(DocObject element, User user)
        {
            if (user == null)
            {
                return(false);
            }
            string s       = "(1>1)";
            int    adminId = Common.AdminId;

            if (user.ID == adminId)
            {
                s = "(1=1)";
            }
            string sql = "update TF_DocObject set Name='" + element.Name + "', FormID=" + element.Form.ID + ", DocItems='" + FormItemLogic.GetItemString(element.DocItems) + "', Remark='" + element.Remark + "' where ID=" + element.ID + " and (Owner=" + user.ID + " or " + s + ")";
            int    r   = sqlHelper.ExecuteSql(sql);

            return(r > 0);
        }
Ejemplo n.º 13
0
        private DocObject GetDocObject()
        {
            string name = textBox1.Text.Trim();

            if (name == "")
            {
                name = "未命名文档";
            }

            DocObject document = new DocObject();

            document.ID     = (doc == null ? 0 : doc.ID);
            document.Name   = name;
            document.Form   = form;
            document.Owner  = this.User;//文档的作者自动更新为最后修改文档的用户
            document.Remark = textBox2.Text;
            FormItemLogic fil = FormItemLogic.GetInstance();

            foreach (Control c in panel2.Controls)
            {
                if (c is DocEditControl)
                {
                    DocEditControl dec  = c as DocEditControl;
                    FormItem       item = dec.Field;
                    int            id   = 0;
                    if (doc != null)
                    {
                        id = fil.SaveFormItem(item);
                    }
                    else
                    {
                        id = fil.AddFormItem(item);
                    }
                    if (id > 0)
                    {
                        item.ID = id;
                        document.DocItems.Add(item);
                    }
                }
            }
            doc = document;
            return(document);
        }
Ejemplo n.º 14
0
        public DocObject GetDocObject(int id)
        {
            string    sql = "select * from TF_DocObject where ID=" + id;
            DataTable dt  = sqlHelper.Query(sql);

            if (dt != null && dt.Rows.Count > 0)
            {
                DocObject element = new DocObject();
                element.ID       = id;
                element.Name     = dt.Rows[0]["Name"].ToString();
                element.Form     = FormObjectLogic.GetInstance().GetFormObject(Convert.ToInt32(dt.Rows[0]["FormID"]));
                element.DocItems = FormItemLogic.GetInstance().GetFormItemsByIds(dt.Rows[0]["DocItems"].ToString());
                element.Owner    = UserLogic.GetInstance().GetUser(Convert.ToInt32(dt.Rows[0]["Owner"]));
                element.Remark   = dt.Rows[0]["Remark"].ToString();
                element.Flag     = Convert.ToInt32(dt.Rows[0]["Flag"]);
                return(element);
            }
            return(null);
        }
Ejemplo n.º 15
0
        public bool DeleteDocObject(DocObject element, User user)
        {
            if (user == null)
            {
                return(false);
            }
            string s       = "(1>1)";
            int    adminId = Common.AdminId;

            if (user.ID == adminId)
            {
                s = "(1=1)";
            }
            string sql = "delete from TF_DocObject where ID=" + element.ID + " and (Owner=" + user.ID + " or " + s + ")";
            int    r   = sqlHelper.ExecuteSql(sql);

            if (r > 0)
            {
                FormItemLogic.GetInstance().DeleteFormItems(FormItemLogic.GetItemString(element.DocItems));//删除字段信息
                AttachmentLogic al = AttachmentLogic.GetInstance();
                foreach (FormItem item in element.DocItems)
                {
                    if (item.ItemType == "System.Object")//是附件,顺带把附件记录也删除
                    {
                        string[] ss = item.ItemValue.Split("|".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                        if (ss.Length > 1)
                        {
                            int id;
                            if (int.TryParse(ss[0], out id))
                            {
                                al.DeleteAttachment(id);
                            }
                        }
                    }
                }
            }
            return(r > 0);
        }
Ejemplo n.º 16
0
        private void DelDoc()
        {
            DocObject doc = listBox1.SelectedItem as DocObject;

            if (doc != null)
            {
                if (MessageBox.Show("确定要删除该文档[" + doc.Name + "]吗?", "删除提醒", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK)
                {
                    if (DocObjectLogic.GetInstance().DeleteDocObject(doc, this.User))
                    {
                        MessageBox.Show("删除文档成功!");
                        listBox1.Items.RemoveAt(listBox1.SelectedIndex);
                    }
                    else
                    {
                        MessageBox.Show("删除失败或者您没有权限删除别人的文档!");
                    }
                }
            }
            else
            {
                MessageBox.Show("请先选定要删除的文档!");
            }
        }