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

📄 bas_item_d0.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 5 页
字号:
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 + -