Tôi có một công cụ tập lệnh GIS tạo một bản sao của mxd, đặt truy vấn định nghĩa và xuất một tập hợp các trang điều khiển dữ liệu dựa trên truy vấn định nghĩa. Sau khi xuất xong, nó xóa bản sao mxd, một số biến và một loạt các kết nối cơ sở dữ liệu.
Có cách nào để mã hóa mã thoát sẽ hủy các trang được điều khiển dữ liệu xuất bất cứ nơi nào nhưng thay vì hủy toàn bộ tập lệnh, nó sẽ chỉ nhảy đến cuối và vẫn xóa bản sao mxd, v.v. Khối mã trông giống như điều này:
mxd = arcpy.mapping.MapDocument(mxd_master)
mxd_folder = os.path.dirname(mxd_master)
mxd_copy = mxd_folder + "\\WORKING.mxd"
mxd.saveACopy(mxd_copy)
mxd = arcpy.mapping.MapDocument(mxd_copy)
ddp = mxd.dataDrivenPages
for page_num in range (1, ddp.pageCount + 1):
ddp.currentPageID = page_num
row = ddp.pageRow
mapsheet = row.getValue(ddp.pageNameField.name)
arcpy.mapping.ExportToPDF(pdf export parameters....)
del mxd, mxd_master
arcpy.Delete_management(mxd_copy)
Về cơ bản tôi muốn có thể nhấn phím "Q" (hoặc bất kỳ phím nào) và vòng xuất pdf sẽ bị hỏng và khối del / Delete_man quản lý vẫn sẽ chạy. Tôi không nghĩ là có thể vì nó chạy tập lệnh thông qua một công cụ nhưng tôi đoán rằng tôi sẽ xem liệu nó có ngăn tôi khỏi phải xóa thủ công nếu tôi quyết định dừng xuất sớm không.
Tôi đang sử dụng ArcGIS Desktop 10.4.