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

📄 invdm.pas

📁 文件包含程序源原文件
💻 PAS
📖 第 1 页 / 共 5 页
字号:
           if ((InvValue.order_no>0)and(InvValue.input_order_rec_id=InvValue.order_rec_id)) then exit; //-- 有订货的以订购为准

           if TmpRecId < 0 then
           begin
               Error := InsertProcess(InvValue, InvValue.process_rec_id);
               if Error = 0 then
               Error := InsertLog(InvValue);
           end
           else begin
             Error := UpdateProcess_jkcd(InvValue);
             if Error = 0 then
             Error := UpdateLog_jkcd(InvValue);
           end;
         end;
       end;
    ////////////////////////////////////////////////////////////////////

    3..4: begin                                 //-- 调整/余料
         if Recid < 0 then //-- create insert SQL statement
           Sqls := MakeInsertSqlSentence(TableName, Recid, UpdateList, Error)
         else              //-- Create Update SQL Statement
           Sqls := MakeUpdateSqlSentence(TableName, Recid, UpdateList, Error);

         if Error = 0 then
         begin
           if ExecuteQuery(Sqls) = False then Error := -99;
         end;
         Result := Error;
       end;
    else exit;
  end;

  Result := Error;
end;

function  Tdm_Inventory.DeleteDatabase(TableName: string; RecId: Longint): Integer;
var
  Sqls, SRecId: string;
begin
  Result:=0;
  if RecIdType = 0 then
    SRecId := 'rec_id'
  else SRecId := 'rec_id';

  Sqls := Format('DELETE FROM ' + TableName +
                 ' WHERE ' + SRecId + '=%d', [RecId]);
  if dm_Inventory.ExecuteQuery(Sqls) = False then Result := -1;
end;

function  Tdm_Inventory.DateProc(edt: TEdit; var ADate: TDateTime): Boolean;
begin
  Result := DateErrorCheck(edt.Text, ADate);
  if not(Result) then begin
    Beep;
    Exit;
  end;
  if ADate <= 2 then edt.Text := ''
  else edt.Text := FormatDateTime('yy/mm/dd', ADate);
end;

function Tdm_Inventory.DateErrorCheck(DateText: string; var ADate: TDateTime): Boolean;
var WYY: Integer;
begin
  Result := True;
  if DateText = '' then begin
    ADate := 2; Exit;
  end;
  case Length(DateText) of
    6: begin
      Insert('/', DateText, 3); Insert('/', DateText, 6);
    end;
    8: if Pos('/', DateText) = 0 then begin
        Insert('/', DateText, 5); Insert('/', DateText, 8);
      end;
   10: Result := True;
  else begin
      Result := False;
      ADate := 2;
      Exit;
    end;
  end;
  //--"19XX"-->"20XX"
  try
    WYY := StrToInt(Copy(DateText, 1, Pos('/', DateText)-1));
    if WYY < 100 then
      if WYY >= 50 then DateText := '19' + DateText
      else DateText := '20' + DateText;
  except
    Result := False;
    ADate  := 2;
    Exit;
  end;
  try
    ADate := StrToDate(DateText);
  except
    Result := False;
    ADate  := 2;
    Exit;
  end;
end;

function  Tdm_Inventory.REC_IDProc(IX: Integer; edt: TEdit; var ARID: LongInt; ARID2: LongInt): Boolean;
var
  CD: string;
  OrderID, PartID, ProcessID: Integer;
begin
  Result := True;
  CD := Trim(edt.Text);
  case IX of
    0: ARID := dm_Inventory.GetMaterialRID(CD);
    1: ARID := dm_Inventory.GetOrderRID(CD);
    2:
    begin
      ARID := dm_Inventory.GetPartID(ARID2, CD);
    end;
    3:
    begin
      ARID := dm_Inventory.GetOrderPartIDFromOrderNo(StrToIntDef(CD, -99), OrderID, PartID, ProcessID);
    end;
  else ARID := 0;
  end;
  if (CD<>'')and(ARID<0) then begin
    MessageDlg('该编码不存在!', mtError, [mbOK], 0);
    Result := False;
    Exit;
  end;
end;

function  Tdm_Inventory.MasterProc(CD: Integer; var edt: TEdit): Boolean;
var WStr: string;
begin
  Result := True;
  WStr := dm_Inventory.GetShigenName(CD);
  if (CD<>0) and (WStr='') then begin
      MessageDlg('该编码不存在,确定使用不存在的该编码!', mtWarning, [mbOK], 0);
      Result := False;
      Exit;
  end;
  edt.Text := WStr;
end;

{**********************************************************************************}
{**********************************************************************************}
function  Tdm_Inventory.GetShigenName(Sigen_CD: Integer): String;
var
  IX:  Integer;
  lcP: PSHIGEN;
begin
  Result := '';
  for IX:=0 to ShigenTBL.Count-1 do begin
    lcp := ShigenTbl[IX];
    if (lcp^.SIGEN_CD=Sigen_CD) then begin
     Result := lcP^.SIGEN_NM;
     Exit;
    end;
  end;
end;

function  Tdm_Inventory.GetDepartName(sigen_CD: Integer): string;
var
  IX:  Integer;
  lcP: PSHIGEN;
begin
  Result := '';
  for IX:=0 to FDepartShigen.Count-1 do begin
    lcp := FDepartShigen[IX];
    if (lcp^.SIGEN_CD=Sigen_CD) then begin
     Result := lcP^.SIGEN_NM;
     Exit;
    end;
  end;
end;

function  Tdm_Inventory.GetOrderNo(RID: LongInt): string;
var IX:  Integer;
    lcP: PSEIHIN;
begin
  Result := '';
  for IX:=0 to SeihinTBL.Count-1 do begin
    lcp := SeihinTBL[IX];
    if (lcp^.REC_ID=RID) then begin
     Result := lcP^.SEIHIN_NO;
     Exit;
    end;
  end;
end;

function  Tdm_Inventory.GetOrderRID(CD: string): LongInt;
var IX:  Integer;
    lcP: PSEIHIN;
begin
  Result := -1;
  for IX:=0 to SeihinTBL.Count-1 do begin
    lcp := SeihinTBL[IX];
    if Trim(lcp^.SEIHIN_NO)=CD then begin
     Result := lcP^.REC_ID;
     Exit;
    end;
  end;
end;

function  Tdm_Inventory.GetOrderID(OrderCode: string): Integer;
var
  Sqls: string;
begin
  Sqls := 'SELECT rec_id FROM seihin '
        + 'WHERE (k_visible>0) AND '
        +       '(seihin_bango=' + QuotedStr(OrderCode) + ')';

  with Query do begin
    Active      := False;
    RequestLive := False;
    Sql.Clear;
    Sql.Text := Sqls;
    try
      Open;
      if RecordCount > 0 then
        Result := Fields[0].AsInteger
      else
        Result := 0;
    finally
      Close;
    end;
  end;
end;

function  Tdm_Inventory.GetPartID(OrderID: Integer; PartCode: string): Integer;
var
  Sqls: string;
begin
  Sqls := 'SELECT rec_id FROM buhin '
        + 'WHERE (visible>0) AND '
        +       '(seihin_rec_id=' + IntToStr(OrderID) + ') AND '
        +       '(buhin_bango=' + QuotedStr(PartCode) + ')';

  with Query do begin
    Active      := False;
    RequestLive := False;
    Sql.Clear;
    Sql.Text := Sqls;
    try
      Open;
      if Query.RecordCount > 0 then
        Result := Fields[0].AsInteger
      else
        Result := -1;
    finally
      Close;
    end;
  end;
end;

function  Tdm_Inventory.GetOrderPartIDFromOrderNo(OrderNo: Integer; var OrderID, PartID, ProcessID: Integer): Integer;
var
  Sqls: string;
begin
  result := 0;
  Sqls := 'SELECT seihin_rec_id, buhin_rec_id, rec_id FROM kotei '
        + 'WHERE (visible>0) AND (jk_cd<=3) AND (flag2>=0) AND '
        +       '(hatchu_bango=' + IntToStr(OrderNo) + ')';

  OrderID := 0;
  PartID  := 0;
  with Query do begin
    Active      := False;
    RequestLive := False;
    Sql.Clear;
    Sql.Text := Sqls;
    try
      Open;
      if RecordCount > 0 then begin
        OrderID   := Fields[0].AsInteger;
        PartID    := Fields[1].AsInteger;
        ProcessID := Fields[2].AsInteger;
        Result := OrderNo;
      end
      else
        Result := -1;
    finally
      Close;
    end;
  end;
end;

function  Tdm_Inventory.GetPartCode(OrderID, PartID: Integer): string;
var
  Sqls: string;
begin
  Sqls := 'SELECT buhin_bango FROM buhin '
        + 'WHERE (visible>0) AND '
        +       '(seihin_rec_id=' + IntToStr(OrderID) + ') AND '
        +       '(rec_id='        + IntToStr(PartID) + ')';

  with Query do begin
    Active      := False;
    RequestLive := False;
    Sql.Clear;
    Sql.Text := Sqls;
    try
      Open;
      if RecordCount > 0 then
        Result := Fields[0].AsString
      else
        Result := '';
    finally
      Close;
    end;
  end;
end;

{**********************************************************************************}
{**********************************************************************************}
function  Tdm_Inventory.GetMaterialRID(CD: string): LongInt;
var IX:  Integer;
    lcP: PSHIZAI;
begin
  Result := -1;
  for IX:=0 to FShiZaiList.Count-1 do begin
    lcp := FShiZaiList[IX];
    if strpas(lcp^.SHIZAI_CD)=CD then begin
      Result := lcP^.REC_ID;
      Exit;
    end;
  end;
end;

function  Tdm_Inventory.GetMaterialCode(RID: LongInt): string;
var IX:  Integer;
    lcP: PSHIZAI;
begin
  Result := '';
  for IX:=0 to FShiZaiList.Count-1 do begin
    lcp := FShiZaiList[IX];
    if (lcp^.REC_ID=RID) then begin
      Result := lcP^.SHIZAI_CD;
      Exit;
    end;
  end;
end;

function  Tdm_Inventory.GetMaterialName(RID: LongInt): string;
var IX:  Integer;
    lcP: PSHIZAI;
begin
  Result := '';
  for IX:=0 to FShiZaiList.Count-1 do begin
    lcp := FShiZaiList[IX];
    if (lcp^.REC_ID=RID) then begin
      Result := lcP^.SHIZAI_NM;
      Exit;
    end;
  end;
end;

function  Tdm_Inventory.GetMaterialStandardName(RID: LongInt): string;
var IX:  Integer;
    lcP: PSHIZAI;
begin
  Result := 'none guage';
  for IX:=0 to FShiZaiList.Count-1 do begin
    lcp := FShiZaiList[IX];
    if (lcp^.REC_ID=RID) then begin
      if trim(lcP^.STANDARD)='' then result := 'none guage'
      else Result := lcP^.STANDARD;
      Exit;
    end;
  end;
end;

function  Tdm_Inventory.GetUnitType(RID: LongInt): integer;
var IX:  Integer;
    lcP: PSHIZAI;
begin
  Result := 0;
  for IX:=0 to FShiZaiList.Count-1 do begin
    lcp := FShiZaiList[IX];
    if (lcp^.REC_ID=RID) then begin
      Result := lcP^.UNT_TYPE;
      Exit;
    end;
  end;
end;

function Tdm_Inventory.GetUnitTypeName(RID: LongInt): string;
var IX:  Integer;

⌨️ 快捷键说明

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