Newer
Older
EMS_SZ / PAS_Forms / F_PASFiles.cs
root on 21 Mar 2016 11 KB first
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using System.IO;

namespace Cyberpipe.PAS_Forms
{
    public partial class F_PASFiles : Office2007Form
    {
        public F_PASFiles()
        {
            InitializeComponent();
        }

        #region  公共变量
        PAS_logicfile.PAS_Affair PASAClass = new Cyberpipe.PAS_logicfile.PAS_Affair();//实例化ModuleClass文件夹下的FrmAffairClass公共类
        //PAS_logicfile.PAS_Database PAS_dataclass = new PAS_logicfile.PAS_Database();//实例化ModuleClass文件夹下的DataClass公共类
        //string Imadir = "";
        #endregion

        private void BT_ADD_Click(object sender, EventArgs e)
        {
            switch (Cyberpipe.PAS_logicfile.PAS_Affair.tablename)
            {
                case "casic_pas_designdoc":
                     OFD_ADDFile.Filter = "所有文件(*.*)|*.*";
                     break;
                case "casic_pas_designpdf":
                     OFD_ADDFile.Filter = "所有文件(*.*)|*.*";
                    break;
                case "casic_pas_designcad": ;
                    OFD_ADDFile.Filter = "所有文件(*.*)|*.*";
                     break;
            
            
            }
            if (OFD_ADDFile.ShowDialog() == DialogResult.OK)
            {
                string Fdir = OFD_ADDFile.FileName;
                for (int i = 0; i < LV_PASfileDir.Items.Count; i++)
                {
                    if (Fdir == LV_PASfileDir.Items[i].Text)
                    {
                        MessageBox.Show("该文件已存在,无法添加。");
                        return;
                    }
                }
                ListViewItem lvi = new ListViewItem(Fdir);//实例化一个项
                LV_PASfileDir.Items.Add(lvi);//添加列信息
                if (Fdir.Length > LV_PASfileDir.Width)
                    LV_PASfileDir.Width = Fdir.Length;
            }
        }

        private void BT_DEL_Click(object sender, EventArgs e)
        {
            if (LV_PASfileDir.SelectedItems.Count > 0)
            {
                ListViewItem HLVI = LV_PASfileDir.SelectedItems[0];
                HLVI.Remove();
            }
            else
            {
                MessageBox.Show("请选择要删除的文件。");
            }
        }

