Rui Costa wrote: > Bem Luis, agora vem a batalha maior, permitir a criação de um gráfico > com os dados passados para o excel. > > Já tive a ver algumas formas mas tudo acaba por cair na imagem... até > agora não encontrei nenhum que permiti-se criar realmente um gráfico > em que o user depois de abrir o excel e trocar os valores ele mude > também realmente... > > Mas ainda vou continuar!! > > Se alguem souber alguma coisa deste género "amande" para o pessoal > ver!! > > Abraço, > > Rui > > On 17 Abr, 11:41, Luis Costa <[email protected]> wrote: > >> Olá Rui. Já fiz o código para passar para o excel e tens duas opções, ou >> transformando os dados da grid em formato Html ou em Csv. Eu uso o formato >> html pk fica mais bonito. De seguida tá o código que utilizo. >> >> ****************************************Código************************************************** >> >> private function convertDGToHTMLTable(dg:*):void >> { >> str = ''; >> >> var font:String = dg.getStyle('fontFamily'); >> var size:String = >> (int(dg.getStyle('fontSize'))-2).toString(); //Reduz em 2, o tamanho da >> fonte. >> >> var colors:String = ''; >> var style:String = >> 'style="font-family:'+font+';font-size:'+size+'pt;"'; >> var hcolor:Array; >> >> if(dg.getStyle("headerColor") != undefined) { >> hcolor = [dg.getStyle("headerColor")]; >> } else { >> hcolor = dg.getStyle("headerColors"); >> } >> >> str+= '<table width="'+dg.width+'"><thead><tr >> width="'+dg.width+'" style="background-color:#' >> +Number((hcolor[0])).toString(16)+'">'; >> >> for(var i:int = 0;i<dg.columns.length;i++) { >> colors = dg.getStyle("themeColor"); >> >> if(dg.columns[i].headerText != undefined && >> dg.columns[i].visible == true) { >> str+="<th >> "+style+">"+dg.columns[i].headerText+"</th>"; >> } else if (dg.columns[i].visible == true) { >> str+= "<th >> "+style+">"+dg.columns[i].dataField+"</th>"; >> } >> } >> str += "</tr></thead><tbody>"; >> colors = dg.getStyle("alternatingRowColors"); >> >> for(var j:int =0;j<dg.dataProvider.length;j++) { >> >> str+="<tr width=\""+Math.ceil(dg.width)+"\">"; >> >> for(var k:int=0; k < dg.columns.length; k++) { >> if(dg.dataProvider.getItemAt(j) != undefined && >> dg.dataProvider.getItemAt(j) != null && dg.columns[k].visible == true && >> dg.columns[k].dataField != "Melhor") { >> if(dg.columns[k].labelFunction != undefined && >> dg.columns[k].labelFunction != null && dg.columns[k].visible == true) { >> str += "<td nowrap=\"nowrap\" >> width=\""+Math.ceil(dg.columns[k].width)+"\" >> "+style+">"+dg.columns[k].labelFunction(dg.dataProvider[j],dg.columns[k])+"</td>"; >> } else { >> str += "<td nowrap=\"nowrap\" >> width=\""+Math.ceil(dg.columns[k].width)+"\" >> "+style+">"+dg.dataProvider.getItemAt(j)[dg.columns[k].dataField]+"</td>"; >> } >> } >> } >> str += "</tr>"; >> } >> str+="</tbody></table>"; >> >> saveFile(); >> } >> >> public function saveFile():void >> { >> saveFileRef = new FileReference(); >> saveFileRef.addEventListener(Event.SELECT, >> onSaveFileSelected); >> //this will throw a window for user to select the location >> //and file name to save. Second argument is the default name >> saveFileRef.save(str,"HistoricoGeral.xls"); >> } >> >> **************************************************************************************** >> >> Depois só tens de chamar pela função convertDGToHTMLTable colocando a grid >> que queres enviar. >> >> Cumprimentos >> Luís Costa >> >> 2009/4/17 Rui Costa <[email protected]> >> >> >> >> >>> Boas pessoal, >>> >>> Este "novo" FileReference é realmente muito fofinho, ainda assim para >>> escrever num excel acho algo complicado pois ele manda tudo para a >>> mesma celula, alguma ideia de como meter as coisas mais bonitinhas? >>> >>> Rui >>> >>> On 14 Abr, 18:50, Luis Costa <[email protected]> wrote: >>> >>>> Confere rui, tinhas razão. >>>> Já conseguir criar na minha aplicação uma maneira de criar os ficheiros >>>> >>> no >>> >>>> computador. É necessário alterar a versão do flash player com que o >>>> >>> projecto >>> >>>> está a ser criado pois a função FileReference é da biblioteca do flash e >>>> >>> tal >>> >>>> como disseste só no 10 é que está actualizado para isso. >>>> >>>> Link para alterar tudo do projecto para flash 10: >>>> >>> http://opensource.adobe.com/wiki/display/flexsdk/Targeting+Flash+Play... >>> >>>> Função para criar qualquer tipo de ficheiro a partir de uma aplicação >>>> >>> Flex: >>> >>>> public function saveFile():void >>>> { >>>> saveFileRef = new FileReference(); >>>> saveFileRef.addEventListener(Event.SELECT, >>>> onSaveFileSelected); >>>> //this will throw a window for user to select the >>>> >>> location >>> >>>> //and file name to save. Second argument is the default >>>> >>> name >>> >>>> saveFileRef.save("Ola mundo","Teste.xls"); >>>> } >>>> >>>> Sendo o "Ola Mundo" o que queremos que o ficheiro tenha e o "Teste.xls" o >>>> nome do documento e a respecitva extensão pretendida. >>>> >>>> Obrigado a todos >>>> Luís Costa >>>> >>>> 2009/4/14 rui <[email protected]> >>>> >>>>> Luis Costa wrote: >>>>> >>>>>> Pois, mas o objectivo é o utilizador não estar no Japão e ter de >>>>>> aceder ao servidor em Portugal para criar um ficheiro com os dados >>>>>> >>> que >>> >>>>>> já estão no lado da aplicação. Se eles já estão ali no browser tem de >>>>>> haver um jeito de os exportar sem ser necessário ir ao servidor >>>>>> >>> novamente >>> >>>>>> 2009/4/14 Miguel Vaz <[email protected] <mailto: >>>>>> >>> [email protected]>> >>> >>>>>> Acho que a partir do flex 3 não é possivel, por motivos de >>>>>> segurança, mas é-o utilizando alguma outra linguagem de >>>>>> "suporte"/servidor. Eu utilizo PHP, com a qual podes, utilizando >>>>>> >>> o >>> >>>>>> flex como "front-end", criar e gerir ficheiros, etc. Existem >>>>>> outras linguagens e línguas, como é óbvio, como o sueco, ASP, >>>>>> esperanto, java, e afins. >>>>>> >>>>>> MV >>>>>> >>>>>> 2009/4/14 Luis Costa <[email protected] >>>>>> <mailto:[email protected]>> >>>>>> >>>>>> Alguém tem um ideia fácil de como a partir duma aplicação >>>>>> >>> Flex >>> >>>>>> 3 criar um ficheiro txt a dizer "Olá mundo"? >>>>>> >>>>>> Cumprimentos >>>>>> Luís Costa >>>>>> >>>>> ja dei a resposta 2 vezes -.- >>>>> >>>>> e a mim alguem me ajuda?http://bugs.adobe.com/jira/browse/FCM-11 >>>>> > > > > Degrafa
--~--~---------~--~----~------------~-------~--~----~ Recebeu esta mensagem porque está inscrito em Grupo "Mailing List da Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" do Grupos Google. Para enviar mensagens para este grupo, envie um email para [email protected] Para anular a inscrição neste grupo, envie um email para [email protected] Para mais opções, visite este grupo em http://groups.google.com/group/riapt?hl=pt-PT -~----------~----~----~----~------~----~------~--~---
