Пример #1
0
        /// <summary>
        /// 监视文件
        /// </summary>
        private void WacthFile(string filePath, DateTime oldDt)
        {
            if (!txtfilename.Text.Equals(filePath))
            {
                return;
            }

            FileInfo fi   = new FileInfo(FilePath + "\\" + filePath + ".rtf");
            DateTime dt   = fi.LastWriteTime;
            TimeSpan span = oldDt.Subtract(dt);

            if (span.Seconds < 0)
            {
                this.Invoke(new Action(() =>
                {
                    IntPtr vHandle = _lopen(FilePath + "\\" + filePath + ".rtf", OF_READWRITE | OF_SHARE_DENY_NONE);
                    if (vHandle == HFILE_ERROR)
                    {
                        return;
                    }
                    else
                    {
                        CloseHandle(vHandle);     //判断之后一定要关闭!!!
                        oldDt = dt;
                        System.Console.WriteLine(dt);
                        ContentRTB.LoadFile(FilePath + "\\" + filePath + ".rtf", RichTextBoxStreamType.RichText);
                    }
                }));
            }
            Console.WriteLine("WacthFile" + DateTime.Now.ToString());
            fi = null;
            Thread.Sleep(1000);
            //如果当前编辑的文件和当前处理的文件一致的时候
            WacthFile(filePath, oldDt);
        }
Пример #2
0
        /// <summary>
        /// 清除详情区
        /// </summary>
        private void ClearDetail()
        {
            this.Invoke(new Action(() =>
            {
                ContentRTB.Clear();
                txtfilename.Text          = "";
                txttitle.Text             = "";
                txthour.Text              = "";
                txtremark.Text            = "";
                cbstatus.SelectedIndex    = 0;
                cbprocessor.SelectedIndex = 0;
                txtid.Text = "";

                txtrelor.Text  = "";
                txtcompor.Text = "";
            }));
        }
Пример #3
0
        /// </summary>
        private void SaveWork()
        {
            string content   = null;
            string status    = "";
            string processor = "";
            string compor    = "";
            string estimate  = "";

            ProcessBarStart();
            //loadpc.Visible = true;
            content         = ContentRTB.Text.Replace("\'", "\\\'");
            estimate        = estimateDate.Text;
            btnsave.Enabled = false;
            status          = cbstatus.SelectedValue.ToString();
            processor       = cbprocessor.SelectedValue.ToString();
            compor          = txtcompor.Text.ToString();

            string filename = txtfilename.Text;
            string title    = txttitle.Text;
            string hour     = txthour.Text.ToString();

            if (hour.Length == 0)
            {
                hour = "0";
            }
            string remark = txtremark.Text;
            string id     = txtid.Text;
            string relor  = txtrelor.Text;

            if (string.IsNullOrEmpty(id))
            {
                filename = NewFileName(filename, relor, title, remark);
            }


            ContentRTB.SaveFile(FilePath + "\\" + filename + ".rtf", RichTextBoxStreamType.RichText);
            txtfilename.Text = filename;

            //上传文件到服务器
            try
            {
                FileUploadItem receive = new FileUploadItem();
                receive.Address      = UpFileAdrees;
                receive.FileNamePath = FilePath + "\\" + filename + ".rtf";
                receive.SaveName     = filename;
                FileUploadUtilEvent fileUploadUtilEvent = new FileUploadUtilEvent(receive);
                fileUploadUtilEvent.OnProgressChanged += new EventHandler <ProgressChangedEventArgs>((object sender, ProgressChangedEventArgs e) => {
                    FileUploadUtilChange message = (FileUploadUtilChange)e.UserState;
                    lbtip.Text = "已用时:" + message.Second.ToString("F2") + "秒";
                    if (message.Second > 0.001)
                    {
                        lbtip.Text += " 平均速度:" + (message.Offset / 1024 / message.Second).ToString("0.00") + "KB/秒";
                    }
                    else
                    {
                        lbtip.Text += "  正在连接…";
                    }
                    lbtip.Text += "已上传:" + (message.Offset * 100.0 / message.Length).ToString("F2") + "%";
                    lbtip.Text += (message.Offset / 1048576.0).ToString("F2") + "M/" + (message.FileLength / 1048576.0).ToString("F2") + "M";
                });
                fileUploadUtilEvent.OnRunWorkerCompleted += new EventHandler <RunWorkerCompletedEventArgs>((object sender, RunWorkerCompletedEventArgs e) =>
                {
                    int count = (int)e.Result;

                    if (count == 0)
                    {
                        ShowMessageDialog("上传文件服务器失败!,文件只保存在本地");
                    }


                    FileInfo fi = new FileInfo(FilePath + "\\" + filename + ".rtf");
                    DateTime dt = fi.LastWriteTime;
                    string sql  = "  ";
                    if (string.IsNullOrEmpty(id))
                    {
                        sql += @"insert pasn(title,BizDate,CreateDate,Creator,relor,Remark,Status,Content,filename,lastwritetime,processor,compor,hour,estimate) 
                    values('" + title + "',now(),now(),'" + Login.Name + "','" + relor + "','" + remark + "','" + status + "','" + content + "','" + filename + "','" + dt.ToString("yyyy-MM-dd HH:mm:ss") + "','" + processor + "','" + compor + "','" + hour + "','" + estimate + "');  set @id=@@IDENTITY;  ";
                    }
                    else
                    {
                        sql += @"update pasn set relor='" + relor + "',estimate='" + estimate + "',modiDate=now(),modior='" + Login.Name + "', title='" + title + "',Remark='" + remark + "',Status='" + status + "'," + (status == "1" ? "compDate=now()," : "") + "Content='" + content + "',lastwritetime='" + dt.ToString("yyyy-MM-dd HH:mm:ss") + "' ,processor='" + processor + "',compor='" + compor + "',hour='" + hour + "' where id=" + id + "; ";
                        sql += "set @id=" + id + ";";
                    }
                    sql += "select * from pasn where id=@id;";
                    try
                    {
                        //新增单据的时候,列表刷新一下。但少了一个选中怎么办
                        SQLUtilEvent sQLUtilSaveEvent          = new SQLUtilEvent(sql);
                        sQLUtilSaveEvent.OnRunWorkerCompleted += new EventHandler <RunWorkerCompletedEventArgs>((object sendObj, RunWorkerCompletedEventArgs arg) =>
                        {
                            DataSet dataSave = (DataSet)arg.Result;
                            txtid.Text       = dataSave.Tables[0].Rows[0]["id"].ToString();
                            lbtip.Text       = "save success";
                            //前端新增一行
                            if (string.IsNullOrEmpty(id))
                            {
                                //新增单据的时候,列表刷新一下。但少了一个选中怎么办
                                SQLUtilEvent sQLUtilEvent          = new SQLUtilEvent(GetPlanListData());
                                sQLUtilEvent.OnRunWorkerCompleted += new EventHandler <RunWorkerCompletedEventArgs>((object senders, RunWorkerCompletedEventArgs es) =>
                                {
                                    DataSet dataSet = (DataSet)es.Result;
                                    CreateListView(dataSet.Tables[0]);
                                    listStatus.Text = "总记录数:" + dataSet.Tables[0].Rows.Count;
                                    foreach (Record dr in Records)
                                    {
                                        if (dr.Id == int.Parse(txtid.Text))
                                        {
                                            uiDataGridView1.ClearSelection();
                                            uiDataGridView1.CurrentCell   = uiDataGridView1.Rows[Records.IndexOf(dr)].Cells[0];
                                            uiDataGridView1.SelectedIndex = Records.IndexOf(dr);
                                        }
                                    }

                                    //for (int i = 0; i < planlist.Items.Count; i++)
                                    //{
                                    //    DataRow dr = (DataRow)planlist.Items[i].Tag;
                                    //    if (dr["id"].ToString() == txtid.Text)
                                    //    {
                                    //        planlist.Items[i].Selected = true;//选中
                                    //        planlist.Items[i].Focused = true; //焦点
                                    //        planlist.Items[i].EnsureVisible();//滚动显示
                                    //    }
                                    //}

                                    //loadpc.Visible = false;
                                    ProcessBarStop();
                                    btnsearch.Enabled = true;

                                    //前端新增一行end
                                    btnsave.Enabled = true;
                                    //ShowMessageDialog("save success");
                                });
                                sQLUtilEvent.Run("sql");
                            }
                            else
                            {
                                //DataRow item = (DataRow)(planlist.SelectedItems[0]).Tag;
                                //planlist.SelectedItems[0].Tag = dataSave.Tables[0].Rows[0];
                                //foreach (ListColumn l in PlanListColumn)
                                //{
                                //    planlist.SelectedItems[0].SubItems[PlanListColumn.IndexOf(l)].Text = dataSave.Tables[0].Rows[0][l.Key].ToString();
                                //}
                                Record data    = new Record();
                                DataRow dr     = dataSave.Tables[0].Rows[0];
                                data.BizDate   = strToDateTime(dr["BizDate"].ToString());
                                data.Title     = dr["title"].ToString();
                                data.Relor     = dr["relor"].ToString();
                                data.Estimate  = strToDateTime(dr["estimate"].ToString());
                                data.Status    = dr["Status"].ToString();
                                data.Content   = dr["Content"].ToString();
                                data.Compor    = dr["compor"].ToString();
                                data.CompDate  = strToDateTime(dr["compDate"].ToString());
                                data.Modior    = dr["modior"].ToString();
                                data.Modidate  = strToDateTime(dr["modidate"].ToString());
                                data.Filename  = dr["filename"].ToString();
                                data.Creator   = dr["creator"].ToString();
                                data.Remark    = dr["remark"].ToString();
                                data.Id        = int.Parse(dr["id"].ToString());
                                data.Hour      = decimal.Parse(dr["hour"].ToString());
                                data.Processor = dr["processor"].ToString();
                                Records.Add(data);

                                for (int j = 0; j < uiDataGridView1.Columns.Count; j++)
                                {
                                    string colName = uiDataGridView1.Columns[j].DataPropertyName;
                                    uiDataGridView1.SelectedRows[0].Cells[colName].Value = data.GetType().GetProperty(colName, BindingFlags.Public | BindingFlags.IgnoreCase | BindingFlags.Instance).GetValue(data, null);
                                }



                                //前端新增一行end
                                //this.loadpc.Visible = false;
                                ProcessBarStop();
                                btnsave.Enabled = true;

                                //ShowMessageDialog("save success");
                            }
                        });
                        sQLUtilSaveEvent.Run("sql");
                    }
                    catch (Exception ex)
                    {
                        //loadpc.Visible = false;
                        ProcessBarStop();
                        btnsave.Enabled = true;
                        lbtip.Text      = "erroe";
                        ShowMessageDialog(ex.GetBaseException().ToString());
                    }
                });
                fileUploadUtilEvent.Run();
            }
            catch (Exception ex)
            {
                ShowMessageDialog(ex.GetBaseException().ToString());
            }
            //上传文件到服务器end
        }
Пример #4
0
        private void Planlist_DoubleClickWork2(Record item, EventArgs e)
        {
            this.Invoke(new Action(() =>
            {
                //loadpc.Visible = true;
                ProcessBarStart();
                txtcompor.Text   = item.Compor.ToLower();
                txtid.Text       = item.Id.ToString();
                txtfilename.Text = item.Filename.ToString();
                txttitle.Text    = item.Title.ToString();
                txthour.Text     = item.Hour.ToString();

                cbstatus.SelectedIndex    = int.Parse((item.Status.ToString() == ""?"0": item.Status.ToString()));
                cbprocessor.SelectedValue = item.Processor.ToString();

                txtremark.Text    = item.Remark.ToString();
                estimateDate.Text = item.Estimate.ToString();
                txtrelor.Text     = item.Relor.ToString();
                if (File.Exists(FilePath + "\\" + item.Filename.ToString() + ".rtf"))
                {
                    IntPtr vHandle = _lopen(FilePath + "\\" + item.Filename.ToString() + ".rtf", OF_READWRITE | OF_SHARE_DENY_NONE);
                    if (vHandle == HFILE_ERROR)
                    {
                        ShowMessageDialog("文件被占用");
                        ContentRTB.Text = "";
                        return;
                    }
                    CloseHandle(vHandle);     //判断之后一定要关闭!!!

                    FileInfo fi   = new FileInfo(FilePath + "\\" + item.Filename.ToString() + ".rtf");
                    DateTime dt   = fi.LastWriteTime;
                    DataSet ds    = MySqlHelper.ExecuteSQL("select * from pasn where id=  " + txtid.Text);
                    DateTime dt1  = Convert.ToDateTime(ds.Tables[0].Rows[0]["lastwritetime"]);
                    TimeSpan span = dt.Subtract(dt1);
                    //如果服务器较新,用服务器的文件,第二次再打开的时候,因为从服务器下载了,所以本地文件会更新
                    if (span.Seconds < 0)
                    {
                        var r = DownLoadFile(FileUrl + item.Filename.ToString() + ".rtf", FilePath + "\\" + item.Filename.ToString() + ".rtf", progressBar1);
                        if (r)
                        {
                            ContentRTB.LoadFile(FilePath + "\\" + item.Filename.ToString() + ".rtf", RichTextBoxStreamType.RichText);
                        }
                        else
                        {
                            ShowMessageDialog("下载文件失败");
                            ContentRTB.Text = "";
                        }
                    }
                    else
                    {
                        ContentRTB.LoadFile(FilePath + "\\" + item.Filename.ToString() + ".rtf", RichTextBoxStreamType.RichText);
                    }
                }
                else
                {
                    var r = DownLoadFile(FileUrl + item.Filename.ToString() + ".rtf", FilePath + "\\" + item.Filename.ToString() + ".rtf", progressBar1);
                    if (r)
                    {
                        ContentRTB.LoadFile(FilePath + "\\" + item.Filename.ToString() + ".rtf", RichTextBoxStreamType.RichText);
                    }
                    else
                    {
                        ShowMessageDialog("下载文件失败");
                        ContentRTB.Text = "";
                    }
                }
                //this.loadpc.Visible = false;
                ProcessBarStop();
            }));
        }
