📄 uform_from_edit.pas
字号:
unit Uform_from_edit;
//来源管理窗口,用于设置各个来源的相关属性
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, ImgList, ComCtrls, StdCtrls, Buttons, ExtCtrls;
type
Tform_from_edit = class(TForm)
Panel1: TPanel;
Image1: TImage;
Label2: TLabel;
Label4: TLabel;
Label3: TLabel;
Label1: TLabel;
Bevel1: TBevel;
Image2: TImage;
Panel2: TPanel;
button_add: TBitBtn;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
Apart_list: TListView;
ImageList1: TImageList;
recordset_temp: TADOQuery;
procedure FormShow(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure button_addClick(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
intCount:integer;
end;
var
form_from_edit: Tform_from_edit;
implementation
uses UForm_apart_input, Uform_main;
{$R *.dfm}
procedure Tform_from_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 [FROM]');//选择FROM表中的所有内容
recordset_temp.Open ;
intCount:=recordset_temp.RecordCount ;
Label4.Caption :=inttostr(intCount) + '种';//初始化来源数目
//读取FROM表中所有的来源,显示在窗口中
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_from_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_from_edit.Image2.Picture ;
//显示新增来源窗口
form_apart_input.ShowModal ;
//判断用户是否正确输入新增来源名称
if form_apart_input.bYesno =false then exit;
//将输入内容添进数据库
form_main.Dconnect.Execute ('insert into [FROM]([FROM_NAME]) values(''' + form_apart_input.stringApartname +''')');
recordset_temp.SQL.Clear ;
recordset_temp.SQL.Add ('select * from [FROM]');
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_from_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 [FROM] where [FROM_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_from_edit.Image2.Picture ;
form_apart_input.ShowModal ;
//判断用户是否正确输入来源名称
if form_apart_input.bYesno =true then
begin
//修改对应内容
form_main.Dconnect.Execute('update [FROM] set [FROM_NAME]=''' + form_apart_input.stringApartname + ''' where [FROM_ID]=' + inttostr(P^));
//修改来源列表对应内容
apart_list.Selected.Caption :=form_apart_input.stringApartname ;
end;
end;
end;
procedure Tform_from_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_FROM]=' + 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_FROM]=' + 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_FROM]=' + 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) + '条交易纪录');
p:=Apart_list.Selected.Data;
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_FROM]=' + inttostr(p^) +')');
form_main.Dconnect.Execute('delete * from [JY] where [JY_CUSTOMID] in ( select [CUSTOM_ID] from [CUSTOM] where [CUSTOM_FROM]=' + inttostr(p^) + ')');
form_main.Dconnect.Execute('delete * from [CUSTOM] where [CUSTOM_FROM]=' + inttostr(p^));
form_main.Dconnect.Execute('delete * from [FROM] where [FROM_ID]=' + inttostr(p^));
Dispose(p);
//更新窗口显示
apart_list.Selected.Delete ;
intCount := intCount-1;
Label4.Caption :=inttostr(intCount) + '个';
end;
apart_list.SetFocus ;
end;
procedure Tform_from_edit.BitBtn3Click(Sender: TObject);
//关闭窗口
begin
close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -