📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, bsSkinData, BusinessSkinForm, bsSkinCtrls, ImgList, ComCtrls,
XPMenu, DB, ADODB, bsSkinBoxCtrls, StdCtrls, Mask, bsSkinGrids, bsDBGrids,
bsMessages;
type
TForm1 = class(TForm)
bsBusinessSkinForm1: TbsBusinessSkinForm;
bsSkinData1: TbsSkinData;
bsCompressedStoredSkin1: TbsCompressedStoredSkin;
bsSkinPanel1: TbsSkinPanel;
TreeView1: TbsSkinTreeView;
ImageList1: TImageList;
ADOQuery1: TADOQuery;
ADOConnection1: TADOConnection;
bsSkinPanel2: TbsSkinPanel;
bsSkinLabel1: TbsSkinLabel;
bsSkinLabel2: TbsSkinLabel;
bsSkinLabel3: TbsSkinLabel;
bsSkinLabel4: TbsSkinLabel;
bsSkinLabel5: TbsSkinLabel;
bsSkinLabel6: TbsSkinLabel;
bsSkinLabel7: TbsSkinLabel;
bsSkinLabel8: TbsSkinLabel;
Edit1: TbsSkinEdit;
Edit2: TbsSkinEdit;
Edit3: TbsSkinEdit;
Edit4: TbsSkinEdit;
Edit5: TbsSkinEdit;
Edit6: TbsSkinEdit;
Edit7: TbsSkinEdit;
ComboBox1: TbsSkinComboBox;
bsSkinPanel3: TbsSkinPanel;
Button1: TbsSkinButton;
Button3: TbsSkinButton;
Button2: TbsSkinButton;
Button5: TbsSkinButton;
Button4: TbsSkinButton;
bsSkinPanel4: TbsSkinPanel;
DBGrid1: TbsSkinDBGrid;
bsSkinScrollBar1: TbsSkinScrollBar;
DataSource1: TDataSource;
bsSkinScrollBar2: TbsSkinScrollBar;
Message1: TbsSkinMessage;
bsSkinScrollBar3: TbsSkinScrollBar;
procedure FormCreate(Sender: TObject);
procedure TreeView1Click(Sender: TObject);
procedure disorenable(flag :boolean);
procedure DBGrid1CellClick(Column: TbsColumn);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure refresh();
function CFNum():string;
procedure Button5Click(Sender: TObject);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
procedure Edit5KeyPress(Sender: TObject; var Key: Char);
procedure Edit4KeyPress(Sender: TObject; var Key: Char);
procedure DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TbsColumn;
State: TGridDrawState);
private
{ Private declarations }
public
{ Public declarations }
he :integer;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+getcurrentdir+
'\friends.mdb;Persist Security Info=False;Jet OLEDB:Database Password=hejunpeng';
refresh();
Button1.Enabled :=false;
Button2.Enabled :=false;
Button3.Enabled :=false;
Button4.Enabled :=false;
Button5.Enabled :=false;
end;
procedure TForm1.refresh();
var
node1,node2,node3:TTreeNode;
Query ,Query2:TADOQuery;
begin
disorenable(false);
TreeView1.Items.Clear ;
node1 :=TreeView1.Items.Add(nil ,'同学录');
node1.ImageIndex :=0;
node1.StateIndex :=-1;
node1.SelectedIndex:=1;
Query2 :=TADOQuery.Create(self);
Query2.Connection :=ADOConnection1;
Query2.SQL.Clear ;
Query :=TADOQuery.Create(self);
Query.Connection :=ADOConnection1;
Query.SQL.Clear ;
Query.SQL.Text :='select distinct 类型 from fd';
Query.Open ;
while not Query.Eof do //添加所有的村庄为第二层子节点
begin
node2 :=TreeView1.Items.AddChild(node1,Query.fieldByName('类型').AsString );
node2.ImageIndex :=0;
node2.StateIndex :=-1;
node2.SelectedIndex:=1;
Query2.SQL.Text :='select 姓名 from fd where 类型=:A';
Query2.Parameters.ParamByName('A').Value :=node2.Text ;
Query2.Open ;
while not Query2.Eof do //添加村庄中的所有客户为第三层子节点
begin
node3 :=TreeView1.Items.AddChild(node2,Query2.fieldByName('姓名').AsString );
node3.ImageIndex :=2;
node3.StateIndex :=-1;
node3.SelectedIndex:=3;
Query2.Next ;
end;
Query.Next ;
end;
Query2.Close;
Query2.Free;
Query.Close;
Query.Free;
end;
procedure TForm1.TreeView1Click(Sender: TObject);
begin
if TreeView1.Selected.Level=0 then
begin
Edit1.Text :='';
Edit2.Text :=''; //单击到第一层(村庄)时,清空各框
Edit3.Text :='';
Edit4.Text :='';
Edit5.Text :='';
Edit6.Text :='';
Edit7.Text :='';
ComboBox1.Text :='';
end;
if TreeView1.Selected.Level=1 then
begin
Edit1.Text :=''; //单击第二层(各个具体的村)时,清空各框
Edit2.Text :='';
Edit3.Text :='';
Edit4.Text :='';
Edit5.Text :='';
Edit6.Text :='';
Edit7.Text :='';
Button2.Enabled:=true;
ComboBox1.Text :='';
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.Text :='select * from fd where 类型=:A';
ADOQuery1.Parameters.ParamByName('A').Value :=TreeView1.Selected.Text ;
ADOQuery1.Prepared ;
ADOQuery1.Open ;
end;
if TreeView1.Selected.Level=2 then //单击第三层(客户名)时,显示该客户的信息
begin
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.Text :='select * from fd where 类型=:A and 姓名=:B';
ADOQuery1.Parameters.ParamByName('A').Value :=TreeView1.Selected.Parent.Text ;
ADOQuery1.Parameters.ParamByName('B').Value :=TreeView1.Selected.Text ;
ADOQuery1.Prepared ;
ADOQuery1.Open ;
if ADOQuery1.RecordCount=1 then
begin
Edit1.Text :=ADOQuery1.fieldByName('编号').AsString ;
Edit2.Text :=ADOQuery1.fieldByName('姓名').AsString ;
Edit3.Text :=ADOQuery1.fieldByName('电话').AsString ;
Edit4.Text :=ADOQuery1.fieldByName('手机').AsString ;
Edit5.Text :=ADOQuery1.fieldByName('QQ号').AsString ;
Edit6.Text :=ADOQuery1.fieldByName('Email').AsString ;
Edit7.Text :=ADOQuery1.fieldByName('地址').AsString ;
ComboBox1.text :=ADOQuery1.FieldByName('类型').AsString ;
end;
Button1.Enabled :=true;
Button2.Enabled :=true;
Button5.Enabled :=true;
end;
end;
procedure TForm1.DBGrid1CellClick(Column: TbsColumn);
begin
Edit1.Text :=ADOQuery1.fieldByName('编号').AsString ;
Edit2.Text :=ADOQuery1.fieldByName('姓名').AsString ;
Edit3.Text :=ADOQuery1.fieldByName('电话').AsString ;
Edit4.Text :=ADOQuery1.fieldByName('手机').AsString ;
Edit5.Text :=ADOQuery1.fieldByName('QQ号').AsString ;
Edit6.Text :=ADOQuery1.fieldByName('Email').AsString ;
Edit7.Text :=ADOQuery1.fieldByName('地址').AsString ;
ComboBox1.text :=ADOQuery1.FieldByName('类型').AsString ;
Button1.Enabled :=true;
Button2.Enabled :=true;
Button5.Enabled :=true;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
disorenable(true);
Edit1.Enabled :=false;
Button1.Enabled :=false;
Button2.Enabled :=false;
Button3.Enabled :=true;
Button4.Enabled :=true;
Button5.Enabled :=false;
he :=1;
end;
procedure TForm1.disorenable(flag :boolean);
begin
if flag then
begin
Edit1.Enabled :=true;
Edit2.Enabled :=true;
Edit3.Enabled :=true;
Edit4.Enabled :=true;
Edit5.Enabled :=true;
Edit6.Enabled :=true;
Edit7.Enabled :=true;
ComboBox1.Enabled :=true;
end
else
begin
Edit1.Enabled :=false;
Edit2.Enabled :=false;
Edit3.Enabled :=false;
Edit4.Enabled :=false;
Edit5.Enabled :=false;
Edit6.Enabled :=false;
Edit7.Enabled :=false;
ComboBox1.Enabled :=false;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
Query :TADOQuery;
begin
if ComboBox1.Text='' then
begin
Message1.MessageDlg('类型不能为空!',(mtWarning),[mbOK],0);
ComboBox1.SetFocus ;
Exit;
end;
if Edit1.text='' then
begin
Message1.MessageDlg('编号不能为空!',(mtWarning),[mbOK],0);
//Edit1.SetFocus ;
Exit;
end;
if Edit2.text='' then
begin
Message1.MessageDlg('姓名不能为空!',(mtWarning),[mbOK],0);
Edit2.SetFocus ;
Exit;
end;
if he=1 then
begin
ADOQuery1.Edit ;
ADOQuery1.FieldByName('编号').AsString :=trim(Edit1.text);
ADOQuery1.FieldByName('姓名').AsString :=trim(Edit2.text);
ADOQuery1.FieldByName('电话').AsString :=trim(Edit3.text);
ADOQuery1.FieldByName('手机').AsString :=trim(Edit4.text);
ADOQuery1.FieldByName('QQ号').AsString :=trim(Edit5.text);
ADOQuery1.FieldByName('Email').AsString :=trim(Edit6.text);
ADOQuery1.FieldByName('地址').AsString :=trim(Edit7.text);
ADOQuery1.FieldByName('类型').AsString :=trim(ComboBox1.text);
ADOQuery1.Post ;
Message1.MessageDlg('编辑成功!',(mtInformation),[mbOK],0);
end
else if he=2 then
begin
Query :=TADOQuery.Create(self);
Query.Connection :=ADOConnection1;
Query.SQL.Clear ;
Query.SQL.Text :='select * from fd where 编号=:A';
Query.Parameters.ParamByName('A').Value :=trim(Edit1.Text );
Query.Open ;
if not Query.IsEmpty then
begin
Message1.MessageDlg('已存在的编号!',(mtWarning),[mbOK],0);
Query.Close ;
Query.Free ;
Exit;
end;
Query.Close ;
Query.Free ;
ADOQuery1.Append ;
ADOQuery1.FieldByName('编号').AsString :=trim(Edit1.text);
ADOQuery1.FieldByName('姓名').AsString :=trim(Edit2.text);
ADOQuery1.FieldByName('电话').AsString :=trim(Edit3.text);
ADOQuery1.FieldByName('手机').AsString :=trim(Edit4.text);
ADOQuery1.FieldByName('QQ号').AsString :=trim(Edit5.text);
ADOQuery1.FieldByName('Email').AsString :=trim(Edit6.text);
ADOQuery1.FieldByName('地址').AsString :=trim(Edit7.text);
ADOQuery1.FieldByName('类型').AsString :=trim(ComboBox1.text);
ADOQuery1.Post ;
Message1.MessageDlg('添加成功!',(mtInformation),[mbOK],0);
refresh();
end;
he :=0;
disorenable(false);
Button1.Enabled :=true;
Button2.Enabled :=true;
Button3.Enabled :=false;
Button4.Enabled :=false;
Button5.Enabled :=true;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
disorenable(false);
Button1.Enabled :=true;
Button2.Enabled :=true;
Button3.Enabled :=false;
Button4.Enabled :=false;
Button5.Enabled :=true;
end;
function TForm1.CFNum():string; //编号的数字的最大数+1
var
Query :TADOQuery;
StrShort,StrLong :string;
LongNum,ShortNum,MaxNum :integer;
begin
MaxNum:=0;
Query :=TADOQuery.Create(self);
Query.Connection :=ADOConnection1;
Query.SQL.Clear ;
Query.SQL.Text :='select 编号 from fd';
Query.Open ;
if not Query.IsEmpty then
begin
while not Query.Eof do
begin
StrLong:=Query.fieldByName('编号').AsString ;
LongNum:=Length(StrLong);
StrShort :=Copy(StrLong,3,(LongNum-2));
ShortNum :=StrToInt(StrShort);
if MaxNum<ShortNum then
begin
MaxNum:=ShortNum ;
end;
Query.Next ;
end;
MaxNum:=MaxNum+1;
result :='CF'+IntToStr(MaxNum);
end
else
result :='CF1';
Query.Close ;
Query.Free ;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
disorenable(true);
Edit1.Enabled :=false;
Edit1.Text :='';
Edit2.Text :='';
Edit3.Text :='';
Edit4.Text :='';
Edit5.Text :='';
Edit6.Text :='';
Edit7.Text :='';
ComboBox1.Text :='请选择';
Button1.Enabled :=false;
Button2.Enabled :=false;
Button3.Enabled :=true;
Button4.Enabled :=true;
Button5.Enabled :=false;
Edit1.Text :=CFNum();
he :=2;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
if Message1.MessageDlg('确认在删除吗?',(mtWarning),mbOKCancel,0)=mrOK then
begin
ADOQuery1.Delete;
refresh();
end;
end;
procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if not(Key in['0'..'9','-',#8]) then
begin
Message1.MessageDlg('呵呵,只能输入数字和 - !',(mtWarning),[mbOK],0);
Key :=#0;
Edit3.SetFocus ;
end;
end;
procedure TForm1.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if not(Key in['0'..'9',#8]) then
begin
Message1.MessageDlg('呵呵,只能输入数字!',(mtWarning),[mbOK],0);
Key :=#0;
Edit5.SetFocus ;
end;
end;
procedure TForm1.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
if not(Key in['0'..'9','-',#8]) then
begin
Message1.MessageDlg('呵呵,只能输入数字!',(mtWarning),[mbOK],0);
Key :=#0;
Edit4.SetFocus ;
end;
end;
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TbsColumn;
State: TGridDrawState);
begin
if DBGrid1.DataSource.DataSet.RecNo mod 2 = 0 then //条件判断
begin
with DBGrid1 do
begin
Canvas.Font.Color:=clWhite;
Canvas.Brush.Color:=TColor(RGB(88,105,174));
end;
end;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
end.
//此源码由程序太平洋收集整理发布,任何人都可自由转载,但需保留本站信息
//╭⌒╮┅~ ¤ 欢迎光临程序太平洋╭⌒╮
//╭⌒╭⌒╮╭⌒╮~╭⌒╮ ︶ ,︶︶
//,︶︶︶︶,''︶~~ ,''~︶︶ ,''
//╔ ╱◥███◣═╬╬╬╬╬╬╬╬╬╗
//╬ ︱田︱田 田 ︱ ╬
//╬ http://www.5ivb.net ╬
//╬ ╭○╮● ╬
//╬ /■\/■\ ╬
//╬ <| || 有希望,就有成功! ╬
//╬ ╬
//╚╬╬╬╬╬╬╬╬╬╬╗ ╔╬╬╬╬╝
//
//说明:
//专业提供VB、.NET、Delphi、ASP、PB源码下载
//包括:程序源码,控件,商业源码,系统方案,开发工具,书籍教程,技术文档
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -