?? 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 + -