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\'")