2017-04-04 4 views
0

新しい顧客の場所が作成されます。 これまでは、既存のレコードでページをロードしようとしています。このコードではアクションからお客様の場所を挿入

が、結果はしかし、この他のバージョンでは、空白のページがロードさ

public virtual IEnumerable NewLocation(PXAdapter adapter) 
    { 
      CustomerLocationMaint locationGraph = PXGraph.CreateInstance<CustomerLocationMaint>(); 
      Location locationRow = new Location(); 
      locationGraph.Location.Current = locationGraph.Location.Search<Location.locationID>(116, "ABARTENDE"); 
      locationGraph.Location.Insert(locationRow); 
      throw new PXRedirectRequiredException(locationGraph, null) { Mode = PXBaseRedirectException.WindowMode.NewWindow }; 
        return adapter.Get(); 
    } 

正である:

public virtual IEnumerable NewLocation(PXAdapter adapter) 
    { 
      CustomerLocationMaint locationGraph = PXGraph.CreateInstance<CustomerLocationMaint>(); 
      Location locationRow = new Location(); 
      locationRow.BAccountID = 109; //ABARTENDE 
      locationRow.LocationID = 116; //MAIN 
      locationGraph.Location.Insert(locationRow); 
      throw new PXRedirectRequiredException(locationGraph, null) { Mode = PXBaseRedirectException.WindowMode.NewWindow }; 
        return adapter.Get(); 
    } 

私はバージョンを持っている必要があります最終的に、このアクションから新しいLocationCDが入力されるため、2番目のものと同様です。 アイデア

答えて

1

2番目の例では、LocationIDを明示的に設定しようとしています。これは、割り当てが必要なIDフィールドです。ソースでいくつかの例が見つかりました:

public PXDBAction<BAccount> addLocation; 
    [PXUIField(DisplayName = Messages.AddNewLocation)] 
    [PXButton(ImageKey = PX.Web.UI.Sprite.Main.DataEntry)] 
    public virtual void AddLocation() 
    { 
     var row = BAccount.Current; 
     if (row == null || row.BAccountID == null) return; 

     LocationMaint graph = null; 
     switch (row.Type) 
     { 
      case BAccountType.VendorType: 
       graph = PXGraph.CreateInstance<AP.VendorLocationMaint>(); 
       break; 
      case BAccountType.CustomerType: 
       graph = PXGraph.CreateInstance<AR.CustomerLocationMaint>(); 
       break; 
      default: 
       graph = PXGraph.CreateInstance<LocationMaint>(); 
       break; 
     } 


     var newLocation = (Location)graph.Location.Cache.CreateInstance(); 
     newLocation.BAccountID = row.BAccountID; 
     var locType = LocTypeList.CustomerLoc; 
     switch (row.Type) 
     { 
      case BAccountType.VendorType: 
       locType = LocTypeList.VendorLoc; 
       break; 
      case BAccountType.CombinedType: 
       locType = LocTypeList.CombinedLoc; 
       break; 
     } 
     newLocation.LocType = locType; 
     graph.Location.Insert(newLocation); 
     PXRedirectHelper.TryRedirect(graph, PXRedirectHelper.WindowMode.NewWindow); 

    } 
関連する問題