2014-09-04 75 views
0

我有以下代碼從Navision的計算量的間隔

PrintLine := FALSE; 
LineTotalVendAmountDue := 0; 
FOR i := 1 TO 5 DO BEGIN 
    DtldVendLedgEntry.SETCURRENTKEY("Vendor No.","Initial Entry Due Date"); 
    DtldVendLedgEntry.SETRANGE("Vendor No.","No."); 
    DtldVendLedgEntry.SETRANGE("Initial Entry Due Date",PeriodStartDate[i],PeriodStartDate[i + 1] - 1); 
    DtldVendLedgEntry.CALCSUMS("Amount (LCY)"); 
    VendBalanceDue[i] := DtldVendLedgEntry."Amount (LCY)"; 
    VendBalanceDueLCY[i] := DtldVendLedgEntry."Amount (LCY)"; 
    IF VendBalanceDue[i] <> 0 THEN 
    PrintLine := TRUE; 
    LineTotalVendAmountDue := LineTotalVendAmountDue + VendBalanceDueLCY[i]; 
    TotalVendAmtDueLCY := TotalVendAmtDueLCY + VendBalanceDueLCY[i]; 
END; 

我必須的代碼翻譯成以上SQL server但我不理解它。我是Navision的新手。

+1

首先查閱Navision文檔中的單獨說明。你知道SETCURRENTKEY做什麼嗎? SETRANGE?你知道變量DtldVenLedgEntry與什麼表有關嗎? 我們在這裏爲您解答具體問題,而不是您的工作:) – MeanGreen 2014-09-04 14:04:02

回答

0

硬如果甚至有可能轉換到SQL給出沒有上下文,但本質上:

對於5日間隔(每個在PeriodStartDate陣列指定的開始日期)加起來:

SELECT SUM([Amount (LCY)]) 
FROM [Company$Detailed Vendor Ledg. Entry] 
WHERE [Vendor No.] = $1 -- particular Vendor No. 
AND [Initial Entry Due Date] BETWEEN $2 and $3 -- period start/end, inclusive 

LineTotalVendAmountDue是設置爲特定供應商的總共5個間隔。

​​設置爲報告總計(推測)。

+1

上述查詢的表格有錯誤; 詳細的自定義。 LEDG。輸入不包含供應商編號 您應該使用:詳細供應商Ledg。條目 – gbierkens 2014-10-16 15:09:18

+0

斑點,gbierkens,答案更新。 – Ivka 2014-10-22 08:11:25