⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 档案管理系统源码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Main.h"            //MDI主窗体头文件
#include "DataModule.h"      //数据模块窗体头文件
#include "Archives_Class.h"  //MDIChild档案分类管理窗体头文件
#include "Archives_Tank.h"   //MDIChild档案柜资料管理窗体头文件
#include "Archives_Manage.h" //档案管理MDI子窗体头文件
#include "Borrow_Return.h"   //档案借用和归还管理窗体头文件
//#include "Archives_Config.h" //数据库服务器配置窗体头文件
#include "Archives_AboutBox.h"  //软件关于窗体头文件

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TF_Main *F_Main;
//---------------------------------------------------------------------------
__fastcall TF_Main::TF_Main(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

bool TF_Main::CreateForm(TForm *CForm)
{   /*****用户自定义MDIChild子窗体存在判断函数*****/
    int No;
    bool FormExist = false;
    if(CForm == NULL)  //判断CForm是否为空
      return false;
    for(No=0;No<Screen->FormCount;No++){  //判断窗体是否已经被建立起来
      if(Screen->Forms[No]->ClassType() == CForm->ClassType()){  //窗体存在判断
        FormExist = true;  //窗体已经创建,用户没看到可能是处于隐藏或者最小化
        break;
      }
    }
    if(FormExist == false) //窗体没有创建,返回false
      return false;
    if(CForm->WindowState == wsMinimized)  //窗体已经创建,但处于最小化状态
      ShowWindow(CForm->Handle,SW_SHOWNORMAL);  //显示窗体
    else                                   //窗体已经创建,但处于隐藏状态
      ShowWindow(CForm->Handle,SW_SHOWNA);      //显示窗体
    if(!CForm->Visible)
      CForm->Visible = true;
    CForm->BringToFront();  //当前窗口显示在最面前
    CForm->SetFocus();      //把光标的焦点转移到刚才创建或显示的窗口上
    return true;
}
//---------------------------------------------------------------------------

void TF_Main::BackupDatabase(AnsiString filename)
{   /*****用户自定义备份SQL Server 2000数据库函数*****/
    DM->AQ_Back_Restore->Close();       //关闭数据库备份还原查询控件
    DM->AQ_Back_Restore->SQL->Clear();  //清除SQL语句
//    DM->AQ_Back_Restore->SQL->Add("USE Archives");   //增加备份数据库SQL语句
    AnsiString Backup("BACKUP DATABASE ");  //生成数据库备份命令赋Backup字符串
    TIniFile *ini;  //申请一个TIniFile类对象
    //打开档案管理系统数据库INI配置文件
    ini = new TIniFile( ChangeFileExt( Application->ExeName, ".INI" ));
    AnsiString  str;
    str = ini->ReadString("Database","Initial Catalog","Archives"); //从配置文件读数据库名
    Backup.Insert(str,Backup.Length()+1);  //追加档案管理系统数据库名,+1的目的是前面有个空格
    DM->AQ_Back_Restore->SQL->Add(Backup); //增加备份数据库RESTORE命令SQL语句
    delete ini;      //释放ini对象
//    AnsiString str;   //生成备份数据库生成文件的路径和文件名字符串
    str="TO DISK ='";  //生成备份数据库文件的路径和文件名字符串
    str+=filename;
    str+="'";
    DM->AQ_Back_Restore->SQL->Add(str);  //增加备份数据库的路径和文件名字符串SQL语句
    DM->AQ_Back_Restore->SQL->Add("WITH init"); //备份数据库SQL语句WITH参数设定,完整备份数据库
    try{        //捕捉异常
      DM->AQ_Back_Restore->ExecSQL();     //执行SQL语句,但不打开数据集
    }
    catch(...)  //抛出异常
    {
      Application->MessageBox("数据库备份出错", "错误!", MB_OK);
    }
}
//---------------------------------------------------------------------------

void TF_Main::RestoreDatabase(AnsiString filename)
{   /*****用户自定义还原SQL Server 2000数据库函数*****/
    DM->AQ_Back_Restore->Close();       //关闭数据库备份还原查询控件
    DM->AQ_Back_Restore->SQL->Clear();  //清除SQL语句
    AnsiString Restore("RESTORE DATABASE ");  //生成数据库还原命令赋Restore字符串
    TIniFile *ini;  //申请一个TIniFile类对象
    //打开档案管理系统数据库INI配置文件
    ini = new TIniFile( ChangeFileExt( Application->ExeName, ".INI" ));
    AnsiString  str;
    str = ini->ReadString("Database","Initial Catalog","Archives"); //从配置文件读数据库名
    Restore.Insert(str,Restore.Length()+1);  //追加档案管理系统数据库名,+1的目的是前面有个空格
    DM->AQ_Back_Restore->SQL->Add(str);     //增加还原数据库SQL命令语句
    delete ini;            //释放ini对象
    str="FROM DISK = '";   //生成还原数据库文件的路径和文件名字符串
    str+=filename;
    str+="'";
    DM->AQ_Back_Restore->SQL->Add(str); //增加还原数据库文件的路径和文件名字符串SQL语句
    DM->AQ_Back_Restore->SQL->Add("WITH norecovery"); //还原数据库SQL语句WITH参数设定,完整还原数据库
    try{        //捕捉异常
      DM->AQ_Back_Restore->ExecSQL();     //执行SQL语句,但不打开数据集
    }
    catch(...)  //抛出异常
    {
      Application->MessageBox("数据库恢复出错", "错误!", MB_OK);
    }
}
//---------------------------------------------------------------------------

void __fastcall TF_Main::M_ClassClick(TObject *Sender)
{   /*****档案分类管理菜单项单击事件*****/
//    DM->DS_Class->Enabled = false; //档案分类资料数据源控件处于非使能态,与提交、取消按钮数据感知控件失去关联关系
    if(CreateForm(F_Class) == false)       //CreateForm调用判断档案分类管理窗体是否存在函数
      F_Class = new TF_Class(Application);  //动态创建档案分类管理窗体
    DM->DS_Class->Enabled = true; //档案分类资料数据源控件处于使能态,与提交、取消按钮数据感知控件建立关联关系
}
//---------------------------------------------------------------------------

void __fastcall TF_Main::M_TankClick(TObject *Sender)
{   /*****档案柜资料管理菜单项单击事件*****/
//    DM->DS_Tank->Enabled = false; //档案柜资料数据源控件处于非使能态,与提交、取消按钮数据感知控件失去关联关系
    if(CreateForm(F_Tank) == false)       //CreateForm调用判断档案柜资料管理窗体是否存在函数
      F_Tank = new TF_Tank(Application);  //动态创建档案柜资料管理窗体
    DM->DS_Tank->Enabled = true; //档案柜资料数据源控件处于使能态,与提交、取消按钮数据感知控件建立关联关系
}
//---------------------------------------------------------------------------

void __fastcall TF_Main::M_ManageClick(TObject *Sender)
{   /*****档案管理菜单项单击事件*****/
//    DM->DS_Class->Enabled = false; //档案分类资料数据源控件处于非使能态,与提交、取消按钮数据感知控件失去关联关系
//    DM->DS_Manage->Enabled = false;          //档案管理数据源控件处于非使能态,与提交、取消按钮数据感知控件失去关联关系
    if(CreateForm(F_Manage) == false)       //CreateForm调用判断档案管理窗体是否存在函数
      F_Manage = new TF_Manage(Application);  //动态创建档案管理窗体
    DM->DS_Manage->Enabled = true;          //档案管理数据源控件处于使能态,与提交、取消按钮数据感知控件建立关联关系
//    DM->DS_Class->Enabled = true; //档案分类资料数据源控件处于使能态,与提交、取消按钮数据感知控件建立关联关系
}
//---------------------------------------------------------------------------

void __fastcall TF_Main::M_BorrowClick(TObject *Sender)
{   /*****档案借用管理菜单项单击事件*****/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -