📄 frm_basedataedit.pas
字号:
unit Frm_BaseDataEdit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Frm_Cargo, XPMenu, StdCtrls, DB, ADODB;
type
TFrmBaseDataEdit = class(TFrmCargo)
Label1: TLabel;
EdtCode: TEdit;
Label2: TLabel;
EdtEName: TEdit;
Label3: TLabel;
EdtCName: TEdit;
Label12: TLabel;
EdtRemark: TEdit;
QryTemp: TADOQuery;
BtnAdd: TButton;
BtnSave: TButton;
BtnClose: TButton;
procedure BtnAddClick(Sender: TObject);
procedure BtnSaveClick(Sender: TObject);
procedure BtnCloseClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
TableCode: string;
IsEdit: Boolean;
{ Public declarations }
end;
var
FrmBaseDataEdit: TFrmBaseDataEdit;
implementation
uses Frm_Main, Frm_BaseData;
{$R *.dfm}
procedure TFrmBaseDataEdit.BtnAddClick(Sender: TObject);
begin
inherited;
EdtCode.Text := '';
EdtEName.Text := '';
EdtCName.Text := '';
EdtRemark.Text := '';
TableCode := '';
BtnAdd.Enabled := False;
IsEdit := false;
EdtCode.SetFocus;
end;
procedure TFrmBaseDataEdit.BtnSaveClick(Sender: TObject);
var
SqlStr: string;
ArrayCount: Integer;
ValueArray: array[0..20] of string;
BeUpdateCode: Boolean;
begin
inherited;
if FrmMain.IncludeValue('普通代码维护') then
else
begin
ShowMessage('对不起,你不具有该操作的权限!');
exit;
end;
if trim(EdtCode.Text) = '' then
begin
ShowMessage('代码不能够为空,请输入');
EdtCode.SetFocus;
exit;
end;
if trim(EdtCode.Text) = TableCode then //是否输入了相同的主健
else
begin
if FrmMain.CheckExistCount('Code', EdtCode.Text, FrmBaseData.TableName) > 0
then
begin
ShowMessage('代码已存在,请重新输入');
EdtCode.SetFocus;
exit;
end;
end;
if IsEdit then
begin
try
FrmMain.UseDB.BeginTrans;
BeUpdateCode := false;
if UpperCase(trim(EdtCode.Text)) = UpperCase(TableCode) then
else
begin
BeUpdateCode := true;
if (FrmBaseData.TableName = 'CountryInfo') then
begin
if (TableCode <> EdtCode.Text) and
((FrmMain.CheckExistCount('CountryCode', TableCode, 'PortInfo') > 0)
or
(FrmMain.CheckExistCount('CountryCode', TableCode, 'CustomerInfo') >
0)
or (FrmMain.CheckExistCount('Country', TableCode, 'Company') > 0))
then
begin
if
MessageDlg('该代码已经使用,不能够进行修改,,是否继续执行,请确定!',
mtConfirmation, [mbYes, MbNo], 0) = mrno then
begin
EdtCode.Text := TableCode;
FrmMain.UseDB.RollbackTrans;
exit;
end;
//更新港口信息
SqlStr := 'UpDate PortInfo set CountryCode=''' + trim(EdtCode.Text)
+
''' where CountryCode=''' + TableCode + '''';
if FrmMain.ExecSQL(SqlStr) then
else
begin
ShowMessage('更新代码记录失败,请检查!');
exit;
end;
SqlStr := 'UpDate Company set Country=''' + trim(EdtCode.Text) +
''' where Country=''' + TableCode + '''';
if FrmMain.ExecSQL(SqlStr) then
else
begin
ShowMessage('更新代码记录失败,请检查!');
exit;
end;
SqlStr := 'UpDate CustomerInfo set CountryCode=''' +
trim(EdtCode.Text) + ''' where CountryCode=''' + TableCode + '''';
if FrmMain.ExecSQL(SqlStr) then
else
begin
ShowMessage('更新代码记录失败,请检查!');
exit;
end;
end
else
begin
BeUpdateCode := true;
end;
end;
end;
if (FrmBaseData.TableName = 'LaneCode') then
begin
if (FrmMain.CheckExistCount('PortStation', TableCode, 'PortInfo') > 0)
and
(TableCode <> EdtCode.Text) then
begin
if
MessageDlg('该代码已经使用,不能够进行修改,,是否继续执行,请确定!',
mtConfirmation, [mbYes, mbNo], 0) = mrno then
begin
EdtCode.Text := TableCode;
FrmMain.UseDB.RollbackTrans;
exit;
end;
//更新港口信息
SqlStr := 'UpDate PortInfo set PortStation=''' + trim(EdtCode.Text) +
''' where PortStation=''' + TableCode + '''';
if FrmMain.ExecSQL(SqlStr) then
else
begin
ShowMessage('更新代码记录失败,请检查!');
exit;
end;
end
else
begin
BeUpdateCode := true;
end;
end;
if (FrmBaseData.TableName = 'DeptmentInfo') then
begin
if ((FrmMain.CheckExistCount('Dept', TableCode, 'BussinessMan') > 0) or
(FrmMain.CheckExistCount('UserDept', TableCode, 'FuncRights') > 0))
and
(TableCode <> EdtCode.Text) then
begin
if
MessageDlg('该代码已经使用,不能够进行修改,,是否继续执行,请确定!',
mtConfirmation, [mbYes, mbNo], 0) = mrno then
begin
EdtCode.Text := TableCode;
FrmMain.UseDB.RollbackTrans;
exit;
end;
//更新港口信息
SqlStr := 'UpDate BussinessMan set Dept=''' + trim(EdtCode.Text) +
''' where Dept=''' + TableCode + '''';
if FrmMain.ExecSQL(SqlStr) then
else
begin
ShowMessage('更新代码记录失败,请检查!');
exit;
end;
SqlStr := 'UpDate FuncRights set UserDept=''' + trim(EdtCode.Text) +
''' where UserDept=''' + TableCode + '''';
if FrmMain.ExecSQL(SqlStr) then
else
begin
ShowMessage('更新代码记录失败,请检查!');
exit;
end;
end
else
begin
BeUpdateCode := true;
end;
end;
if (FrmBaseData.TableName = 'ProviceInfo') then
begin
if (TableCode <> EdtCode.Text) and
((FrmMain.CheckExistCount('ProviceCode',
TableCode, 'CustomerInfo') > 0) or (FrmMain.CheckExistCount('Provice',
TableCode, 'Company') > 0)) then
begin
if
MessageDlg('该代码已经使用,不能够进行修改,,是否继续执行,请确定!',
mtConfirmation, [mbYes, mbNo], 0) = mrno then
begin
EdtCode.Text := TableCode;
FrmMain.UseDB.RollbackTrans;
exit;
end;
//更新港口信息
SqlStr := 'UpDate CustomerInfo set ProviceCode=''' + trim(EdtCode.Text)
+ ''' where ProviceCode=''' + TableCode + '''';
if FrmMain.ExecSQL(SqlStr) then
else
begin
ShowMessage('更新代码记录失败,请检查!');
exit;
end;
SqlStr := 'UpDate Company set Porvice=''' + trim(EdtCode.Text) +
''' where Provice=''' + TableCode + '''';
if FrmMain.ExecSQL(SqlStr) then
else
begin
ShowMessage('更新代码记录失败,请检查!');
exit;
end;
end
else
begin
BeUpdateCode := true;
end;
end;
SqlStr := '';
FrmMain.UpStr(SqlStr, FrmBaseData.TableName);
if BeUpdateCode then
FrmMain.UpStr(SqlStr, 'Code', trim(EdtCode.text), ',');
FrmMain.UpStr(SqlStr, 'Name', trim(EdtEName.text), ',');
FrmMain.UpStr(SqlStr, 'CName', trim(EdtCName.text), ',');
FrmMain.UpStr(SqlStr, 'Remark', trim(EdtRemark.text), '');
FrmMain.UpStr(SqlStr, 'Code=', trim(TableCode), 'w');
if FrmMain.ExecSQL(SqlStr) then
else
begin
ShowMessage('更新代码记录失败,请检查!');
exit;
end;
ValueArray[0] := EdtCode.Text;
ValueArray[1] := EdtEName.Text;
ValueArray[2] := EdtCName.Text;
ValueArray[3] := EdtRemark.Text;
TableCode := trim(EdtCode.Text);
ArrayCount := 3;
FrmMain.RefeshOne(ValueArray, ArrayCount, FrmBaseData.lv);
FrmMain.UseDB.CommitTrans;
except
FrmMain.UseDB.RollbackTrans;
ShowMessage('更新操作进行失败,请检查!');
Exit;
end;
end
else
begin
try
SqlStr := 'Insert Into ' + FrmBaseData.TableName +
'(Code,Name,CName,Remark) values(';
FrmMain.InsStr(SqlStr, trim(EdtCode.text), ',');
FrmMain.InsStr(SqlStr, trim(EdtEName.text), ',');
FrmMain.InsStr(SqlStr, trim(EdtCName.text), ',');
FrmMain.InsStr(SqlStr, trim(EdtRemark.text), '');
if FrmMain.ExecSQL(SqlStr) then
else
begin
ShowMessage('插入记录失败,请检查!');
exit;
end;
IsEdit := true;
BtnAdd.Enabled := True;
TableCode := trim(EdtCode.Text);
ValueArray[0] := EdtCode.Text;
ValueArray[1] := EdtEName.Text;
ValueArray[2] := EdtCName.Text;
ValueArray[3] := EdtRemark.Text;
ArrayCount := 3;
FrmMain.AddListView(ValueArray, ArrayCount, FrmBaseData.lv);
except
ShowMessage('插入记录失败,请检查!');
exit;
end;
end;
end;
procedure TFrmBaseDataEdit.BtnCloseClick(Sender: TObject);
begin
inherited;
Close;
end;
procedure TFrmBaseDataEdit.FormActivate(Sender: TObject);
begin
inherited;
EdtCode.SetFocus;
if IsEdit then
begin
try
with QryTemp do
begin
Close;
Sql.Clear;
Sql.Text := 'Select Code,Name,CName,Remark from ' + FrmBaseData.TableName
+ ' where Code=''' + FrmBaseData.LV.Selected.Caption + '''';
Open;
EdtCode.Text := FieldByName('Code').AsString;
EdtEName.Text := FieldByName('Name').AsString;
EdtCName.Text := FieldByName('CName').AsString;
EdtRemark.Text := FieldByName('Remark').AsString;
end;
except
if QryTemp.Active then QryTemp.close;
ShowMessage('查询错误,返回!');
Exit;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -