📄 bas_warehouse_d.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 + -