📄 yskm.pas
字号:
unit yskm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, StdCtrls, Grids, DBGrids, DBCtrls;
type
Tfrmyskm = class(TForm)
Labyskmdm: TLabel;
Labyskmmc: TLabel;
Dacomdm: TDBComboBox;
Dacomyskmmc: TDBComboBox;
DBGrid1: TDBGrid;
cmdadd: TButton;
cmdmodi: TButton;
cmdsearch: TButton;
cmdpre: TButton;
cmdnext: TButton;
cmdstore: TButton;
cmddel: TButton;
cmdquit: TButton;
DataSource1: TDataSource;
Tableyskm: TTable;
Tableyskm2: TTable;
cmddis: TButton;
dacomyslbdm: TDBComboBox;
Labyslbdm: TLabel;
Tableyskmlb: TTable;
Labyslbmc: TLabel;
comboxyslbmc: TComboBox;
Database1: TDatabase;
procedure cmdaddClick(Sender: TObject);
procedure setbuttons(bval:boolean);
function storeyskm():boolean;
procedure cmddelClick(Sender: TObject);
procedure cmdstoreClick(Sender: TObject);
procedure cmdpreClick(Sender: TObject);
procedure cmdnextClick(Sender: TObject);
procedure cmdmodiClick(Sender: TObject);
procedure cmdquitClick(Sender: TObject);
procedure cmdsearchClick(Sender: TObject);
procedure cmddisClick(Sender: TObject);
procedure dacomyslbdmChange(Sender: TObject);
procedure comboxyslbmcChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure DacomdmChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmyskm: Tfrmyskm;
addrecord:integer;
m_yskmdm:string;
m_yskmmc:string;
implementation
{$R *.dfm}
procedure Tfrmyskm.cmdaddClick(Sender: TObject);
begin
addrecord:=1;
setbuttons(false);
dacomdm.SetFocus;
Tableyskm.Append;
end;
procedure Tfrmyskm.setbuttons(bval:boolean);
begin
cmdadd.Enabled:=bval;
cmdmodi.Enabled:=bval;
cmdsearch.Enabled:=bval;
cmddis.Enabled:=bval;
cmdpre.Enabled:=bval;
cmdnext.Enabled:=bval;
cmddel.Enabled:=bval;
cmdstore.Enabled:=not bval;
//cmddel.Enabled:=not bval;
if cmdquit.Caption='退出' then
cmdquit.Caption:='取消'
else
cmdquit.Caption:='退出';
dacomdm.Enabled:=not bval;
dacomyslbdm.Enabled:=not bval;
comboxyslbmc.Enabled:=not bval;
dacomyskmmc.Enabled:=not bval;
end;
function Tfrmyskm.storeyskm():boolean;
var
note:array[1..7] of string;
str:string;
begin
result:=false;
note[1]:='预算科目类别代码为空!';
note[2]:='预算科目类别名称不能为空!';
note[3]:='预算科目代码为空!';
note[4]:='预目科目名称不能为空!';
note[5]:='该预算科目代码已经存在!';
note[6]:='该预算科目名称已经存在!';
note[7]:='预算科目类别代码与预算科目代码不符!';
if dacomyslbdm.Text='' then
begin
showmessage(note[1]);
dacomyslbdm.SetFocus;
exit;
end;
if dacomdm.Text='' then
begin
showmessage(note[2]);
dacomdm.SetFocus;
exit;
end;
if dacomyskmmc.Text='' then
begin
showmessage(note[2]);
dacomyskmmc.SetFocus;
exit;
end;
str:=dacomdm.text;
str:=copy(str,1,1);
if str<>dacomyslbdm.Text then
begin
showmessage(note[7]);
dacomyskmmc.SetFocus;
exit;
end;
if addrecord=1 then
tableyskm2.Filter:='dm='''+dacomdm.Text+''''
//tableuser2.Filter:='yhmc='''+'111'+''''
else
if m_yskmdm=dacomdm.Text then
begin
result:=true;
exit;
end
else
tableyskm2.Filter:='dm='''+ dacomdm.Text+'''';
if not tableyskm2.Eof then
begin
showmessage(note[5]);
dacomdm.SetFocus;
exit;
end;
//query1.close;
//query1.SQL.clear;
//if addrecord=1 then
// begin
// query1.SQL.add('select * from companyuser where yhmc=:p1');
// query1.ParamByname('p1').AsString := dacomname.Text;
//end
//else
// begin
// query1.SQL.add('select * from companyuser where yhmc=:p1 and password=:p2');
// query1.ParamByname('p1').AsString := dacomname.Text;
//query1.ParamByname('p2').AsString := dacompass.Text;
// end;
//Query1.Prepare;
//query1.open;
//if not query1.Eof then
// begin
// showmessage(note[4]);
// exit;
// end;
if addrecord=1 then
tableyskm2.Filter:='yskmmc='''+dacomyskmmc.Text+''''
//tableuser2.Filter:='yhmc='''+'111'+''''
else
if m_yskmmc=dacomyskmmc.Text then
begin
result:=true;
exit;
end
else
tableyskm2.Filter:='yskmmc='''+ dacomyskmmc.Text+'''';
if not tableyskm2.Eof then
begin
showmessage(note[6]);
dacomyskmmc.SetFocus;
exit;
end;
result:=true;
end;
procedure Tfrmyskm.cmddelClick(Sender: TObject);
begin
Tableyskm.Delete
end;
procedure Tfrmyskm.cmdstoreClick(Sender: TObject);
begin
if storeyskm=true then
begin
tableyskm.post;
setbuttons(true);
end;
end;
procedure Tfrmyskm.cmdpreClick(Sender: TObject);
begin
tableyskm.MoveBy(-1);
if tableyskm.Bof then
begin
showmessage('这是第一条记录!');
// tableuser.MoveBy(1);
end;
end;
procedure Tfrmyskm.cmdnextClick(Sender: TObject);
begin
tableyskm.MoveBy(1);
if tableyskm.Eof then
begin
showmessage('这是最后一条记录!');
//tableuser.MoveBy(-1);
end;
end;
procedure Tfrmyskm.cmdmodiClick(Sender: TObject);
begin
m_yskmmc:=comboxyslbmc.Text;
m_yskmdm:=dacomdm.Text;
setbuttons(false);
addrecord:=2;
tableyskm.Edit;
end;
procedure Tfrmyskm.cmdquitClick(Sender: TObject);
begin
if cmdquit.Caption='退出' then
frmyskm.Close
else
begin
setbuttons(true);
tableyskm.Cancel;
cmdquit.Caption:='退出'
end;
end ;
procedure Tfrmyskm.cmdsearchClick(Sender: TObject);
var
inputstring:string;
begin
InputString:= InputBox('输入数据', '请输入要查询的预算科目代码或名称', '');
if InputString='' then
exit;
tableyskm.Filter:='dm='''+inputstring+'''';
if tableyskm.Eof then
begin
tableyskm.Filter:='yskmmc='''+inputstring+'''';
if tableyskm.Eof then
begin
showmessage('没有你要查询的数据!');
tableyskm.Filter:='dm<>'' ''';
exit;
end;
end;
end;
//procedure Tfrmuser.cmddisClick(Sender: TObject);
//begin
//tableuser.Filter:='yhmc<>'' ''';
//end;
procedure Tfrmyskm.cmddisClick(Sender: TObject);
begin
tableyskm.Filter:='dm<>''''';
end;
procedure Tfrmyskm.comboxyslbmcChange(Sender: TObject);
begin
//判断用户输入或选择的预算科目类别代码是否为空
if comboxyslbmc.text<>'' then
//用户输入或选择的预算科目类别代码不为空
begin
//设置tableyskmlb的Filter属性,已找到与用户输入或选择的预算科目类别代码对应的记录
tableyskmlb.Filter:='yslbmc='''+comboxyslbmc.Text+'''';
//判断是否有与用户输入或选择的预算科目类别代码对应的记录
if not tableyskmlb.eof then
//有与用户输入或选择的预算科目类别代码对应的记录,在与预算类别代码对应的
//dacomyslbdm组合框中显示与其对应的预算类别代码
dacomyslbdm.Text:=tableyskmlb.FieldValues['dm']
else
//有与用户输入或选择的预算科目类别代码对应的记录
begin
//给出提示
showmessage('该预算科目类别名称不存在!');
//将光标定位在comboxyslbmc上,要求用户重新输入或选择
comboxyslbmc.SetFocus;
exit;
end;
end
else
dacomyslbdm.Text:='';
dacomdm.text:='';
end;
procedure Tfrmyskm.dacomyslbdmChange(Sender: TObject);
begin
if dacomyslbdm.text<>'' then
begin
tableyskmlb.Filter:='dm='''+dacomyslbdm.Text+'''';
if not tableyskmlb.eof then
comboxyslbmc.Text:=tableyskmlb.FieldValues['yslbmc'];
end
//else
// begin
// showmessage('该预算科目类别代码不存在!');
// dacomyslbdm.SetFocus;
// exit;
// end;
end;
procedure Tfrmyskm.FormCreate(Sender: TObject);
begin
while not tableyskmlb.Eof do
begin
//设置与预算科目类别对应的dacomyslbdm组合框控件的初始值
dacomyslbdm.AddItem(tableyskmlb.FieldValues['dm'],sender);
//设置与预算科目名称对应的comboxyslbmc组合框控件的初始值
comboxyslbmc.AddItem(tableyskmlb.FieldValues['yslbmc'],sender);
tableyskmlb.MoveBy(1);
end;
end;
procedure Tfrmyskm.DacomdmChange(Sender: TObject);
begin
//判断用户输入或选择的预算科目代码是否为空
if dacomdm.text<>'' then
//用户输入或选择的预算科目代码不为空
begin
//设置tableyskmlb的Filter属性,已找到与用户输入或选择的预算科目代码对应的预算科目类别
tableyskmlb.Filter:='dm='''+copy(dacomdm.Text,1,1)+'''';
//判断是否有与用户输入或选择的预算科目类别代码对应的记录
if not tableyskmlb.eof then
begin
//有与用户输入的预算科目代码对应的对应的预算科目类别
//在与预算类别代码对应的dacomyslbdm组合框中显示与其对应的预算类别代码
dacomyslbdm.Text:=tableyskmlb.FieldValues['dm'];
//在与预算类别名称对应的dacomyslbmc组合框中显示与其对应的预算类别名称
comboxyslbmc.Text:=tableyskmlb.FieldValues['yslbmc']
end
else
//没有与用户输入预算科目代码对应的记录
begin
//给出提示
showmessage('该预算科目类别名称不存在!');
//将光标定位在dacomdm上,要求用户重新输入或选择
dacomdm.SetFocus;
exit;
end;
end
else
begin
dacomyslbdm.Text:='';
comboxyslbmc.text:='';
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -