【问题标题】:Copy a section of a record to another record ind Dynamics NAV将记录的一部分复制到另一条记录 ind Dynamics NAV
【发布时间】:2017-12-10 04:47:31
【问题描述】:

我有一个用户标记的记录,比如说 100 行。我这样检索记录:

CurrPage.SETSELECTIONFILTER(recSelection);
recSelection.FINDSET;

现在,我想一次将 20 行所选内容复制到另一个记录变量中,然后将其传递给函数。

如何分步处理记录? 像这样:

batchSize := 20;
currSize := 0;
totalSize := recSelection.COUNT;
totalProcessed := 0;
recSelection.FINDSET;
REPEAT
  IF (currSize = 0) THEN BEGIN
    tmpRec.INIT;
  END;

  // how can I add the current to the tmp?
  // tmpRec.INSERT -> recSelection

  currSize += 1;
  totalProcessed += 1;

  IF (currSize = batchSize) OR (totalProcessed = totalSize) THEN BEGIN
     SomeHeavyFunction(tmpRec);
     currSize := 0;
  END;

UNTIL recSelection.NEXT = 0;

【问题讨论】:

    标签: microsoft-dynamics dynamics-nav-2009


    【解决方案1】:

    我得到了它的工作:

    (删除所有临时记录对我来说总是有点吓人:P),recTemp 是一个临时记录

    CURR_BATCH_SIZE := 0;
    TOTAL_ITEMS := recSelected.COUNT;
    BATCH_SIZE := 20;
    TOTAL_PROCESSED := 0;
    IF recSelected.FIND('-') THEN
    REPEAT
    
      IF (CURR_BATCH_SIZE = 0) THEN BEGIN
        recTemp.RESET;
        recTemp.DELETEALL;
        recTemp.INIT;
      END;
    
      // copy over
      recTemp := recSelected;
      recTemp.INSERT;
    
      // store state
      CURR_BATCH_SIZE := CURR_BATCH_SIZE + 1;
      TOTAL_PROCESSED := TOTAL_PROCESSED + 1;
    
      // did we reach batch limit or end?
      IF (CURR_BATCH_SIZE = BATCH_SIZE) OR (TOTAL_PROCESSED = TOTAL_ITEMS) THEN BEGIN
        // process batch
        MESSAGE('Processing next %1. total processed %2/%3', FORMAT(recTemp.COUNT), FORMAT(TOTAL_PROCESSED), FORMAT(TOTAL_ITEMS));
    
        // reset counters
        CURR_BATCH_SIZE := 0;    
      END;
    
    
    UNTIL recSelected.NEXT = 0;
    

    【讨论】:

      【解决方案2】:

      根据您的版本,您可以检查recTemp.ISTEMPORARY

      有关详细信息,请参阅documentation

      【讨论】:

        猜你喜欢
        • 2019-06-11
        • 2020-09-15
        • 1970-01-01
        • 2017-04-19
        • 1970-01-01
        • 1970-01-01
        • 2019-09-30
        • 1970-01-01
        • 2021-09-18
        相关资源
        最近更新 更多