<mx:Script>
<![CDATA[
private function exportDataWithRO():void {
var CSVString:String = "";
// Run through each field to create the column headers row
var columns:Array = this.DG.columns;
for each(var i:AdvancedDataGridColumn in columns)
{
if(i.headerText == "")
{
continue;
}
CSVString +=i.dataField+",";
}
CSVString += "======";
// Run through each datagrid row
for each(var item:Object in this.DG.dataProvider)
{
for each (var df:AdvancedDataGridColumn in columns)
{
if(df.headerText == "")
{
continue;
}
CSVString += item[df.dataField] + ",";
}
CSVString += "======";
}
navigateToURL(new URLRequest("/ECCIMS/downLoadCsv.jsp?reportName=chemicalCsv" + "&csvString=" + CSVString), "_blank");
// chemical.addEventListener(ResultEvent.RESULT,getExportResult);
// chemical.saveAsCsvFile(CSVString);
//export.exportData("chemicalCsv",CSVString);
}
]]>
</mx:Script>
<mx:HBox horizontalAlign="right" width="100%">
<mx:Button label="导出" click="exportDataWithRO()"/>
</mx:HBox>
<mx:AdvancedDataGrid id="DG" dataProvider="{acChemicalAll}" variableRowHeight="true"
designViewDataType="flat"
width="100%" height="100%" rowCount="30">
<mx:columns>
<mx:AdvancedDataGridColumn headerText="药品ID" dataField="chemicalId" visible="false"/>
<mx:AdvancedDataGridColumn headerText="药品名" dataField="chemicalName"/>
<mx:AdvancedDataGridColumn headerText="显示名" dataField="displayName"/>
<mx:AdvancedDataGridColumn headerText="实验室类别" dataField="labcategoryName" visible="false"/>
<mx:AdvancedDataGridColumn headerText="所在实验室" dataField="labName"/>
<mx:AdvancedDataGridColumn headerText="规格" dataField="scale" visible="false"/>
<mx:AdvancedDataGridColumn headerText="单价" dataField="unitPrice"/>
<mx:AdvancedDataGridColumn headerText="浓度" dataField="concentration" visible="false"/>
<mx:AdvancedDataGridColumn headerText="数量" dataField="number"/>
<mx:AdvancedDataGridColumn headerText="药品纯度" dataField="chemicalProperty" visible="false"/>
<mx:AdvancedDataGridColumn headerText="药品质量" dataField="drymatterAmount"/>
<mx:AdvancedDataGridColumn headerText="" dataField="col3" id="deleteChem" sortable="false">
<mx:itemRenderer>
<mx:Component>
<mx:HBox horizontalAlign="center">
<mx:Button label="删除" width="100%" click="parentDocument.popDeleteAlert()"/>
</mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:AdvancedDataGridColumn>
<mx:AdvancedDataGridColumn headerText="" dataField="col3" id="updateChem" sortable="false">
<mx:itemRenderer>
<mx:Component>
<mx:HBox horizontalAlign="center">
<mx:Button label="修改" width="100%" click="parentDocument.toUpdateChemical()"/>
</mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:AdvancedDataGridColumn>
<mx:AdvancedDataGridColumn headerText="" dataField="col3" id="detailChem" sortable="false">
<mx:itemRenderer>
<mx:Component>
<mx:HBox horizontalAlign="center">
<mx:Button label="查看" width="100%" click="parentDocument.toChemicalDetail()"/>
</mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:AdvancedDataGridColumn>
</mx:columns>
</mx:AdvancedDataGrid>
</mx:Canvas>
/**
* @author FQQ
* @param csvString 是用逗号分隔的字符串
* @throws IOException
* @explain 把AdvancedDataGrid中的数据保存成csv文件
*/
public void saveAsCsvFile(String csvString) throws IOException
{
log.debug("the csvString is " + csvString);
FileOutputStream fos = null;
OutputStreamWriter osw = null;
BufferedWriter out = null;
try {
fos = new FileOutputStream("D:/b.csv");
osw = new OutputStreamWriter(fos, "GB2312"); // 如果要写入全角字符,应该选择合适的编码
out = new BufferedWriter(osw);
// 判断资料是否为空
if (csvString!=null && csvString !="")
{
String[] strArrChemical = csvString.split("\n");
// 设置标题
out.write(strArrChemical[0]);
out.newLine();
// 设置內容
for(int i=1;i<strArrChemical.length;i++)
{
writeTextFileForLine(out, strArrChemical[i]);
}
out.close();
osw.close();
fos.close();
}
}
catch (IOException e)
{
e.printStackTrace();
throw e;
}
}
/**
* 生成CSV格式Text文件的一行内容
* @param out
* @param strRow
* @throws IOException
* @author FQQ
*/
private void writeTextFileForLine(BufferedWriter out,String strRow)throws IOException
{
try
{
// 内容
out.write(strRow);
out.newLine();
}
catch (IOException e)
{
e.printStackTrace();
throw e;
}
}