在microsoft dynamics nav中切换案例

时间:2015-12-17 10:30:06

标签: microsoft-dynamics

我试着在微软动态导航中使用开关盒。

我有这个:

CASE Betalingswijze OF
        'kontant':
           TemplateHeader.Code :='KNT-KLANT';

        'rekening':
           TemplateHeader.Code :='REK-KLANT';
        'automatische incasso':            
            TemplateHeader.Code  :='BIN-INC-KL';
        ELSE
        TemplateHeader.Code  :='KONTANT';
  END;  

和此:

    RecRef.GETTABLE("<Customer>");
    //connect the payment method to the TemplateHeader and update the record:
    //rekening
    TemplateHeader.SETFILTER(TableID, FORMAT(18));
     IF Betalingswijze := 'kontant' THEN
    TemplateHeader.SETFILTER(TemplateHeader.Code,'REK-KLANT' );
    UpdateRecordTemplate.UpdateRecord(TemplateHeader, RecRef);

    //kontant
    TemplateHeader.SETFILTER(TableID, FORMAT(18));
    TemplateHeader.SETFILTER(TemplateHeader.Code,'KNT-KLANT' );
    UpdateRecordTemplate.UpdateRecord(TemplateHeader, RecRef);

//automatische incasso
TemplateHeader.SETFILTER(TableID, FORMAT(18));
TemplateHeader.SETRANGE(TemplateHeader.Code,'BIN-INC-KL' );
UpdateRecordTemplate.UpdateRecord(TemplateHeader, RecRef);

但是现在所有的树选项都被选中而不是一个。

那么如何管理只会选择一个选择?

谢谢

2 个答案:

答案 0 :(得分:1)

我已经解决了这个问题。我忘了说它是从xml文件中读取的。

ng-model

并在公司信息中,如下:

CASE Betalingswijze OF
        'kontant':
           TemplateHeader.Code :='KNT-KLANT';
        'rekening':
           TemplateHeader.Code :='REK-KLANT';
        'automatische incasso':            
            TemplateHeader.Code  :='BIN-INC-KL';
        ELSE
        TemplateHeader.Code  :='KONTANT';
  END;  

答案 1 :(得分:0)

这是正确的代码:

RecRef.GETTABLE("<Customer>");
TemplateHeader.RESET;
TemplateHeader.SETFILTER(TableID, FORMAT(18));
CASE Betalingswijze OF
  'kontant'  : TemplateHeader.setrange(Code,'KNT-KLANT');
  'rekening' : TemplateHeader.setrange(Code,'REK-KLANT');
  'automatische incasso': TemplateHeader.setrange(Code,'BIN-INC-KL');
  ELSE TemplateHeader.setrange(Code,'KONTANT');
END;  
IF TemplateHeader.FINDFIRST THEN
    UpdateRecordTemplate.UpdateRecord(TemplateHeader, RecRef);

你的代码犯了一些错误:

  • 在您的第一个CASE中设置代码并没有对您的SETRANGE或SETFILTER执行任何操作
  • 您需要使用FINDFIRST / FINDSET实际获取记录 - 使用适当的
  • 在设置过滤器之前始终使用RESET

我希望它有所帮助。

干杯