Пример #5
0
        private void Planlist_DoubleClickWork(ListView l, EventArgs e)
        {
            this.Invoke(new Action(() =>
            {
                DataRow item              = null;
                loadpc.Visible            = true;
                item                      = (DataRow)(l.SelectedItems[0]).Tag;
                txtid.Text                = item["id"].ToString();
                txtfilename.Text          = item["filename"].ToString();
                txttitle.Text             = item["title"].ToString();
                txthour.Text              = item["hour"].ToString();
                cbstatus.SelectedIndex    = int.Parse(item["status"].ToString());
                cbprocessor.SelectedValue = item["processor"].ToString();

                txtremark.Text    = item["remark"].ToString();
                estimateDate.Text = item["estimate"].ToString();
                txtrelor.Text     = item["relor"].ToString();
                if (File.Exists(FilePath + "\\" + item["filename"].ToString() + ".rtf"))
                {
                    IntPtr vHandle = _lopen(FilePath + "\\" + item["filename"].ToString() + ".rtf", OF_READWRITE | OF_SHARE_DENY_NONE);
                    if (vHandle == HFILE_ERROR)
                    {
                        MessageBoxEx.Show(this, "文件被占用");
                        ContentRTB.Clear();
                        return;
                    }
                    CloseHandle(vHandle);     //判断之后一定要关闭!!!

                    FileInfo fi   = new FileInfo(FilePath + "\\" + item["filename"].ToString() + ".rtf");
                    DateTime dt   = fi.LastWriteTime;
                    DataSet ds    = MySqlHelper.ExecuteSQL("select * from pasn where id=  " + txtid.Text);
                    DateTime dt1  = Convert.ToDateTime(ds.Tables[0].Rows[0]["lastwritetime"]);
                    TimeSpan span = dt.Subtract(dt1);
                    //如果服务器较新,用服务器的文件,第二次再打开的时候,因为从服务器下载了,所以本地文件会更新
                    if (span.Seconds < 0)
                    {
                        var r = DownLoadFile(FileUrl + item["filename"].ToString() + ".rtf", FilePath + "\\" + item["filename"].ToString() + ".rtf", progressBar1);
                        if (r)
                        {
                            ContentRTB.LoadFile(FilePath + "\\" + item["filename"].ToString() + ".rtf", RichTextBoxStreamType.RichText);
                        }
                        else
                        {
                            MessageBoxEx.Show(this, "下载文件失败");
                            ContentRTB.Clear();
                        }
                    }
                    else
                    {
                        ContentRTB.LoadFile(FilePath + "\\" + item["filename"].ToString() + ".rtf", RichTextBoxStreamType.RichText);
                    }
                }
                else
                {
                    var r = DownLoadFile(FileUrl + item["filename"].ToString() + ".rtf", FilePath + "\\" + item["filename"].ToString() + ".rtf", progressBar1);
                    if (r)
                    {
                        ContentRTB.LoadFile(FilePath + "\\" + item["filename"].ToString() + ".rtf", RichTextBoxStreamType.RichText);
                    }
                    else
                    {
                        MessageBoxEx.Show(this, "下载文件失败");
                        ContentRTB.Clear();
                    }
                }
                this.loadpc.Visible = false;
            }));
        }
