Acumatica의 겉보기에 쉬운 일은 구현하기가 몹시 복잡해 보입니다. 내가 원하는 것은 그리드의 마지막 행을 새로운 행으로 복사하는 것입니다. 사용자가 직접 변경 내용을 유지하면 코드가 캐시에 저장됩니다. 이것은 지금까지 내 작업입니다 :Acumatica - 마지막 행을 복사
public PXAction<SOOrder> copyLastRow;
[PXUIField(DisplayName = "Copy Last Row", MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select)]
[PXLookupButton]
public virtual IEnumerable CopyLastRow(PXAdapter adapter)
{
SOLine line = Base.Transactions.Select().LastOrDefault();
int? lineNbr = 0;
foreach(SOLine line2 in Base.Transactions.Select())
if (line2.LineNbr > lineNbr)
lineNbr = line2.LineNbr;
line.LineNbr = lineNbr + 1;
Base.Transactions.Cache.Insert(line);
return adapter.Get();
}
그래서 어쩌면 내가 내 코드에서 무언가 또는 완전히 잘못을 받고 있지 않다,하지만 난 상관없이 내가 뭘 점점 오류를 해요. 그리드가 내 행으로 새로 고쳐지지 않고 "이 레코드를 저장할 수 없습니다"또는 "다른 프로세스가이 레코드를 업데이트했습니다"와 같이 모든 종류의 오류가 계속 발생합니다. 또한 새 행을 생성하는 방법에 대한 아이디어는 없습니다. 내가 가지고있는 거친 논리? 누구든지 도움을 줄 수 있다면 많은 도움이됩니다.
Acumatica 플랫폼은 4GL 프로그래밍 언어와 유사합니다. 이러한 시스템이 어려운 일을 쉽고 간단하게 어렵게 만드는 것은 일반적입니다. 작은 세부 사항에서 잃어버린 시간은 ORM, 동시성, 보안, 보고서, DB 스크립트 등의 상위 레벨 시스템을 다시 구현할 필요가 없으므로 보완됩니다. 플랫폼 표준 템플릿과 최상의 디자인을 권장합니다. 연습, T100-T200-T300 교육 자료를 사용하면 모든 것을 결합하는 방법을보다 잘 이해할 수 있습니다. –