?? ukhysxx.~pas
字號:
unit UKHYSXX;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, ToolWin, ComCtrls, ExtCtrls, StdCtrls, Grids, DBGrids;
type
TFRM_KHYSXX = class(TForm)
ToolBar1: TToolBar;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
Panel1: TPanel;
Panel2: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Edit1: TEdit;
ComboBox1: TComboBox;
Edit2: TEdit;
DateTimePicker1: TDateTimePicker;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
DBGrid1: TDBGrid;
procedure SpeedButton6Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure ComboBox1DropDown(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure DateTimePicker1KeyPress(Sender: TObject; var Key: Char);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
procedure Edit4KeyPress(Sender: TObject; var Key: Char);
procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
procedure Edit2Change(Sender: TObject);
procedure Edit3Change(Sender: TObject);
procedure Edit4Change(Sender: TObject);
procedure Edit5Change(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
private
{ Private declarations }
public
procedure tr; //去除空字符
procedure bh; //自動編號
Procedure GetAll; //獲得所有數據
Procedure Posting; //提交數據
Procedure CLS; //清除控件中內容
Procedure DIS; //控件不可用
Procedure ENA; //控件可用
Function CanSave:Boolean; //判斷是否保存
{ Public declarations }
end;
var
FRM_KHYSXX: TFRM_KHYSXX;
implementation
uses UMAIN, UDM;
{$R *.dfm}
procedure TFRM_KHYSXX.tr;
var
i:integer;
begin
for i:=ComponentCount - 1 downto 0 do
if(Components[i] is TEdit) then
TEdit(Components[i]).Text:=trim(TEdit(Components[i]).Text);
end;
Function TFRM_KHYSXX.CanSave: Boolean;
begin
if (Edit1.Text='') then
begin
Result:=False;
Application.MessageBox('驗收編號不能為空!','提示信息',0+MB_ICONINFORMATION);
exit;
end;
if (ComboBox1.Text='') then
begin
Result:=False;
Application.MessageBox('客戶名稱不能為空!','提示信息',0+MB_ICONINFORMATION);
exit;
end;
if (Edit2.Text='') then
begin
Result:=False;
Application.MessageBox('托運單號不能為空!','提示信息',0+MB_ICONINFORMATION);
exit;
end;
if (Edit3.Text='') then
begin
Result:=False;
Application.MessageBox('驗收單位不能為空!','提示信息',0+MB_ICONINFORMATION);
exit;
end;
if (Edit4.Text='') then
begin
Result:=False;
Application.MessageBox('驗收人不能為空!','提示信息',0+MB_ICONINFORMATION);
exit;
end;
end;
procedure TFRM_KHYSXX.bh;
var
i:integer;
s,m:string;
begin
s:= 'YS'+ FormatDateTime('yyyymmdd',Now());
With DM.QKHYSXX do
begin
Close;
SQL.Clear;
SQL.Add('select max(驗收編號) as ss From 客戶驗收信息表');
Open;
end;
If DM.QKHYSXX.FieldByName('ss').Value=null then
s := s + '001'
else
begin
m:= Trim(DM.QKHYSXX.FieldByName('ss').Value) ;
i:= StrToInt(Trim(Copy(m,11,8))) ;
if i<9 then
s:= s + '00'+ InttoStr(i +1)
else if i<99 then
s:= s + '0'+ InttoStr(i +1)
else
s:= s +InttoStr(i +1);
end;
Edit1.Text := s;
end; /////////////////////////////
procedure TFRM_KHYSXX.GetAll;
begin
Edit1.Text:=DM.DSOKHYSXX.FieldByName('驗收編號').AsString;
ComboBox1.Text:=DM.DSOKHYSXX.FieldByName('客戶名稱').AsString;
Edit2.Text:=DM.DSOKHYSXX.FieldByName('托運單號').AsString;
DateTimePicker1.Date:=DM.DSOKHYSXX.FieldByName('驗收日期').AsDateTime;
Edit3.Text:=DM.DSOKHYSXX.FieldByName('驗收單位').AsString;
Edit4.Text:=DM.DSOKHYSXX.FieldByName('驗收人').AsString;
Edit5.Text:=DM.DSOKHYSXX.FieldByName('備注').AsString;
end;
procedure TFRM_KHYSXX.Posting;
begin
if ActionCD='N' then
BEGIN
with DM.QKHYSXX do
begin
Close;
SQL.Clear;
SQL.Add('INSERT INTO 客戶驗收信息表(驗收編號,客戶名稱,托運單號,驗收日期,驗收單位,驗收人,備注)');
SQL.Add('Values(:驗收編號,:客戶名稱,:托運單號,:驗收日期,:驗收單位,:驗收人,:備注)');
Parameters.Items[0].Value:=Edit1.Text;
Parameters.Items[1].Value:=ComboBox1.Text;
Parameters.Items[2].Value:=Edit2.Text;
DateTimePicker1.Date:=Date();
Parameters.Items[3].Value:=FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date);
Parameters.Items[4].Value:=Edit3.Text;
Parameters.Items[5].Value:=Edit4.Text;
Parameters.Items[6].Value:=Edit5.Text;
Prepared:=True;
ExecSQL;
end;
END else
if ActionCD='M' then
begin
With DM.QKHYSXX DO
begin
Close;
SQL.Clear;
SQL.Add('update 客戶驗收信息表 Set 客戶名稱=:客戶名稱1,');
SQL.Add('托運單號=:托運單號1,驗收日期=:驗收日期1,驗收單位=:驗收單位1,驗收人=:驗收人1,');
SQL.Add('備注=:備注1 where 驗收編號=:驗收編號1');
Parameters.Items[0].Value:=ComboBox1.Text;
Parameters.Items[1].Value:=Edit2.Text;
DateTimePicker1.Date:=Date();
Parameters.Items[2].Value:=FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date);
Parameters.Items[3].Value:=Edit3.Text;
Parameters.Items[4].Value:=Edit4.Text;
Parameters.Items[5].Value:=Edit5.Text;
Parameters.Items[6].Value:=DM.DSOKHYSXX.FieldByName('驗收編號').AsString;
Prepared:=true;
ExecSQL;
end;
end;
end;
procedure TFRM_KHYSXX.ENA;
var
i:integer;
begin
for i:=ComponentCount-1 downto 0 do
begin
if (Components[i] is TEdit) then
begin
TEdit(Components[i]).Color:=clWindow;
TEdit(Components[i]).ReadOnly:=False;
end;
end;
ComboBox1.Color:=clWindow;
DateTimePicker1.Color:=clWindow;
SpeedButton1.Enabled:=False;
SpeedButton2.Enabled:=False;
SpeedButton3.Enabled:=True;
SpeedButton4.Enabled:=False;
Panel1.Enabled:=True;
end;
procedure TFRM_KHYSXX.DIS;
var
i:integer;
begin
for i:=ComponentCount-1 downto 0 do
begin
if (Components[i] is Tedit) then
begin
TEdit(Components[i]).Color:=$00EFEFEF;
TEdit(Components[i]).ReadOnly:=true;
end;
end;
ComboBox1.Color:=$00EFEFEF;
DateTimePicker1.Color:=$00EFEFEF;
SpeedButton1.Enabled:=True;
SpeedButton2.Enabled:=True;
SpeedButton3.Enabled:=False;
SpeedButton4.Enabled:=False;
Panel1.Enabled:=False;
end;
procedure TFRM_KHYSXX.CLS;
var
i:integer;
begin
for i:=ComponentCount-1 downto 0 do
begin
if(Components[i] is TEdit) then
TEdit(Components[i]).Clear;
end;
ComboBox1.Clear;
DateTimePicker1.Date:=now;
end;
/////////////////////////////////////////////////////////////////////////
procedure TFRM_KHYSXX.SpeedButton6Click(Sender: TObject);
begin
ACtionCD:='';
Close;
end;
procedure TFRM_KHYSXX.SpeedButton1Click(Sender: TObject);
begin
CLS;
ENA;
ActionCD := 'N';
bh;
ComboBox1.SetFocus;
end;
procedure TFRM_KHYSXX.SpeedButton2Click(Sender: TObject);
begin
ENA;
SpeedButton4.Enabled:=True;
ACtionCD := 'M';
end;
procedure TFRM_KHYSXX.SpeedButton3Click(Sender: TObject);
begin
if (cansave) then
begin
Posting;
DIS;
DM.DSOKHYSXX.Close;
DM.DSOKHYSXX.Open;
Application.MessageBox('保存成功!','提示!',64);
actioncd:='';
self.Close;
end;
end;
procedure TFRM_KHYSXX.SpeedButton4Click(Sender: TObject);
begin
if DM.DSOKHYSXX.RecordCount=0 then
begin
Application.MessageBox('沒有記錄可以刪除!','提示',0+MB_ICONINFORMATION);
Exit;
end;
if DM.DSOKHYSXX.IsEmpty then
Exit;
if ID_YES=application.MessageBox('確實要刪除這條記錄嗎?','提示',MB_YESNO) then
begin
DM.DSOKHYSXX.Delete;
Self.OnShow(Sender);
end;
end;
procedure TFRM_KHYSXX.SpeedButton5Click(Sender: TObject);
begin
DIS;
SpeedButton4.Enabled:=False;
GetAll;
ActionCD:='';
end;
procedure TFRM_KHYSXX.FormCreate(Sender: TObject);
begin
with DM.QKHYSXX do
begin
Close;
SQL.Clear;
SQL.Add('Select * from 客戶驗收信息表');
Open;
end;
DM.DSOKHYSXX.Open;
end;
procedure TFRM_KHYSXX.FormShow(Sender: TObject);
begin
DIS;
if ActionCD = 'M' then
GetAll
else if ActionCD = 'N' then
begin
CLS;
ENA;
end;
end;
procedure TFRM_KHYSXX.DBGrid1CellClick(Column: TColumn);
begin
GetAll;
end;
procedure TFRM_KHYSXX.ComboBox1DropDown(Sender: TObject);
var
i:integer;
begin
ComboBox1.Clear;
With DM.QHWTYXX do
begin
CLose;
SQL.Clear;
SQL.Add('Select 客戶名稱 from 貨物托運信息表');
Open;
if (Recordcount>0) then
First;
for i:=0 to Recordcount-1 do
begin
ComboBox1.Items.Add(FieldByName('客戶名稱').AsString);
Next;
end;
end;
end;
procedure TFRM_KHYSXX.ComboBox1Change(Sender: TObject);
begin
Edit2.Clear;
with DM.QHWTYXX do
begin
Close;
SQL.Clear;
SQL.Add('Select 托運單號 from 貨物托運信息表 where 客戶名稱='+''''+ComboBox1.Text+'''');
Open;
end;
if ComboBox1.Text<>'' then
begin
Edit2.Text:=DM.QHWTYXX.FieldByName('托運單號').Value;
end;
DateTimePicker1.SetFocus;
end;
procedure TFRM_KHYSXX.DateTimePicker1KeyPress(Sender: TObject;
var Key: Char);
begin
if key=#13 then
Edit3.SetFocus;
end;
procedure TFRM_KHYSXX.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if key in['a'..'z','0'..'9','.'] then
key:=#0;
if key=#13 then
Edit4.SetFocus;
end;
procedure TFRM_KHYSXX.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
if key in['a'..'z','0'..'9','A'..'Z','.','-','+','*','/'] then
key:=#0;
if key=#13 then
Edit5.SetFocus;
end;
procedure TFRM_KHYSXX.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in [#8,#13]) then
key:=#0;
end;
procedure TFRM_KHYSXX.Edit2Change(Sender: TObject);
begin
tr
end;
procedure TFRM_KHYSXX.Edit3Change(Sender: TObject);
begin
tr
end;
procedure TFRM_KHYSXX.Edit4Change(Sender: TObject);
begin
tr
end;
procedure TFRM_KHYSXX.Edit5Change(Sender: TObject);
begin
tr
end;
procedure TFRM_KHYSXX.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
key:=#0;
end;
procedure TFRM_KHYSXX.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
FRM_MAIN.SetDBGird(Sender as TDBGrid,DM.QKHYSXX ,Rect,DataCol,Column,State);
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -