.bom

.bom addcategory "categoria"
.bom setcolumn "category" "section" "column" [...]
.bom data categoria" "seção" "column=value" [...]
O comando .bom inclui dados no BOM (Lista de Materiais) para um build. Com isso, é possível incluir categorias, seções e dados.
Categorias
Uma categoria é um cabeçalho impresso no BOM. Use a opção addcategory para especificá-los.
.bom addcategory "categoria"
Seções
Uma seção define colunas de dados dentro de uma categoria. Use a opção setcolumn para especificar seções e colunas dentro das seções. Os nomes de seções não são impressos. O conjunto de cabeçalhos de colunas da seção é impresso no começo de uma seção. É possível aninhar seções usando a opção -p e identificar a seção pai.

Seções e colunas devem ser definidas antes das opções de dados tentar incluir dados a elas.

.bom setcolumn "categoria" "seção" "columnheader" [...]
.bom setcolumn "categoria" "seção" -p parentsection"columnheader" [...]
Dados
Os dados preenchem as colunas definidas em uma seção. A seção e as colunas já devem estar definidas usando setcolumn.
.bom data categoria" "seção" "column=value" [...]

O exemplo a seguir mostra a ordem na qual as categorias, seções e colunas e dados devem ser especificados.


.bom addcategory "Spaceships"
.bom setcolumn "Spaceships" "Section1" "ShipName" "WarpSpeed" "Tonnage"
.bom setcolumn "Spaceships" "Subsection1" -p "Section1" "ShippingDate" "ShippingManifest"
.bom data "Spaceships" "Section1" "ShipName=SpaceShipOne" "WarpSpeed=9" "Tonnage=10000"
.bom data "Spaceships" "Subsection1" "ShippingDate=123" "ShippingManifest=456"
.bom data "Spaceships" "Section1" "ShipName=Freighter" "WarpSpeed=6" "Tonnage=20000" 

Este exemplo é exibido no BOM da seguinte maneira:

ShipName      WarpSpeed   Tonnage
SpaceShipOne      9        10000
                                   ShippingDate       ShippingManifest
                                       123                  456
Responsável pelo Frete         6        20000
Como em outros comandos com ponto, é possível utilizar as variáveis de ambiente no comando. Um comando como
.bom data "Spaceships" "${SECTION}" "ShipName=${NAME}" "WarpSpeed=${SPEED}" "Tonnage=${TONNAGE}"

preenche o BOM com dados carregados nas variáveis de ambiente por comandos anteriores.

É possível criar qualquer número de colunas, mas o sistema não grava uma linha para o BOM até que a última coluna seja preenchida.

Se você omitir uma coluna a partir da linha de dados, o sistema usará o valor da linha anterior, conforme mostra o exemplo a seguir.
.bom addcategory "Spaceships"
.bom setcolumn "Spaceships" "Section1" "ShipName" "WarpSpeed" "Tonnage"
.bom data "Spaceships" "Section1" "ShipName=SpaceShipTwo" "WarpSpeed=3" "Tonnage=30000"
.bom data "Spaceships" "Section1" "ShipName=Tanker" "Tonnage=50000"

O resultado é que o valor WarpSpeed do SpaceShipOne é repetido:
ShipName      WarpSpeed   Tonnage
SpaceShipTwo      3        30000
Tanker            3        50000

Feedback