⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frm_basedataedit.pas

📁 这是一个基于delphi平台的物流空运管理系统!
💻 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 + -