2014-09-04 71 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