<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Customizing gridcolumns/grids using alivePDF in ArcGIS API for Flex Questions</title>
    <link>https://community.esri.com/t5/arcgis-api-for-flex-questions/customizing-gridcolumns-grids-using-alivepdf/m-p/753797#M16626</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Perfect!&amp;nbsp; It did just what I needed.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 31 Aug 2010 20:58:44 GMT</pubDate>
    <dc:creator>TracySchloss</dc:creator>
    <dc:date>2010-08-31T20:58:44Z</dc:date>
    <item>
      <title>Customizing gridcolumns/grids using alivePDF</title>
      <link>https://community.esri.com/t5/arcgis-api-for-flex-questions/customizing-gridcolumns-grids-using-alivepdf/m-p/753795#M16624</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I have successfully generated a PDF containing my datagrid contents using alivePDF.&amp;nbsp; However, I have a few columns with large numbers (total populations of a county).&amp;nbsp; In the FLEX grid, I was able to use a labelFunction to call a numberFormatter.&amp;nbsp; This let me add the commas I wanted as a thousands separator.&amp;nbsp; (The commas that show in the FLEX grid are not showing in the alivePDF.)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I don't see that I have such a setting for the grids within alivePDF.&amp;nbsp; This leaves me a report with no commas to format my large numbers.&amp;nbsp; This is not really 'wrong', but it does make it harder to read the numbers.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Has anyone dug into the alivePDF grids enough to figure out how to properly render these numbers? I'm using alivePDF 0.1.5. I've attached the relevant section from my code.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 27 Aug 2010 13:51:30 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-flex-questions/customizing-gridcolumns-grids-using-alivepdf/m-p/753795#M16624</guid>
      <dc:creator>TracySchloss</dc:creator>
      <dc:date>2010-08-27T13:51:30Z</dc:date>
    </item>
    <item>
      <title>Re: Customizing gridcolumns/grids using alivePDF</title>
      <link>https://community.esri.com/t5/arcgis-api-for-flex-questions/customizing-gridcolumns-grids-using-alivepdf/m-p/753796#M16625</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Here's something that might help you. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It updates the values in the array sent to the pdf grid.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;For testing purposes there is a field that get a $ sign added to it in a labelfunction. When exported to AlivePDF the dollar sign shows up.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;
&amp;lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"
&amp;nbsp; creationComplete="initData()"&amp;gt;
 
 &amp;lt;mx:Script&amp;gt;
