在北美版本的 Microsoft Dynamics NAV 2009 中,单击销售发票列表或销售信用单列表中的“统计信息”时,打开窗体 (160) ,而不是窗体 (10038)

应用对象
Dynamics NAV 2009 Service Pack 1

快速发布文章直接从MICROSOFT支持组织内部提供信息。 此处包含的信息是针对新出现或独特的主题创建的,或旨在补充其他知识库信息。

本文适用于以下国家/地区和语言区域设置的 Microsoft Dynamics NAV。

  • 加拿大英语 () (en-ca)

  • 英语 (美国) (en-us)

  • 西班牙语 (墨西哥) (es-mx)

  • 加拿大法语 () (fr-ca)

症状

在具有 Role-Toiled 客户端数据库的北美版 Microsoft Dynamics NAV 2009 中,在销售发票列表或销售信用单列表中单击 “统计信息 ”记录时,将打开 (160) 窗体,而不是 (10038) 窗体。 因此,税务信息和统计信息总数不准确。

如果在销售发票或销售信用单中单击“ 统计信息 ”,则不会出现此问题。

解决方法

修补程序信息

Microsoft现在提供了受支持的修补程序。 但是,它仅用于更正本文中所述的问题。 仅将其应用于遇到此特定问题的系统。 此修补程序可能会收到其他测试。 因此,如果你没有受到此问题的严重影响,我们建议你等待下一个Microsoft Dynamics NAV Service Pack 或包含此修补程序的下一个版本。

注意 在特殊情况下,如果 Microsoft Dynamics 和相关产品的技术支持专业人员确定特定更新将解决你的问题,则通常由支持呼叫产生的费用可能会被取消。 对于相关特定升级无法解决的其他支持问题和事项,将照常收取支持费用。

            
          

安装信息

Microsoft 的编程示例仅用于说明,不做任何明示或暗示的保证。 这包括但不限于特定用途的适销性或适用性的隐含保证。 本文假定你熟悉所演示的编程语言以及用于创建和调试过程的工具。 Microsoft 支持工程师可以帮助解释特定过程的功能,但他们不会修改这些示例以提供新增功能或构建步骤以满足你的特定需要。

注意 在安装此修补程序之前,请验证所有 Microsoft Navision 客户端用户是否已从系统注销。 这包括 Microsoft Navision Application Services (NAS) 客户端用户。 实现此修补程序时,应是唯一登录的客户端用户。

若要实现此修补程序,必须具有开发人员许可证。

建议为 Windows 登录窗口或数据库登录名窗口中的用户帐户分配“SUPER”角色 ID。 如果无法为用户帐户分配“SUPER”角色 ID,则必须验证该用户帐户是否具有以下权限:

  • 要更改的 对象的“修改”权限。
  • 系统对象 ID 5210 对象和系统对象 ID 9015 对象的 Execute 权限。

                
注意 除非必须执行数据修复,否则您不必拥有数据存储的权限。

代码更改

注意 在将修补程序应用到生产计算机之前,始终在受控环境中测试代码修复。

