I have a variable which gets value from a function. The function contains 2 PageMethods. Inside the function everything works perfectly but the variable dsrt
holds "Undefined"
. Someone can tell me why the function does not return any value?
dsrt = calculate_all_rates(ratetypes.Day1_Rate, ddlccy.options[ddlccy.selectedIndex].value, ses, ccytype.ID, ((ddltype.options[ddltype.selectedIndex].text == "Export") ? postyp.Export : postyp.Import), dt, mat2, mat2, ddlpf.options[ddlpf.selectedIndex].value, 0, 0, 0, "", ddlbank.options[ddlbank.selectedIndex].value);
function calculate_all_rates(rateid, ccy1,ccy2,ctyp,typ,posdt,matdt1,matdt2,pfid,mar,mar1,mar2 ,caltyp,bnk ) {
var rds = new Array();
var para = new Array();
para[0] = rateid;
para[1] = ccy1;
para[2] = ccy2;
para[3] = ((ctyp == 1) ? "ID" : "NAME");
para[4] = ((typ == 1) ? "Export" : "Import");
para[5] = posdt;
para[6] = matdt1;
para[7] = matdt2;
para[8] = pfid;
para[9] = mar;
para[10] = mar1;
para[11] = mar2;
para[12] = caltyp;
para[13] = bnk;
if(rateid == 9) {
PageMethods.rates(para,"avgspot",suc1,err1);
function suc1(res){rds=res;return rds;}
function err1(){}
} else {
PageMethods.rates(para,"calcrates",suc2,err2);
function suc2(res){rds=res;return rds;}
function err2(){}
}
}
dsrt
returns the value as "Undefined"
.
Do the following changes. It works.
You cannot assign the value returned by the pagemethods which is in another function to dsrt. so use dsrt and all the functionality of Calculate_all_rates in the calling function
old Code:
dsrt = calculate_all_rates(ratetypes.Day1_Rate, ddlccy.options[ddlccy.selectedIndex].value, ses, ccytype.ID, ((ddltype.options[ddltype.selectedIndex].text == "Export") ? postyp.Export : postyp.Import), dt, mat2, mat2, ddlpf.options[ddlpf.selectedIndex].value, 0, 0, 0, "", ddlbank.options[ddlbank.selectedIndex].value);
new code:
function Common()
{
var rateid;var ccy1;var ccy2;var ctyp;var typ;var posdt;var matdt1;var matdt2;var pfid;var mar;
var mar1;var mar2;var caltyp;var bnk;
{rateid=ratetypes.Day1_Rate;ccy1=ddlccy.options[ddlccy.selectedIndex].value;ccy2=ses;ctyp=ccytype.ID;typ=((ddltype.options[ddltype.selectedIndex].text == "Export") ? postyp.Export : postyp.Import);posdt=dt;matdt1=mat2;matdt2=mat2;pfid=ddlpf.options[ddlpf.selectedIndex].value;mar=0;mar1=0;mar2=0;caltyp="";caltyp=bnk=ddlbank.options[ddlbank.selectedIndex].value;}
var str;
var para_arr = new Array();
para_arr[0] = rateid;
para_arr[1] = ccy1;
para_arr[2] = ccy2;
para_arr[3] = ((ctyp == 1) ? "ID" : "NAME");
para_arr[4] = ((typ == 1) ? "Export" : "Import");
para_arr[5] = posdt;
para_arr[6] = matdt1;
para_arr[7] = matdt2;
para_arr[8] = pfid;
para_arr[9] = mar;
para_arr[10] = mar1;
para_arr[11] = mar2;
para_arr[12] = caltyp;
para_arr[13] = bnk;
if(rateid == 9)
{
str="avgspot";
}
else
{
str="calcrates";
}
PageMethods.rates(para_arr,str,calc_suc,calc_err);
function calc_suc(resp)
{
dsrt=resp;
}
function calc_err(){}
}