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

📄 unit2.pas

📁 本人原创(delphi程序设计提高与应用)源码。《简单的数据库工作平台》其目的是教学生如何用delphi连接数据库、打开数据表
💻 PAS
字号:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, DBCtrls, ComCtrls, ToolWin, DB, DBTables, StdCtrls,
  Grids, DBGrids, Buttons;

type
  TForm2 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Panel1: TPanel;
    DBNavigator1: TDBNavigator;
    SBRunSQL: TSpeedButton;
    Panel2: TPanel;
    DataSource1: TDataSource;
    Table1: TTable;
    DBGrid1: TDBGrid;
    DBMemo1: TDBMemo;
    DBGrid2: TDBGrid;
    Query1: TQuery;
    DataSource2: TDataSource;
    SpeedButton1: TSpeedButton;
    Label1: TLabel;
    procedure Table1AfterInsert(DataSet: TDataSet);
    procedure Table1BeforeOpen(DataSet: TDataSet);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure SBRunSQLClick(Sender: TObject);
    procedure TabSheet2Enter(Sender: TObject);
    procedure TabSheet1Enter(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
  procedure MY_StrToStrs(const S:String;var ST:Tstrings);
var
  Form2: TForm2;
implementation
uses
UnitExcel,Unit3;
{$R *.dfm}

procedure TForm2.Table1AfterInsert(DataSet: TDataSet);
//在执行插入新纪录的操作后,将这条记录的“类型”字段赋值
begin
  DataSet.FieldByName('类型').Value:=Caption;
end;

procedure TForm2.Table1BeforeOpen(DataSet: TDataSet);
//Form2的Caption将
begin
  Table1.Filter:='类型='''+Caption+''''; //设置筛选条件
  Table1.Filtered:=True; //设置筛选状态
  if Caption<>'查询' then
     TabSheet2.TabVisible:=False;  //如果不是从查询菜单进入的,将TabSheet2置为不可视
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action:=caFree;
end;

procedure TForm2.SBRunSQLClick(Sender: TObject);
//运行SQL命令
var
SSQL,SSJKM:String;
ST:Tstrings;
I:Integer;
begin
  SSJKM:=Table1.FieldByname('数据库名').AsString;
  SSQL:=Table1.FieldByname('设置SQL').AsString;
if (Length(SSQL)=0) or (Length(SSJKM)=0) then exit;
   Query1.Close; //要先关闭后再重新设置参数
   Query1.DatabaseName:=SSJKM; //设置Query1的数据库别名
   MY_StrToStrs(SSQL,ST); //将Memo文本字符串转换成Tstrings
   Query1.SQL.Clear;//清空原有的SQL命令
  for I:=0 to ST.Count-1 do
     Query1.SQL.Add(ST.Strings[I]); //添加SQL命令
  if Table1.fieldByname('类型').asstring='查询'  then begin
     Query1.Active:=True ; //得到查询的数据
     Label1.Caption:='记录数:'+IntToStr(Query1.RecordCount);  //显示Query1所含的记录总数
  end else Query1.ExecSQL;      //对数据表执行插入、修改或删除的命令
end;

procedure TForm2.TabSheet1Enter(Sender: TObject);
//点击TabSheet1页时DBNavigator1连接DataSource1,即和Table1关联
begin
  DBNavigator1.DataSource:=DataSource1;
end;
procedure TForm2.TabSheet2Enter(Sender: TObject);
//点击TabSheet2页时DBNavigator1连接DataSource2,即和Query1关联
begin
  DBNavigator1.DataSource:=DataSource2;
end;

procedure MY_StrToStrs(const S:String;var ST:Tstrings);
//将Memo文本字符串转换成Tstrings
var
n:integer;
S1,S2:String;
const
  C=CHR(13);  
begin
  ST:=TStringlist.Create;
  S1:=S;
  while True do begin
    n:=Pos(C,S1);
    if n=0 then begin
       if Length(S1)>0 then begin
          ST.Add(S1);
       end;
         Break;
    end;
    S2:=copy(S1,1,n-1);
    ST.Add(S2);
    S1:=copy(S1,n+2,100000);
  end;
end;


procedure TForm2.SpeedButton1Click(Sender: TObject);
//将数据集Query1的数据生成Excel文件
begin
  PrintXis(Query1,Table1.FieldByName('说明').AsString);
end;

end.

⌨️ 快捷键说明

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