/*use "list.vd"
|
use "xtreeview.vd"
|
use "publiccode.vd"*/
|
use "xcontrol.vframe.vbusiness.vd"
|
use "xbase.vframe.vbusiness.vd"
|
unit trade
|
[
|
class ColorCardNew : public listwin
|
{
|
xdwgrid dw_list;
|
xdwgrid dw_detail;
|
bool ismodify;
|
xnode m_agentNode;
|
string m_agentCond;
|
|
int SetAgent()
|
{
|
string xfNodeAgentArea = "agentarea";
|
xnode anode = GetAgentNode(xfNodeAgentArea);
|
msxml::IXMLDOMElement xframeElement = GetElement();
|
msxml::IXMLDOMNode agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*");
|
if(agent)
|
SetAgentNodeContent(anode, agent.xml);
|
return 1;
|
}
|
|
//½¹µã¼¤»î´¦Àíº¯Êý
|
int OnSetFocus(ref TEvent evt,int param)
|
{
|
SetAgent();
|
|
//ÖØÖù¤¾ßÌõ
|
return 1;
|
}
|
int ProcessFlowAction(string guid,string comdid)
|
{
|
//int pr = pr1;
|
//string action = comdid;//.mid(comdid.find("action:",0)+7,9999);
|
/*if(action == "bill.delete" || action == "bill.deleteEx")
|
{
|
if (MessageBox(GetHWND(),"ÊÇ·ñÈ·¶¨É¾³ý¼Ç¼!","Ìáʾ1",1) == 2)
|
return 1;
|
}*/
|
|
xaserverarg arg0 = new xaserverarg ;
|
arg0.setNativePointer(arg0.CreateInstance());
|
//arg0.AddArg("Action", action,"xs:string");
|
arg0.AddArg("EntityName", "ColorCard","xs:string");
|
arg0.AddArg("EntityIDName", "ColorCardID","xs:string");
|
arg0.AddArg("EntityID", guid,"xs:string");
|
arg0.AddArg("FunctionCode", comdid,"xs:string");
|
xml x = new xml;
|
x.setNativePointer(xml::CreateInstance());
|
|
if(url::get("/sale/data/Role.config/sys/sql/action", arg0.GetString(), x) != 1)
|
{
|
//ismodify=false;
|
//dw_list.SetReadOnly(ismodify);
|
return -1;
|
}
|
string kk=x.GetXml();
|
if(kk.find("<root/>",0)>=0)
|
{
|
//ismodify=true;
|
//dw_list.SetReadOnly(ismodify);
|
return 1;
|
}
|
return -1;
|
}
|
|
int ModifyProcessAction(string guid,string comdid)
|
{
|
if(ProcessFlowAction(guid,comdid)>0)
|
{
|
ismodify=true;
|
dw_list.SetReadOnly(ismodify);
|
return -1;
|
}
|
else
|
{
|
ismodify=false;
|
dw_list.SetReadOnly(ismodify);
|
return -1;
|
}
|
}
|
int DeleteProcessAction(string guid,string comdid)
|
{
|
if(ProcessFlowAction(guid,comdid)>0)
|
{
|
return -1; //ûÓÐȨÏÞ
|
}
|
else
|
{
|
return 1; //ÓÐȨÏÞ
|
}
|
}
|
|
//¸ù¾ÝColorCardID¼ÓÔØDetailÊý¾Ý
|
int OnRetrieveDetail(string ColorCardID)
|
{
|
xml x=new xml;
|
x.setNativePointer(xml::CreateInstance());
|
xaserverarg arg=new xaserverarg;
|
arg.setNativePointer(arg.CreateInstance());
|
|
arg.AddArg("ColorCardID",ColorCardID);
|
if (url::get("ColorCard/entity/list1",arg.GetString(),x) != 1)
|
{
|
trace(x.GetXmlDoc().text);
|
return -1;
|
}
|
dw_detail.Retrieve(x);
|
dw_detail.Redraw();
|
dw_detail.SetReadOnly(ismodify);
|
return 1;
|
}
|
|
int OnPreSave()
|
{
|
if (dw_list)
|
{
|
string colorCardCName;
|
string colorCardName;
|
string orgID;
|
int i;
|
int row = dw_list.GetRowCount();
|
for (i=1; i<=row;i++)
|
{
|
colorCardCName=dw_list.GetItemString(i,"ColorCardCName",0)+"";
|
colorCardName=dw_list.GetItemString(i,"ColorCardName",0)+"";
|
orgID=dw_list.GetItemString(i,"OrgID",0)+"";
|
if (colorCardCName=="" || !colorCardCName)
|
{
|
alert("µÚ"+i.toString()+"ÐÐÉ«¿¨Ãû³ÆÖÐÎÄΪ¿Õ");
|
return -1;
|
}
|
if (colorCardName=="" || !colorCardName)
|
{
|
alert("µÚ"+i.toString()+"ÐÐÉ«¿¨Ãû³ÆÎª¿Õ");
|
return -1;
|
}
|
if (orgID=="" || !orgID)
|
{
|
alert("µÚ"+i.toString()+"ÐйØÁª×é֯Ϊ¿Õ");
|
return -1;
|
}
|
}
|
}
|
|
return 1 ;
|
}
|
|
//±£´æ
|
int OnSave()
|
{
|
dw_list.AcceptText();
|
dw_detail.AcceptText();
|
int rec;
|
rec = OnPreSave();
|
if (rec == -1)
|
return -1;
|
xml x= new xml;
|
x.setNativePointer(xml::CreateInstance());
|
dw_list.DwUpdateAllToEx(x.GetXmlDoc());
|
xaserverarg arg = new xaserverarg;
|
arg.setNativePointer(arg.CreateInstance());
|
msxml::IXMLDOMElement e= x.GetXmlDoc().selectSingleNode("root");
|
arg.AddArg("content",e.xml);
|
arg.AddArg("dbmap","ColorCard.dbmap");
|
if (url::get("ColorCard/pref/colorcard.save",arg.GetString(),x) != 1)
|
{
|
trace("error:"+x.GetXml());
|
alert("±£´æÊ§°Ü!");
|
return 0;
|
}
|
else
|
{
|
alert("±£´æ³É¹¦!");
|
dw_list.ResetUpdateStatus();
|
}
|
dw_list.Redraw();
|
}
|
|
//ÐÂÔö
|
int OnAdd()
|
{
|
dw_list.AcceptText();
|
int nrow=dw_list.InsertRow(0);
|
dw_list.ShowRowTo(nrow);
|
string tempguid = publiccode::GetGuid();
|
dw_list.SetItemString(nrow,"ColorCardID",tempguid);
|
OnRetrieveDetail(tempguid);
|
}
|
|
//²åÈë
|
int OnInsert()
|
{
|
dw_list.AcceptText();
|
int row = dw_list.GetRow();
|
if(row<1) return 0;
|
int nrow=dw_list.InsertRow(row);
|
string tempguid = publiccode::GetGuid();
|
dw_list.SetItemString(nrow,"ColorCardID",tempguid);
|
OnRetrieveDetail(tempguid);
|
}
|
|
//ɾ³ý
|
int OnDelete()
|
{
|
dw_list.AcceptText();
|
int row = dw_list.GetRow();
|
if(row<1) return 0;
|
string id=dw_list.GetItemString(row,"ColorCardID");
|
if(DeleteProcessAction(id,"DeleteColorCard")<0)
|
{
|
alert("ÄúûÓÐȨÏÞɾ³ý¸ÃÊý¾Ý");
|
return -1;
|
}
|
if(id !="")
|
{
|
xml x=new xml;
|
x.setNativePointer(xml::CreateInstance());
|
xaserverarg arg = new xaserverarg;
|
arg.setNativePointer(arg.CreateInstance());
|
arg.AddArg("ColorCardID", id);
|
if(url::get("ColorCard/pref/beforedelete",arg.GetString(),x)!=1)
|
{
|
trace("error:"+x.GetXml());
|
alert("ɾ³ý³ö´í!");
|
return 0;
|
}
|
msxml::IXMLDOMElement e= x.GetXmlDoc().documentElement;
|
if(e.selectSingleNode("error"))
|
{
|
alert(e.selectSingleNode("error").text);
|
return 0;
|
}
|
}
|
dw_list.DeleteRow(row);
|
}
|
|
int OnAddRowDetail()
|
{
|
dw_detail.AcceptText();
|
int nrow=dw_detail.InsertRow(0);
|
string tempguid = publiccode::GetGuid();
|
dw_detail.SetItemString(dw_detail.GetRow(),"ColorCardID",dw_list.GetItemString(dw_list.GetRow(),"ColorCardID"));
|
dw_detail.SetItemString(dw_detail.GetRow(),"ColorID",tempguid);
|
//OnRetrieveDetail(tempguid);
|
dw_detail.ShowRowTo(nrow);
|
|
return 1;
|
}
|
|
int OnInsertRowDetail()
|
{
|
dw_detail.AcceptText();
|
int row = dw_detail.GetRow();
|
if(row<1) return 0;
|
int nrow=dw_detail.InsertRow(row);
|
string tempguid = publiccode::GetGuid();
|
dw_detail.SetItemString(dw_detail.GetRow(),"ColorCardID",dw_list.GetItemString(dw_list.GetRow(),"ColorCardID"));
|
dw_detail.SetItemString(dw_detail.GetRow(),"ColorID",tempguid);
|
|
return 1;
|
}
|
|
int OnDelRowDetail()
|
{
|
int row = dw_detail.GetRow();
|
int rowz = dw_list.GetRow();
|
if(row<1)return 0;
|
dw_detail.DeleteRow(row);
|
msxml::IXMLDOMElement ez= this.dw_list.GetRowElement(rowz);
|
xml xz=new xml;
|
xz.setNativePointer(xml::CreateInstance());
|
dw_detail.DwUpdateAllToEx(xz.GetXmlDoc());
|
if (ez.selectSingleNode("root"))
|
ez.removeChild(ez.selectSingleNode("root"));
|
ez.appendChild(xz.GetXmlDoc().documentElement);
|
|
return 1;
|
}
|
|
//ÃüÁî·¢²¼º¯Êý
|
int OnCmdDispatch(string comdid)
|
{
|
if(comdid=="save") OnSave();
|
else if(comdid=="add") OnAdd();
|
else if(comdid=="insert") OnInsert();
|
else if(comdid=="del") OnDelete();
|
else if(comdid=="addrowDetail") OnAddRowDetail();
|
else if(comdid=="insertrowDetail") OnInsertRowDetail();
|
else if(comdid=="deleterowDetail") OnDelRowDetail();
|
|
return 1;
|
}
|
|
//ÃüÁî´¦Àíʼþ
|
int OnXCommand(ref TXCommandEvent evt,int param)
|
{
|
return OnCmdDispatch(evt.pStrID);
|
}
|
|
//Ðиıäʼþ
|
int OnListRowChanged(ref TNotifyEvent evt,int p)
|
{
|
dw_detail.AcceptText();
|
ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR);
|
int row = hdr.row;
|
dw_list.Redraw();
|
msxml::IXMLDOMElement e = dw_list.GetRowElement(row);
|
string ColorCardID = e.selectSingleNode("ColorCardID").text;
|
OnRetrieveDetail(ColorCardID);
|
|
return 1;
|
}
|
|
int OnDetailChanged(ref TNotifyEvent evt,int p)
|
{
|
int row = dw_list.GetRow();
|
msxml::IXMLDOMElement e= this.dw_list.GetRowElement(row);
|
xml x=new xml;
|
x.setNativePointer(xml::CreateInstance());
|
dw_detail.DwUpdateAllToEx(x.GetXmlDoc());
|
if (e.selectSingleNode("root"))
|
e.removeChild(e.selectSingleNode("root"));
|
e.appendChild(x.GetXmlDoc().documentElement);
|
|
return 0;
|
}
|
|
int OnDwListClick(ref TNotifyEvent evt,int p)
|
{
|
ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR);
|
int row = hdr.row;
|
dw_list.Redraw();
|
msxml::IXMLDOMElement e = dw_list.GetRowElement(row);
|
string ColorCardID = e.selectSingleNode("ColorCardID").text;
|
ModifyProcessAction(ColorCardID,"ModifyColorCard");
|
|
return 1;
|
}
|
|
int OnAttachEvent()
|
{
|
//°ó¶¨¹¤¾ßÌõµã»÷ʼþ
|
AttachEvent("WM_XCOMMAND",OnXCommand);
|
//»ñÈ¡½¹µãʼþ£¬ÓÃÓÚÖØÖù¤¾ßÌõ
|
AttachEvent("WM_SETFOCUS",OnSetFocus);
|
//Ðиıäʼþ
|
AttachEvent("dw_list","DWV_ROWFOCUSCHANGED",OnListRowChanged);
|
AttachEvent("dw_detail","DWV_ITEMCHANGED",OnDetailChanged);
|
//AttachEvent("dw_list","DWV_ITEMCHANGED",OnDetailChanged);
|
AttachEvent("dw_list","DWV_CLICKED",OnDwListClick);
|
|
return 1;
|
}
|
|
int OnRetrieve(string str)
|
{
|
xml x=new xml;
|
x.setNativePointer(xml::CreateInstance());
|
xaserverarg arg=new xaserverarg;
|
arg.setNativePointer(arg.CreateInstance());
|
arg.AddArg("id",str);
|
if (url::get("ColorCard/entity/list",arg.GetString(),x) != 1)
|
{
|
trace(x.GetXmlDoc().text);
|
return -1;
|
}
|
//doc=x;
|
dw_list.Retrieve(x);
|
dw_list.Redraw();
|
|
return 1;
|
}
|
|
int OnInitial()
|
{
|
SetAgent();
|
|
OnAttachEvent();
|
|
return 1;
|
}
|
|
int onload()
|
{
|
|
dw_list = GetControl("dw_list");
|
dw_list.openUrl("²úÆ·ÉèÖÃ.vface/template/ColorCard/list");
|
|
dw_detail = GetControl("dw_detail");
|
dw_detail.openUrl("²úÆ·ÉèÖÃ.vface/template/ColorCard/listex");
|
OnInitial();
|
|
OnRetrieve("FND_ColorCard");
|
|
return 1;
|
}
|
};
|
]
|