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

📄 frm_portedit.pas

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