using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Data;
using System.IO;
using System.ComponentModel;
using System.Windows.Forms;
namespace FileMS.ModuleClass
{
class FrmAffairClass
{
#region 公共变量
public Point CPoint; //添加命名空间using System.Drawing;
public static string BaseNode = "";//设录文件夹的根节点名称
public string TempNode = "";//临时根节点名称
public static int UserSign = 0;//用户的ID号
public static string IfSign = "";//查找当前用户的条件
public static int Fclass = 0;//窗体的类型:1为复制,2为删
public static string Redact_T = "";
public static string Redact_N = "";
public static string Redact_M = "";
public static string Redact_D = "";
public static ListView ADD_LV = new ListView();
ModuleClass.DataClass dataclass = new FileMS.ModuleClass.DataClass();//对DataClass类进行实例化
#endregion
#region 窗体设置
/// <summary>
/// 窗体设置
/// </summary>
/// <param Frm="Form">窗体</param>
public void FrmSetUp(Form Frm) //Form或MouseEventArgs添加命名空间using System.Windows.Forms;
{
Frm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;//去掉窗体的边框
Frm.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;//使窗体居中
}
#endregion
#region 利用窗体上的控件移动窗体
/// <summary>
/// 利用控件移动窗体
/// </summary>
/// <param Frm="Form">窗体</param>
/// <param e="MouseEventArgs">控件的移动事件</param>
public void FrmMove(Form Frm, MouseEventArgs e) //Form或MouseEventArgs添加命名空间using System.Windows.Forms;
{
if (e.Button == MouseButtons.Left)
{
Point myPosittion = Control.MousePosition;//获取当前鼠标的屏幕坐标
myPosittion.Offset(CPoint.X, CPoint.Y);//重载当前鼠标的位置
Frm.DesktopLocation = myPosittion;//设置当前窗体在屏幕上的位置
}
}
#endregion
#region 向资料集中的添加名称
/// <summary>
/// 向资料集中的添加名称
/// </summary>
/// <param LV="ListView">ListView控件</param>
/// <param DS="DataSet">返回查找的数据集</param>
public void Data_List(ListView LV, DataSet DS) //Form或MouseEventArgs添加命名空间using System.Windows.Forms;
{
LV.Items.Clear();//清空所有项的集合
LV.Columns.Clear();//清空所有列的集合
LV.GridLines = true;//在各数据之间形成网格线
LV.View = View.Details;//显示列名称
LV.FullRowSelect = true;//在单击某项时,对其进行选中
LV.Columns.Add("文件资料集", LV.Parent.Width - 3, HorizontalAlignment.Center);//设置列标头的名称及大小
//添加指定列的信息
for (int i = 0; i < DS.Tables[0].Rows.Count; i++)
{
ListViewItem lvi = new ListViewItem(DS.Tables[0].Rows[i][0].ToString());//实例化一个项
lvi.Tag = DS.Tables[0].Rows[i][1];
LV.Items.Add(lvi);//添加列信息
}
}
#endregion
#region 使Label控件透明
/// <summary>
/// Label控件透明
/// </summary>
/// <param panel="ControlCollection">panel控件的对象集合</param>
public void Clarity(Control.ControlCollection panel)
{
foreach (Control C in panel)//遍历panel控件中的各子级控件
{
if (C.GetType().Name == "Label")//查找Label类型的控件
{
C.BackColor = Color.Transparent;//将当前查找到的控件背景设为透明
C.Parent = panel.Owner;//指定当前控件的父级控件
}
}
}
#endregion
#region 切换文件列表和资料集
/// <summary>
/// 切换文件列表和资料集
/// </summary>
/// <param LV="ListView">ListView控件</param>
/// <param TV="TreeView">TreeView控件</param>
/// <param TF="bool">用于判断显示指定的控件</param>
public void TreeAndList(ListView LV, TreeView TV, bool TF)
{
LV.Dock = DockStyle.Fill;//使ListView控件最大化
TV.Dock = DockStyle.Fill;//使TreeView控件最大化
LV.Visible = TF;//是否显示ListView控件
TV.Visible = !TF;//是否显示TreeView控件
if (TF == true)//调用自定义方法Data_List获取资集中的名称,并显示在ListView控件中
{
Data_List(LV, dataclass.getDataSet("select NodeName,NodeID,NodeType from tb_NodesName where NodeType=2" + IfSign, "tb_NodesName"));
}
}
#endregion
#region 在文件列表中添加根节点
/// <summary>
/// 在文件列表中添加根节点
/// </summary>
/// <param TV="TreeView">TreeView控件</param>
/// <param Nodename="string">要添加的根节点名称</param>
public void ShowTree(TreeView TV, string Nodename)
{
TreeNode TNode=new TreeNode();
if (BaseNode.Trim() != TempNode.Trim())//判断资料集文件名是否为当前根节点名称
{
TV.Nodes.Clear();//清空TreeView控件
TNode = TV.Nodes.Add(Nodename);//向TreeView控件中添加根节点
//在数据库中查找当前根节点的信息
DataSet DSet = dataclass.getDataSet("select NodeID,NodePID,NodeName,NodeType from tb_NodesName where NodeName='" + Nodename + "'" + IfSign, "tb_NodesName");
TNode.Tag = DSet.Tables[0].Rows[0][0];//获取当前文件的主ID号
TNode.ImageIndex = 0;//设置当前节点的图片
TempNode = BaseNode.Trim();//将当前根节点的名称赋给临时变量
ADD_NullTreeNode(TV, TNode, 0);//调用自定义方法ADD_NullTreeNode
}
}
#endregion
#region 在显示节点时,查找是否有子节点
/// <summary>
/// 查找是否有子节点
/// </summary>
/// <param TV="TreeView">TreeView控件</param>
/// <param ANode="TreeNode">当前节点</param>
/// <param n="int">当前节点</param>
public void ADD_NullTreeNode(TreeView TV, TreeNode ANode, int n)
{
DataSet DSet = new DataSet();//实例化一个DataSet对象
if (n == 0)//当n==0时为根节点
DSet = dataclass.getDataSet("select NodeID,NodePID,NodeName,NodeType from tb_NodesName where NodeName='" + ANode.Text + "'" + IfSign, "tb_NodesName");
if (n == 1)//当n==1时为子节点
DSet = dataclass.getDataSet("select NodeID,NodePID,NodeName,NodeType from tb_NodesName where NodePID='" + ANode.Tag + "'" + IfSign, "tb_NodesName");
if (DSet.Tables[0].Rows.Count > 0)//当查找到的行数大于时
{
TreeNode SonNode = new TreeNode("");//实例化一个空的节点
ANode.Nodes.Add(SonNode);//添加该节点
}
else
{
ANode.Nodes.Clear();//清空当前节点下的所有子节点
}
}
#endregion
#region 添加子节点
/// <summary>
/// 添加子节点
/// </summary>
/// <param TV="TreeView">TreeView控件</param>
/// <param ANode="TreeNode">当前节点</param>
public void ADD_TreeNode(TreeView TV, TreeNode ANode)
{
//在数据库中查找当前节点下的所有子节点
DataSet DSet = dataclass.getDataSet("select NodeID,NodePID,NodeName,NodeType from tb_NodesName where NodePID=" + ANode.Tag + IfSign, "tb_NodesName");
if (DSet.Tables[0].Rows.Count > 0)//当查找的行数大于0时
{
ANode.Nodes.Clear();//清空当前节点下的所有子节点
int TypeIn = 0;//定义一个局部变量,用于存放指定数据的辅ID号
for (int i = 0; i < DSet.Tables[0].Rows.Count; i++)//遍历数据表中的所有数据
{
TreeNode SonNode = new TreeNode(DSet.Tables[0].Rows[i][2].ToString());//实例化一个具有当前节点名称的节点
SonNode.Tag = DSet.Tables[0].Rows[i][0];//在该节点的Tag属性中存放当前信息的主ID号
TypeIn = int.Parse(DSet.Tables[0].Rows[i][3].ToString());//存放当前信息的类型
if (TypeIn == 0)//设置当前节点的图片
SonNode.ImageIndex = 2;
else
SonNode.ImageIndex = 0;
ANode.Nodes.Add(SonNode);//添加该节点
ADD_NullTreeNode(TV, SonNode, 1);//调用自定义方法ADD_NullTreeNode
}
}
else
{
ANode.Nodes.Clear();//清空子节点
}
}
#endregion
#region 显示当前文件夹下的所有文件
/// <summary>
/// 显示当前文件夹下的所有文件
/// </summary>
/// <param MainID="int">当前项的主ID号</param>
/// <param MainName="string">当前项的名称</param>
/// <param LV="ListView">ListView控件</param>
/// <param p="int">操作类型</param>
public void Show_AllFile(int MainID,string MainName,ListView LV, int p)
{
DataSet DSet = new DataSet();//实例化一个DataSet对象
string wdir = "";
int ty = -1;
DSet = dataclass.getDataSet("select NodeID,NodePID,NodePath,NodeType from tb_NodesName where NodeID=" + MainID + IfSign, "tb_NodesName");
ty=int.Parse(DSet.Tables[0].Rows[0][3].ToString());
wdir = DSet.Tables[0].Rows[0][2].ToString();
if (ty == 0 && p==2)
{
try
{
System.Diagnostics.Process.Start(@wdir);
}
catch (Exception ex)
{
MessageBox.Show("文件无法打开。");
}
}
else
{
//在数据库中获取当前文件夹的信息
DSet = dataclass.getDataSet("select NodeID,NodePID,NodeName,NodeType from tb_NodesName where NodePID=" + MainID + IfSign, "tb_NodesName");
if (DSet.Tables[0].Rows.Count > 0)//当数据表的行数大于0时
{
LV.Items.Clear();//清空ListView控件
//当前文件夹下的子文件夹和文件添加到ListView控件中
for (int i = 0; i < DSet.Tables[0].Rows.Count; i++)
{
ListViewItem lvi = new ListViewItem(DSet.Tables[0].Rows[i][2].ToString());//实例化一个项
lvi.Tag = int.Parse(DSet.Tables[0].Rows[i][0].ToString());
if (int.Parse(DSet.Tables[0].Rows[i][3].ToString()) == 0)//设置各项的图片
lvi.ImageIndex = 2;
else
lvi.ImageIndex = 0;
LV.Items.Add(lvi);//添加列信息
}
}
}
}
#endregion
#region 调用文件夹编辑窗体
/// <summary>
/// 调用文件夹编辑窗体
/// </summary>
/// <param nob="string">判断操作的是资料集还是文件</param>
/// <param sender="object">项名称</param>
/// <param mark="int">标识</param>
public void FolderEdit_form(string nob, object sender, int mark)
{
Redact_T = nob;
Redact_N = "";
Redact_M = "";
Redact_D = "";
ListViewItem HLVI = new ListViewItem();
TreeNode HTreeNode = new TreeNode();
DataSet DS = new DataSet();
if (sender.GetType().Name == "ListView")
{
if (((ListView)sender).SelectedItems.Count > 0)
{
HLVI = ((ListView)sender).SelectedItems[0];
Redact_N = ((ListView)sender).SelectedItems[0].Text;
Redact_M = ((ListView)sender).SelectedItems[0].Tag.ToString();
DS = dataclass.getDataSet("select NodeID,NodePath from tb_NodesName where NodeID=" + Redact_M + IfSign, "tb_NodesName");
Redact_D = DS.Tables[0].Rows[0][1].ToString();
}
}
if (sender.GetType().Name == "TreeView")
{
if (((TreeView)sender).SelectedNode != null)
{
HTreeNode = ((TreeView)sender).SelectedNode;
Redact_N = ((TreeView)sender).SelectedNode.Text;
Redact_M = ((TreeView)sender).SelectedNode.Tag.ToString();
DS = dataclass.getDataSet("select NodeID,NodePath from tb_NodesName where NodeID=" + Redact_M + IfSign, "tb_NodesName");
if (DS.Tables[0].Rows.Count == 0)
return;
Redact_D = DS.Tables[0].Rows[0][1].ToString();
}
}
TransferForm.Frm_Folder FrmFolder = new FileMS.TransferForm.Frm_Folder();//实例化Frm_Folder窗体
FrmSetUp(FrmFolder);//调用自定义方法FrmSetUp,对Frm_Radical窗体进行设置
FrmFolder.Tag = mark;
if (FrmFolder.ShowDialog() == DialogResult.OK)//显示窗体
{
switch (mark)
{
case 0:
{
if (sender.GetType().Name == "ListView")
{
ListViewItem lvi = new ListViewItem(ModuleClass.FrmAffairClass.Redact_N);//实例化一个项
lvi.Tag = int.Parse(ModuleClass.FrmAffairClass.Redact_M);
((ListView)sender).Items.Add(lvi);//添加列信息
}
if (sender.GetType().Name == "TreeView")
{
TreeNode SonNode = new TreeNode(ModuleClass.FrmAffairClass.Redact_N);//实例化一个具有当前节点名称的节点
SonNode.Tag = int.Parse(ModuleClass.FrmAffairClass.Redact_M);//在该节点的Tag属性中存放当前信息的主ID号
SonNode.ImageIndex = 0;
HTreeNode.Nodes.Add(SonNode);//添加该节点
}
break;
}
case 1:
{
if (sender.GetType().Name == "ListView")
{
HLVI.Text = ModuleClass.FrmAffairClass.Redact_N;
}
if (sender.GetType().Name == "TreeView")
{
HTreeNode.Text = ModuleClass.FrmAffairClass.Redact_N;
}
break;
}
case 2:
{
if (sender.GetType().Name == "ListView")
{
HLVI.Remove();
}
if (sender.GetType().Name == "TreeView")
{
HTreeNode.Remove();
}
break;
}
}
}
FrmFolder.Dispose();
}
#endregion
#region 返回上一级目录
/// <summary>
/// 返回上一级目录
/// </summary>
/// <param dir="string">目录</param>
/// <returns>返回String对象</returns>
public string UpAndDown_Dir(string dir)
{
string Change_dir = "";
Change_dir = Directory.GetParent(dir).FullName;
return Change_dir;
}
#endregion
#region 文件夹的操作
/// <summary>
/// 文件夹的操作
/// </summary>
/// <param dir="string">目录</param>
/// <param NewName="string">修改的文件夹名称</param>
/// <param n="int">标识</param>
/// <returns>返回int对象</returns>
public int Folder_Handle(string dir,string Sdir,string NewName,int n)
{
string F_Name = "";
int t = 0;
if (Redact_T == "T" || Redact_T == "F")
F_Name = "文件夹";
if (Redact_T == "W")
F_Name = "文件";
FileInfo FInfo = new FileInfo(dir);
switch (n)
{
case 0:
{
if (Redact_T == "T" || Redact_T == "F")
{
if (Directory.Exists(dir) == true)
{
t = 1;
MessageBox.Show("该" + F_Name + "已存在,无法创建。");
break;
}
Directory.CreateDirectory(dir);
if (Directory.Exists(dir) == false)
t = 1;
}
if (Redact_T == "W" || Redact_T == "G")
{
FileInfo SFInfo = new FileInfo(Sdir);
bool tbool = true;
if (SFInfo.Exists == false)
{
t = 1;
MessageBox.Show("没有找到要复制的" + F_Name);
break;
}
if (FInfo.Exists == true)
{
if (MessageBox.Show("文件夹下有同名文件,是否替换?","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information)==DialogResult.Yes)
tbool = true;
else
tbool = false;
}
try
{
SFInfo.CopyTo(dir, tbool);
}
catch (Exception ex)
{
t = 1;
MessageBox.Show(F_Name + "复制失败。");
break;
}
}
break;
}
case 1:
{
string NewDir = "";
if (Redact_T == "T" || Redact_T == "F")
{
NewDir = UpAndDown_Dir(dir) + "//" + NewName;
if (Directory.Exists(NewDir) == true)
{
t = 1;
MessageBox.Show("该" + F_Name + "已存在,无法修改。");
break;
}
if (Directory.Exists(dir))
{
System.IO.Directory.Move(dir, NewDir);
}
else
{
MessageBox.Show(F_Name + "不存在,无法修改。");
t = 1;
break;
}
}
if (Redact_T == "W")
{
if (FInfo.Exists==true)
{
try
{
FInfo = new FileInfo(dir);
FInfo.MoveTo(UpAndDown_Dir(dir) + "//" + NewName);
}
catch (Exception ex)
{
MessageBox.Show(F_Name + "文件名修改失败。");
t = 1;
break;
}
}
else
{
MessageBox.Show(F_Name + "不存在,无法修改。");
t = 1;
break;
}
}
break;
}
case 2:
{
if (Redact_T == "T" || Redact_T == "F")
{
if (Directory.Exists(dir) == false)
{
t = 1;
MessageBox.Show(F_Name + "不存在。");
break;
}
Directory.Delete(dir, true);
if (Directory.Exists(dir) == true)
{
t = 1;
MessageBox.Show(F_Name + "删除失败。");
break;
}
}
if (Redact_T == "W")
{
if (FInfo.Exists == false)
{
t = 1;
MessageBox.Show(F_Name + "不存在。");
break;
}
try
{
FInfo.Delete();
}
catch (Exception ex)
{
t = 1;
MessageBox.Show(F_Name + "删除失败。");
break;
}
}
break;
}
case 3:
{
if (Directory.Exists(Sdir) == false)
{
t = 1;
MessageBox.Show("没有找到要复制的文件夹。");
break;
}
try
{
Files_Copy(dir, Sdir);
if (NewName == "data")
{
DirectoryInfo di = new DirectoryInfo(dir);//打开path目录,如果存在则执行方法
if (di.Exists)
{
DataSet DS = dataclass.getDataSet("select max(NodeID) from tb_NodesName", "tb_NodesName");
string SName = DS.Tables[0].Rows[0][0].ToString();
Files_List(di, int.Parse(Redact_M));
Redact_M = SName;
Redact_N = Files_Name(dir, 1);
}
}
}
catch (Exception ex)
{
t = 1;
MessageBox.Show("文件夹制复失败。");
break;
}
break;
}
}
return t;
}
#endregion
#region 批量将文件夹的路径存入数据库中
/// <summary>
/// 批量将文件夹的路径存入数据库中
/// </summary>
/// <param dir="FileSystemInfo">目录</param>
/// <param n="int">标识</param>
/// <returns>返回string对象</returns>
private void Files_List(FileSystemInfo dir, int NodeID)
{
int PID = NodeID;
string SubDir = dir.ToString();
if (!dir.Exists)//先判断所指的文件或文件夹是否存在
{
return;
}
DirectoryInfo dirD = dir as DirectoryInfo;//如果给定的参数不是文件夹则退出
if (dirD == null)
{
dataclass.getsqlcom("insert into tb_NodesName (NodePID,NodeName,NodePath,NodeType,NodeSign) values(" + PID + ",'" + dirD.Name.Trim() + "','" + SubDir + "',1," + UserSign + ")");
return;
}
else
{
dataclass.getsqlcom("insert into tb_NodesName (NodePID,NodeName,NodePath,NodeType,NodeSign) values(" + PID + ",'" + dirD.Name.Trim() + "','" + SubDir + "',1," + UserSign + ")");
DataSet DS = dataclass.getDataSet("select max(NodeID) from tb_NodesName", "tb_NodesName");
PID = int.Parse(DS.Tables[0].Rows[0][0].ToString());
}
SubDir = SubDir + "//";
FileSystemInfo[] files = dirD.GetFileSystemInfos();//获取文件夹中所有文件和文件夹
//对单个FileSystemInfo进行判断,如果是文件夹则进行递归操作
foreach (FileSystemInfo FSys in files)
{
FileInfo file = FSys as FileInfo;
if (file != null)
{
dataclass.getsqlcom("insert into tb_NodesName (NodePID,NodeName,NodePath,NodeType,NodeSign) values(" + PID + ",'" + file.Name.Trim() + "','" + SubDir + file.Name + "',0," + UserSign + ")");
}
else
{
DirectoryInfo DD = new DirectoryInfo(SubDir + FSys.ToString());
Files_List(DD, PID);//进行Files_List方法的递归调用
}
}
}
#endregion
#region 文件夹的复制
/// <summary>
/// 文件夹的复制
/// </summary>
/// <param Ddir="string">要复制的目的路径</param>
/// <param Sdir="string">要复制的原路径</param>
/// <returns>返回int对象</returns>
private void Files_Copy(string Ddir,string Sdir)
{
DirectoryInfo dir = new DirectoryInfo(Sdir);
string SbuDir = Ddir;
try
{
if (!dir.Exists)//判断所指的文件或文件夹是否存在
{
return;
}
DirectoryInfo dirD = dir as DirectoryInfo;//如果给定参数不是文件夹则退出
string UpDir = UpAndDown_Dir(Ddir);
if (dirD == null)//判断文件夹是否为空
{
Directory.CreateDirectory(UpDir + "//" + dirD.Name);//如果为空,创建文件夹并退出
return;
}
else
{
Directory.CreateDirectory(UpDir + "//" + dirD.Name);
}
SbuDir = UpDir + "//" + dirD.Name + "//";
FileSystemInfo[] files = dirD.GetFileSystemInfos();//获取文件夹中所有文件和文件夹
//对单个FileSystemInfo进行判断,如果是文件夹则进行递归操作
foreach (FileSystemInfo FSys in files)
{
FileInfo file = FSys as FileInfo;
if (file != null)//如果是文件的话,进行文件的复制操作
{
FileInfo SFInfo = new FileInfo(file.DirectoryName + "//" + file.Name);//获取文件所在的原始路径
SFInfo.CopyTo(SbuDir + "//" + file.Name, true);//将文件复制到指定的路径中
}
else
{
string pp = FSys.Name;//获取当前搜索到的文件夹名称
Files_Copy(SbuDir + FSys.ToString(), Sdir + "//" + FSys.ToString());//如果是文件,则进行递归调用
}
}
}
catch (Exception ex)
{
MessageBox.Show("文件制复失败。");
return;
}
}
#endregion
#region 获取文件或文件夹的名称
/// <summary>
/// 获取文件或文件夹的名称
/// </summary>
/// <param dir="string">目录</param>
/// <param n="int">标识</param>
/// <returns>返回string对象</returns>
public string Files_Name(string dir, int n)
{
string DF_Name = "";
if (n == 0)
{
string F_N = dir.Substring(dir.LastIndexOf("//") + 1, dir.LastIndexOf(".") - dir.LastIndexOf("//") - 1);
string F_E = dir.Substring(dir.LastIndexOf(".") + 1, dir.Length - dir.LastIndexOf(".") - 1);
DF_Name = F_N + "." + F_E;
}
if (n > 0)
{
DF_Name = dir.Substring(dir.LastIndexOf("//") + 1, dir.Length - dir.LastIndexOf("//") - 1);
}
return DF_Name;
}
#endregion
#region 修改或删除文件夹后在数据库中整理子文件夹和子文件的目录
/// <summary>
/// 修改或删除文件夹后在数据库中整理子文件夹和子文件的目录
/// </summary>
/// <param Olddir="string">原目录</param>
/// <param NewName="string">修改后的目录</param>
/// <param n="int">标识</param>
public void DFiles_CleanUp(string Olddir, string Newdir, int n)
{
string DFsql = "";
//DataSet DS = dataclass.getDataSet("select NodeID,NodeName,NodePath from tb_NodesName where NodePath like '" + Olddir + "%'", "tb_NodesName");
string DF_Name = Files_Name(Newdir, n);
switch (n)
{
case 1:
{
dataclass.getsqlcom("update tb_NodesName set NodeName='" + DF_Name + "' where NodePath like '" + Olddir + "'");
DFsql = "update tb_NodesName set NodePath=(select REPLACE(NodePath,'" + Olddir + "','" + Newdir + "')) where len(NodePath)=len('" + Olddir + "') or substring(NodePath,len('" + Olddir + "')+1,1)='//'";
break;
}
case 2:
{
DF_Name = Files_Name(Olddir, n);
DFsql = "delete tb_NodesName where (len(NodePath)=len('" + Olddir + "') or substring(NodePath,len('" + Olddir + "')+1,1)='//') and (substring(NodePath,0,len('" + Olddir + "')+1)='" + Olddir + "')";
break;
}
}
if (n > 0)
dataclass.getsqlcom(DFsql);
}
#endregion
#region 文件夹禁止使用的字符
/// <summary>
/// 文件夹禁止使用的字符
/// </summary>
/// <param e="KeyPressEventArgs">键值</param>
/// <returns>返回string对象</returns>
public int Files_NameChar(KeyPressEventArgs e)
{
int n = 1;
char[] F_ncs = Path.GetInvalidFileNameChars();
foreach (char F_nc in F_ncs)
{
if (F_nc == e.KeyChar)
{
n = 0;
break;
}
}
if (e.KeyChar == '/b')
n = 1;
return n;
}
#endregion
#region 调用文件编辑窗体
/// <summary>
/// 调用文件夹编辑窗体
/// </summary>
/// <param nob="string">判断操作的资料集或文件</param>
/// <param sender="object">项名称</param>
/// <param mark="int">标识</param>
public void FileEdit_form(string nob, object sender, int mark)
{
Redact_T = nob;
Redact_N = "";
Redact_M = "";
Redact_D = "";
TreeNode HTreeNode = new TreeNode();
DataSet DS = new DataSet();
if (((TreeView)sender).SelectedNode != null)
{
HTreeNode = ((TreeView)sender).SelectedNode;
Redact_N = ((TreeView)sender).SelectedNode.Text;
Redact_M = ((TreeView)sender).SelectedNode.Tag.ToString();
DS = dataclass.getDataSet("select NodeID,NodePath,NodeType from tb_NodesName where NodeID=" + Redact_M + IfSign, "tb_NodesName");
if (DS.Tables[0].Rows.Count == 0)
return;
Redact_D = DS.Tables[0].Rows[0][1].ToString();
int nt = int.Parse(DS.Tables[0].Rows[0][2].ToString());
if (nt != 0 && mark > 0)
return;
}
TransferForm.Frm_File FrmFile =new FileMS.TransferForm.Frm_File();//实例化Frm_Folder窗体
FrmSetUp(FrmFile);//调用自定义方法FrmSetUp,对Frm_Radical窗体进行设置
FrmFile.Tag = mark;
if (FrmFile.ShowDialog() == DialogResult.OK)//显示窗体
{
switch (mark)
{
case 0:
{
TreeNode SonNode = new TreeNode("");//实例化一个具有当前节点名称的节点
for (int i = 0; i < ADD_LV.Items.Count; i++)
{
SonNode = new TreeNode(ADD_LV.Items[i].Text);//实例化一个具有当前节点名称的节点
SonNode.Tag = int.Parse(ADD_LV.Items[i].Tag.ToString());//在该节点的Tag属性中存放当前信息的主ID号
SonNode.ImageIndex = 2;
HTreeNode.Nodes.Add(SonNode);//添加该节点
}
break;
}
case 1:
{
HTreeNode.Text = ModuleClass.FrmAffairClass.Redact_N;
break;
}
case 2:
{
HTreeNode.Remove();
break;
}
}
}
FrmFile.Dispose();
}
#endregion
#region 调用导入导出编辑窗体
/// <summary>
/// 调用导入导出编辑窗体
/// </summary>
/// <param nob="string">判断是导入或导出窗体</param>
/// <param sender="object">项名称</param>
/// <param mark="int">标识</param>
public void GuideEdit_form(string nob, object sender, int mark)
{
Redact_T = nob;
Redact_N = "";
Redact_M = "";
Redact_D = "";
TreeNode HTreeNode = new TreeNode();
DataSet DS = new DataSet();
if (((TreeView)sender).SelectedNode != null)
{
HTreeNode = ((TreeView)sender).SelectedNode;
Redact_N = ((TreeView)sender).SelectedNode.Text;
Redact_M = ((TreeView)sender).SelectedNode.Tag.ToString();
DS = dataclass.getDataSet("select NodeID,NodePath,NodeType from tb_NodesName where NodeID=" + Redact_M + IfSign, "tb_NodesName");
if (DS.Tables[0].Rows.Count == 0)
return;
Redact_D = DS.Tables[0].Rows[0][1].ToString();
int nt = int.Parse(DS.Tables[0].Rows[0][2].ToString());
if (nt == 0 && mark != 2)
return;
if (nt > 0 && mark == 2)
return;
}
TransferForm.F_InOut FrmInOut = new FileMS.TransferForm.F_InOut();//实例化Frm_Folder窗体
FrmSetUp(FrmInOut);//调用自定义方法FrmSetUp,对Frm_Radical窗体进行设置
FrmInOut.Tag = mark;
if (FrmInOut.ShowDialog() == DialogResult.OK)//显示窗体
{
if (mark == 0)
{
TreeNode SonNode = new TreeNode(ModuleClass.FrmAffairClass.Redact_N);//实例化一个具有当前节点名称的节点
SonNode.Tag = int.Parse(ModuleClass.FrmAffairClass.Redact_M);//在该节点的Tag属性中存放当前信息的主ID号
SonNode.ImageIndex = 0;
HTreeNode.Nodes.Add(SonNode);//添加该节点
SonNode.Nodes.Add(new TreeNode(""));
}
}
FrmInOut.Dispose();
}
#endregion
#region 调用导入导出编辑窗体
/// <summary>
/// 调用导入导出编辑窗体
/// </summary>
/// <param STV="TreeView">查询的节点</param>
/// <param DLV="ListView">显示查找的文件</param>
/// <param FName="string">查找的文件名</param>
public void Find_File(TreeView STV, ListView DLV,string FName)
{
string dir = "";
DataSet DS = new DataSet();
if (FName == "")
{
MessageBox.Show("查找文件名不能为空。");
return;
}
if (BaseNode != "")
DS = dataclass.getDataSet("select NodeID,NodePath,NodeType from tb_NodesName where NodeName='" + BaseNode + "'" + IfSign + " and NodeType=2", "tb_NodesName");
else
DS = dataclass.getDataSet("select NodeID,NodePath,NodeType from tb_NodesName where NodeID='" + int.Parse(Redact_M) + "'" + IfSign, "tb_NodesName");
if (DS.Tables[0].Rows.Count == 0)
{
MessageBox.Show("无法对文件进行查找。");
return;
}
if (DS.Tables[0].Rows[0][2].ToString() == "0")
{
MessageBox.Show("不可以对单个文件进行查找。");
return;
}
dir = DS.Tables[0].Rows[0][1].ToString();
DS = dataclass.getDataSet("select NodeID,NodeName from (select * from tb_NodesName where NodePath like '" + dir + "%'" + IfSign + ") a where NodeName like '%" + FName + "%' and NodeType=0", "tb_NodesName");
if (DS.Tables[0].Rows.Count == 0)
{
MessageBox.Show("没有查到相关文件。");
return;
}
DLV.Items.Clear();
for (int i = 0; i < DS.Tables[0].Rows.Count; i++)
{
ListViewItem lvi = new ListViewItem(DS.Tables[0].Rows[i][1].ToString());//实例化一个项
lvi.Tag = int.Parse(DS.Tables[0].Rows[i][0].ToString());
lvi.ImageIndex = 2;//设置各项的图片
DLV.Items.Add(lvi);//添加列信息
}
}
#endregion
}
}