我正在嘗試開發一個應用程序,可以由我的團隊成員在本地使用。它是一種帶有報告生成的問題跟蹤應用程序。我打算在flex上做。在我公司的環境中,我有一個很多喜歡的限制,無法安裝AIR,沒有數據庫等Flex獨立應用程序,無數據庫
所以我打算在Flex應用程序開發,並把它放在一個共享驅動器。現在主要的問題是我如何存儲數據。我有一個像使用Excel文件作爲數據庫的想法。我想要關於這個選項的意見,以及如果有人嘗試從Flex應用程序讀取和寫入excel文件,我想要的建議也。
感謝,Anoop
我正在嘗試開發一個應用程序,可以由我的團隊成員在本地使用。它是一種帶有報告生成的問題跟蹤應用程序。我打算在flex上做。在我公司的環境中,我有一個很多喜歡的限制,無法安裝AIR,沒有數據庫等Flex獨立應用程序,無數據庫
所以我打算在Flex應用程序開發,並把它放在一個共享驅動器。現在主要的問題是我如何存儲數據。我有一個像使用Excel文件作爲數據庫的想法。我想要關於這個選項的意見,以及如果有人嘗試從Flex應用程序讀取和寫入excel文件,我想要的建議也。
感謝,Anoop
Flex提供該RemoteObject,WebService的,和的HTTPService標籤訪問遠程數據和服務。 AIR擴展了一些本地文件訪問(File)和SQL Lite數據庫的API。
沒有空氣的API,你將不能夠寫入本地文件;我懷疑你可以寫出來。您可以嘗試使用帶有「file://」URL的HTTPService。我希望跨域問題。
你可以設置Flex應用程序來訪問遠程服務器?如果是這樣,你可以讓服務器處理創建和編輯excel文件。但是,如果你能做到這一點,爲什麼不使用真正的數據庫?
你可以看一下其他工具創建的Flex桌面應用程序。我相信傑納斯是一種選擇(http://www.janus-flash.com/)。您也可以使用Flash Pro併發布到可執行文件;但要實現Flex代碼的支持將會很困難,但也有可能。鋅是另一種選擇(http://www.multidmedia.com/)。
如果不允許AIR,我不知道爲什麼這些其他的選擇會是這樣,雖然。我不禁想知道,如果您最好探索一種MS Access解決方案,而不是試圖將客戶端/服務器技術轉變爲桌面技術。
可以讀/使用FileReference類寫入本地文件。我使用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");
}
}
}