📄 bas_item_d_new.pas
字号:
unit Bas_Item_D_New;
//物料主文件分属性维护明细单元
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Detail, StdCtrls, Db, AdODB, ExtCtrls, ExtEdit, linkedit, Buttons;
Type
TFrm_Bas_Item_D_New = Class(TFrm_Base_Detail)
Edt_Designno: TEdit;
Edt_maxqty: TEdit;
Edt_Purchldtime: TEdit;
Edt_ItemName: TEdit;
Edt_Mnldtime: TEdit;
Edt_minqty: TEdit;
Edt_ItemClass2: TEdit;
Edt_ItemClass1: TEdit;
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;
cmbbx_onlydefaultwh: TComboBox;
cmbbx_limitout: TComboBox;
Edt_ItemClass4: TEdit;
Edt_ItemClass3: TEdit;
Edt_PmBatch: TEdit;
Edt_ItemClass5: TEdit;
lbl_Warehouse: TLabel;
cmbbx_PmCode: TComboBox;
Extedt_WhCode: TExtEdit;
ExtEdt_Pla_EmployeeCode: TExtEdit;
ExtEdt_EmployeeCode: TExtEdit;
cmbbx_ItemType: TComboBox;
Extedt_UomCode: TExtEdit;
lbl_UomName: TLabel;
Extedt_BarCode: TExtEdit;
Extedt_ItemCode2: TExtEdit;
Label15: TLabel;
Label19: TLabel;
cmbbx_CanSale: TComboBox;
Label20: TLabel;
Label21: TLabel;
Bevel1: TBevel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
Label25: TLabel;
edt_Capacityhours: TEdit;
cmbbx_BatchCtrl: TComboBox;
cmbbx_Batchstrat: TComboBox;
lbl_DeptName: TLabel;
edt_DeptCode: TExtEdit;
Label14: TLabel;
Extedt_Wh_EmployeeCode: TExtEdit;
lbl_Wh_EmployeeName: TLabel;
cmbbx_LongPurchLT: TComboBox;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
Label29: TLabel;
edt_PrepareLT: TEdit;
edt_RunLT: TEdit;
edt_QcLT: TEdit;
edt_remArk: TEdit;
Label30: TLabel;
Bevel2: TBevel;
Label31: TLabel;
Label10: TLabel;
Label6: TLabel;
Bevel3: TBevel;
Label34: TLabel;
Label35: TLabel;
Label36: TLabel;
Label37: TLabel;
Label38: TLabel;
edt_CurrentOnHandInv: TEdit;
edt_CurrentOnCheckInv: TEdit;
edt_CurrentFreezeInv: TEdit;
edt_CurrentOnShipInv: TEdit;
edt_CurrentWasterInv: TEdit;
Label39: TLabel;
edt_OpInv: TEdit;
Label40: TLabel;
edt_ClassCode: TEdit;
lbl_ClassName: TLabel;
Label41: TLabel;
edt_ProductClass: TEdit;
Label42: TLabel;
edt_QcClass: TEdit;
AdoQry_Item: TAdoQuery;
SpeedButton1: TSpeedButton;
Edt_ItemCode: TEdit;
Label43: TLabel;
edt_mat: TEdit;
Label44: TLabel;
cmbbx_iScheck: TComboBox;
Label45: TLabel;
Label46: TLabel;
Extedt_AssetKmCode: TExtEdit;
Label47: TLabel;
Label48: TLabel;
LEdt_InSpecTEmployeeCode: TLinkEdit;
Lbl_InspecTEmployeeName: TLabel;
Label49: TLabel;
Cmbbx_ScrApType: TComboBox;
Label50: TLabel;
Cmbbx_ISStockItem: TComboBox;
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 edt_remArkExit(Sender: TObject);
procedure Edt_ItemCodeButtonClick(Sender: TObject);
procedure cmbbx_PmCodeChange(Sender: TObject);
procedure UomCodeCheck(Sender: TObject);
procedure btn_CancelClick(Sender: TObject);
procedure Extedt_AssetKmCodeExit(Sender: TObject);
procedure btn_okClick(Sender: TObject);
procedure LEdt_InSpecTEmployeeCodeExit(Sender: TObject);
private
{ Private declarations }
Character:string;
procedure InitControls; Override;
procedure SaveData; Override;
procedure initSysParamName;
public
procedure SetStatus(CurrentStatus:String;var EnableControls:String);Override;
function existsBomItem(ItemCode:string;ItemType:integer):boolean;
procedure updateBomItemType(ItemCode:string;ItemType:integer);
{ Public declarations }
end;
var
Frm_Bas_Item_D_New: TFrm_Bas_Item_D_New;
implementation
uses Sys_Global, Sys_QuickPick, Bas_Item_New;
{$R *.DFM}
function TFrm_Bas_Item_D_New.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 ';
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_D_New.updateBomItemType(ItemCode:string;ItemType:integer);
var sqltext: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;
4: begin
tMpsql:=' and BomItemType<>3 ';
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;
sqltext:='update Bom '
+' set BomItemType='+iifstring(ItemType=0,'0',iifstring(ItemType=1,'1',iifstring(ItemType=4,'3',iifstring(ItemType=7,'6','5'))))
+' where ItemCode='+quotedstr(ItemCode)
+tMpsql;
try
if DispInfo(Info,2)<>'y' then
abort;
Executesql(AdoQry,sqltext,1);
finally
AdoQry.Free;
end;
end;
procedure TFrm_Bas_Item_D_New.InitControls;
begin
AdoQry_Item.Connection :=AdoQry_Maintain.Connection ;
AdoQry_tmp.Connection :=AdoQry_Maintain.Connection ;
//根据Qry_Maintain的ItemCode进行Qry_Item的数据
with AdoQry_Item do
begin
Close;
sql.Text :=' Select * From Vw_Base_Item '
+' where ItemCode='''+AdoQry_Maintain.fieldbyname('ItemCode').asstring+'''';
open;
end;
Character:=Param1;
inherited;
if Character='General' then
Caption:='物料主文件基本属性维护'
else if Character='Plan' then
Caption:='物料主文件计划属性维护'
else if Character='Warehouse' then
Caption:='物料主文件库存管理属性维护'
else if Character='Usable' then
Caption:='物料主文件物料生效'
else
Caption:='物料主文件查询';
with AdoQry_Item do
begin
//常规属性
Edt_ItemCode.text:=fieldbyname('ItemCode').asstring;
Edt_ItemName.text:=fieldbyname('ItemName').asstring;
ExtEdt_UomCode.text:=fieldbyname('UomCode').asstring;
lbl_UomName.Caption:=fieldbyname('UomName').asstring;
Edt_Designno.text:=fieldbyname('designno').asstring;
Extedt_BarCode.text:=fieldbyname('BarCode').asstring;
Extedt_ItemCode2.text:=fieldbyname('ItemCode2').asstring;
edt_mat.Text:=fieldbyname('Material').asstring;
LEdt_InspecTEmployeeCode.Text:=fieldbyname('InspecTEmployeeCode').asstring;
Lbl_InspecTEmployeeName.Caption:=fieldbyname('InspecTEmployeeName').asstring;
edt_remArk.text:=fieldbyname('remArk').asstring;
Cmbbx_ScrApType.ItemIndex:=fieldbyname('ScrApType').asinteger-1;
Extedt_AssetKmCode.text:=fieldbyname('AssetKmCode').asstring;
Label47.Caption:=fieldbyname('KmName').asstring;
initSysParamName;
//计划属性
edt_ClassCode.Text :=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;
ExtEdt_EmployeeCode.text:=fieldbyname('EmployeeCode').asstring;
ExtEdt_Pla_EmployeeCode.text:=fieldbyname('Pla_EmployeeCode').asstring;
lbl_CaiGou.Caption:=fieldbyname('CaiGou').asstring;
lbl_JiHua.Caption:=fieldbyname('JiHua').asstring;
cmbbx_PmCode.Itemindex:=fieldbyname('PmCode').asinteger;
if cmbbx_PmCode.ItemIndex=0 then
begin
edt_DeptCode.OnKeyDown:=DeptHint;
edt_DeptCode.OnExit:=getDeptName;
end
else
begin
edt_DeptCode.OnKeyDown:=VendorHint;
edt_DeptCode.OnExit:=getVendorName;
end;
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_maxqty.text:=floattostr(fieldbyname('maxqty').asfloat);
Edt_Mnldtime.text:=inttostr(fieldbyname('mnldtime').asinteger);
Edt_PmBatch.text:=fieldbyname('PmBatch').asstring;
Edt_DeptCode.text:=fieldbyname('DeptCode').asstring;
Edt_Capacityhours.Text :=fieldbyname('Capacityhours').asstring;
if fieldbyname('BatchCtrl').asinteger=1 then
cmbbx_BatchCtrl.Itemindex:=fieldbyname('BatchCtrl').asinteger
else
cmbbx_BatchCtrl.Itemindex:=0;
if fieldbyname('LongPurchLT').asinteger=1 then
cmbbx_LongPurchLT.ItemIndex:=fieldbyname('LongPurchLT').asinteger
else
cmbbx_LongPurchLT.ItemIndex:=0;
cmbbx_iScheck.ItemIndex:=fieldbyname('iScheck').asinteger;
if fieldbyname('Batchstrat').asinteger=1 then
cmbbx_Batchstrat.Itemindex:=fieldbyname('Batchstrat').asinteger
else
cmbbx_Batchstrat.Itemindex:=0;
//库存管理属性
ExtEdt_WhCode.text:=fieldbyname('whCode').asstring;
Edt_minqty.text:=floattostr(fieldbyname('minqty').asfloat);
lbl_DeptName.Caption:=fieldbyname('DeptName').asstring;
Extedt_Wh_EmployeeCode.Text:=fieldbyname('wh_EmployeeCode').asstring;
lbl_Wh_EmployeeName.Caption:=fieldbyname('wh_EmployeeName').asstring;
edt_CurrentOnHandInv.text:=floattostr(fieldbyname('CurrentOnHandInv').asfloat);
edt_CurrentOnCheckInv.text:=floattostr(fieldbyname('CurrentOnCheckInv').asfloat);
edt_CurrentFreezeInv.text:=floattostr(fieldbyname('CurrentFreezeInv').asfloat);
edt_CurrentOnShipInv.text:=floattostr(fieldbyname('CurrentOnShipInv').asfloat);
edt_CurrentWasterInv.text:=floattostr(fieldbyname('CurrentWasterInv').asfloat);
edt_OpInv.Text :=floattostr(fieldbyname('opInv').asfloat);
if fieldbyname('onlydefaultwh').asinteger=1 then
cmbbx_onlydefaultwh.Itemindex:=fieldbyname('onlydefaultwh').asinteger
else
cmbbx_onlydefaultwh.Itemindex:=0;
if fieldbyname('canSale').asinteger=1 then
cmbbx_CanSale.ItemIndex:=1
else
cmbbx_CanSale.ItemIndex:=0;
if fieldbyname('limitout').asinteger=1 then
cmbbx_limitout.Itemindex:=fieldbyname('limitout').asinteger
else
cmbbx_limitout.Itemindex:=0;
lbl_Warehouse.Caption:=fieldbyname('whName').asstring;
if Add then
Cmbbx_ISStockItem.ItemIndex:=1
else
Cmbbx_ISStockItem.ItemIndex:=fieldbyname('ISStockItem').asinteger;
end;
if not(Add) then
begin
edt_ItemCode.OnExit:=nil;
if status<>'Add' then
begin
edt_ItemCode.Enabled :=False;
end;
edt_ItemCode.OnExit:=Edt_ItemCodeExit ;
end
else
begin
edt_ItemCode.Enabled :=True;
speedbutton1.Enabled:=True;
end;
end;
procedure TFrm_Bas_Item_D_New.SaveData;
var
sql_Itemdisabletime,str_Itemdisabletime,str_ModifyItemdisabletime:string;
Add_Wh_EmployeeCode,Add_Str_Wh_EmployeeCode,modify_Str_Wh_EmployeeCode,Add_EmployeeCode,Add_Str_EmployeeCode,modify_EmployeeCode,modify_Str_EmployeeCode:string;
Add_Pla_EmployeeCode,Add_Str_Pla_EmployeeCode,modify_Pla_EmployeeCode,modify_Str_Pla_EmployeeCode:string;
Itemmodifytime,Add_WhCode,Add_Str_WhCode,modify_Str_WhCode,Add_DeptCode,Add_Str_DeptCode,modify_Str_DeptCode:string;
canmodify_Itemmodifytime,canmodify_remArk:boolean;
sAssetKmCode,sAssetKmCode1:string;
begin
Inherited;
//控制有效日期
if not (Add) then
begin
canmodify_Itemmodifytime:=False;
if AdoQry_Item.fieldbyname('ItemCode').asstring<>edt_ItemCode.text then
begin
canmodify_Itemmodifytime:=True;
end;
if AdoQry_Item.fieldbyname('ItemName').asstring<>edt_ItemName.text then
begin
canmodify_Itemmodifytime:=True;
end;
if AdoQry_Item.fieldbyname('UomCode').asstring<>Extedt_UomCode.text then
begin
canmodify_Itemmodifytime:=True;
end;
if AdoQry_Item.fieldbyname('designno').asstring<>Edt_Designno.text then
begin
canmodify_Itemmodifytime:=True;
end;
if AdoQry_Item.fieldbyname('LongPurchLT').asinteger<>cmbbx_LongPurchLT.Itemindex then
begin
canmodify_Itemmodifytime:=True;
end;
if AdoQry_Item.fieldbyname('wh_EmployeeCode').asstring<>Extedt_Wh_EmployeeCode.text then
begin
canmodify_Itemmodifytime:=True;
end;
if AdoQry_Item.fieldbyname('ItemType').asinteger<>cmbbx_ItemType.Itemindex then
begin
canmodify_Itemmodifytime:=True;
end;
if AdoQry_Item.fieldbyname('EmployeeCode').asstring<>ExtEdt_EmployeeCode.text then
begin
canmodify_Itemmodifytime:=True;
end;
if AdoQry_Item.fieldbyname('EmployeeCode').asstring<>ExtEdt_EmployeeCode.text then
begin
canmodify_Itemmodifytime:=True;
end;
if AdoQry_Item.fieldbyname('Pla_EmployeeCode').asstring<>ExtEdt_Pla_EmployeeCode.text then
begin
canmodify_Itemmodifytime:=True;
end;
if AdoQry_Item.fieldbyname('whCode').asstring<>Extedt_WhCode.text then
begin
canmodify_Itemmodifytime:=True;
end;
if AdoQry_Item.fieldbyname('onlydefaultwh').asinteger<>cmbbx_onlydefaultwh.Itemindex then
begin
canmodify_Itemmodifytime:=True;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -