use "win.vl"
use "dev:vm[xdwgrid.vm]"
use "dev:vm[xdwtable.vm]"
use "pref.vl"
use "dev:vm[xml.vm]"
use "dev:vm[xaserverarg.vm]"
use "dev:vm[xaserver.vm]"
use "dev:vm[xutil.vm]"
use "list.vl"
use "treeview.vm"
//unit vclient.vobject tpp
unit vbusiness.xpage
[
HrEmployee is extend list;
about HrEmployee
[
field:
[
treeview__ tv_org;
xdwgrid__ dw_emp;
string is_orgid
string is_orgname;
string is_inflag;
xdwtable__ dw_empmaint;
xnode__ m_agentNode; //Agent Condition
string m_agentCond; //Agent Node
]
method:
[
int SetAgent()
{
string xfNodeAgentArea = "agentarea";
xnode__ anode = new xnode__;
anode.setNativePointer(GetAgentNode(xfNodeAgentArea));
var xframeElement = GetElement();
var agent = xframeElement.selectSingleNode("agent/" + xfNodeAgentArea + "/*[1]");
if (agent)
{
string s = agent.xml;
SetAgentNodeContent(anode, s);
}
}
//½¹µã¼¤»î´¦Àíº¯Êý
int OnSetFocus(ref TEvent evt, int p)
{
SetAgent();
//ÖØÖù¤¾ßÌõ
return 1;
}
int OnRetrieve(string ls_orgid)
{
xml__ x = new xml__;
x.setNativePointer(x.CreateInstance());
xaserverarg__ arg = new xaserverarg__;
arg.setNativePointer(arg.CreateInstance());
arg.AddArg("OrgID", ls_orgid);
//trace(ls_orgid);
//if (xaserver__::ExecXQuery(GetServerUrl(),"[MSSqlHrEmployee.xq]",arg.GetString(),x) == 1)
if (url::get("OrganizationStruct/list.Employee", arg.GetString(), x) == 1)
{
dw_emp.Retrieve(x);
dw_emp.Redraw();
}
//trace(x.GetXml());
return 1;
}
int OnSave()
{
int hIcon = xutil__::SetCursorWait();
xml__ x = new xml__;
x.setNativePointer(x.CreateInstance());
dw_emp.AcceptText();
dw_emp.DwUpdateAllToEx(x.GetXmlDoc());
string val = x.GetXml();
xaserverarg__ arg = new xaserverarg__;
arg.setNativePointer(arg.CreateInstance());
arg.AddArg("content", val);
//trace(x.GetXml());
//return 1;
if (url::post("OrganizationStruct/update.Employee", arg.GetString(), x) != 1)
{
trace(x.GetXmlDoc().documentElement.text);
alert("±£´æÊ§°Ü");
}
else {
dw_emp.ResetUpdateStatus();
alert("±£´æ³É¹¦");
}
trace(x.GetXml());
xutil__::RestoreCursor(hIcon);
return 1;
}
int OnSubTree(string id, int parentitem)
{
int wid = tv_org.GetId();
if (treeview__::GetChildItem(wid, parentitem) > 0) return 1;
xml__ x = new xml__;
x.setNativePointer(xml__::CreateInstance());
xaserverarg__ arg = new xaserverarg__;
arg.setNativePointer(arg.CreateInstance());
arg.AddArg("sguid", id);
if (url::post("/sale/data/OrganizationStruct/tree.child.OrgChart", arg.GetString(), x) != 1)
{
trace(x.GetXml());
return -1;
}
//trace(x.GetXml());
var list = x.GetXmlDoc().selectNodes("//item");
int i = 0, s = list.length;
msxml::IXMLDOMElement xitem;
string sName;
string sguid;
string stype;
if (s > 0)
{
for (i = 0; i < s; i++)
{
xitem = list.item(i);
sName = xitem.SelectSingleNode("name").text;
sguid = xitem.SelectSingleNode("id").text;
stype = xitem.SelectSingleNode("typ").text;
//int curItem = tv_org.InsertChildItemEx(wid,parentitem,sName,xitem,15,4);
int curItem = 0;
if (stype == "Org")
{
curItem = tv_org.InsertChildItemEx(wid, parentitem, sName, xitem, 15, 4);
tv_org.SetItemChild1(wid, curItem, 1);
}
else
{
curItem = tv_org.InsertChildItemEx(wid, parentitem, sName, xitem, 21, 21);
}
//OnSubTree(sguid,curItem);
}
}
return 1;
}
int OnCreateTree(string id, int parentitem)
{
//while (tv_1.GetRootItem()>0)
// tv_1.DeleteItem(tv_1.GetRootItem());
int wid = tv_org.GetId();
xml__ x = new xml__;
x.setNativePointer(xml__::CreateInstance());
x.LoadXml("- " + id + "Äþ²¨¼Ò¶û¼ÑOrg
");
//msxml::IXMLDOMDocument root = x.GetXmlDoc();
//msxml::IXMLDOMElement RDoc = x.GetXmlDoc().documentElement;
//msxml::IXMLDOMElement ele = RDoc.SelectSingleNode("//Org");
msxml::IXMLDOMElement ele = x.GetXmlDoc().SelectSingleNode("//item");
int hItem = treeview__::InsertChildItemEx(wid, 0, "Äþ²¨¼Ò¶û¼Ñ", ele, 15, 4);
treeview__::SetItemChild1(wid, hItem, 1);
return 1;
/*xaserverarg__ arg=new xaserverarg__;
arg.setNativePointer(arg.CreateInstance());
arg.AddArg("sguid",id);
if(url::post("/sale/data/OrganizationStruct/tree.child.OrgChart",arg.GetString(),x)!=1)
{
trace(x.GetXml());
return -1;
}
//trace(x.GetXml());
var list=x.GetXmlDoc().selectNodes("//item");
int i=0,s=list.length;
msxml::IXMLDOMElement xitem;
string sName;
string sguid;
if (s >0)
{
for (i=0;i dw_emp.GetRowCount())
return 1;
msxml::IXMLDOMElement e = dw_emp.GetRowElement(row);
string sPersonID = e.selectSingleNode("PersonID").text;
xaserverarg__ arg = new xaserverarg__;
arg.setNativePointer(arg.CreateInstance());
arg.AddArg("operate", "modify");
arg.AddArg("guid", sPersonID);
//xwin::OpenWindow("dev:xpage[HrPersonMaint.xpage]",arg);
openUrl("×éÖ¯¼Ü¹¹.vface/xpage/Hr/HrPersonMaint", arg);
return 1;
}
//ÃüÁî·¢²¼º¯Êý
int OnCmdDispatch(string comdid)
{
if (comdid == "Save") return OnSave();
else if (comdid == "AddRow") return OnAddRow();
else if (comdid == "ModifyRow") return OnModifyRow();
else if (comdid == "DeleteRow") return OnDeleteRow();
else if (comdid == "Refresh") return OnRetrieve(is_orgid);
/*else if(comdid =="adjustorg") return OnAdjustOrg();*/
return 0;
}
//ÃüÁî´¦Àíʼþ
int OnXCommand(ref TXCommandEvent evt, int p)
{
return OnCmdDispatch(evt.pStrID);
}
int OnAttachEvent()
{
//°ó¶¨¹¤¾ßÌõµã»÷ʼþ
AttachEvent("WM_XCOMMAND", OnXCommand);
//»ñÈ¡½¹µãʼþ£¬ÓÃÓÚÖØÖù¤¾ßÌõ
AttachEvent("WM_SETFOCUS", OnSetFocus);
//»ñµÃÊ÷µÄÑ¡Ôñʼþ
AttachEvent("tv_org", "TVN_SELCHANGED", OnTreeSelChanged);
AttachEvent("tv_org", "TVN_ITEMEXPANDING", OnTreeExpanding);
AttachEvent("dw_emp", "DWV_DOUBLECLICKED", OnDoubleClicked);
}
int OnInitial()
{
m_agentNode = new xnode__;
SetAgent();
OnAttachEvent();
return 1;
}
int onload()
{
tv_org = new treeview__;
tv_org.setNativePointer(this.GetControl("tv_org"));
dw_emp = new xdwgrid__;
dw_emp.setNativePointer(this.GetControl("dw_emp"));
dw_emp.openUrl("×éÖ¯¼Ü¹¹.vface/template/HrEmployee/list");
//dw_emp.SetReadOnly(true);
//dw_emp.SetSelectionMode(1);
OnInitial();
OnCreateTree("00000000-0000-0000-0000-000000000000", 0);
int wid = tv_org.GetId();
int root = treeview__::GetRootItem(wid);
treeview__::ExpandItem(wid, root);
return 1;
}
]
]
]