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

📄 tb_main.pas

📁 亚惠快餐管理信息系统 包括亚惠快餐管理的各项功能
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit TB_Main;

{
代码单元名称:通用库表备份工具主窗口
从属软件:大连资金清算中心打码机管理信息系统
开发单位:大连理工大学计算机技术研究所软件工程研究室
作者:王树润
时间:2001,1,30
}

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ComCtrls, CheckLst, Buttons, ExtCtrls,db;

type
  TTB_DfmMain = class(TForm)
    PageControl1: TPageControl;
    PriorButton: TButton;
    NextButton: TButton;
    Button3: TButton;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    TabSheet4: TTabSheet;
    Label3: TLabel;
    DestinationDatabaseNameEdit: TEdit;
    FilePathSpeedButton: TSpeedButton;
    Label4: TLabel;
    DestinationTableNameListBox: TListBox;
    Label1: TLabel;
    Label2: TLabel;
    SourceDatabaseNameComboBox: TComboBox;
    SourceTableNameCheckListBox: TCheckListBox;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    ConfirmMemo: TMemo;
    Panel5: TPanel;
    SelectAllSpeedButton: TSpeedButton;
    RemoveAllSpeedButton: TSpeedButton;
    Image2: TImage;
    Image1: TImage;
    Animate1: TAnimate;
    procedure FormShow(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure SourceDatabaseNameComboBoxChange(Sender: TObject);
    procedure NextButtonClick(Sender: TObject);
    procedure PriorButtonClick(Sender: TObject);
    procedure SelectAllSpeedButtonClick(Sender: TObject);
    procedure RemoveAllSpeedButtonClick(Sender: TObject);
    procedure FilePathSpeedButtonClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
    MyServerName:string;
    Function FieldTypeConvertion(SourceFieldType:TFieldType):string;
    procedure ShowSourceTablenames;
  end;

procedure SetWork;

implementation

uses TB_DataModule1, TB_OpenFilePath, Main;

{$R *.DFM}

procedure SetWork;
var
  TB_DfmMain:TTB_DfmMain;
  ServerName:string;
begin
  ServerName:=MainForm.ServerName;
  if not InputQuery('数据表备份登录工具','请输入合法的数据库服务器名:',ServerName) then Exit;
  if ServerName='' then Exit;
  Screen.Cursor:=crHourGlass;
  MainForm.Refresh;
  Application.CreateForm(TTB_DfmMain,TB_DfmMain);
  TB_DfmMain.MyServerName:=ServerName;
  Screen.Cursor:=crDefault;
  TB_DfmMain.ShowModal;
  TB_DfmMain.Free;
end;

//窗体==========================================================================
procedure TTB_DfmMain.FormShow(Sender: TObject);
begin
  Screen.Cursor:=crHourGlass;
  Refresh;
  TB_DfmDataModule1.SourceDatabaseADOConnection.ConnectionString:='Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=master;Data Source='+MyServerName;
  with TB_DfmDataModule1.SourceDatabaseADOQuery do
  begin
    Close;
    Sql.Clear;
    Sql.Add('Select * From SysDatabases');
    try Open;
     except
       Screen.Cursor:=crDefault;
       ShowMessage('系统数据库受到破坏,请与系统管理员联系!');
       Exit;
    end;
    while not Eof do
    begin
      SourceDatabaseNameComboBox.Items.Add(FieldByName('Name').AsString);
      Next;
    end;
  end;
  SourceDatabaseNameComboBox.ItemIndex:=0;
  TB_DfmDataModule1.SourceDatabaseADOConnection.Close;
  ShowSourceTablenames;
  PageControl1.ActivePageIndex:=0;
  Screen.Cursor:=crDefault;
end;

procedure TTB_DfmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  TB_DfmDataModule1.ChineseTableNameADOQuery.Close;
  TB_DfmDataModule1.DestinationDatabaseADOQuery.Close;
  TB_DfmDataModule1.SourceDatabaseADOQuery.Close;
  TB_DfmDataModule1.SourceDatabaseADOConnection.Close;
  TB_DfmDataModule1.DestinationDatabaseADOConnection.Close;
end;

//关闭==========================================================================
procedure TTB_DfmMain.Button3Click(Sender: TObject);
begin
  Close;
end;

//原数据库变动事件==============================================================
procedure TTB_DfmMain.SourceDatabaseNameComboBoxChange(Sender: TObject);
begin
  TB_DfmDataModule1.SourceDatabaseADOConnection.Close;
  ShowSourceTablenames;
end;

//源数据表全部选定==============================================================
procedure TTB_DfmMain.SelectAllSpeedButtonClick(Sender: TObject);
var
  i:integer;
begin
  for i:=0 to SourceTableNameCheckListBox.Items.Count-1 do
    SourceTableNameCheckListBox.Checked[i]:=True;
end;

//源数据表全部不选==============================================================
procedure TTB_DfmMain.RemoveAllSpeedButtonClick(Sender: TObject);
var
  i:integer;
begin
  for i:=0 to SourceTableNameCheckListBox.Items.Count-1 do
    SourceTableNameCheckListBox.Checked[i]:=False;
end;

//确定保存目录==================================================================
procedure TTB_DfmMain.FilePathSpeedButtonClick(Sender: TObject);
var
  TB_DfmOpenFilePath: TTB_DfmOpenFilePath;
begin
  TB_DfmOpenFilePath:=TTB_DfmOpenFilePath.Create(Self,DestinationDatabaseNameEdit);
  TB_DfmOpenFilePath.ShowModal;
  TB_DfmOpenFilePath.Free;
end;

//上一步按钮====================================================================
procedure TTB_DfmMain.PriorButtonClick(Sender: TObject);
var
  i:integer;
begin
  //转到目标数据表页======================
  if PageControl1.ActivePageIndex=3 then
  begin
    PageControl1.ActivePageIndex:=2;
    ConfirmMemo.Clear;
    NextButton.Caption:='下一步>>';
    Exit;
  end;
  //转到源数据表页======================
  if PageControl1.ActivePageIndex=2 then
  begin
    PageControl1.ActivePageIndex:=1;
    DestinationDatabaseNameEdit.Clear;
    DestinationTableNameListBox.Items.Clear;
    Exit;
  end;
  //转到介绍页======================
  if PageControl1.ActivePageIndex=1 then
  begin
    PageControl1.ActivePageIndex:=0;
    for i:=0 to SourceTableNameCheckListBox.Items.Count-1 do
      SourceTableNameCheckListBox.Checked[i]:=False;
    Exit;
  end;
  //无转接页========================
  if PageControl1.ActivePageIndex=0 then
    Exit;
end;

//下一步按钮事件================================================================
procedure TTB_DfmMain.NextButtonClick(Sender: TObject);
var
  i,j,k,m:integer;
  SourceFieldName:string;
  SourceFieldType:TFieldType;
  SourceFieldSize:integer;
  DestinationFieldTypeString:string;
  CreateTableString:string;
  CopyFilePath:string;
  CopySourceFileName:string;
  CopyDestinationFileName:string;
  SourceTablenames:TStrings;
begin
  //转换中英文表名==============================================================
  SourceTablenames:=TStringList.Create;
  SourceTablenames.Assign(SourceTableNameCheckListBox.Items);
  for m:=0 to SourceTablenames.Count-1 do
  begin
    if Pos('(',SourceTablenames[m])<>0 then
      SourceTablenames[m]:=Copy(SourceTablenames[m],1,Pos('(',SourceTablenames[m])-1);
  end;
  //转到源数据表页===================
  if PageControl1.ActivePageIndex=0 then
  begin
    PageControl1.ActivePageIndex:=1;
    Exit;
  end;
  //转到目标数据表页=================
  if PageControl1.ActivePageIndex=1 then
  begin
    DestinationTableNameListBox.Items.Clear;
    for i:=0 to SourceTableNameCheckListBox.Items.Count-1 do
    begin
      if SourceTableNameCheckListBox.Checked[i] then

⌨️ 快捷键说明

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