2016-09-23 61 views
0

我有一個GetDates功能是這樣的:重複日期由每一行NAV 2009

GetDates(BOM : Record "BOM Component";VAR StartDate : Date;VAR EndDate : Date) 
// Called from OnAfterGetRecord in form 36 

IF BOM.GET("Parent Item No.",BOM."Line No.") THEN BEGIN 
    //MESSAGE(FORMAT(BeginDate)); 
    StartDate := BeginDate; 
    EndDate := EndDate; 
END 

我哈瓦一個從36,我調用該函數:

//ItemAdditionBeginDate := 0D; 
ItemAdditionBeginDate := ItemAdditionHallo.BeginDate; 
//ItemAdditionEndDate := 0D; 
ItemAdditionEndDate := ItemAdditionHallo.EndDate; 

ItemAddition.GetDates(Rec,ItemAdditionBeginDate,ItemAdditionEndDate); 
ItemAddition.GetRegelkorting(salesLine, ItemAddition.Regelkorting); 

但問題是DAT每時間你在表單它複製值增加一個新的日期到其他行,像這樣:

enter image description here

所以如何解決日期不被複制。

謝謝

我在表50012聲明getDates:

GetDates(BOM : Record "BOM Component";VAR StartDate : Date;VAR EndDate : Date) 
// Called from OnAfterGetRecord in form 36 

IF BOM.GET("Parent Item No.",BOM."Line No.") THEN BEGIN 
    //MESSAGE(FORMAT(BeginDate)); 
    StartDate := BeginDate; 
    EndDate := EndDate; 
END 

這是setDates:

SetDates(BOM : Record "BOM Component";VAR StartDate : Date;VAR EndDate : Date) 
// Called from OnValidate of start and end dates in form 36 
BOM.INIT; 
"Item No." := BOM."Line No."; 
"Parent Item No." := BOM."Parent Item No."; 
//Stuklijst."Line No." := BOM."Line No."; 
StartDate := StartDate; 
EndDate := EndDate; 


IF NOT MODIFY THEN 
    INSERT; 

enter image description here

奧凱,我有現在這個樣子:

SetDates(BOM : Record "BOM Component";VAR startDateparm : Date;VAR EndDateparam : Date) 
// OnValidate of start and end dates in form 36 

BOM.INIT; 
"Item No."    := BOM."Line No."; 
"Parent Item No."  := BOM."Parent Item No."; 
BeginDate    := startDateparm; 
EndDate    := EndDateparam; 

IF NOT MODIFY THEN 
    INSERT; 

但日期仍然是從前一個記錄複製。如果我去其他紀錄:

見圖片: enter image description here

+0

你好,在功能'GetDates()'你傳遞兩個參數類型日期'StartDate'和'EndDate'。然後你分配值,'StartDate:= BeginDate';和'EndDate:= EndDate',問題是:當你爲'BeginDate'賦值時?和'EndDate'分配了自己的值?在哪個對象中定義了函數GetDates()。 –

+0

謝謝。我編輯文章 – SavantCode

+0

如果使用調試器調用'SetDates()'函數之後,「StartDate」和「EndDate」的值得到更正?你可以改變這個參數的名字(StartDate和EndDate)?因爲它們與表格的字段具有相同的名稱。 –

回答

1

感謝回答我關於你的程序的問題。檢查最後一張圖片。您正在插入或修改BOM表。

這是你的代碼:

SetDates(BOM : Record "BOM Component";VAR StartDate : Date;VAR EndDate : Date) 

// Called from OnValidate of start and end dates in form 36 
BOM.INIT; 
"Item No." := BOM."Line No."; 
"Parent Item No." := BOM."Parent Item No."; 
//Stuklijst."Line No." := BOM."Line No."; 
StartDate := StartDate; 
EndDate := EndDate; 

IF NOT MODIFY THEN 
    INSERT; 

如果您檢查拉斯維加斯的圖像,你可以看到參數StartDateEndDate是正確的,但是當你將這個值BOM表的字段(StartDate, EndDate)值在空白。 這happend因爲你的參數具有相同作爲字段BOM表

更改您的驗證碼

SetDates(BOM : Record "BOM Component";VAR parmStartDate : Date;VAR parmEndDate : Date) 
//Declare new variable of BOM table, recBOM - record - BOM 
// Called from OnValidate of start and end dates in form 36 
recBOM.INIT; 
recBOM."Item No."    := BOM."Line No."; 
recBOM."Parent Item No."  := BOM."Parent Item No.";  
recBOM.StartDate    := parmStartDate; 
recBOM.EndDate    := parmEndDate; 

IF NOT recBOM.MODIFY THEN 
    recBOM.INSERT; 
+0

@ Jonathan.Thank你。我會在星期一進行測試。我現在會讓你。 – SavantCode

+0

我編輯帖子 – SavantCode

+0

我編輯答案,檢查te最後一個函數,創建一個新變量recBOM並插入或修改這個vatiable。 –