Zapis informacji w arkuszu kalkulacyjnym Excel

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.

  1. Dodaj nową regułę o nazwie update_excel_spreadsheet_rule.

    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.

  2. Utwórz pierwszy fragment reguły otwierający arkusz kalkulacyjny i zapisujący wartości trzech pierwszych komórek.

    Kopia bloku kodu

    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.

  3. Utwórz następny fragment reguł zapisujący wartości rozmiarów trzech gniazd w arkuszu kalkulacyjnym.

    Kopia bloku kodu

    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.

  4. Dodaj do reguły kolejny fragment przypisujący wartości komórek z parametrów zawartych w komponencie bloku kolektora.

    Kopia bloku kodu

    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.

  5. Dodaj do reguły fragment przypisujący wartości komórek z numerów części komponentu stanowiącego dwuzłączkę i części stanowiących śruby, zgodnie z obliczeniami wykonanymi przez regułę screw_part_number_rule.

    Kopia bloku kodu

    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.

  6. Aby zakończyć regułę, zapisz zmiany w arkuszu kalkulacyjnym. Użyj funkcji GoExcel.Save dostępnej w węźle Excel Data Links w obszarze Szablony kodu

    Kopia bloku kodu

    GoExcel.Save
  7. Kliknij przycisk OK, by zapisać i zamknąć regułę. Arkusz kalkulacyjny jest aktualizowany, gdy reguła zostaje uruchomiona przy zamykaniu. Po uruchomieniu reguła automatycznie zamyka arkusz kalkulacyjny.
  8. W programie Excel otwórz arkusz kalkulacyjny part_number.xls i upewnij się, że został on zaktualizowany. Zamknij dokument arkusza kalkulacyjnego przed ponownym uruchomieniem reguły, gdyż reguła nie może zaktualizować arkusza, jeśli ten jest już otwarty w programie Excel.

Wstecz | Dalej