        private void OK_Click(object sender, EventArgs e)
        {
            string sdir = "";//原目录
            string ddir = "";//目的目录
            int m = int.Parse(this.Tag.ToString());//当前操作的标识
            int n = -1;//是否修改成功
            int PID = int.Parse(Cyberpipe.PAS_logicfile.PAS_Affair.Redact_M);//操用节点的ID号
            switch (m)
            {
                case 0:
                    {
                        if (LV_PASfileDir.Items.Count > 0)
                        {
                            Cyberpipe.PAS_logicfile.PAS_Affair.ADD_LV.Items.Clear();//清空所有项的集合
                            Cyberpipe.PAS_logicfile.PAS_Affair.ADD_LV.Columns.Clear();//清空所有列的集合
                            Cyberpipe.PAS_logicfile.PAS_Affair.ADD_LV.GridLines = true;//在各数据之间形成网格线
                            Cyberpipe.PAS_logicfile.PAS_Affair.ADD_LV.View = View.Details;//显示列名称
                            Cyberpipe.PAS_logicfile.PAS_Affair.ADD_LV.Columns.Add("文件名", 80, HorizontalAlignment.Center);//设置列标头的名称及大小
                            for (int i = 0; i < LV_PASfileDir.Items.Count; i++)
                            {
                                sdir = LV_PASfileDir.Items[i].Text;
                                ddir = Cyberpipe.PAS_logicfile.PAS_Affair.Redact_D + "\\" + PASAClass.Files_Name(sdir, m);

                                string filepath = ddir.Substring(0, ddir.IndexOf("\\"));
                                string foldddir = Utility.uploadpath + "\\" + Cyberpipe.PAS_logicfile.PAS_Affair.tablename + "\\" + ddir;

                                //添加文件
                                FileStream fs = File.OpenRead(sdir);//文件转为byte[]
                                long ff=fs.Length;
                                byte[] buffer = new byte[ff];//
                                fs.Read(buffer, 0, buffer.Length);
                                udfiles.UpDownFile upfolder = new udfiles.UpDownFile(Utility.udserviceurl);

                                n = upfolder.UploadFiles(foldddir, buffer);
                                //n = PASAClass.Folder_Handle(foldddir, sdir, "", m);
                                switch (n)
                                {

                                    case 0:
                                        sdir = "insert into " + Cyberpipe.PAS_logicfile.PAS_Affair.tablename
                                            + " (NodePID,NodeName,NodePath,NodeType,NodeSign) values(" + PID
                                            + ",'" + PASAClass.Files_Name(sdir, m) + "','" + filepath + "',"
                                            + m + ",'" + Utility.userName + "')";
                                        OledbHelper.getsqlcom(sdir);
                                        DataSet DS = OledbHelper.getDataSet("select max(NODEID) from " + Cyberpipe.PAS_logicfile.PAS_Affair.tablename, Cyberpipe.PAS_logicfile.PAS_Affair.tablename);
                                        ListViewItem lvi = new ListViewItem(PASAClass.Files_Name(ddir, m));//实例化一个项
                                        lvi.Tag = int.Parse(DS.Tables[0].Rows[0][0].ToString());
                                        Cyberpipe.PAS_logicfile.PAS_Affair.ADD_LV.Items.Add(lvi);//添加列信息
                                        break;
                                    case 1:
                                        LV_PASfileDir.Items[i].Remove(); break;
                                    case 2:
                                        if (MessageBox.Show("文件夹下有同名文件,是否替换?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
                                            n = upfolder.UploadFilesDir(foldddir, buffer);

                                        else
                                        { ;}
                                        if (n == 0)
                                            MessageBox.Show("文件添加成功!");
                                        else
                                            MessageBox.Show("文件添加失败!");

                                        break;

                                }
                            }
                            DialogResult = DialogResult.OK;//将当前窗体的对话框返回值设为OK
                        }

                        else
                        {
                            MessageBox.Show("添加的文件不能为空。");
                        }
                        break;
                    }
                case 1:
                    {
                        //ddir = Cyberpipe.PAS_logicfile.PAS_Affair.Redact_D;
                        ddir = Application.StartupPath + "\\Files\\" + Cyberpipe.PAS_logicfile.PAS_Affair.tablename + "\\"
                            + Cyberpipe.PAS_logicfile.PAS_Affair.Redact_D + "\\" + Cyberpipe.PAS_logicfile.PAS_Affair.Redact_N;
                        //sdir = PASAClass.UpAndDown_Dir(Cyberpipe.PAS_logicfile.PAS_Affair.Redact_D) + "\\" + TB_PASfilename.Text.Trim();
                        sdir = TB_PASfilename.Text.Trim();

                        sdir = "update " + Cyberpipe.PAS_logicfile.PAS_Affair.tablename + " set NODENAME='"
                            + TB_PASfilename.Text
                            + "',NODEPATH='" + Cyberpipe.PAS_logicfile.PAS_Affair.Redact_D
                            + "' where NODEID='" + Cyberpipe.PAS_logicfile.PAS_Affair.Redact_M + "'";
                        break;
                    }
                case 2:
                    {
                        //ddir = Cyberpipe.PAS_logicfile.PAS_Affair.Redact_D;  
                        ddir = Utility.uploadpath + "\\" + Cyberpipe.PAS_logicfile.PAS_Affair.tablename + Cyberpipe.PAS_logicfile.PAS_Affair.Redact_D
                    + "\\" + Cyberpipe.PAS_logicfile.PAS_Affair.Redact_N;

                        sdir = "delete " + Cyberpipe.PAS_logicfile.PAS_Affair.tablename
                            + "  where NODEID=" + Cyberpipe.PAS_logicfile.PAS_Affair.Redact_M;
                        break;
                    }
            }
            if (m > 0)
            {
                udfiles.UpDownFile upfolder = new udfiles.UpDownFile(Utility.udserviceurl);
                string filenameurl = Utility.uploadpath + "\\" + Cyberpipe.PAS_logicfile.PAS_Affair.tablename + "\\" + Cyberpipe.PAS_logicfile.PAS_Affair.Redact_D
                    + "\\" + Cyberpipe.PAS_logicfile.PAS_Affair.Redact_N;
                n = upfolder.File_Handle(filenameurl, "", TB_PASfilename.Text.Trim(), m);

                //n = PASAClass.Folder_Handle(ddir, "", TB_PASfilename.Text.Trim(), m);
                if (n == 1)
                {
                    DialogResult = DialogResult.Cancel;//将当前窗体的对话框返回值设为Cancel
                }
                else
                {
                    OledbHelper.getsqlcom(sdir);
                    if (m == 1)
                        Cyberpipe.PAS_logicfile.PAS_Affair.Redact_N = TB_PASfilename.Text;
                    DialogResult = DialogResult.OK;//将当前窗体的对话框返回值设为OK
                }
            }
            Close();
        }

        private void Cancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void F_PASFiles_Load(object sender, EventArgs e)
        {
            bool show_bool = true;
            if (int.Parse(this.Tag.ToString()) == 0)
                show_bool = true;
            else
                show_bool = false;

            LV_PASfileDir.Visible = show_bool;
            BT_ADD.Visible = show_bool;
            BT_DEL.Visible = show_bool;
            TB_PASfilename.Visible = !show_bool;
            LB_PASfilename.Visible = !show_bool;
            //panel_Title.BackgroundImage = Image.FromFile(photoDir + "\\Image\\" + ModuleClass.FrmAffairClass.Redact_T + this.Tag.ToString() + ".JPG");
            switch (int.Parse(this.Tag.ToString()))
            {
                case 0:
                    {
                        LV_PASfileDir.Items.Clear();//清空所有项的集合
                        LV_PASfileDir.Columns.Clear();//清空所有列的集合
                        LV_PASfileDir.GridLines = true;//在各数据之间形成网格线
                        LV_PASfileDir.View = View.Details;//显示列名称
                        LV_PASfileDir.FullRowSelect = true;//在单击某项时,对其进行选中
                        LV_PASfileDir.Columns.Add("文件路径", LV_PASfileDir.Width - 5, HorizontalAlignment.Center);//设置列标头的名称及大小
                        break;
                    }
                case 1:
                case 2:
                    {
                        if (int.Parse(this.Tag.ToString()) == 1)
                        {
                            LB_PASfilename.Text = "文件名称:";
                            TB_PASfilename.Text = Cyberpipe.PAS_logicfile.PAS_Affair.Redact_N;
                        }
                        if (int.Parse(this.Tag.ToString()) == 2)
                        {
                            TB_PASfilename.Visible = show_bool;
                            LB_PASfilename.Text = "是否删除该文件?";
                        }
                        break;
                    }
            }
        }
    }
}