【问题标题】:I'm trying to compile the following code, but keep on getting the same error message我正在尝试编译以下代码,但不断收到相同的错误消息
【发布时间】:2018-04-25 22:26:01
【问题描述】:
using System;
using System.Collections.Generic;
using PX.Data;
using System.Collections;
using PX.Objects.AR;
using PX.Objects.CR;
using PX.Objects.CS;
using PX.Objects.GL;
using PX.Objects.IN;
using PX.Objects.CT;
using PX.Objects;
using PX.Objects.PM;

namespace PX.Objects.PM{}

public class 
ProjectBalanceEntry_Extension:PXGraphExtension<ProjectBalanceEntry>{}


  #region Event Handler


  public PXFilter<ProjectBalanceEntry.ProjectBalanceFilter>(Filter);
  [PXVirtualDAC]

  ProjectBalanceEntry row = e.Row as ProjectBalanceFilter;

  if (row != null)
    {
      Items.Cache.AllowInsert = row.ProjectID != null && row.AccountGroupID 
!= null;
    }

  if (Filter.Current == null)
        {
            Items.Cache = row.ProjectID != null && row.AccountGroupID != 
null;
        }

            PXSelectJoin<PMProjectStatus,
                InnerJoin<PMTask, On<PMTask.projectID, 
Equal<PMProjectStatus.projectID>>>, 
                Where<PMProjectStatus.projectID, 
Equal<Current<ProjectBalanceFilter.projectID>>, 
And<PMProjectStatus.accountGroupID, 
Equal<Current<ProjectBalanceFilter.accountGroupID>>>>,

              {
  if (project == null) project = Base.Project.Select();

  if (project != null && row != null)
 } 

             INItemSite itemsite = PXSelectJoin<INItemSite,
                InnerJoin<Location, On<Location.cSiteID, 
Equal<INItemSite.siteID>>>,
                Where<INItemSite.inventoryID, 
Equal<Required<INItemSite.inventoryID>>, And<Location.bAccountID, 
Equal<Required<Location.bAccountID>>>>>.Select(Base, row.InventoryID, 
project.CustomerID);

           if (itemsite != null)
    {
      e.NewValue = itemsite.LastCost;
    }


  e.Cancel = true;

 #endregion

验证此代码时出现以下错误:

验证二进制文件 验证网站 C:\Program Files (x86)\Acumatica ERP\定制\AcumaticaPUPKT11Validation\AcumaticaPUPKT11网站 IIS APPPOOL.NET v4.5 构建目录 '\WebSiteValidationDomain\App_RuntimeCode\'。 \App_RuntimeCode\ProjectBalanceEntry.cs(23):错误 CS1518:预期 类、委托、枚举、接口或结构 \App_RuntimeCode\ProjectBalanceEntry.cs(29):错误 CS1518:预期 类、委托、枚举、接口或结构 \App_RuntimeCode\ProjectBalanceEntry.cs(23):错误 CS1518:预期 类、委托、枚举、接口或结构编译器时间,以秒为单位: 5.0554991 验证失败。

【问题讨论】:

  • 看起来以PXSelectJoin开头的语句有语法错误...看起来像一个声明,但末尾缺少一个尖括号,下一行是大括号括号表示可能缺少某些行。此外,大括号被错误地放置在命名空间和类声明之后。
  • 我可能会在这里引起一些冒犯,但如果您正在查看问题中的代码并且没有发现代码中存在 number 个明显问题,则需要返回对于基础知识和学习 C#,不要指望我们在您无需学习任何东西的情况下协助编译代码。

标签: c#


【解决方案1】:

当我确定您的意思是 { 时,您在多个地方都有 {}

namespace PX.Objects.PM{}

public class 
ProjectBalanceEntry_Extension:PXGraphExtension<ProjectBalanceEntry>{}

基本上,您的花括号发生了一些非常错误的事情(例如,查找/替换错误)。您可能需要恢复到较早版本的源代码。

函数定义也有错误的语法:

  public PXFilter<ProjectBalanceEntry.ProjectBalanceFilter>(Filter);
  [PXVirtualDAC]

应该是

  [PXVirtualDAC]
  public PXFilter<ProjectBalanceEntry.ProjectBalanceFilter>(Filter)
  {

【讨论】:

  • 即使更改大括号,我仍然会在第 (16) 行和第 (24) 行遇到相同的错误。 ProjectBalanceFilter 似乎有问题。似乎在 ProjectBalanceEntry 命名空间中找不到 ProjectBalanceFilter 的声明。
  • 它有一个问题:public PXFilter(Filter); [PXVirtualDAC]
  • 还有一个问题:ProjectBalanceEntry row = e.Row as ProjectBalanceFilter;
猜你喜欢
  • 2015-10-04
  • 2018-03-20
  • 1970-01-01
  • 1970-01-01
  • 2020-01-21
  • 1970-01-01
  • 2019-05-30
  • 2021-04-22
相关资源
最近更新 更多