import arcpy mxd = arcpy.mapping.MapDocument("Current") mapLyr = arcpy.mapping.ListLayers(mxd, "Detail_2013")[0] concatElem = arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT", "concat")[0] rows = arcpy.SearchCursor(mapLyr.dataSource) row = rows.next() typeElem.text = row.getValue("CONCAT") mxd.save() del mxd, row, rows,
Solved! Go to Solution.
>>> rowcount = 10 >>> for rows in range(rowcount): if rows in range(rowcount/2): print 'row ' + str(rows) + ' in range 1.' elif rows in range(rowcount/2, rowcount): print 'row ' + str(rows) + ' in range 2.' row 0 in range 1. row 1 in range 1. row 2 in range 1. row 3 in range 1. row 4 in range 1. row 5 in range 2. row 6 in range 2. row 7 in range 2. row 8 in range 2. row 9 in range 2. >>>
I'm just thinking maybe the range function would apply here?
rowcount = 9 for rows in range(rowcount): if rows in range(rowcount / 2 + 1): print 'row ' + str(rows) + ' in range 1.' elif rows in range(rowcount / 2, rowcount): print 'row ' + str(rows) + ' in range 2.'
import os import arcpy def main(): layer_name = arcpy.GetParameterAsText(0) field = arcpy.GetParameterAsText(1) number_columns = float(arcpy.GetParameterAsText(2)) mxd = arcpy.mapping.MapDocument("Current") mapLyr = arcpy.mapping.ListLayers(mxd, layer_name)[0] rowcount = int(arcpy.GetCount_management(layer_name).getOutput(0)) percolumn = round(rowcount / number_columns) text_var = str() item_count = 0 column_count = 1 for row in arcpy.SearchCursor(mapLyr.dataSource, sort_fields='{0} A'.format(field)): text_var += '{0}{1}'.format(row.getValue(field), os.linesep) item_count += 1 column = 'concat{0}'.format(column_count) arcpy.AddMessage(item_count) if item_count == percolumn and column_count != number_columns: arcpy.AddMessage('next column') arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT", column)[0].text = text_var text_var = str() column_count += 1 item_count = 0 arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT", column)[0].text = text_var arcpy.RefreshActiveView() mxd.save() del mxd arcpy.AddMessage("First column should have : {0} rows.".format(percolumn)) #used to check that it calculated properly if __name__ == '__main__': main()
for row in arcpy.SearchCursor(mapLyr.dataSource, sort_fields='{0} A'.format(field)): text_var += '{0}{1}'.format(row.getValue(field), os.linesep)
aNewTxtVar = row.getValue('yourDesignatedFieldname')
import arcpy, os mxd = arcpy.mapping.MapDocument("Current") mapLyr = arcpy.mapping.ListLayers(mxd, "Detail_2013")[0] concatElem1 = arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT", "concat1")[0] concatElem2 = arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT", "concat2")[0] rowcount = int(arcpy.GetCount_management("Detail_2013").getOutput(0)) percolumn = round(rowcount / 2.0) count1 = 1 count2 = rowcount rows = arcpy.SearchCursor(mapLyr.dataSource) text_var1 = str() text_var2 = str() for row in rows: if count1 <= percolumn: text_var1 += '{0}{1}'.format(row.getValue("CONCAT"), os.linesep) concatElem1.text = text_var1 count1 += 1 elif count2 > percolumn: text_var2 += '{0}{1}'.format(row.getValue("CONCAT"), os.linesep) concatElem2.text = text_var2 count2 - 1 else: pass mxd.save() del mxd, row, rows,
pageNum = arcpy.GetParameterAsText(0) ddp = mxd.dataDrivenPages arcpy.AddMessage(pageNum) pageID = mxd.dataDrivenPages.getPageIDFromName(str(pageNum)) mxd.dataDrivenPages.currentPageID = pageID
rows = arcpy.SearchCursor(mapLyr.dataSource, "PageID = \'Intersec\'")