当然还是原有的软件模式,
由于有2个功能,所以分别将代码贴出来:
客户登记:包括写,读,改,删四大功能
historyLog.mxml+getCustomer.php+callinfo(数据库表)
historyLog.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx=" http://www.adobe.com/2006/mxml " layout="absolute" width="600" height="548">
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
import mx.collections.ArrayCollection;
import mx.events.DataGridEvent;
import com.adobe.serialization.json.JSON;
import mx.events.CollectionEvent;
import mx.events.CollectionEventKind;
[Bindable]
private var dataArray:ArrayCollection;
private var dataToUpdate:Array;
private function initDataGrid():void
{
dataArray=new ArrayCollection();
dataToUpdate=new Array();
getData.send();
}
private function getCustomerData(event:ResultEvent):void
{
var rawArray:Array;
var rawData:String=String(event.result);
rawArray=JSON.decode(rawData) as Array;
dataArray=new ArrayCollection(rawArray);
dataArray.addEventListener(
CollectionEvent.COLLECTION_CHANGE, dataChanged);
}
private function dataChanged(event:CollectionEvent):void
{
var item:Object;
var updatedObj:Object;
var i:int;
if(event.kind == CollectionEventKind.UPDATE)
{
for(i = 0; i <event.items.length; i++)
{
item = event.items[i];
updatedObj = new Object;
updatedObj.id = item.source.id;
updatedObj.property = item.property;
updatedObj.value = item.source[item.property];
dataToUpdate.push(updatedObj);
}
}
else if(event.kind == CollectionEventKind.REMOVE)
{
for(i = 0; i <event.items.length; i++)
{
item = event.items[i];
updatedObj = new Object;
updatedObj.deleted = item.id
dataToUpdate.push(updatedObj);
}
}
if(chkAutoUpdate.selected)
{
updateCustomerData();
}
}
private function checkKeyPress(event:KeyboardEvent):void
{
if(event.keyCode == Keyboard.DELETE)
{
var data:ArrayCollection =
dgData.dataProvider as ArrayCollection;
if(dgData.selectedIndex>= 0 &&
dgData.selectedIndex <data.length)
{
data.removeItemAt(dgData.selectedIndex);
}
}
}
function checkCustomer(event:DataGridEvent):void
{//添加修改客户信息操作处理,如输入格式提示等
}
function updateCustomerData():void
{//写入数据库,并返回一个结果显示给坐席端
var objSend:Object = new Object();
var dataString:String =
JSON.encode(dataToUpdate);
dataString = escape(dataString);
//objSend.updateTutorials = "true";
objSend.updateTutorials = "1";
objSend.jsonSendData = dataString;
updateData.send(objSend);
dataToUpdate=new Array();
}
function updateCustomerResult(event:ResultEvent):void
{
resultBack.text=String(event.result);
}
]]>
</mx:Script>
<mx:HTTPService id="getData"
url=" http://127.0.0.1/getCustomer.php "
useProxy="false" method="GET"
resultFormat="text" result="getCustomerData(event)">
<mx:request xmlns="">
<getTutorials>"true"</getTutorials>
</mx:request>
</mx:HTTPService>
<mx:HTTPService id="updateData"
url=" http://127.0.0.1/getCustomer.php "
useProxy="false" method="GET"
resultFormat="text" result="updateCustomerResult(event)">
</mx:HTTPService>
<mx:Binding
source="dgData.dataProvider as ArrayCollection"
destination="dataArray"/>
<mx:Panel layout="absolute" width="580" x="10" y="10" title="历史记录">
<mx:DataGrid x="10" y="285" width="540" height="207">
<mx:columns>
<!-- Use This grid to note the call events -->
<mx:DataGridColumn headerText="序号" dataField="col1"/>
<mx:DataGridColumn headerText="呼入时间" dataField="col2"/>
<mx:DataGridColumn headerText="通道" dataField="col3"/>
<mx:DataGridColumn headerText="呼入电话" dataField="col4"/>
<mx:DataGridColumn headerText="Clid" dataField="col5"/>
<mx:DataGridColumn headerText="目的电话" dataField="col6"/>
<mx:DataGridColumn headerText="处理记录" dataField="col7"/>
<mx:DataGridColumn headerText="耗时" dataField="col8"/>
</mx:columns>
</mx:DataGrid>
<mx:Button x="426" y="246" label="呼叫查找"/>
<mx:Label x="10" y="250" text="按"/>
<mx:ComboBox x="27" y="248"></mx:ComboBox>
<mx:Label x="195" y="250" text="查找"/>
<mx:Label x="237" y="248" text="选择时间" width="45" height="19"/>
<mx:DateField x="296" y="246"/>
<mx:LinkButton x="27" y="28" label="客户信息" click="initDataGrid()"/>
<mx:DataGrid id="dgData" x="27" y="58" width="435" height="143"
dataProvider="{dataArray}" keyUp="checkKeyPress(event)"
editable="true" itemEditEnd="{checkCustomer(event)}">
<mx:columns>
<mx:DataGridColumn headerText="客户姓名" width="100" dataField="callerName" editable="true"/>
<mx:DataGridColumn headerText="客户电话" width="100" dataField="callerNum" editable="true"/>
<mx:DataGridColumn headerText="客户地址" dataField="callerAddress" editable="true"/>
</mx:columns>
</mx:DataGrid>
<mx:Button x="131" y="28" label="添加修改" click="updateCustomerData()"/>
<mx:Label x="27" y="209" id="resultBack" width="96"/>
<mx:CheckBox x="151" y="207" label="autoUpdate" id="chkAutoUpdate" color="#070707"/>
</mx:Panel>
</mx:Application>
由于有2个功能,所以分别将代码贴出来:
客户登记:包括写,读,改,删四大功能
historyLog.mxml+getCustomer.php+callinfo(数据库表)
historyLog.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx=" http://www.adobe.com/2006/mxml
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
import mx.collections.ArrayCollection;
import mx.events.DataGridEvent;
import com.adobe.serialization.json.JSON;
import mx.events.CollectionEvent;
import mx.events.CollectionEventKind;
[Bindable]
private var dataArray:ArrayCollection;
private var dataToUpdate:Array;
private function initDataGrid():void
{
dataArray=new ArrayCollection();
dataToUpdate=new Array();
getData.send();
}
private function getCustomerData(event:ResultEvent):void
{
var rawArray:Array;
var rawData:String=String(event.result);
rawArray=JSON.decode(rawData) as Array;
dataArray=new ArrayCollection(rawArray);
dataArray.addEventListener(
CollectionEvent.COLLECTION_CHANGE, dataChanged);
}
private function dataChanged(event:CollectionEvent):void
{
var item:Object;
var updatedObj:Object;
var i:int;
if(event.kind == CollectionEventKind.UPDATE)
{
for(i = 0; i <event.items.length; i++)
{
item = event.items[i];
updatedObj = new Object;
updatedObj.id = item.source.id;
updatedObj.property = item.property;
updatedObj.value = item.source[item.property];
dataToUpdate.push(updatedObj);
}
}
else if(event.kind == CollectionEventKind.REMOVE)
{
for(i = 0; i <event.items.length; i++)
{
item = event.items[i];
updatedObj = new Object;
updatedObj.deleted = item.id
dataToUpdate.push(updatedObj);
}
}
if(chkAutoUpdate.selected)
{
updateCustomerData();
}
}
private function checkKeyPress(event:KeyboardEvent):void
{
if(event.keyCode == Keyboard.DELETE)
{
var data:ArrayCollection =
dgData.dataProvider as ArrayCollection;
if(dgData.selectedIndex>= 0 &&
dgData.selectedIndex <data.length)
{
data.removeItemAt(dgData.selectedIndex);
}
}
}
function checkCustomer(event:DataGridEvent):void
{//添加修改客户信息操作处理,如输入格式提示等
}
function updateCustomerData():void
{//写入数据库,并返回一个结果显示给坐席端
var objSend:Object = new Object();
var dataString:String =
JSON.encode(dataToUpdate);
dataString = escape(dataString);
//objSend.updateTutorials = "true";
objSend.updateTutorials = "1";
objSend.jsonSendData = dataString;
updateData.send(objSend);
dataToUpdate=new Array();
}
function updateCustomerResult(event:ResultEvent):void
{
resultBack.text=String(event.result);
}
]]>
</mx:Script>
<mx:HTTPService id="getData"
url=" http://127.0.0.1/getCustomer.php
useProxy="false" method="GET"
resultFormat="text" result="getCustomerData(event)">
<mx:request xmlns="">
<getTutorials>"true"</getTutorials>
</mx:request>
</mx:HTTPService>
<mx:HTTPService id="updateData"
url=" http://127.0.0.1/getCustomer.php
useProxy="false" method="GET"
resultFormat="text" result="updateCustomerResult(event)">
</mx:HTTPService>
<mx:Binding
source="dgData.dataProvider as ArrayCollection"
destination="dataArray"/>
<mx:Panel layout="absolute" width="580" x="10" y="10" title="历史记录">
<mx:DataGrid x="10" y="285" width="540" height="207">
<mx:columns>
<!-- Use This grid to note the call events -->
<mx:DataGridColumn headerText="序号" dataField="col1"/>
<mx:DataGridColumn headerText="呼入时间" dataField="col2"/>
<mx:DataGridColumn headerText="通道" dataField="col3"/>
<mx:DataGridColumn headerText="呼入电话" dataField="col4"/>
<mx:DataGridColumn headerText="Clid" dataField="col5"/>
<mx:DataGridColumn headerText="目的电话" dataField="col6"/>
<mx:DataGridColumn headerText="处理记录" dataField="col7"/>
<mx:DataGridColumn headerText="耗时" dataField="col8"/>
</mx:columns>
</mx:DataGrid>
<mx:Button x="426" y="246" label="呼叫查找"/>
<mx:Label x="10" y="250" text="按"/>
<mx:ComboBox x="27" y="248"></mx:ComboBox>
<mx:Label x="195" y="250" text="查找"/>
<mx:Label x="237" y="248" text="选择时间" width="45" height="19"/>
<mx:DateField x="296" y="246"/>
<mx:LinkButton x="27" y="28" label="客户信息" click="initDataGrid()"/>
<mx:DataGrid id="dgData" x="27" y="58" width="435" height="143"
dataProvider="{dataArray}" keyUp="checkKeyPress(event)"
editable="true" itemEditEnd="{checkCustomer(event)}">
<mx:columns>
<mx:DataGridColumn headerText="客户姓名" width="100" dataField="callerName" editable="true"/>
<mx:DataGridColumn headerText="客户电话" width="100" dataField="callerNum" editable="true"/>
<mx:DataGridColumn headerText="客户地址" dataField="callerAddress" editable="true"/>
</mx:columns>
</mx:DataGrid>
<mx:Button x="131" y="28" label="添加修改" click="updateCustomerData()"/>
<mx:Label x="27" y="209" id="resultBack" width="96"/>
<mx:CheckBox x="151" y="207" label="autoUpdate" id="chkAutoUpdate" color="#070707"/>
</mx:Panel>
</mx:Application>