&amp;nbsp; &amp;lt;![CDATA[
&amp;nbsp;&amp;nbsp; import mx.controls.dataGridClasses.DataGridColumn;
&amp;nbsp;&amp;nbsp; import org.alivepdf.fonts.CoreFont;
&amp;nbsp;&amp;nbsp; import mx.collections.ArrayCollection;
&amp;nbsp;&amp;nbsp; import org.alivepdf.colors.IColor;
&amp;nbsp;&amp;nbsp; import org.alivepdf.colors.RGBColor;
&amp;nbsp;&amp;nbsp; import org.alivepdf.data.Grid;
&amp;nbsp;&amp;nbsp; import org.alivepdf.data.GridColumn;
&amp;nbsp;&amp;nbsp; import org.alivepdf.saving.Method;
&amp;nbsp;&amp;nbsp; import org.alivepdf.display.Display;
&amp;nbsp;&amp;nbsp; import org.alivepdf.layout.Size;
&amp;nbsp;&amp;nbsp; import org.alivepdf.layout.Unit;
&amp;nbsp;&amp;nbsp; import org.alivepdf.layout.Orientation;
&amp;nbsp;&amp;nbsp; import org.alivepdf.pdf.PDF;
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; private var dgArray:Array = [
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {Artist:'Pavement', Album:'Slanted and Enchanted', Price:11.99},
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {Artist:'Pavement', Album:'Brighten the Corners', Price:11.99},
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {Artist:'test2', Album:'junk1', Price:11.99},
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {Artist:'test2', Album:'junk2', Price:22.99},
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {Artist:'test3', Album:'junk3', Price:11.99},
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {Artist:'test3', Album:'junk4', Price:11.99},
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {Artist:'test4', Album:'junk1 and Enchanted', Price:35.99},
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {Artist:'test4', Album:'Slanted and junk1', Price:6.99},
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {Artist:'test5', Album:'Slanted junk1', Price:89.99},
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {Artist:'test5', Album:'junk1 Enchanted', Price:33.12}];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; [Bindable] public var dgArrayColl:ArrayCollection;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private function initData():void 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dgArrayColl=new ArrayCollection(dgArray);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp; private function myLabelFunc(data:Object, column:DataGridColumn):String 
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "$" + data.Price; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; private function sendToPDF():void
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp; var PDFcolumns:Array = getPDFColumns(dg);
 
&amp;nbsp;&amp;nbsp;&amp;nbsp; var resultsArray:Array = dg.dataProvider.toArray();
&amp;nbsp;&amp;nbsp;&amp;nbsp; formatPDFGridData(resultsArray, dg);
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; var pdf:PDF&amp;nbsp; = new PDF(Orientation.PORTRAIT,Unit.MM,Size.A4); 
&amp;nbsp;&amp;nbsp;&amp;nbsp; pdf.addPage();
&amp;nbsp;&amp;nbsp;&amp;nbsp; pdf.setAutoPageBreak(false,1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; pdf.setDisplayMode ( Display.FULL_PAGE );&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; pdf.setFont(new CoreFont(),10);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pdf.textStyle(new RGBColor(0x000000));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var rgbWhite:IColor = new RGBColor(0xFFFFFF);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var rgbBlack:IColor = new RGBColor(0x000000);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var rgbGray:IColor = new RGBColor(0xCCCCCC);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; var grid:Grid = new Grid(resultsArray,0,dg.height,rgbGray,rgbWhite,false,rgbBlack);
&amp;nbsp;&amp;nbsp;&amp;nbsp; grid.columns = PDFcolumns;
&amp;nbsp;&amp;nbsp;&amp;nbsp; pdf.addGrid(grid,25,10);
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; pdf.save(Method.REMOTE, "http://localhost/createPDF/create.aspx", Download.ATTACHMENT, "report.pdf"); 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; } // end function sendToPrinter
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; private function getPDFColumns(datagrid:DataGrid):Array
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp; // This will create an array suitable for use as columns in AlivePDF
&amp;nbsp;&amp;nbsp;&amp;nbsp; // The columns are based on a datagrid's columns.
&amp;nbsp;&amp;nbsp;&amp;nbsp; // If the datagrid column is visible it will be included.
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; //The width of each column is calculated assuming mm are the units used in the pdf.
&amp;nbsp;&amp;nbsp;&amp;nbsp; //1 pt = 0.35 mm&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; //1 mm = 2.83 pt 
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; var PDFcolumns:Array = new Array;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; var dataGridColumn:DataGridColumn;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; //loop through each datagridcolumn in the datagrid
&amp;nbsp;&amp;nbsp;&amp;nbsp; for( var i:Number = 0; i &amp;lt; datagrid.columns.length; i++ ) 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataGridColumn = datagrid.columns&lt;I&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (dataGridColumn.visible)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // add to the pdfcolumn array
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var gridColumn:GridColumn = new GridColumn(dataGridColumn.headerText,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataGridColumn.dataField, 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataGridColumn.width * 0.35);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PDFcolumns.push(gridColumn);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return PDFcolumns;
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; private function formatPDFGridData(arr:Array, datagrid:DataGrid):void
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp; var dataGridColumn:DataGridColumn;
&amp;nbsp;&amp;nbsp;&amp;nbsp; // loop through the array 
&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var i:int = 0; i&amp;lt;arr.length; i++)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //go through each datagridColumn in the datagrid
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for( var iCols:Number = 0; iCols &amp;lt; datagrid.columns.length; iCols++ ) 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataGridColumn = datagrid.columns[iCols];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // If there is a labelfunction on the column, 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // update the data in the array using its return value
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (dataGridColumn.labelFunction != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arr&lt;I&gt;[dataGridColumn.dataField] = dataGridColumn.labelFunction(arr&lt;I&gt;,dataGridColumn);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; 
&amp;nbsp;&amp;nbsp; }
&amp;nbsp; ]]&amp;gt;
 &amp;lt;/mx:Script&amp;gt;
 
 &amp;lt;mx:DataGrid id="dg" dataProvider="{dgArrayColl}" width="450"&amp;gt;
&amp;nbsp; &amp;lt;mx:columns&amp;gt;
&amp;nbsp;&amp;nbsp; &amp;lt;mx:DataGridColumn dataField="Artist" width="100"/&amp;gt;
&amp;nbsp;&amp;nbsp; &amp;lt;mx:DataGridColumn dataField="Album" /&amp;gt;
&amp;nbsp;&amp;nbsp; &amp;lt;mx:DataGridColumn dataField="Price" width="100" visible="true" labelFunction="myLabelFunc"/&amp;gt;
&amp;nbsp; &amp;lt;/mx:columns&amp;gt;
 &amp;lt;/mx:DataGrid&amp;gt;
 &amp;lt;mx:Button label="PDF" click="sendToPDF()"/&amp;gt;
&amp;lt;/mx:Application&amp;gt;

&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 07:59:24 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-flex-questions/customizing-gridcolumns-grids-using-alivepdf/m-p/753796#M16625</guid>
      <dc:creator>MarkHoyland</dc:creator>
      <dc:date>2021-12-12T07:59:24Z</dc:date>
    </item>
    <item>
      <title>Re: Customizing gridcolumns/grids using alivePDF</title>
      <link>https://community.esri.com/t5/arcgis-api-for-flex-questions/customizing-gridcolumns-grids-using-alivepdf/m-p/753797#M16626</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Perfect!&amp;nbsp; It did just what I needed.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 31 Aug 2010 20:58:44 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-flex-questions/customizing-gridcolumns-grids-using-alivepdf/m-p/753797#M16626</guid>
      <dc:creator>TracySchloss</dc:creator>
      <dc:date>2010-08-31T20:58:44Z</dc:date>
    </item>
  </channel>
</rss>

