Apache flex 没有数据库的Flex独立应用程序
我正在尝试开发一个可以在本地供我的团队成员使用的应用程序。它是一种具有报告生成功能的问题跟踪应用程序。我计划在flex上做这件事。在我的公司环境中,我有很多限制,比如,不能安装AIR,没有数据库,等等 所以我计划在flex应用程序上开发,并将其放在一个共享驱动器中。现在主要的问题是如何存储数据。我有一个想法,喜欢使用excel文件作为数据库。我想了解有关此选项的意见,如果有人尝试从Flex应用程序中读取和写入excel文件,我也想了解这些建议Apache flex 没有数据库的Flex独立应用程序,apache-flex,excel,flex3,Apache Flex,Excel,Flex3,我正在尝试开发一个可以在本地供我的团队成员使用的应用程序。它是一种具有报告生成功能的问题跟踪应用程序。我计划在flex上做这件事。在我的公司环境中,我有很多限制,比如,不能安装AIR,没有数据库,等等 所以我计划在flex应用程序上开发,并将其放在一个共享驱动器中。现在主要的问题是如何存储数据。我有一个想法,喜欢使用excel文件作为数据库。我想了解有关此选项的意见,如果有人尝试从Flex应用程序中读取和写入excel文件,我也想了解这些建议 谢谢,AnoopFlex提供了RemoteObjec
谢谢,AnoopFlex提供了RemoteObject、WebService和HTTPService标签,用于访问远程数据和服务。AIR使用一些用于本地文件访问(file)和sqllite数据库的api对此进行了一些扩展 没有AIR API,您将无法编写本地文件;我怀疑你能写出来。您可以尝试将HTTPService与“file://”URL一起使用。我预计会出现跨域问题 您可以设置Flex应用程序以访问远程服务器吗?如果是这样,您可以让服务器创建和编辑excel文件。但是,如果你能做到这一点,为什么不使用真正的数据库呢 您可以使用其他工具从Flex创建桌面应用程序。我相信Janus是一种选择()。您还可以使用FlashPro并发布到可执行文件;但要使其支持Flex代码是困难的,但也是可能的。锌是另一种选择()
如果空气是不允许的,我不知道为什么会有其他的选择。我不禁想知道,您是否最好探索MS Access解决方案,而不是尝试将客户端/服务器技术转换为桌面技术。您可以使用该类读取/写入本地文件。我使用FileReference类打开和保存图像,而不使用服务器端代码 以下是一个例子:
package
{
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.FileFilter;
import flash.net.FileReference;
import flash.net.FileReferenceList;
public class Main extends Sprite
{
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
//load a file when the application starts
var fileRef:FileReference = new FileReference();
var fileRefList:FileReferenceList;
fileRefList = new FileReferenceList();
fileRef.addEventListener(Event.SELECT, function(evt:Event):void {
fileRef.load();
});
fileRef.addEventListener(Event.COMPLETE, function(evt:Event):void
{
//do something with the loaded data here
trace(fileRef.data);
onSave();
});
var arr:Array = [];
arr.push(new FileFilter("Data file", "*.dat"));
//prompt the user for the file to load
fileRef.browse(arr);
}
private function onSave():void
{
var fileRef:FileReference = new FileReference();
fileRef.save("this is my data to save");
}
}
}