4,327
社区成员
发帖
与我相关
我的任务
分享

<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:super="net.carefx.nursing.component.dgCombo.*"
dataChange="init()"
horizontalScrollPolicy="off"
disabledOverlayAlpha="0.0"
disabledColor="#333333">
<mx:RemoteObject id="sNursingService"
destination="CNPWebService"
showBusyCursor="true"
fault="this.parentApplication.nursingPathwayFault(event)">
<mx:method name="queryItemsByCode"
result="onQueryItemsByCode(event)"/>
</mx:RemoteObject>
<mx:Script>
<![CDATA[
import mx.controls.AdvancedDataGrid;
import mx.collections.HierarchicalCollectionView;
import mx.collections.HierarchicalData;
import net.carefx.nursing.ws.domain.Item;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.controls.Alert;
import net.carefx.nursing.ws.domain.UnitItemInstance;
import net.carefx.nursing.util.Constant;
import net.carefx.nursing.util.CodeHelper;
import mx.controls.dataGridClasses.DataGridColumn;
import mx.utils.StringUtil;
import mx.collections.ArrayCollection;
[Bindable]
private var nursingItems:ArrayCollection=new ArrayCollection();
[Bindable]
private var unitItemInstance:UnitItemInstance=new UnitItemInstance();
private function init():void
{
if (data && data.statusColor != null)
{
cNursingItemComboBox.setStyle("color", data.statusColor);
}
if (data && data.hasOwnProperty("unitItemInstance"))
{
nursingItems.removeAll();
unitItemInstance=data.unitItemInstance;
nursingItems.addItem(data.unitItemInstance);
cNursingItemComboBox.enabled=data.isExe == UnitItemInstance.DO_TERM ? false : true;
if (!data.unitItemInstance.item || data.unitItemInstance.id == "")
{
cNursingItemComboBox.editable=true;
}
}
else if (data && data.children)
{
nursingItems.removeAll();
unitItemInstance=null;
for each (var unitItemInstance:UnitItemInstance in data.children[0].unionItems)
{
nursingItems.addItem(unitItemInstance);
}
cNursingItemComboBox.enabled=data.isExe == UnitItemInstance.DO_TERM ? false : true;
}
}
private function eTextChangeHandler():void
{
sNursingService.queryItemsByCode(cNursingItemComboBox.text);
}
private function onQueryItemsByCode(event:ResultEvent):void
{
var remoteNursingItems:Array=event.result as Array;
if (nursingItems)
{
nursingItems.removeAll();
}
for each (var remoteNursingItem:Item in remoteNursingItems)
{
var unitItemInstance:UnitItemInstance=new UnitItemInstance();
unitItemInstance.item=remoteNursingItem;
nursingItems.addItem(unitItemInstance);
}
}
private function eNursingItemClose():void
{
if (cPopUpDataGrid.selectedItem != null)
{
unitItemInstance.item = UnitItemInstance(cPopUpDataGrid.selectedItem).item;
if (data && data.hasOwnProperty("unitItemInstance"))
{
HierarchicalData(HierarchicalCollectionView(AdvancedDataGrid(owner).dataProvider).source).source.itemUpdated(data);
}
}
}
private function eItemClick():void
{
if (cPopUpDataGrid.selectedItem != null)
{
unitItemInstance.item = UnitItemInstance(cPopUpDataGrid.selectedItem).item;
if(data && data.hasOwnProperty("unitItemInstance"))
{
HierarchicalData(HierarchicalCollectionView(AdvancedDataGrid(owner).dataProvider).source).source.itemUpdated(data);
}
}
}
private function labelFunction(item:Object):String
{
var str:String="";
if (item.groupID == null || item.groupID == Constant.NURSING_ITEM_NO_GROUP || item.groupID == "")
{
if (item.item)
{
str=item.item.name;
}
}
else
{
for each (var unitItemInstance:UnitItemInstance in nursingItems)
{
if (unitItemInstance.item)
{
str+=StringUtil.trim(unitItemInstance.item.name) + "+";
}
}
if (str.length != 0)
{
str=str.substr(0, str.length - 1);
}
}
return str;
}
private function popLabelFunction(item:Object, column:DataGridColumn):String
{
var str:String="";
switch (column.dataField)
{
case "name":
if (item.item)
{
str=item.item.name;
}
break;
case "type":
if (item.item)
{
str=resourceManager.getString('localization', CodeHelper.lookUpValue(Constant.NURSING_ITEM_TYPE, Number(item.item.itemType)));
}
break;
}
return str;
}
private function fault(event:FaultEvent):void
{
Alert.show(event.message.toString());
}
]]>
</mx:Script>
<super:DGComboBox id="cNursingItemComboBox"
width="100%"
labelFunction="labelFunction"
dataProvider="{nursingItems}"
dropdownWidth="800"
textChange="eTextChangeHandler()"
change="eNursingItemClose()">
<super:popUp>
<mx:DataGrid id="cPopUpDataGrid"
dataProvider="{nursingItems}"
sortableColumns="false"
itemClick="eItemClick();">
<mx:columns>
<mx:DataGridColumn headerText="项目內容"
dataField="name"
labelFunction="popLabelFunction"/>
<mx:DataGridColumn headerText="项目类型"
width="100"
dataField="type"
labelFunction="popLabelFunction"/>
</mx:columns>
</mx:DataGrid>
</super:popUp>
</super:DGComboBox>
</mx:HBox>