📄 bas_item_d0.pas
字号:
unit Bas_Item_D0;
//物料主文件所有属性维护明细单元
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Detail, StdCtrls, Db, AdODB, ExtCtrls, ExtEdit, linkedit, Buttons;
Type
TFrm_Bas_Item_D0 = Class(TFrm_Base_Detail)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
lbl_ParamName1: TLabel;
lbl_ParamName2: TLabel;
lbl_ParamName3: TLabel;
lbl_ParamName4: TLabel;
lbl_ParamName5: TLabel;
Label32: TLabel;
Label33: TLabel;
lbl_CaiGou: TLabel;
lbl_JiHua: TLabel;
lbl_Warehouse: TLabel;
lbl_UomName: TLabel;
Label15: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Bevel1: TBevel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
Label25: TLabel;
lbl_DeptName: TLabel;
Label14: TLabel;
lbl_Wh_EmployeeName: TLabel;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
Label29: TLabel;
Label30: TLabel;
Bevel2: TBevel;
Label31: TLabel;
Label10: TLabel;
Label6: TLabel;
Bevel3: TBevel;
Label34: TLabel;
Label35: TLabel;
Label36: TLabel;
Label37: TLabel;
Label38: TLabel;
Edt_Designno: TEdit;
Edt_maxqty: TEdit;
Edt_Purchldtime: TEdit;
Edt_ItemName: TEdit;
Edt_Mnldtime: TEdit;
Edt_minqty: TEdit;
Edt_ItemClass2: TEdit;
Edt_ItemClass1: TEdit;
cmbbx_onlydefaultwh: TComboBox;
cmbbx_limitout: TComboBox;
Edt_ItemClass4: TEdit;
Edt_ItemClass3: TEdit;
Edt_PmBatch: TEdit;
Edt_ItemClass5: TEdit;
cmbbx_PmCode: TComboBox;
Extedt_WhCode: TExtEdit;
ExtEdt_Pla_EmployeeCode: TExtEdit;
ExtEdt_EmployeeCode: TExtEdit;
cmbbx_ItemType: TComboBox;
Extedt_UomCode: TExtEdit;
Extedt_BarCode: TExtEdit;
Extedt_ItemCode2: TExtEdit;
cmbbx_CanSale: TComboBox;
edt_Capacityhours: TEdit;
cmbbx_BatchCtrl: TComboBox;
cmbbx_Batchstrat: TComboBox;
edt_DeptCode: TExtEdit;
Extedt_Wh_EmployeeCode: TExtEdit;
cmbbx_LongPurchLT: TComboBox;
edt_PrepareLT: TEdit;
edt_RunLT: TEdit;
edt_QcLT: TEdit;
edt_remArk: TEdit;
edt_CurrentOnHandInv: TEdit;
edt_CurrentOnCheckInv: TEdit;
edt_CurrentFreezeInv: TEdit;
edt_CurrentOnShipInv: TEdit;
edt_CurrentWasterInv: TEdit;
Label39: TLabel;
cmbbx_ItemUsable: TComboBox;
Label40: TLabel;
edt_OpInv: TEdit;
Label41: TLabel;
edt_ClassCode: TEdit;
lbl_ClassName: TLabel;
Label42: TLabel;
edt_ProductClass: TEdit;
Label43: TLabel;
edt_QcClass: TEdit;
AdoQry_Item: TAdoQuery;
Edt_ItemCode: TEdit;
SpeedButton1: TSpeedButton;
Label44: TLabel;
edt_mat: TEdit;
Label45: TLabel;
cmbbx_iScheck: TComboBox;
Label46: TLabel;
Lbl_47: TLabel;
Extedt_AssetKmCode: TExtEdit;
Label48: TLabel;
Label47: TLabel;
LEdt_InspecTEmployeeCode: TLinkEdit;
Lbl_InspecTEmployeeName: TLabel;
Label49: TLabel;
Cmbbx_ScrApType: TComboBox;
Label50: TLabel;
Cmbbx_ISStockItem: TComboBox;
procedure FormCreate(Sender: TObject);
procedure Edt_ItemCodeExit(Sender: TObject);
procedure Edt_ItemNameExit(Sender: TObject);
procedure Edt_MnldtimeExit(Sender: TObject);
procedure Edt_PurchldtimeExit(Sender: TObject);
procedure Edt_maxqtyExit(Sender: TObject);
procedure Edt_minqtyExit(Sender: TObject);
procedure Vw_BuyerCodeCheck(Sender: TObject);
procedure cmbbx_onlydefaultwhEnter(Sender: TObject);
procedure Edt_PmBatchExit(Sender: TObject);
procedure edt_CapacityhoursExit(Sender: TObject);
procedure edt_PrepareLTExit(Sender: TObject);
procedure edt_RunLTExit(Sender: TObject);
procedure edt_QcLTExit(Sender: TObject);
procedure WarehouseCodeCheck(Sender: TObject);
procedure WhEmployeeCodeCheck(sender:tobject);
procedure edt_ClassCodeExit(Sender: TObject);
procedure edt_ClassCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure edt_remArkExit(Sender: TObject);
procedure cmbbx_ItemUsableChange(Sender: TObject);
procedure Edt_ItemCodeButtonClick(Sender: TObject);
procedure cmbbx_PmCodeChange(Sender: TObject);
procedure btn_okClick(Sender: TObject);
procedure UomCodeCheck(Sender: TObject);
procedure btn_CancelClick(Sender: TObject);
procedure Extedt_AssetKmCodeExit(Sender: TObject);
procedure LEdt_InspecTEmployeeCodeExit(Sender: TObject);
private
reAd_flag:boolean;
{ Private declarations }
procedure InitControls; Override;
procedure SaveData; Override;
procedure initSysParamName;
public
procedure initQry(dbConnection:tAdoConnection;ItemCode:string);
function existsBomItem(ItemCode:string;ItemType:integer):boolean;
procedure updateBomItemType(ItemCode:string;ItemType:integer);
{ Public declarations }
end;
var
Frm_Bas_Item_D0: TFrm_Bas_Item_D0;
implementation
uses Sys_Global, Sys_QuickPick,Bas_Item_All;
{$R *.DFM}
function TFrm_Bas_Item_D0.existsBomItem(ItemCode:string;ItemType:integer):boolean;
var sqltext:string;
AdoQry:TAdoQuery;
tMpsql:string;
begin
Result:=False;
AdoQry:=TAdoQuery.Create(nil);
AdoQry.Connection:=dbconnect;
case ItemType of
0: tMpsql:=' and (BomItemType<>0 and BomItemType<>4)';
1: tMpsql:=' and BomItemType<>1 ';
2: tMpsql:=' and BomItemType<>2 ';
3: tMpsql:=' and BomItemType<>7 ';
4: tMpsql:=' and BomItemType<>3 ';
7: tMpsql:=' and BomItemType<>6 ';
6: tMpsql:=' and BomItemType<>5 ';
end;
sqltext:='select * from Bom '
+' where ItemCode='+quotedstr(ItemCode)
+tMpsql;
try
Executesql(AdoQry,sqltext,0);
if AdoQry.RecordCount>0 then
Result:=True;
finally
AdoQry.Free;
end;
end;
procedure TFrm_Bas_Item_D0.updateBomItemType(ItemCode:string;ItemType:integer);
var sqltext:string;
tmpItemType:string;
AdoQry:TAdoQuery;
tMpsql,Info:string;
begin
AdoQry:=TAdoQuery.Create(nil);
AdoQry.Connection:=dbconnect;
case ItemType of
0:
begin
tMpsql:=' and (BomItemType<>0 and BomItemType<>4)';
Info:='此物料在Bom中有子项属性为非“普通物料”的记录,'
+#13+'是否保存当前修改?如果保存,系统将修改Bom中的相关记录的子项属性';
end;
1:
begin
tMpsql:=' and BomItemType<>1 ';
Info:='此物料在Bom中有子项属性为非“工作中心”的记录,'
+#13+'是否保存当前修改?如果保存,系统将修改Bom中的相关记录的子项属性';
end;
2:
begin
tMpsql:=' and BomItemType<>2 ';
Info:='此物料在Bom中有子项属性为非“工具”的记录,'
+#13+'是否保存当前修改?如果保存,系统将修改Bom中的相关记录的子项属性';
end;
3:
begin
tMpsql:=' and BomItemType<>7 ';
Info:='此物料在Bom中有子项属性为非“参考”的记录,'
+#13+'是否保存当前修改?如果保存,系统将修改Bom中的相关记录的子项属性';
end;
4: begin
tMpsql:=' and BomItemType<>3 ';
Info:='此物料在Bom中有子项属性为非“结构虚项”的记录,'
+#13+'是否保存当前修改?如果保存,系统将修改Bom中的相关记录的子项属性';
end;
5:
begin
Info:='物料属性为“劳务”的物料不能挂入Bom中,是否保存当前修改?'
+#13+'如果保存,系统将删除Bom中该物料的相关记录';
end;
7: begin
tMpsql:=' and BomItemType<>6 ';
Info:='此物料在Bom中有子项属性为非“替代虚项”的记录,'
+#13+'是否保存当前修改?如果保存,系统将修改Bom中的相关记录的子项属性';
end;
6: begin
tMpsql:=' and BomItemType<>5 ';
Info:='此物料在Bom中有子项属性为非“成本中心”的记录,'
+#13+'是否保存当前修改?如果保存,系统将修改Bom中的相关记录的子项属性';
end;
end;
case ItemType of
0: tmpItemType:='0';
1: tmpItemType:='1';
2: tmpItemType:='2';
3: tmpItemType:='7';
4: tmpItemType:='3';
6: tmpItemType:='5';
7: tmpItemType:='6';
end;
if ItemType<>5 then
sqltext:='update Bom '
+' set BomItemType='+tmpItemType
+' where ItemCode='+quotedstr(ItemCode)
+tMpsql
else
sqltext:=' delete from Bom '
+' where ite_ItemCode='+quotedstr(ItemCode)
+' or ItemCode='+quotedstr(ItemCode);
try
if DispInfo(Info,2)<>'y' then
abort;
Executesql(AdoQry,sqltext,1);
finally
AdoQry.Free;
end;
end;
procedure TFrm_Bas_Item_D0.initQry(dbConnection:tAdoConnection;ItemCode:string);
var
i:integer;
begin
//该过程应用于SysGlOB的Item属性查询
AdoQry_Item.Connection :=dbConnection;
AdoQry_tmp.Connection :=dbConnection;
with AdoQry_Item do
begin
Close;
sql.Text :=' Select * from Vw_Base_Item '
+' where ItemCode='''+ItemCode+'''';
open;
end;
i:=AdoQry_Item.RecordCount;
// AdoQry_Maintain:=AdoQry_Item;
reAd_flag:=True;
end;
procedure TFrm_Bas_Item_D0.InitControls;
begin
if not(Add) then
begin
edt_ItemCode.OnExit:=nil;
if status<>'Add' then
begin
edt_ItemCode.Enabled :=False;
speedbutton1.Enabled:=False;
end;
edt_ItemCode.OnExit:=Edt_ItemCodeExit ;
end
else
begin
edt_ItemCode.Enabled :=True;
speedbutton1.Enabled:=True;
end;
//判断是否是由Qry_Maintain还是Qry_Item的数据
if reAd_flag then
status:='ReadOnly';
if not reAd_flag then
begin
AdoQry_Item.Connection :=AdoQry_Maintain.Connection ;
AdoQry_tmp.Connection :=AdoQry_Maintain.Connection ;
with AdoQry_Item do
begin
Close;
sql.Text :=' Select * From Vw_Base_Item '
+ ' where ItemCode='''+AdoQry_Maintain.fieldbyname('ItemCode').asstring+'''';
open;
end;
end;
inherited;
//利用Qry_Item的数据进行控件初始化
with AdoQry_Item do
begin
Edt_ItemCode.text:=fieldbyname('ItemCode').asstring;
// Edt_ItemshortName.text:=fieldbyname('ItemshortName').asstring;
ExtEdt_EmployeeCode.text:=fieldbyname('EmployeeCode').asstring;
ExtEdt_Pla_EmployeeCode.text:=fieldbyname('Pla_EmployeeCode').asstring;
ExtEdt_UomCode.text:=fieldbyname('UomCode').asstring;
lbl_UomName.Caption:=fieldbyname('UomName').asstring;
edt_ClassCode.Text :=fieldbyname('ClassCode').asstring;
// lbl_ClassName.Caption :=getName(fieldbyname('ClassCode').asstring);
edt_ProductClass.Text :=fieldbyname('ProductClass').asstring;
edt_QcClass.Text :=fieldbyname('QcClass').asstring;
edt_ProductClass.MaxLength :=fieldbyname('ProductClass').Size;
edt_QcClass.MaxLength :=fieldbyname('QcClass').size;
//
cmbbx_ItemType.ItemIndex:=fieldbyname('ItemType').asinteger;
Edt_Designno.text:=fieldbyname('designno').asstring;
Edt_maxqty.text:=floattostr(fieldbyname('maxqty').asfloat);
Edt_Purchldtime.text:=inttostr(fieldbyname('purchldtime').asinteger);
edt_PrepareLT.text:=inttostr(fieldbyname('PrepareLT').asinteger);
edt_RunLT.text:=inttostr(fieldbyname('RunLT').asinteger);
edt_QcLT.text:=inttostr(fieldbyname('QcLT').asinteger);
Edt_ItemName.text:=fieldbyname('ItemName').asstring;
ExtEdt_WhCode.text:=fieldbyname('whCode').asstring;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -