Но я хотите изменить его, чтобы получить производственный номер, например (PP000004), а сгенерированный номер партии/серийный номер: PP000004-000001, PP000004-000002, PP000004-000003 и так далее, пока не будет достигнуто необходимое количество. Как добиться этого с помощью настройки? Чтобы изменить номер партии/серийный номер, необходимо расширить кнопку создания. Я создал метод переопределения, но получаю эту ошибку, буду признателен за любую помощь!
Код: Выделить всё
using System;
using PX.Data;
using PX.Objects.IN;
using PX.Objects.CS;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using PX.Objects.AM.GraphExtensions;
using PX.Common;
using PX.Objects.Common;
using PX.Objects.SO;
using PX.Objects.AM.Attributes;
using System.Linq;
using PX.Objects.AM.CacheExtensions;
using PX.Data.BQL.Fluent;
using PX.Data.BQL;
using PX.Objects.AR;
using PX.Objects.CR;
using PX.Objects.GL;
using PX.Objects;
using PX.Objects.AM;
namespace PX.Objects.AM
{
public class ProdMaint_Extension : PXGraphExtension
{
#region Event Handlers
// This method overrides the existing method tied to the Generate button
[PXOverride]
public virtual void GenerateNumbers(Action baseMethod)
{
// Call the base method to keep existing functionality (optional)
baseMethod?.Invoke();
// Custom logic to generate Lot/Serial numbers based on production number
var currentOrder = PXSelect.Select(Base).TopFirst;
if (currentOrder == null) return;
string productionNumber = currentOrder.ProdOrdID;
// Get all generated material lines
PXResultset materialLines = PXSelect
.Select(Base, currentOrder.ProdOrdID);
int sequenceNumber = 1;
foreach (AMProdMatl line in materialLines)
{
if (string.IsNullOrEmpty(line.LotSerialNbr)) continue;
// Generate the new lot/serial number
string newLotSerialNbr = $"{productionNumber}-{sequenceNumber:D6}";
// Update the lot/serial number
line.LotSerialNbr = newLotSerialNbr;
// Save changes
Base.Caches[typeof(AMProdMatl)].Update(line);
sequenceNumber++;
}
// Save changes to the database
Base.Actions.PressSave();
}
#endregion
Ошибка: [2024-10-07 03:16:01.919] The Void GenerateNumbers(System.Action) метод в расширении графа PX.Objects.AM.ProdMaint_Extension помечен как [PXOverride], но исходный метод с таким именем в PXGraph не найден.
[2024-10-07 03:16:08.479] Проверка не удалась .
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/790 ... ntenance-s