📄 uform_area_edit.pas
字号:
unit Uform_area_edit;
//区域管理窗口,用于设置各个区域的相关属性
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ComCtrls, DB, ADODB, ImgList, ExtCtrls;
type
Tform_area_edit = class(TForm)
Panel1: TPanel;
Image1: TImage;
Label2: TLabel;
Label4: TLabel;
Label3: TLabel;
Label1: TLabel;
Bevel1: TBevel;
Image2: TImage;
ImageList1: TImageList;
recordset_temp: TADOQuery;
Apart_list: TListView;
Panel2: TPanel;
button_add: TBitBtn;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure button_addClick(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
intCount:integer;
end;
var
form_area_edit: Tform_area_edit;
implementation
uses UForm_apart_input, Uform_main;
{$R *.dfm}
procedure Tform_area_edit.BitBtn1Click(Sender: TObject);
//向数据库中添加新区域
var
ListItem: TListItem;
p:^integer;
begin
//不断将用户输入的区域名称添加到数据库,直至用户希望停止为止
repeat
//初始化新建区域窗口的内容
form_apart_input.Caption :='登记新的区域';
form_apart_input.Edit1.Text :='';
form_apart_input.Label1.Caption :='登记区域';
form_apart_input.Label2.Caption :='登记区域';
form_apart_input.Label3.caption:=' 请在下面输入欲登记新区域的名称:';
form_apart_input.Image2.Picture :=form_area_edit.Image2.Picture ;
//显示新建区域窗口
form_apart_input.ShowModal ;
//判断用户是否正确输入区域名称
if form_apart_input.bYesno =false then exit;
//将输入内容添进数据库
form_main.Dconnect.Execute ('insert into [AREA]([AREA_NAME]) values(''' + form_apart_input.stringApartname +''')');
recordset_temp.SQL.Clear ;
recordset_temp.SQL.Add ('select * from [AREA]');
recordset_temp.Open ;
recordset_temp.Last ;
new(p);
p^:=recordset_temp.Fields[0].AsInteger ;
//更新区域列表的内容
listitem:=apart_LIST.Items.Add ;
listitem.Caption :=form_apart_input.stringApartname ;
listitem.ImageIndex :=0 ;
listitem.Data:=p;
//更新区域数量
intCount := intCount+1;
Label4.Caption :=inttostr(intCount) + '个';
until messagebox(self.Handle ,'您是否还要添加新的区域?','提示',MB_YESNO or MB_ICONASTERISK)<> IDYES;
end;
procedure Tform_area_edit.FormShow(Sender: TObject);
//在本窗口开启时调用数据库内容初始化窗口内容
var
i:integer;
ListItem: TListItem;
p:^integer;
begin
//清除原先内容
apart_list.Items.Clear ;
recordset_temp.SQL.Clear ;
recordset_temp.SQL.Add ('select * from [AREA]');//选择AREA表中的所有内容
recordset_temp.Open ;
intCount:=recordset_temp.RecordCount ;
Label4.Caption :=inttostr(intCount) + '个';//初始化区域数目
//读取AREA表中所有的区域,显示在窗口中
for i:=1 to recordset_temp.RecordCount do
begin
listitem:=apart_LIST.Items.Add ;
listitem.Caption :=recordset_temp.Fields[1].AsString ;
listitem.ImageIndex :=0;
new(p);
p^ := recordset_temp.Fields[0].AsInteger ;
listitem.Data :=p;
recordset_temp.Next;
end;
end;
procedure Tform_area_edit.button_addClick(Sender: TObject);
//修改原有的区域名称
var
p:^integer;
begin
//是否在列表中选择某一区域
if apart_list.Selected =nil then exit ;
//查询数据库
recordset_temp.SQL.Clear ;
p:=Apart_list.Selected.Data;
recordset_temp.SQL.Add ('select * from [AREA] where [AREA_ID]=' + inttostr(p^));
recordset_temp.Open ;
//确认数据库中存在该区域
if recordset_temp.RecordCount <>0 then
begin
//初始化修改区域名称窗口
form_apart_input.Edit1.Text :=recordset_temp.Fields[1].AsString ;
form_apart_input.Caption :='修改区域';
form_apart_input.Label1.Caption :='修改区域';
form_apart_input.Label2.Caption :='修改区域';
form_apart_input.Label3.caption:=' 请在下面修改区域的名称:';
form_apart_input.Image2.Picture :=form_area_edit.Image2.Picture ;
form_apart_input.ShowModal ;
//判断用户是否正确输入区域名称
if form_apart_input.bYesno =true then
begin
//修改对应内容
form_main.Dconnect.Execute('update [AREA] set [AREA_NAME]=''' + form_apart_input.stringApartname + ''' where [AREA_ID]=' + inttostr(P^));
//修改区域列表对应内容
apart_list.Selected.Caption :=form_apart_input.stringApartname ;
end;
end;
end;
procedure Tform_area_edit.BitBtn3Click(Sender: TObject);
//关闭本窗口
begin
close;
end;
procedure Tform_area_edit.BitBtn2Click(Sender: TObject);
//删除某一区域
var
temp:pchar;
p:^integer;
count1:integer;
count2:integer;
count3:integer;
begin
//是否在部门列表中选择某区域
if apart_list.Selected =nil then exit ;
//搜寻数据库中关于该区域的评价纪录,客户纪录,评价纪录
p:=Apart_list.Selected.Data;
recordset_temp.SQL.Clear;
recordset_temp.SQL.Add('select count([CUSTOM_ID]) from [CUSTOM] where [CUSTOM_AREA]=' + inttostr(p^));
recordset_temp.Open;
count1:=recordset_temp.Fields[0].AsInteger ;
recordset_temp.Close ;
recordset_temp.SQL.Clear ;
recordset_temp.SQL.Add('select count([PJ_ID]) from [PJ] where [PJ_CU_ID] in ( select [CUSTOM_ID] from [CUSTOM] where [CUSTOM_AREA]=' + inttostr(p^) +')');
recordset_temp.Open ;
count2:=recordset_temp.Fields[0].AsInteger ;
recordset_temp.Close ;
recordset_temp.SQL.Clear ;
recordset_temp.SQL.Add('select count([JY_ID]) from [JY] where [JY_CUSTOMID] in ( select [CUSTOM_ID] from [CUSTOM] where [CUSTOM_AREA]=' + inttostr(p^) +')');
recordset_temp.Open;
count3:=recordset_temp.Fields[0].AsInteger ;
recordset_temp.Close ;
//再次询问用户以确定删除
temp:=pchar('您是否确定要删除['+apart_list.Selected.caption + ']' + #13 + #13 +
'您将关联删除' + inttostr(count1) + '名客户纪录' + #13 +
'您将关联删除' + inttostr(count2) + '条部门评价纪录' + #13 +
'您将关联删除' + inttostr(count3) + '条交易纪录');
if messagebox(self.Handle, temp,
'警告',MB_yesno or MB_ICONQUESTION )=IDyes then
begin
//删除数据库中对应内容
form_main.Dconnect.Execute('delete * from [PJ] where [PJ_CU_ID] in ( select [CUSTOM_ID] from [CUSTOM] where [CUSTOM_AREA]=' + inttostr(p^) +')');
form_main.Dconnect.Execute('delete * from [JY] where [JY_CUSTOMID] in ( select [CUSTOM_ID] from [CUSTOM] where [CUSTOM_AREA]=' + inttostr(p^) + ')');
form_main.Dconnect.Execute('delete * from [CUSTOM] where [CUSTOM_AREA]=' + inttostr(p^));
form_main.Dconnect.Execute('delete * from [AREA] where [AREA_ID]=' + inttostr(p^));
Dispose(p);
//更新窗口显示
apart_list.Selected.Delete ;
intCount := intCount-1;
Label4.Caption :=inttostr(intCount) + '个';
end;
apart_list.SetFocus ;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -