Określiliśmy już wszystkie wartości parametrów konieczne do skonstruowania modelu i obliczenia numerów części. Ostatnia reguła, którą utworzymy, przekazuje numery części i inne wartości parametrów powiązane z tym plikiem do arkusza obliczeniowego Excel. Niektóre z tych numerów części znajdują się w komponencie iPart, natomiast ta reguła wygenerowała numer części śruby.
W regule update_excel_spreadsheet_rule wykorzystywany jest zestaw funkcji dostępnych w kategorii Excel Data Links w obszarze Szablony kodu w oknie dialogowym Edycja reguły.
Reguła ta wypełnia wymagane komórki w zależności od stanu modelu. W arkuszu kalkulacyjnym wszystkie komórki, do których przekazywane są dane, zostały nazwane tak, by odpowiadać zapisywanym informacjom.
GoExcel.CellValue("part_number.xls", "Sheet1", "Block_Type") = component_type GoExcel.CurrentCellValue("Block_Style") = block GoExcel.CurrentCellValue("Block_Part_Number") = iProperties.Value("manifold_block:1", "Project", "Part Number")
Ten fragment odnosi się do arkusza kalkulacyjnego part_number.xls dołączonego do tego ćwiczenia. Następnie określamy wartości komórek Block_Type, Block_Style i Block_Part_Number. Dwie pierwsze wartości są określane przez parametry zespołu, a ostatnia wartość przez właściwość iProperty Numer części bloku.
GoExcel.CurrentCellValue("port_a_size") = port_a_size If block = "tee" Then GoExcel.CurrentCellValue("port_b_size") = port_b_size Else GoExcel.CurrentCellValue("port_b_size") = "N/A" End If GoExcel.CurrentCellValue("port_c_size") = port_c_size
Zauważ, że w przypadku kolektora kolankowego używamy wartości zastępczej N/A.
GoExcel.CurrentCellValue("block_depth") = Parameter("manifold_block:1", "block_depth") GoExcel.CurrentCellValue("block_width") = Parameter("manifold_block:1", "block_width") GoExcel.CurrentCellValue("block_height") = Parameter("manifold_block:1", "block_height")
Zwróć uwagę na odniesienie do komponentu manifold_block:1 w tym fragmencie.
GoExcel.CurrentCellValue("port_a_union_cap") = port_a_union_part_number GoExcel.CurrentCellValue("port_a_screw_kit") = port_a_screw_part_number If block = "tee" Then GoExcel.CurrentCellValue("port_b_union_cap") = port_b_union_part_number GoExcel.CurrentCellValue("port_b_screw_kit") = port_b_screw_part_number Else GoExcel.CurrentCellValue("port_b_union_cap") = "N/A" GoExcel.CurrentCellValue("port_b_screw_kit") = "N/A" End If GoExcel.CurrentCellValue("port_c_union_cap") = port_c_union_part_number GoExcel.CurrentCellValue("port_c_screw_kit") = port_c_screw_part_number
Tak jak w przypadku parametru port_b_size we wcześniejszym fragmencie reguły, zauważ warunkowe podejście do wartości powiązanych z gniazdem Port B.
GoExcel.Save