Пример #6
0
        /// <summary>
        /// 保存
        /// </summary>
        private void SaveWork()
        {
            string content   = null;
            string status    = "";
            string processor = "";
            string compor    = "";
            string estimate  = "";

            loadpc.Visible  = true;
            content         = ContentRTB.Text.Replace("\'", "\\\'");
            estimate        = estimateDate.Text;
            btnsave.Enabled = false;
            status          = cbstatus.SelectedValue.ToString();
            processor       = cbprocessor.SelectedValue.ToString();
            compor          = txtcompor.Text.ToString();

            string filename = txtfilename.Text;
            string title    = txttitle.Text;
            string hour     = txthour.Text.ToString();

            if (hour.Length == 0)
            {
                hour = "0";
            }
            string remark = txtremark.Text;
            string id     = txtid.Text;
            string relor  = txtrelor.Text;

            if (string.IsNullOrEmpty(id))
            {
                filename = NewFileName(filename, relor, title, remark);
            }


            ContentRTB.SaveFile(FilePath + "\\" + filename + ".rtf", RichTextBoxStreamType.RichText);
            txtfilename.Text = filename;

            //上传文件到服务器
            try
            {
                FileUploadItem receive = new FileUploadItem();
                receive.Address      = UpFileAdrees;
                receive.FileNamePath = FilePath + "\\" + filename + ".rtf";
                receive.SaveName     = filename;
                FileUploadUtilEvent fileUploadUtilEvent = new FileUploadUtilEvent(receive);
                fileUploadUtilEvent.OnProgressChanged += new EventHandler <ProgressChangedEventArgs>((object sender, ProgressChangedEventArgs e) => {
                    FileUploadUtilChange message = (FileUploadUtilChange)e.UserState;
                    lbtip.Text = "已用时:" + message.Second.ToString("F2") + "秒";
                    if (message.Second > 0.001)
                    {
                        lbtip.Text += " 平均速度:" + (message.Offset / 1024 / message.Second).ToString("0.00") + "KB/秒";
                    }
                    else
                    {
                        lbtip.Text += "  正在连接…";
                    }
                    lbtip.Text += "已上传:" + (message.Offset * 100.0 / message.Length).ToString("F2") + "%";
                    lbtip.Text += (message.Offset / 1048576.0).ToString("F2") + "M/" + (message.FileLength / 1048576.0).ToString("F2") + "M";
                });
                fileUploadUtilEvent.OnRunWorkerCompleted += new EventHandler <RunWorkerCompletedEventArgs>((object sender, RunWorkerCompletedEventArgs e) =>
                {
                    int count = (int)e.Result;
                    if (count == 0)
                    {
                        MessageBoxEx.Show(this, "上传文件服务器失败!,文件只保存在本地");
                    }


                    FileInfo fi = new FileInfo(FilePath + "\\" + filename + ".rtf");
                    DateTime dt = fi.LastWriteTime;
                    string sql  = "  ";
                    if (string.IsNullOrEmpty(id))
                    {
                        sql += @"insert pasn(title,BizDate,CreateDate,Creator,relor,Remark,Status,Content,filename,lastwritetime,processor,compor,hour,estimate) 
                    values('" + title + "',now(),now(),'" + name + "','" + relor + "','" + remark + "','" + status + "','" + content + "','" + filename + "','" + dt.ToString("yyyy-MM-dd HH:mm:ss") + "','" + processor + "','" + compor + "','" + hour + "','" + estimate + "');  set @id=@@IDENTITY;  ";
                    }
                    else
                    {
                        sql += @"update pasn set relor='" + relor + "',estimate='" + estimate + "',modiDate=now(),modior='" + name + "', title='" + title + "',Remark='" + remark + "',Status='" + status + "'," + (status == "1" ? "compDate=now()," : "") + "Content='" + content + "',lastwritetime='" + dt.ToString("yyyy-MM-dd HH:mm:ss") + "' ,processor='" + processor + "',compor='" + compor + "',hour='" + hour + "' where id=" + id + "; ";
                        sql += "set @id=" + id + ";";
                    }
                    sql += "select * from pasn where id=@id;";
                    try
                    {
                        //新增单据的时候,列表刷新一下。但少了一个选中怎么办
                        SQLUtilEvent sQLUtilSaveEvent          = new SQLUtilEvent(sql);
                        sQLUtilSaveEvent.OnRunWorkerCompleted += new EventHandler <RunWorkerCompletedEventArgs>((object sendObj, RunWorkerCompletedEventArgs arg) =>
                        {
                            DataSet dataSave = (DataSet)arg.Result;
                            txtid.Text       = dataSave.Tables[0].Rows[0]["id"].ToString();
                            //前端新增一行
                            if (string.IsNullOrEmpty(id))
                            {
                                //新增单据的时候,列表刷新一下。但少了一个选中怎么办
                                SQLUtilEvent sQLUtilEvent          = new SQLUtilEvent(GetPlanListData());
                                sQLUtilEvent.OnRunWorkerCompleted += new EventHandler <RunWorkerCompletedEventArgs>((object senders, RunWorkerCompletedEventArgs es) =>
                                {
                                    DataSet dataSet = (DataSet)es.Result;
                                    CreateListView(dataSet.Tables[0]);
                                    listStatus.Text = "总记录数:" + dataSet.Tables[0].Rows.Count;

                                    for (int i = 0; i < planlist.Items.Count; i++)
                                    {
                                        DataRow dr = (DataRow)planlist.Items[i].Tag;
                                        if (dr["id"].ToString() == txtid.Text)
                                        {
                                            planlist.Items[i].Selected = true; //选中
                                            planlist.Items[i].Focused  = true; //焦点
                                            planlist.Items[i].EnsureVisible(); //滚动显示
                                        }
                                    }

                                    loadpc.Visible    = false;
                                    btnsearch.Enabled = true;
                                    lbtip.Text        = "refresh success";
                                    //前端新增一行end
                                    btnsave.Enabled = true;

                                    MessageBoxEx.Show(this, "save success");
                                });
                                sQLUtilEvent.Run();
                            }
                            else
                            {
                                DataRow item = (DataRow)(planlist.SelectedItems[0]).Tag;
                                planlist.SelectedItems[0].Tag = dataSave.Tables[0].Rows[0];
                                foreach (ListColumn l in PlanListColumn)
                                {
                                    planlist.SelectedItems[0].SubItems[PlanListColumn.IndexOf(l)].Text = dataSave.Tables[0].Rows[0][l.Key].ToString();
                                }
                                //前端新增一行end
                                this.loadpc.Visible = false;
                                btnsave.Enabled     = true;
                                lbtip.Text          = "save success";
                                MessageBoxEx.Show(this, "save success");
                            }
                        });
                        sQLUtilSaveEvent.Run();
                    }
                    catch (Exception ex)
                    {
                        loadpc.Visible  = false;
                        btnsave.Enabled = true;
                        lbtip.Text      = "erroe";
                        MessageBoxEx.Show(this, "" + ex.GetBaseException());
                    }
                });
                fileUploadUtilEvent.Run();
            }
            catch (Exception ex)
            {
                MessageBoxEx.Show(this, "" + ex.GetBaseException());
            }
            //上传文件到服务器end
        }