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

📄 bas_warehouse_d.pas

📁 一个MRPII系统源代码版本
💻 PAS
字号:
//Who?
//张程炜  加入与货位有关的控制
unit Bas_Warehouse_D;

Interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Base_Detail, StdCtrls, Db, AdODB, ExtCtrls, Mask;

Type
  TFrm_Bas_Warehouse_D = Class(TFrm_Base_Detail)
    Label1: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    edt_WhCode: TEdit;
    edt_WhName: TEdit;
    edt_remArk: TEdit;
    cmbx_PriceType: TComboBox;
    Label3: TLabel;
    CmBx_WasterWH: TComboBox;
    procedure edt_WhCodeExit(Sender: TObject);
    procedure edt_WhNameExit(Sender: TObject);
    procedure edt_remArkExit(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure CmBx_WasterWHExit(Sender: TObject);
  private
       { Private declarations }
    OldWasterWH:integer;
  public
    procedure InitControls; Override;
    procedure SaveData; Override;
  end;

var
  Frm_Bas_Warehouse_D: TFrm_Bas_Warehouse_D;

implementation

uses Sys_Global;

{$R *.DFM}
function checksymbol(Source:string;disptext:string):boolean;   //检查输入中是否有单引号
var
  i:integer;
  s:string;
begin
  s:=Trim(Source);
  for i:=1 to length(s) do
    if s[i]='''' then
    begin
      DispInfo(disptext+'中不能使用单引号!',1);
      Result:=False;
      exit;
    end;
  Result:=True;
end;

procedure TFrm_Bas_Warehouse_D.edt_WhCodeExit(Sender: TObject);
begin
  inherited;
  if activecontrol.Name='btn_Cancel' then
    exit;
  if (not blankcheck(tedit(sender).text,'仓库代码')) or
     (not blankinstrcheck(tedit(sender).text,'仓库代码')) then
    begin
      twincontrol(sender).setfocus;
      abort;
    end;
  if not checksymbol(edt_WhCode.text,'仓库代码') then
  begin
    twincontrol(sender).setfocus;
    abort;
  end;
  if (Add) or ((not Add) and (Trim(tedit(sender).text)<>
     AdoQry_Maintain.fieldbyname('whCode').AsString)) then
  begin
    AdoQry_tmp.Close;
    AdoQry_tmp.SQL.clear;
    AdoQry_tmp.SQL.Add('select whCode from Warehouse where whCode='''+
                        Trim(edt_WhCode.text)+'''');
    AdoQry_tmp.Open;
    if not AdoQry_tmp.Eof then
    begin
      DispInfo('仓库代码已经存在,不允许增加或修改!',1);
      twincontrol(sender).setfocus;
      abort;
    end;
 end;
end;

procedure TFrm_Bas_Warehouse_D.edt_WhNameExit(Sender: TObject);
begin
  inherited;
  if activecontrol.Name='btn_Cancel' then
    exit;
  if not blankcheck(tedit(sender).text,'仓库名称') then
  begin
    twincontrol(sender).setfocus;
    abort;
  end;
  if not checksymbol(edt_WhName.text,'仓库名称') then
  begin
    twincontrol(sender).setfocus;
    abort;
  end;
end;

procedure TFrm_Bas_Warehouse_D.InitControls;
begin
  if Add then
    SetFocus_Control:=Edt_WhCode
  else
    SetFocus_Control:=Edt_WhName;
  inherited;
  with AdoQry_Maintain do
  begin
    Edt_WhCode.text:=fieldbyname('whCode').AsString;
    Edt_WhName.Text:=fieldbyname('whName').AsString;
    cmbx_PriceType.Itemindex:=fieldbyname('PriceType').Asinteger;
    cmbx_WasterWH.Itemindex:=fieldbyname('WasterWH').Asinteger;
    edt_remArk.text:=fieldbyname('whremArk').asstring;
    OldWasterWH:=fieldbyname('WasterWH').Asinteger;
  end;
end;

procedure TFrm_Bas_Warehouse_D.SaveData;
begin
  inherited;
  with AdoQry_Tmp do
   begin
     Close;
     SQL.clear;
     if(Add)then
     begin
       SQL.Text:='Insert Warehouse (whCode,whName,PriceType,WasterWH,whremArk)'
         +' Values('
         +' '''+Trim(edt_WhCode.text)+''''
         +','''+Trim(edt_WhName.text)+''''
         +','''+inttostr(cmbx_PriceType.Itemindex)+''''
         +','+inttostr(cmbx_WasterWH.Itemindex)+''
         +','''+Trim(edt_remArk.text)+''''
         +')';
       execsql;
     end
     else
     begin
       SQL.Add(' Update Warehouse set whCode='+''''+Trim(edt_WhCode.text)+''''+',' );
       sql.Add('whName='''+Trim(edt_WhName.text)+''''+',');
       sql.Add('WasterWH='+inttostr(cmbx_WasterWH.Itemindex)+''+',');
       sql.Add('PriceType='''+inttostr(cmbx_PriceType.Itemindex)+''''+','+' whremArk='+''''+Trim(edt_remArk.text)+'''');
       sql.Add(' where whCode='''+AdoQry_Maintain.fieldbyname('whCode').asstring+'''');
       ExecSQL;
     end;
  end;
 with AdoQry_Maintain do
 begin
   fieldbyname('whCode').AsString:=Trim(edt_WhCode.text);
   fieldbyname('whName').AsString:=Trim(edt_WhName.text);
   fieldbyname('PriceType').Asinteger:=cmbx_PriceType.ItemIndex;
   fieldbyname('WasterWH').Asinteger:=cmbx_WasterWH.Itemindex;
   fieldbyname('whremArk').asstring:=Trim(edt_remArk.text);
   Post;
 end;
end;

procedure TFrm_Bas_Warehouse_D.edt_remArkExit(Sender: TObject);
begin
  inherited;
  if activecontrol.Name='btn_Cancel' then
    exit;
  if not checksymbol(edt_remArk.text,'备注') then
  begin
    twincontrol(sender).setfocus;
    abort;
  end;
end;

procedure TFrm_Bas_Warehouse_D.FormCreate(Sender: TObject);
begin
  inherited;
  SetFocus_Control:=Edt_WhCode;
end;

procedure TFrm_Bas_Warehouse_D.CmBx_WasterWHExit(Sender: TObject);
begin
  inherited;
  if activecontrol.Name='btn_Cancel' then
    exit;
  if (OldWasterWH<>cmbx_WasterWH.Itemindex) and (cmbx_WasterWH.Itemindex=1) then
    with AdoQry_Tmp do
    begin
      Close;
      sql.text:=
        'select Count(*) recCount '+
          ' from WhPosition '+
          ' where WHCode='''+Edt_WhCode.text+''' and '+
              ' WhPositionType<>4';
      open;
      if fieldbyname('recCount').asinteger>0 then
      begin
        DispInfo('本仓库含有非“废品”属性的货位,不能设置成废品仓库!',1);
        twincontrol(sender).setfocus;
        abort;
      end;
    end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -