📄 frm_portedit.pas
字号:
unit Frm_PortEdit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Frm_Cargo, XPMenu, StdCtrls, DB, ADODB;
type
TFrmPortEdit = class(TFrmCargo)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label12: TLabel;
Label4: TLabel;
Label6: TLabel;
Label8: TLabel;
EdtPortCode: TEdit;
EdtPortName: TEdit;
CmbCountryCode: TComboBox;
EdtRemark: TEdit;
CmbPortStation: TComboBox;
EdtPortCName: TEdit;
CmbArea: TComboBox;
QryTemp: TADOQuery;
BtnAdd: TButton;
BtnSave: TButton;
BtnClose: TButton;
procedure BtnAddClick(Sender: TObject);
procedure BtnSaveClick(Sender: TObject);
procedure BtnCloseClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure CmbCountryCodeExit(Sender: TObject);
procedure CmbPortStationExit(Sender: TObject);
private
{ Private declarations }
public
IsEdit: Boolean;
PortCode: string;
{ Public declarations }
end;
var
FrmPortEdit: TFrmPortEdit;
implementation
uses Frm_Main, Frm_PortInfo;
{$R *.dfm}
procedure TFrmPortEdit.BtnAddClick(Sender: TObject);
begin
inherited;
EdtPortCode.Text := '';
EdtPortName.Text := '';
EdtPortCname.Text := '';
CmbCountryCode.Text := '';
//EdtMark.Text := '';
CmbArea.Text := '';
//EdtPlaneOcean.Text := '';
CmbPortStation.Text := '';
EdtRemark.Text := '';
PortCode := '';
BtnAdd.Enabled := False;
IsEdit := False;
EdtPortCode.SetFocus;
end;
procedure TFrmPortEdit.BtnSaveClick(Sender: TObject);
var
SqlStr: string;
ArrayCount: Integer;
BeUpdateCode: Boolean;
I: Integer;
ValueArray: array[0..20] of string;
begin
if FrmMain.IncludeValue('普通代码维护') then
else
begin
ShowMessage('对不起,你不具有该操作的权限!');
exit;
end;
if trim(EdtPortCode.Text) = '' then
begin
ShowMessage('代码不能够为空,请输入');
exit;
end;
if trim(CmbCountryCode.Text) = '' then
begin
ShowMessage('国家名称不能够为空,请输入');
exit;
end;
if trim(EdtPortCode.Text) <> PortCode then //是否输入了相同的主健
begin
QryTemp.Close;
QryTemp.SQL.Text := 'Select * From PortInfo where PortCode=''' +
EdtPortCode.Text + '''';
QryTemp.Open;
if FrmMain.RecordCount(QryTemp) > 0 then
begin
ShowMessage('代码已存在,请重新输入');
EdtPortCode.SetFocus;
exit;
end;
end;
if IsEdit then
begin
try
BeUpdateCode := false;
if UpperCase(Trim(EdtPortCode.Text)) = UpperCase(PortCode) then
else
begin
BeUpdateCode := true;
end;
SqlStr := '';
FrmMain.UpStr(SqlStr, 'PortInfo');
if BeUpdateCode then
FrmMain.UpStr(SqlStr, 'PortCode', Trim(EdtPortCode.text), ',');
FrmMain.UpStr(SqlStr, 'PortName', Trim(EdtPortName.text), ',');
FrmMain.UpStr(SqlStr, 'PortCName', Trim(EdtPortCName.text), ',');
FrmMain.UpStr(SqlStr, 'CountryCode',
FrmMain.GetFieldText(CmbCountryCode.Text, 1), ',');
FrmMain.UpStr(SqlStr, 'Area', trim(CmbArea.text), ',');
FrmMain.UpStr(SqlStr, 'PortStation',
FrmMain.GetFieldText(CmbPortstation.Text, 1), ',');
FrmMain.UpStr(SqlStr, 'Remark', EdtRemark.text, '');
FrmMain.UpStr(SqlStr, 'PortCode=', PortCode, 'w');
if FrmMain.ExecSQL(SqlStr) then
else
begin
ShowMessage('更新代码记录失败,请检查!');
exit;
end;
PortCode := EdtPortCode.Text;
ValueArray[0] := EdtPortCode.Text;
ValueArray[1] := EdtPortName.Text;
ValueArray[2] := EdtPortCName.Text;
ValueArray[3] := FrmMain.GetFieldText(CmbCountryCode.Text, 1);
ValueArray[4] := FrmMain.GetFieldText(CmbCountryCode.Text, 2);
ValueArray[5] := CmbArea.Text;
ValueArray[6] := FrmMain.GetFieldText(CmbPortStation.Text, 1);
ValueArray[7] := FrmMain.GetFieldText(CmbPortStation.Text, 2);
ValueArray[8] := EdtRemark.Text;
ArrayCount := 8;
FrmMain.RefeshOne(ValueArray, ArrayCount, FrmPortInfo.lv);
FrmMain.UseDB.CommitTrans;
except
ShowMessage('更新代码记录失败,请检查!');
exit;
end;
end
else
begin
try
SqlStr :=
'Insert Into PortInfo(PortCode,PortName,PortCName,CountryCode,Area,PortStation,Remark) values(';
FrmMain.InsStr(SqlStr, trim(EdtPortCode.text), ',');
FrmMain.InsStr(SqlStr, trim(EdtPortName.text), ',');
FrmMain.InsStr(SqlStr, trim(EdtPortCName.text), ',');
FrmMain.InsStr(SqlStr, FrmMain.GetFieldText(CmbCountryCode.Text, 1), ',');
FrmMain.InsStr(SqlStr, trim(CmbArea.text), ',');
FrmMain.InsStr(SqlStr, FrmMain.GetFieldText(CmbPortStation.Text, 1), ',');
FrmMain.InsStr(SqlStr, trim(EdtRemark.text), '');
if FrmMain.ExecSQL(SqlStr) then
else
begin
ShowMessage('插入记录失败,请检查!');
exit;
end;
IsEdit := true;
BtnAdd.Enabled := True;
ValueArray[0] := EdtPortCode.Text;
ValueArray[1] := EdtPortName.Text;
ValueArray[2] := EdtPortCName.Text;
ValueArray[3] := FrmMain.GetFieldText(CmbCountryCode.Text, 1);
ValueArray[4] := FrmMain.GetFieldText(CmbCountryCode.Text, 2);
ValueArray[5] := CmbArea.Text;
ValueArray[6] := FrmMain.GetFieldText(CmbPortStation.Text, 1);
ValueArray[7] := FrmMain.GetFieldText(CmbPortStation.Text, 2);
ValueArray[8] := EdtRemark.Text;
ArrayCount := 8;
FrmMain.AddListView(ValueArray, ArrayCount, FrmPortInfo.lv);
except
ShowMessage('插入记录失败,请检查!');
exit;
end;
end;
if CmbArea.Text <> '' then
begin
for i := 0 to CmbArea.Items.Count - 1 do
begin
if CmbArea.Text = CmbArea.Items[i] then
Exit;
end;
CmbArea.Items.Add(CmbArea.Text);
CmbArea.Refresh;
end;
end;
procedure TFrmPortEdit.BtnCloseClick(Sender: TObject);
begin
inherited;
CLose;
end;
procedure TFrmPortEdit.FormCreate(Sender: TObject);
var
SqlStr: string;
begin
inherited;
SqlStr := 'Select Code,CName from CountryInfo';
FrmMain.Full_FilterCombobox(CmbCountryCode, SqlStr, 'Code', 'CName');
SqlStr := 'Select Code,CName from LaneCode';
FrmMain.Full_FilterCombobox(CmbPortStation, SqlStr, 'Code', 'CName');
EdtPortCode.SetFocus;
SqlStr := 'Select distinct Area from PortInfo where Area<>''''';
FrmMain.Full_FilterCombobox(CmbArea, Sqlstr, 'Area');
end;
procedure TFrmPortEdit.FormActivate(Sender: TObject);
begin
inherited;
if IsEdit then
begin
with FrmPortInfo do
begin
try
with QryTemp do
begin
Close;
Sql.Clear;
Sql.Text := 'Select PortCode,PortName,PortCName,CountryCode,Mark,Area,'
+ 'PlaneOcean,PortStation,Remark from PortInfo '
+ 'where PortCode=''' + PortCode + '''';
Open;
EdtPortCode.Text := FieldByName('PortCode').AsString;
EdtPortName.Text := FieldByname('PortName').AsString;
EdtPortCName.Text := FieldByName('PortCName').AsString;
CmbCountryCode.Text :=
FrmMain.SetComboBoxText(FieldByName('CountryCode').AsString,
CmbCountryCode);
CmbArea.Text := FieldByName('Area').AsString;
CmbPortStation.Text := FieldByName('PortStation').AsString;
EdtRemark.Text := FieldByName('Remark').AsString;
end;
except
if QryTemp.Active then QryTemp.Close;
ShowMessage('运行错误,返回!');
Exit;
end;
end;
end;
end;
procedure TFrmPortEdit.CmbCountryCodeExit(Sender: TObject);
begin
inherited;
CmbCountryCode.Text := FrmMain.CheckComboBox(CmbCountryCode);
end;
procedure TFrmPortEdit.CmbPortStationExit(Sender: TObject);
begin
inherited;
CmbPortStation.Text := FrmMain.CheckComboBox(CmbPortStation);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -