?? invdm.~pas
字號:
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 + -