|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622 。
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 FrankXu 于 2012/3/16 21:59 编辑
以下资料供IT开发人员参考, 开发者必须熟悉任意一门的Web开发( 如C#,VB.Net)和Javascript以及数据库查询操作
至于如何在FS页面写事件, 请参考我的另一个贴子: FS集成开发
1. 利用javascript访问页面控件
var n=document.FSWebUI.elements.length;
//通过以下方式快速找到想要的控件的,而不用管光标移到第几行, 可以弥补fsGetFieldValue()/fsSetFieldValue()的不足之处
//此方法尤其适用于IMTR/ITMB/BILL/PICK/SHIP/POMT/MOMT/COMT... 等有明细表格的屏幕
for (var i=0;i<n;i++){
//显示第i个控件的值,如果n动态变化时,可通过获取name的前几个字符判断是否是自已需要的控件
alert( "Index " + i + ": " + document.FSWebUI.elements.name + " = "+ document.FSWebUI.elements.value);
//将字段设为只读
document.FSWebUI.elements.blur();
document.FSWebUI.elements.readOnly = true;
}
2. 利用Msxml2.XMLHTTP与后台交互(以下是Javascript)
var xhr=null; //该变量定义放在函数之外
function Fun_Test(.....) //事件处理函数,如失去输入焦点时或提交表单时,函数名由用户自定义,也可以集中放在user.js文件中
{
try{ xhr= new ActiveXObject("Msxml2.XMLHTTP");}
catch (e) {
try { xhr= new ActiveXObject("Microsoft.XMLHTTP");}
catch (e2) { xhr = null; }
}
if ( xhr==null && typeof XMLHttpRequest != 'undefined') {xhr= new XMLHttpRequest();}
if(xhr==null){ alert("Create XMLHttp Failed"); return; }
xhr.onreadystatechange=function (){
if(xhr.readyState ==4){
if(xhr.status==200){
var ret=xhr.responseText; //获取后台查询结果的返回值
//根据返回值进行操作判断
if (ret==null ){ //你的操作处理,如
alert("查询出错,请联系管理员");
} else (ret=="某值时"){
//document.FSWebUI.submit(); 如OK时提交表单
// document.FSWebUI.elements.value="设定新值"; //设置新值
// alert("当前操作不允许: ......."); return false; //提示错语信息并阻止用户继续操作
}
} else
alert("status=" + xhr.status);
}
}
//调用后台程序(可以是aspx, jsp,asp等Web页面)
//例如: var sURL=".../fsquery.aspx?Type=1&tval=" + szItem ;
var sURL=".../你的Web页面.aspx?参数名1=值1&参数名2=值2...";
xhr.open("GET",sURL);
xhr.send(null);
}
3. Web页面的开发要求,如C# (fsquery.aspx)
a. Web页面不要放置任何控件
b. 所有查询在Page_load()中完成,并利用Response.Write()返回值给前台的Javascript;
protected void Page_Load(object sender, EventArgs e)
{
string szValue1=Request["参数1"];
string szValue2=Request["参数2"];
......................
......根据值进行查询.....
Response.Write("你的返回值");
Response.End();
return;
}
|
|