若要安装此修补程序,请更改以下对象中的代码:

  • 509) (“总采购订单”窗体

  • “销售报价”窗体 (9300)

  • “销售发票列表”窗体 (9301)

  • 9302) (“销售信用单”窗体

  • “销售总订单”窗体 (9303)

  • 9304) (“销售退货订单列表”窗体

  • “销售订单列表”窗体 (9305)

  • “采购报价”窗体 (9306)

  • “采购订单列表”窗体 (9307)

  • “购买发票”窗体 (9308)

  • 9309) (“购买信用单”表单

  • 9310) (“总采购订单”窗体

  • 9311) (“采购订单列表”窗体

  • “服务报价”窗体 (9317)

  • “服务报价”窗体 (9318)

  • “服务发票”窗体 (9319)

  • “服务信用备忘录”表单 (9320)

请按以下步骤完成此操作:

  1. 更改“总成采购订单”窗体中 OnPush 触发器 (509) 的代码,如下所示:
    现有代码

    CalcInvDiscForHeader;
    COMMIT;
    // Delete the following line. 
    FORM.RUNMODAL(FORM::"Purchase Order Statistics",Rec);
    
    IF "Tax Area Code" = '' THEN
      FORM.RUNMODAL(FORM::"Purchase Order Statistics",Rec)
    ELSE
      FORM.RUNMODAL(FORM::"Purchase Order Stats.",Rec)
    
    
    

    替换代码

    CalcInvDiscForHeader;
    COMMIT;
    IF "Tax Area Code" = '' THEN
      FORM.RUNMODAL(FORM::"Purchase Order Statistics",Rec)
    ELSE
      FORM.RUNMODAL(FORM::"Purchase Order Stats.",Rec)
    
    
    
    
  2. 将“销售报价”窗体中的 OnPush 函数中的代码更改为 9300) (,如下所示:
    现有代码

    CalcInvDiscForHeader;
    COMMIT;
    // Delete the following line. 
    FORM.RUNMODAL(FORM::"Sales Statistics",Rec);
    
    
    
    

    替换代码

    CalcInvDiscForHeader;
    COMMIT;
    // Add the following lines. 
    IF "Tax Area Code" = '' THEN
      FORM.RUNMODAL(FORM::"Sales Statistics",Rec)
    ELSE
      FORM.RUNMODAL(FORM::"Sales Stats.",Rec);
    // The end of the lines. 
    
    
    
  3. (9301) 更改“销售发票列表”窗体的 OnPush 函数中的代码,如下所示:
    现有代码

    CalcInvDiscForHeader;
    COMMIT;
    // Delete the following line. 
    FORM.RUNMODAL(FORM::"Sales Statistics",Rec);
    
    
    
    

    替换代码

    CalcInvDiscForHeader;
    COMMIT;
    //Add the following lines. 
    IF "Tax Area Code" = '' THEN
      FORM.RUNMODAL(FORM::"Sales Statistics",Rec)
    ELSE
      FORM.RUNMODAL(FORM::"Sales Order Stats.",Rec)
    // The end of the lines. 
    
    
  4. (9302) 更改“销售信用备忘录”窗体中的 OnPush 函数中的代码,如下所示:
    现有代码

    CalcInvDiscForHeader;
    COMMIT;
    // Delete the following line. 
    FORM.RUNMODAL(FORM::"Sales Statistics",Rec);
    
    
    
    

    替换代码

    CalcInvDiscForHeader;
    COMMIT;
    //Add the followingl ines. 
    IF "Tax Area Code" = '' THEN
      FORM.RUNMODAL(FORM::"Sales Statistics",Rec)
    ELSE
      FORM.RUNMODAL(FORM::"Sales Order Stats.",Rec)
    // The end of the lines. 
    
    
    
    
    
  5. 将 OnPush 函数中的代码更改为“销售总订单”窗体 (9303) ,如下所示:
    现有代码

    CalcInvDiscForHeader;
    COMMIT;
    // Delete the following line. 
    FORM.RUNMODAL(FORM::"Sales Statistics",Rec);
    
    
    
    

    替换代码

    CalcInvDiscForHeader;
    COMMIT;
    // Add the following lines. 
    IF "Tax Area Code" = '' THEN
      FORM.RUNMODAL(FORM::"Sales Statistics",Rec)
    ELSE
      FORM.RUNMODAL(FORM::"Sales Order Stats.",Rec)
    // The end of the lines. 
    
    
    
    
  6. 将“销售退货订单列表”窗体中的 OnPush 函数中的代码 (9304) 如下所示:
    现有代码

    CalcInvDiscForHeader;
    COMMIT;
    // Delete the following line. 
    FORM.RUNMODAL(FORM::"Sales Statistics",Rec);
    
    
    
    

    替换代码

    CalcInvDiscForHeader;
    COMMIT;
    // Add the following lines. 
    IF "Tax Area Code" = '' THEN
      FORM.RUNMODAL(FORM::"Sales Statistics",Rec)
    ELSE
      FORM.RUNMODAL(FORM::"Sales Order Stats.",Rec)
    // The end of the lines. 
    
    
    
  7. 将“销售订单列表”窗体中的 OnPush 函数中的代码更改为 (9305) ,如下所示:
    现有代码

    CalcInvDiscForHeader;
    COMMIT;
    // Delete the following line. 
    FORM.RUNMODAL(FORM::"Sales Statistics",Rec);
    
    
    
    

    替换代码

    CalcInvDiscForHeader;
    COMMIT;
    // Add the following lines. 
    IF "Tax Area Code" = '' THEN
      FORM.RUNMODAL(FORM::"Sales Statistics",Rec)
    ELSE
      FORM.RUNMODAL(FORM::"Sales Order Stats.",Rec)
    // The end of the lines. 
    
    
    
  8. (9306) 更改“购买报价”窗体的 OnPush 函数中的代码,如下所示:
    现有代码

    CalcInvDiscForHeader;
    COMMIT;
    // Delete the following line. 
    FORM.RUNMODAL(FORM::"Purchase Statistics",Rec);
    
    
    
    

    替换代码

    CalcInvDiscForHeader;
    COMMIT;
    // Add the following lines. 
    IF "Tax Area Code" = '' THEN
      FORM.RUNMODAL(FORM::"Purchase Statistics",Rec)
    ELSE
      FORM.RUNMODAL(FORM::"Purchase Stats.",Rec)
    // The end of the lines.
    
    
    
  9. 更改 OnPush 函数中的“采购订单列表”窗体 (9307) 的代码,如下所示:
    现有代码

    CalcInvDiscForHeader;
    COMMIT;
    // Delete the following line. 
    FORM.RUNMODAL(FORM::"Purchase Statistics",Rec);
    
    
    
    
    

    替换代码

    CalcInvDiscForHeader;
    COMMIT;
    // Add the following lines. 
    IF "Tax Area Code" = '' THEN
      FORM.RUNMODAL(FORM::"Purchase Statistics",Rec)
    ELSE
      FORM.RUNMODAL(FORM::"Purchase Stats.",Rec)
    // The end of the lines.
    
    
    
    
  10. 更改 OnPush 函数中的“购买发票”窗体 (9308) 的代码,如下所示:
    现有代码

    CalcInvDiscForHeader;
    COMMIT;
    // Delete the following line.
    FORM.RUNMODAL(FORM::"Purchase Statistics",Rec);
    
    
    
    

    替换代码

    CalcInvDiscForHeader;
    COMMIT;
    // Add the following lines. 
    IF "Tax Area Code" = '' THEN
      FORM.RUNMODAL(FORM::"Purchase Statistics",Rec)
    ELSE
      FORM.RUNMODAL(FORM::"Purchase Stats.",Rec)
    // The end of the lines.
    
    
    
  11. 更改 9309 (9309) “购买信用单”窗体中的 OnPush 函数中的代码,如下所示:
    现有代码

    CalcInvDiscForHeader;
    COMMIT;
    // Delete the following line.
    FORM.RUNMODAL(FORM::"Purchase Statistics",Rec);
    
    
    
    

    替换代码

    CalcInvDiscForHeader;
    COMMIT;
    // Add the following lines. 
    IF "Tax Area Code" = '' THEN
      FORM.RUNMODAL(FORM::"Purchase Statistics",Rec)
    ELSE
      FORM.RUNMODAL(FORM::"Purchase Stats.",Rec)
    // The end of the lines.
    
    
    
    
  12. 更改 OnPush 函数中的“购买总成订单”窗体 (9310) 的代码,如下所示:
    现有代码

    CalcInvDiscForHeader;
    COMMIT;
    // Delete the following line.
    FORM.RUNMODAL(FORM::"Purchase Statistics",Rec);
    
    
    
    
    

    替换代码

    CalcInvDiscForHeader;
    COMMIT;
    // Add the following lines. 
    IF "Tax Area Code" = '' THEN
      FORM.RUNMODAL(FORM::"Purchase Statistics",Rec)
    ELSE
      FORM.RUNMODAL(FORM::"Purchase Stats.",Rec)
    // The end of the lines.
    
    
    
  13. (9311) 更改“采购订单列表”窗体中的 OnPush 函数中的代码,如下所示:
    现有代码

    CalcInvDiscForHeader;
    COMMIT;
    // Delete the following line.
    FORM.RUNMODAL(FORM::"Purchase Statistics",Rec);
    
    
    
    

    替换代码

    CalcInvDiscForHeader;
    COMMIT;
    // Add the following lines. 
    IF "Tax Area Code" = '' THEN
      FORM.RUNMODAL(FORM::"Purchase Statistics",Rec)
    ELSE
      FORM.RUNMODAL(FORM::"Purchase Stats.",Rec)
    // The end of the lines.
    
    
    
  14. 将 OnPush 函数中的代码更改为 9317 (9317) ,如下所示:
    现有代码

    CalcInvDiscForHeader;
    COMMIT;
    // Delete the following line.
    FORM.RUNMODAL(FORM::"Service Statistics",Rec);
    
    
    
    

    替换代码

    CalcInvDiscForHeader;
    COMMIT;
    // Add the following lines. 
    IF "Tax Area Code" = '' THEN
      FORM.RUNMODAL(FORM::"Service Statistics",Rec)
    ELSE
      FORM.RUNMODAL(FORM::"Service Stats.",Rec)
    // The end of the lines.
    
    
    
    
    
  15. 将 OnPush 函数中的代码更改为“服务引用”窗体 (9318) ,如下所示:
    现有代码

    SalesSetup.GET;
    IF SalesSetup."Calc. Inv. Discount" THEN BEGIN
      ServLine.RESET;
      ServLine.SETRANGE("Document Type","Document Type");
      ServLine.SETRANGE("Document No.","No.");
      IF ServLine.FIND('-') THEN BEGIN
        ServLines.SETTABLEVIEW(ServLine);
        ServLines.CalcInvDisc(ServLine);
        COMMIT
      END;
    END;
    // Delete the following line.
    FORM.RUNMODAL(FORM::"Service Order Statistics",Rec);
    
    
    
    

    替换代码

    SalesSetup.GET;
    IF SalesSetup."Calc. Inv. Discount" THEN BEGIN
      ServLine.RESET;
      ServLine.SETRANGE("Document Type","Document Type");
      ServLine.SETRANGE("Document No.","No.");
      IF ServLine.FIND('-') THEN BEGIN
        ServLines.SETTABLEVIEW(ServLine);
        ServLines.CalcInvDisc(ServLine);
        COMMIT
      END;
    END;
    // Add the following lines. 
    IF "Tax Area Code" = '' THEN
      FORM.RUNMODAL(FORM::"Service Order Statistics",Rec)
    ELSE
      FORM.RUNMODAL(FORM::"Service Order Stats.",Rec)
    // The end of the lines.
    
    
    
  16. 将 OnPush 函数中的代码更改为“服务发票”窗体 (9319) ,如下所示:
    现有代码

    CalcInvDiscForHeader;
    COMMIT;
    // Delete the following line.
    FORM.RUNMODAL(FORM::"Service Statistics",Rec);
    
    
    
    

    替换代码

    CalcInvDiscForHeader;
    COMMIT;
    // Add the following lines. 
    IF "Tax Area Code" = '' THEN
      FORM.RUNMODAL(FORM::"Service Statistics",Rec)
    ELSE
      FORM.RUNMODAL(FORM::"Service Stats.",Rec)
    // The end of the lines.
    
    
    
  17. 更改 OnPush 函数中的“服务额度备注”窗体 (9320) 的代码,如下所示:
    现有代码

    CalcInvDiscForHeader;
    COMMIT;
    // Delete the following line.
    FORM.RUNMODAL(FORM::"Service Statistics",Rec);
    
    
    
    

    替换代码

    CalcInvDiscForHeader;
    COMMIT;               
    // Add the following lines. 
    IF "Tax Area Code" = '' THEN
      FORM.RUNMODAL(FORM::"Service Statistics",Rec)
    ELSE
      FORM.RUNMODAL(FORM::"Service Stats.",Rec)
    // The end of the lines.
    
    
    
    

先决条件

必须安装北美版本的 Microsoft Dynamics NAV 2009 Service Pack 1 才能应用此修补程序。

删除信息

无法删除此修补程序。

状态

Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。

MICROSOFT和/或其供应商不就此网站上发布的文档和相关图形中包含的信息的适用性、可靠性或准确性作出任何声明或保证, (“材料”) 出于任何目的。

这些材料可能包含技术不准确或排版错误,可随时修订,不另行通知。 在适用法律允许的最大范围内,MICROSOFT和/或其供应商否认并排除所有明示、默示或法定的陈述、保证和条件,包括但不限于与材料有关的所有权、不侵权、令人满意的条件或质量、适销性和特定用途适用性的陈述、保证或条件。