【问题标题】:How to skip function in navsion 2009如何在 navision 2009 中跳过功能
【发布时间】:2017-01-29 15:04:30
【问题描述】:

我有一个可以添加文章的功能。 而且我有一个日期范围。但如果不在日期范围内,我想跳过这个函数(表 36):

FncCheckBOM(Description : Text[30])

LocRecSalesLine.SETRANGE("Document Type", Rec."Document Type");
LocRecSalesLine.SETRANGE("Document No.", Rec."No.");
LocRecSalesLine.SETRANGE(Type,LocRecSalesLine.Type::Item);
LocRecSalesLine.SETFILTER("BOM Item No.", '');
LocRecSalesLine.SETFILTER("Description 2", '*'+Description+'*');
LocRecSalesLine.SETFILTER("Purch. Order Line No.", '0');
LocRecSalesLine.SETFILTER("Job Contract Entry No.", '0');
IF LocRecSalesLine.FINDFIRST THEN
  REPEAT
  BEGIN
    FromBOMComp.SETRANGE("Parent Item No.",LocRecSalesLine."No.");
    NoOfBOMComp := FromBOMComp.COUNT;
    IF (NoOfBOMComp <> 0) AND (LocRecSalesLine."BOM Item No." = '') THEN
    BEGIN
      LocRecSalesLine.FncExplodeBOM;
    END;
  END
  UNTIL LocRecSalesLine.NEXT = 0;

LocRecSalesLine.RESET;
LocRecSalesLine.SETRANGE("Document Type", Rec."Document Type");
LocRecSalesLine.SETRANGE("Document No.", Rec."No.");
LocRecSalesLine.SETRANGE(Type,LocRecSalesLine.Type::" ");
LocRecSalesLine.SETFILTER("Description 2", '*'+Description+'*');
IF LocRecSalesLine.FINDFIRST THEN
  REPEAT
    LocRecSalesLine.DELETE;
  UNTIL LocRecSalesLine.NEXT = 0;

//AddItemDates.CheckDates(BeginDate, EndDate);

COMMIT;

而我的方法是这样的(表50012):

BetginDatumMessage := 'begindatum is yessss:';
 Rec.SETRANGE("Parent Item No.","Parent Item No.");
 IF Rec.FIND() THEN;
  //Rec.SETRANGE("Parent Item No.","Parent Item No.");
  //Rec.SETRANGE("Item No.","Item No.");
  MESSAGE('Date is ok');
  //BeginDate := TODAY + 1 ;
  //EndDate := TODAY + 2;
   MESSAGE(BetginDatumMessage + '' + FORMAT(Rec.BeginDate));
   MESSAGE(FORMAT(TODAY));
   IF (TODAY >= Rec.BeginDate) AND (TODAY <= Rec.EndDate) THEN BEGIN
   MESSAGE('Dat is fine');
    RecSalesHeaderQuote.FncCheckBOM(SalesLines.Description);
    MESSAGE(FORMAT(BeginDate));
    MESSAGE(SalesLines.Description);
  END
  ELSE BEGIN
  MESSAGE('other');

  END;

因为现在它总是触发函数:FncCheckBOM(Description : Text[30])

不需要的。

谢谢

BetginDatumMessage := 'begindatum is yessss:';
 Rec.SETRANGE("Parent Item No.","Parent Item No.");
 IF Rec.FIND() THEN;
  MESSAGE('Date is ok');
   IF (TODAY >= Rec.BeginDate) AND (TODAY <= Rec.EndDate) THEN BEGIN
   MESSAGE('Dat is fine');
    RecSalesHeaderQuote.FncCheckBOM(SalesLines.Description);
    MESSAGE(FORMAT(BeginDate));
    //MESSAGE(SalesLines.Description);
  END
  ELSE BEGIN
  EXIT;
  MESSAGE('other');
  END;
   IF (Rec.BeginDate = 0D) AND (Rec.EndDate = 0D ) THEN BEGIN
    MESSAGE('Empty');
  END;

【问题讨论】:

    标签: navision dynamics-nav-2009


    【解决方案1】:

    SKIP 你的函数在你想要放置句子的代码部分:

    EXIT;
    

    此语句将使您的方法结束并退出函数。

    【讨论】:

    • 谢谢。但是这两个函数在不同的表中。我现在只跳过当前功能(检查日期)。但它不会跳过函数(FncCheckBOM)
    • 好的,如果你把 EXIT 语句放在函数 CheckDates 中就可以了。函数 CheckDates 调用在 FncCheckBOM 函数内部,对吗?在调用 CheckDates 函数之前可以使用任何条件,如 IF 语句 吗?
    猜你喜欢
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    • 2019-01-08
    • 1970-01-01
    相关资源
    最近更新 更多