Project And Layer Lookup

Project And Layer Lookup
  1# This script shows how to use LookupProjectAndLayerKeysFromValue and LookupValueFromProjectOrLayerKey
  2
  3
  4ot = impact.gui.output_toolbox
  5
  6look_opts.search_type = 1  # ipStringSearchType.sstBeginsWith'
  7do_lookup(1, look_opts)
  8
  9look_opts.search_type = 2  # ipStringSearchType.sstContains'
 10do_lookup(2, look_opts)
 11
 12look_opts.search_type = 3  # ipStringSearchType.sstEndsWith'
 13do_lookup(3, look_opts)
 14
 15look_opts.search_type = 2  # ipStringSearchType.sstContains'
 16look_opts.for_customer_keys = [651]
 17do_lookup(4, look_opts)
 18
 19look_opts.for_customer_keys = []  # no customers (so no results)
 20do_lookup(5, look_opts)
 21
 22look_opts.for_customer_keys = None  # all customers
 23do_lookup(6, look_opts)
 24
 25look_opts.max_results = 2
 26do_lookup(7, look_opts)
 27
 28look_opts.table_name = "ONE_UP"
 29look_opts.column_name = "OU_CADNUM"
 30look_opts.search_type = 0  # ipStringSearchType.sstExact'
 31look_opts.value = "3947"
 32do_lookup(8, look_opts)
 33
 34look_opts.table_name = "LAYERS"
 35look_opts.column_name = "L_CADNUM"
 36look_opts.value = "49358205"
 37
 38
 39def do_lookup(test_no, look_opts):
 40    look_opts.max_results_exceeded = False
 41    impact.active_database.lookup_project_and_layer_keys_from_value(look_opts)
 42    title = "TEST " + str(c_str(test_no))
 43
 44    if look_opts.max_results_exceeded:
 45        title =str(title) + " Max results (" + str(c_str(look_opts.max_results)) + ") exceeded"
 46
 47    ot.add(title)
 48
 49    p_array = look_opts.project_keys
 50    l_array = look_opts.layer_keys
 51    mv_array = look_opts.matching_values
 52
 53    # all 3 arrays will have the same bounds
 54    if len(mv_array) - 1 == -1:
 55        ot.add("Nothing found")
 56    else:
 57        for i in range(0, len(mv_array) - 1  + 1):
 58            v = mv_array(i)
 59            p = p_array(i)
 60            v =str(v) + " (ProjectKey = " + str(c_str(p)) + ")"
 61            l = l_array(i)
 62
 63            if l != 0:
 64                v =str(v) + " (LayerKey = " + str(c_str(l)) + ")"
 65
 66            ot.add(v)
 67
 68    ot.add("")
 69
 70def do_reverse_lookup(test_no, tab_name, col_name, key):
 71    impact.active_database.lookup_value_from_project_or_layer_key(tab_name, col_name, key, value)
 72    ot.add("TEST " + str(c_str(test_no)))
 73
 74    if value != "":
 75        ot.add(value)
 76    else:
 77        ot.add("Nothing found")
 78
 79    ot.add("")
 80
 81ot.clear()
 82
 83look_opts = impact.creator.lookup_project_and_layer_keys_from_value_params()
 84look_opts.table_name = "DRAWINGS"
 85look_opts.column_name = "D_NAME"
 86look_opts.value = "poly"
 87look_opts.search_type = 0  # ipStringSearchType.sstExact'
 88look_opts.for_customer_keys = [651, 298, 361]
 89do_lookup(0, look_opts)
 90
 91look_opts.search_type = 1  # ipStringSearchType.sstBeginsWith'
 92do_lookup(1, look_opts)
 93
 94look_opts.search_type = 2  # ipStringSearchType.sstContains'
 95do_lookup(2, look_opts)
 96
 97look_opts.search_type = 3  # ipStringSearchType.sstEndsWith'
 98do_lookup(3, look_opts)
 99do_lookup(4, look_opts)
100
101look_opts.for_customer_keys = []  # no customers (so no results)
102do_lookup(5, look_opts)
103
104look_opts.for_customer_keys = None  # all customers
105do_lookup(6, look_opts)
106
107look_opts.max_results = 2
108do_lookup(7, look_opts)
109do_lookup(8, look_opts)
110do_lookup(9, look_opts)
111
112do_reverse_lookup(10, "DRAWINGS", "D_NAME", 1982)
113do_reverse_lookup(11, "ONE_UP", "OU_CADNUM", 49358205)
114do_reverse_lookup(12, "LAYERS", "L_CADNUM", 49358207)