function DBListView(parent)//构造函数
{  
    var pdiv,obj=document.createElement('select');//创建一个控制节点
	if(parent){pdiv=parent;}else pdiv=document.body;//获取父块
	pdiv.appendChild(obj);
	obj.style.position='absolute';
    setStyle(obj);
    obj.SelectedIndex=0;//当数据发生滚动时，对SELECT要显示的记录进行定位  
    obj.DataItem=new Array();//要显示在SELECT中的对应的值
    obj.oOption=new Array();//创建SELECT的OPTION对象数组
    obj.DataSet;
    obj.DataField;
    obj.Refresh=DLV_refresh;
    obj.AddOption = DLV_addoption;//创建option对象，向SELECT中填充内容
    obj.Rload = DLV_getoptionitem; // 需向SELECT中填充内容
    obj.onchange=DLV_onchange;//属性变化的事件
    obj.HandleMessage=DLV_handlemessage;//消息处理
  if(isIE)
	obj.onpropertychange=DC_onpropertychange
  else
	addEventTimerListener(obj,DC_onpropertychange);
    obj.oncontextmenu=div_oncontextmenu;
    return obj;
}

function DLV_handlemessage(sender,msg,recno)
{
  switch(msg){
    case 0://初始化消息
      this.Rload();	
      this.Refresh();
      break;
  }
}

function DLV_onpropertychange()//属性变化处理
{
  var n=event.propertyName;
  switch(n){
    case 'DataSet':
      if(this.OldDataSet)this.OldDataSet.RemoveLink(this);//从原来的DATASET中移除
      if(this.DataSet)this.DataSet.LinkObj(this);
      this.OldDataSet=this.DataSet;
      break;
  }
}


function DLV_onchange()//在select中发生事件改变时更新值
{
 var v;
 var d=this.DataSet;
 var f1,f=d.Fields.Field[this.DataField];
 var ld=this.DataSet;
 var i=this.selectedIndex-1;
 
 if(i>-1){
  ld.SetPos(i);
  f1=ld.Fields.Field[this.DataField];
  if(!f1)jcl_err(this.Name+'.DataField:'+this.DataField+Err_NoField);
  v=ld.Fields.Field[this.DataField].GetValue();
 }
 else{v='';}
 f.Value=v;
 if(f.Err)this.focus();
}

function DLV_refresh(){	
	this.AddOption();	
}

function DLV_getoptionitem(){//从码表中取出要填充select的值，只取一次以数组的形式保存
  var ld=this.DataSet;
  ld.AutoControl=false;
  ld.First();
  for(var i=0;i<ld.RecordCount;i++){
    f=ld.Fields.Field[this.DataField];
	if(!f)jcl_err(this.Name+'.Field:'+this.DataField+Err_NoField);
    this.DataItem[i]=f.GetValue();					
    ld.Next();	
  }
  ld.First();
  ld.AutoControl=true;	
}

function DLV_addoption(){	//创建option对象，填充内容
    this.oOption[0]=document.createElement("OPTION");
	this.oOption[0].text='';
	this.oOption[0].value='';
	this.add(this.oOption[0]); 
    for(var i=0;i<this.DataItem.length;i++){
		this.oOption[i+1]=document.createElement("OPTION");
		this.oOption[i+1].text=this.DataItem[i];	
		this.add(this.oOption[i+1]);	 
	}
}

