📄 udy.pas
字号:
unit udy;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ImgList, ComCtrls, DBCtrls, ToolWin, Grids,
DBGrids, DB, DBTables, Buttons, ADODB;
type
Tfrmdy = class(TForm)
Panel1: TPanel;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
ImageList1: TImageList;
Label1: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Label2: TLabel;
Label3: TLabel;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton2: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
ToolButton11: TToolButton;
ImageList2: TImageList;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Shape1: TShape;
Label4: TLabel;
ToolButton12: TToolButton;
ToolButton13: TToolButton;
DBGrid2: TDBGrid;
Label5: TLabel;
Label6: TLabel;
Edit3: TEdit;
Label7: TLabel;
Edit4: TEdit;
Label8: TLabel;
Edit5: TEdit;
Label18: TLabel;
Edit14: TEdit;
Label19: TLabel;
SpeedButton1: TSpeedButton;
ToolBar2: TToolBar;
ToolButton14: TToolButton;
ToolButton15: TToolButton;
ToolButton16: TToolButton;
ToolButton17: TToolButton;
ToolButton18: TToolButton;
ToolButton19: TToolButton;
ToolButton20: TToolButton;
ToolButton21: TToolButton;
ToolButton22: TToolButton;
ToolButton23: TToolButton;
ToolButton24: TToolButton;
ToolButton25: TToolButton;
ToolButton26: TToolButton;
DataSource2: TDataSource;
Shape2: TShape;
Query2: TADOQuery;
Qtest2: TADOQuery;
Query3: TADOQuery;
Query1: TADOQuery;
qtest: TADOQuery;
Qdyid: TADOQuery;
qdyfzid: TADOQuery;
procedure Button1Click(Sender: TObject);
procedure ToolButton10Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure ToolButton12Click(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure Query1AfterPost(DataSet: TDataSet);
procedure Query1AfterScroll(DataSet: TDataSet);
procedure DataSource1StateChange(Sender: TObject);
procedure ToolButton15Click(Sender: TObject);
procedure ToolButton17Click(Sender: TObject);
procedure ToolButton19Click(Sender: TObject);
procedure ToolButton23Click(Sender: TObject);
procedure ToolButton25Click(Sender: TObject);
procedure ToolButton21Click(Sender: TObject);
procedure Query2AfterPost(DataSet: TDataSet);
procedure Query2AfterScroll(DataSet: TDataSet);
procedure DataSource2StateChange(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure Shape1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
procedure Edit3Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmdy: Tfrmdy;
function dyfzidadd(qdyid:Tadoquery;sqlstr:string):string;
implementation
uses udb,Unit_browse;
{$R *.dfm}
function dyfzidadd(qdyid:Tadoquery;sqlstr:string):string;
var
idadd:integer;
begin
//idadd:=0;//初始化id
runsql(qdyid,'select * from dyfz');
////
if qdyid.RecordCount <1 then
begin
idadd:=0;
end
else
begin
//开始分析allisdb
if allisdb='access' then
runsql(qdyid,'select max(trim(dyfzid)) as maxid from dyfz');
if allisdb='sqlserver' then
runsql(qdyid,'select max(str(ltrim(dyfzid),3,0)) as maxid from dyfz');
//结束allisdb的分析
idadd:=qdyid.fieldbyname('maxid').AsInteger;
end;
idadd:=idadd+1;
if (idadd>99) then
begin
application.MessageBox('通讯录分组已有99个了,请删除不要的分组!',':提示:',mb_ok);
exit;//如果数据库中已有99个分组那么提示用户分组已满请先去清除
end;
//如果不到99那么就要自动加1
case length(inttostr(idadd)) of
1: result:='0'+inttostr(idadd);
2: result:=inttostr(idadd);
end;//end ...case
end;
procedure Tfrmdy.Button1Click(Sender: TObject);
begin
close;
end;
procedure Tfrmdy.ToolButton10Click(Sender: TObject);
begin
close;
end;
procedure Tfrmdy.FormCreate(Sender: TObject);
var
sqlstr:string;
begin
sqlstr:='select * from dyfz';
runsql(query1,sqlstr);
runsql(query2,'select dy.*,dyfz.dyfzname as dyfzname from dy,dyfz where dyfz.dyfzid=dy.dyfzid');
end;
procedure Tfrmdy.ToolButton3Click(Sender: TObject);
begin
edit1.Clear;
edit2.Clear;
query1.Insert;
//edit1.SetFocus;
//开始分析allisdb
if allisdb='access' then
edit1.Text:=dyfzidadd(qdyid,'select max(str(ltrim(fzid),3,0)) as maxid from dyfz');
if allisdb='sqlserver' then
edit1.Text:=dyfzidadd(qdyid,'select max(str(ltrim(fzid),3,0)) as maxid from dyfz');
//结束分析allisdb
edit2.SetFocus ;
end;
procedure Tfrmdy.ToolButton5Click(Sender: TObject);
begin
query1.Edit;
end;
procedure Tfrmdy.ToolButton12Click(Sender: TObject);
begin
query1.Cancel;
end;
procedure Tfrmdy.ToolButton6Click(Sender: TObject);
var
teststr,str:string;
begin
if application.MessageBox('是否要删除?','::提示::',mb_yesno)=id_yes then
begin
if ((trim(edit1.text)='') or (trim(edit2.text)='')) then
begin
application.MessageBox('请指明删除的对象','::提示::',mb_ok);
exit;
end;
teststr:='';
teststr:='select * from dyfz where (1=1)';
str:='';
str:=' and ((dyfzid = '''+trim(edit1.text)+''' ) or (dyfzname = '''+trim(edit2.text)+''')) ';
teststr:=teststr+str;
runsql(qtest,teststr);
if qtest.RecordCount <=0 then
begin
application.MessageBox('没有找到您要删除的对象','::提示::',mb_ok);
exit;
end;
runsql(qtest,'select * from dy where dy.dyfzid='''+trim(edit1.text)+'''');
if qtest.RecordCount >0 then
begin
application.MessageBox('请先删除短语组中的短语!','::提示::',mb_ok);
exit;
end;
qtest.Close;
qtest.SQL.Clear;
qtest.SQL.Text:='delete from dyfz where dyfzid = '''+trim(edit1.text)+''' or dyfzname = '''+trim(edit2.text)+'''';
qtest.ExecSQL;
////在做删除操作后开始刷新数据集////
runsql(query1,'select * from dyfz') ;
end
else
begin
exit;
end;
end;
procedure Tfrmdy.ToolButton1Click(Sender: TObject);
var
str,teststr:string;
begin
//检验输入的编号和名称是否为空//
if ((trim(edit1.text)='') or (trim(edit2.Text) ='')) then
begin
application.MessageBox('输入信息不完整!','::提示::',mb_ok);
exit;
end;
//结束检验//
//:首先检测在数据库中是否有相同的编号或是分组名称,如有则退出程序://
if (Query1.State in [dsinsert]) then
begin
teststr:='';
teststr:='select * from dyfz where (1=1)';
str:='';
str:=' and ((dyfzid = '''+trim(edit1.text)+''' ) or (dyfzname = '''+trim(edit2.text)+''')) ';
teststr:=teststr+str;
runsql(qtest,teststr);
if qtest.RecordCount >0 then
begin
application.MessageBox('数据库中已存在您增加的对象!','::提示::',mb_ok);
exit;
end;
end;
//:检测结束://
try
if (Query1.Modified) or (Query1.State in [dsinsert,dsEdit]) then
begin
query1.fieldbyname('dyfzid').asstring:=trim(edit1.text);
query1.fieldbyname('dyfzname').asstring :=trim(edit2.text);
Query1.Post;
query1.Close;
query1.Open;
end;
except
application.MessageBox('数据保存失败!','::提示::',mb_ok);
Query1.Cancel;
end;
//保存后的刷新数据集//
runsql(query1,'select * from dyfz');
end;
procedure Tfrmdy.Query1AfterPost(DataSet: TDataSet);
begin
//query1.RequestLive:=true;
runsql(query1,'select * from dyfz');
end;
procedure Tfrmdy.Query1AfterScroll(DataSet: TDataSet);
begin
edit1.Text:=query1.fieldbyname('dyfzid').AsString;
edit2.Text:=query1.fieldbyname('dyfzname').AsString;
end;
procedure Tfrmdy.DataSource1StateChange(Sender: TObject);
begin
Case DataSource1.State of
dsInactive:
begin
toolbutton3.Enabled:=false;
toolbutton6.Enabled:=false;
toolbutton5.Enabled:=false;
toolbutton2.Enabled:=false;
toolbutton1.Enabled:=false;
end;
dsBrowse:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -