BOM
2744 단어 levelbomexplodeBOM
// Copyright (C), 2015, CEU Co., Ltd.
// USR Changed by 2015-01-20T17:57:50 Fandy Xie
// Version : 1.0
// Description : BOM
// Return :
// BOM Explode using Recursive function.
// This job explode all the sub components of an item.
static void bomExplodeRecursive(Args _args)
{
qty netConsum = 10.00;
inventSiteId inventSiteId = companyInfo::find().fallBackSiteId();
ItemId itemId = "1107";
int linNum;
void explodeBOM(
Itemid parmItemId ,
BOMQty parmNetConsum ,
int parmLevel = 1)
{
BOMversion bomVersion;
inventDim inventDim;
BOM bomLocal;
int tmpLevel = 1;
inventTable inventTable;
;
if (!parmItemId)
return;
netConsum = parmNetConsum;
/*
select firstonly bomVersion
where bomVersion.ItemId == parmItemId &&
bomVersion.Active
join inventDim
where inventDim.inventDimId == bomVersion.InventDimId &&
((inventDim.InventSiteId == inventSiteId ||
!inventSiteId) ||
!inventDim.InventSiteId);
*/
/*
inventDim.InventSizeId = _inventSiteId;
bomVersion = bomVersion::findActive(parmItemId, systemdateget(), 1, inventDim::findOrCreate(inventDim));
*/
while select bomversion index hint BomIdx
where bomversion.ItemId == parmItemId &&
bomversion.Active == Noyes::Yes
join bomLocal index hint NumIdx
where bomLocal.BOMId == bomversion.BOMId
{
inventTable = inventTable::find(bomLocal.ItemId);
if(bomLocal.BOMQtySerie)
parmNetConsum = netConsum * (bomLocal.BOMQty / bomLocal.BOMQtySerie);
else if(bomLocal.BOMQty)
parmNetConsum = netConsum * bomLocal.BOMQty;
else
parmNetConsum = netConsum;
linNum++;
if(inventTable.ItemType == ItemType::BOM)
{
tmpLevel = parmLevel + 1;
warning(strfmt(" [%1], [%2], [%3], [%4], [%5].",
linNum, parmLevel, inventTable.ItemType, inventTable.ItemId, parmNetConsum));
explodeBOM(bomLocal.ItemId, parmNetConsum, tmpLevel);
}
else
info( strfmt(" [%1], [%2], [%3], [%4], [%5].",
linNum, parmLevel, inventTable.ItemType, inventTable.ItemId, parmNetConsum));
}
}
;
setprefix(strfmt(" [%1], [%2].",itemId, netConsum));
explodeBOM(itemId, netConsum);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
`# frozen_string_literal : true`에서 BOM이있는 CSV 파일 생성라는 것을 어제 알았습니다! Ruby에서 샘플을 작성해 보겠습니다. with_bom_csv.rb CSV 파일의 내용은 을 한자로 다시 작성했습니다. # frozen_string_literal: true 를 파일의 선...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.