def CreateDictionary(part): if part[-1] != "'" and part[:1] != "'": part = "'" + part + "'" # The part number needs to be in inverted commas for the SQL query result = pysyteline.runquery(query(part)) if result != []: for row in result: if row.Item not in namedata: namedata[row.Item] = row.Description if row.Material not in namedata: namedata[row.Material] = row.matdesc for row in result: if row.Item not in matdata: matdata[row.Item] = [[row.Material, row.Quantity]] else: matdata[row.Item].append([row.Material, row.Quantity]) children = [child.Material for child in result] child_list='' for child in children[:-1]: # all child parts apart from the final one child_list += "'" + str(child) + "', " child_list += "'" + children[-1] + "'" # the final child in the list has no comma after it CreateDictionary(child_list)
outputfile = "BOMmindmap.mm" item_num = 0 command="""select DISTINCT rvxCurrentMaterials.Item, rvxCurrentMaterials.Description FROM UK_App.dbo.rvxCurrentMaterials WHERE rvxCurrentMaterials.Item like ? ORDER BY rvxCurrentMaterials.Item """ item = '%' + part + '%' toplevel = pysyteline.runquery(command, item) if toplevel == []: print "\nPart %s doesn't exist in Syteline Current Materials." % (part) print "\nPress return to end script.\n" z=raw_input() sys.exit() if len(toplevel) > 1: print "\nMore than one top level item found:\n" for i, row in enumerate(toplevel): print "%i: %s %s" % (i, row.Item, row.Description) print "\nType number of item or press return to end script.\n" z=raw_input() try: item_num = int(z)