|
From: <sv...@de...> - 2005-05-20 20:25:42
|
Author: pcamacho
Date: 2005-05-20 16:25:35 -0400 (Fri, 20 May 2005)
New Revision: 1117
Modified:
humano2/trunk/components/webTools/Adapter.cs
humano2/trunk/web/builder/site/createreport.aspx.cs
humano2/trunk/web/builder/site/js/createreport.js
humano2/trunk/web/builder/site/js/formreport.js
humano2/trunk/web/builder/site/js/grafcomponents/expandformreport.js
humano2/trunk/web/builder/site/js/grafcomponents/inputline.js
humano2/trunk/web/builder/site/xsl/createreport.xsl
Log:
ADD: having for the creation for reports. It does not work yet because of=
bug #123, but all the interface works well=20
(writing and recovering datas from the db for the interface).
Modified: humano2/trunk/components/webTools/Adapter.cs
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- humano2/trunk/components/webTools/Adapter.cs 2005-05-20 20:18:52 UTC =
(rev 1116)
+++ humano2/trunk/components/webTools/Adapter.cs 2005-05-20 20:25:35 UTC =
(rev 1117)
@@ -371,8 +371,8 @@
Logger.Log("ExecViewFromDataTable: page: " + page , LogLevel.Trace)=
;
=20
vt.Page =3D 1; // Do Pageing
- //vt.RowsView =3D 20; // Number of rows per page.
vt.RowsView =3D 2; // Number of rows per page.
+ //vt.RowsView =3D 2; // Number of rows per page.
vt.PageView =3D page; // Set the current page
}
Logger.Log("ExecViewFromDataTable: vtTable.Rows[0][\"order\"=
]=3D " + vtTable.Rows[0]["order"],LogLevel.Trace);
Modified: humano2/trunk/web/builder/site/createreport.aspx.cs
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- humano2/trunk/web/builder/site/createreport.aspx.cs 2005-05-20 20:18:=
52 UTC (rev 1116)
+++ humano2/trunk/web/builder/site/createreport.aspx.cs 2005-05-20 20:25:=
35 UTC (rev 1117)
@@ -42,6 +42,7 @@
private string receivedWhereStr;
private string receivedOrderStr;
private string receivedPersoColumnsStr;
+ private string receivedHavingsStr;
=20
private void Page_Load(object sender, System.EventArgs e)
{
@@ -160,6 +161,7 @@
res +=3D getReportPersoColumnsXml((dt.Rows[0]["columns"]).To=
String()); //Here are the functions
res +=3D getReportWhereXml((dt.Rows[0]["where"]).ToString())=
; //Where=20
res +=3D getReportOrderXml((dt.Rows[0]["order"]).ToString())=
; //Order
+ res +=3D getReportHavingsXml((dt.Rows[0]["having"]).ToString=
()); //Having
res +=3D "</reportParams>";
return res;
}
@@ -252,6 +254,44 @@
return xmlRes;
}
=20
+ private string getReportHavingsXml(string havings)
+ {
+ string [] tabHavings =3D havings.Split(new char [] {'|',';'}=
); =20
+ string xmlRes =3D "";
+ =20
+ if(tabHavings.Length <=3D 1)
+ {
+ return "";
+ }
+ =20
+ xmlRes +=3D "<havings>";
+ string [] columnsList =3D getColumnsList();
+ =20
+ for(int i=3D0;i<tabHavings.Length;i+=3D6) //The string is |a=
ttId|numFunc |numCond|'valor'|0 or 1|
+ {
+ string operatorValue =3D Convert.ToString(Convert.ToInt3=
2(tabHavings[i+2]) +1); //Because the first item in the list is -----
+ string attributeValue =3D Convert.ToString(Convert.ToInt=
32(getIndexOfElement(tabHavings[i+0],columnsList)) + 1);
+ string functionValue =3D tabHavings[i+1]; //No need to a=
dd 1 because functions start from 1 and not 0
+ =20
+ xmlRes +=3D"<having>";
+ xmlRes +=3D "<idAtt>" + attributeValue + "</idAtt>";
+ xmlRes +=3D "<operator>" + operatorValue + "</operator=
>";
+ xmlRes +=3D "<func>" + functionValue + "</func>";
+ xmlRes +=3D "<value>";
+ if(operatorValue =3D=3D "9") //In special case (don't fo=
rget the operator value has been incremented (9=3D8+1)...)
+ {
+ xmlRes +=3D convertInCaseFromReportToInterface(tabHa=
vings[i+3]);
+ }
+ else
+ { =20
+ xmlRes +=3D tabHavings[i+3];
+ }
+ xmlRes +=3D "</value>";
+ xmlRes +=3D "</having>";
+ }
+ xmlRes +=3D "</havings>";
+ return xmlRes;
+ }
=20
///<summary>
/// Basically this function takes a string of form: "[(item1,ite=
m2,item3)]" and returns "item1 item2 item3"
@@ -454,11 +494,14 @@
dr["groupby"] =3D receivedColumnsStr; //The columns selected=
by user are to put in group by
=20
//Special case for IN filter
- dr["where"] =3D parseWhere(receivedWhereStr);
+ dr["where"] =3D parseWhere(receivedWhereStr);
=20
dr["columns"] =3D buildColumnsForReport(receivedPersoColumns=
Str,dr["groupby"].ToString()); //
=20
dr["order"] =3D parseOrder(receivedOrderStr);
+ =20
+ dr["having"] =3D parseHavings(receivedHavingsStr);
+ =20
Logger.Log("receivedOrderStr" + receivedOrderStr, LogLevel.T=
race);
Logger.Log("receivedWhereStr" + receivedWhereStr, LogLevel.T=
race);
=09
@@ -516,7 +559,7 @@
///</summary>
private string parseOrder(string order) =20
{
- if(order=3D=3D"")
+ if(order=3D=3D"" || order =3D=3D null)
{
return ""; =20
}
@@ -555,9 +598,9 @@
private string parseWhere(string where) =20
{
=20
- if(where=3D=3D"") //Nothing to do
+ if(where=3D=3D"" || where =3D=3D null) //Nothing to do
{
- return "";
+ return ""; //Don't return "" because in this case the fi=
eld of database won't be updated
}
=20
string res =3D "";
@@ -591,8 +634,54 @@
=20
return res;
}
- =20
+ =20
+ =20
///<summary>
+ /// A having string is received from the web page in this format=
:
+ /// idFunc0 |idAtt0 | idOp0 | 'value'|;idFunc1|idAtt1 | idOp1 | =
'value'|; ... etc
+ /// We have to add the queue to each where condition (1|0 or 0|0=
)
+ ///</summary>
+ private string parseHavings(string havings) =20
+ {
+
+ if(havings=3D=3D"") //Nothing to do
+ {
+ return "";
+ }
+ =20
+ string res =3D "";
+ string [] havingsSplit =3D havings.Split((";").ToCharArray()=
); //First get the lines
+ =20
+ for(int i=3D0;i<havingsSplit.Length;i++)
+ {
+ string [] lineSplit =3D havingsSplit[i].Split(("|").ToCh=
arArray());
+ string line =3D "";
+ for(int j=3D0; j<lineSplit.Length;j++)
+ {
+ line +=3D lineSplit[j];
+ line +=3D '|'; =20
+ }
+ res +=3D line;
+ if(i!=3D havingsSplit.Length-1)
+ {
+ res +=3D "1|0;"; =20
+ }
+ else //Last line
+ {
+ res +=3D"0|0";
+ }
+ }
+ Logger.Log("parseHavings(before treatin)=3D " + res,LogLeve=
l.Trace);
+ =20
+ //res =3D treatInSpecialCase(res);=20
+ =20
+ Logger.Log("parseHavings=3D " + res,LogLevel.Trace);
+ =20
+ return res;
+ }
+ =20
+ =20
+ ///<summary>
/// The IN filter must be treated in a special maner. If the val=
ue to compare to is "20 30", then=20
/// this value must be changed to ['20','30']; (ReportToolsDoc)
///</summary> =20
@@ -649,12 +738,14 @@
receivedOrderStr =3D Request["sendOrderStr"];
receivedWhereStr =3D Request["sendWhereStr"];
receivedPersoColumnsStr =3D Request["sendPersoColumnsStr"]; =
=20
+ receivedHavingsStr =3D Request["sendHavingsStr"];
=20
Logger.Log("receivedClassId: " + receivedClassId, LogLevel.T=
race);
Logger.Log("receivedReportName: " + receivedReportName, LogL=
evel.Trace);
Logger.Log("receivedColumnsStr: " + receivedColumnsStr, LogL=
evel.Trace);
Logger.Log("receivedWhereStr: " + receivedWhereStr, LogLevel=
.Trace);
Logger.Log("receivedPersoColumnsStr " + receivedPersoColumns=
Str, LogLevel.Trace);
+ Logger.Log("receivedHavingsStr " + receivedHavingsStr, LogLe=
vel.Trace);
=20
int reportId =3D Convert.ToInt32(Request.QueryString["report=
Id"]);
Logger.Log("reportId: " + reportId, LogLevel.Trace);
Modified: humano2/trunk/web/builder/site/js/createreport.js
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- humano2/trunk/web/builder/site/js/createreport.js 2005-05-20 20:18:52=
UTC (rev 1116)
+++ humano2/trunk/web/builder/site/js/createreport.js 2005-05-20 20:25:35=
UTC (rev 1117)
@@ -10,7 +10,7 @@
//
=20
=20
-function AttribsGetSelect0Arr(formArray,classId)
+function AttribsGetSelectArray(formArray,classId)
{
var lengthArray =3D formArray[classId].length;
//alert("lengthArray: " + lengthArray);
@@ -29,7 +29,7 @@
return optionArray;
} =20
=20
-function FilterGetSelect1Arr()
+function OperatorsGetSelectArray()
{
var optionArray =3D new Array();
=20
@@ -68,7 +68,7 @@
}
=20
=20
-function OrderGetSelect1Arr()
+function OrderGetSelectArray()
{
var optionArray =3D new Array();
=20
@@ -85,7 +85,7 @@
return optionArray;
}
=20
-function PersoColumnsGetSelect1Arr()
+function FunctionsGetSelectArray()
{
var optionArray =3D new Array();
=20
@@ -101,3 +101,14 @@
=20
return optionArray;
}
+
+function Reload()
+{
+ indice =3D document.formulario.classList.selectedIndex;
+ if(indice>0)
+ {
+ valor =3D document.formulario.classList.options[indice].value;
+ self.location =3D "createreport.aspx?classList=3D"+valor;
+ }
+}
+
Modified: humano2/trunk/web/builder/site/js/formreport.js
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- humano2/trunk/web/builder/site/js/formreport.js 2005-05-20 20:18:52 U=
TC (rev 1116)
+++ humano2/trunk/web/builder/site/js/formreport.js 2005-05-20 20:25:35 U=
TC (rev 1117)
@@ -86,7 +86,7 @@
this.UpdateAttributes(this.classId);
}
=20
-function FormUpdateSubmitAll(rightColumn,sort,filter,persoColumns)
+function FormUpdateSubmitAll(rightColumn,sort,filter,persoColumns,having=
s)
{
//Get the ReportName
var reportNameInput =3D GetNodeByTagNameAndAttName("input","reportNa=
meInput")[0];
@@ -123,13 +123,18 @@
//alert("sort SelfRefName:" + sort.GetSelfRefName());
=20
var orderStr =3D sort.ReturnValues();=20
+ //alert("orderStr: " + orderStr);
=20
//The filter
//alert("filter SelfRefName:" + filter.GetSelfRefName());
var whereStr =3D filter.ReturnValues();
+ //alert("whereStr: " + whereStr);
=20
var persoColumnsStr =3D persoColumns.ReturnValues();
//alert("persoColumnsStr: " + persoColumnsStr);
+ =20
+ var havingsStr =3D havings.ReturnValues();
+ =20
//Update the submit all TD
var divSubmitAll =3D GetNodeByTagNameAndAttName("div","SubmitAll")[0=
];
//alert(divSubmitAll);
@@ -141,7 +146,8 @@
+"<input type=3D\"hidden\" name=3D\"sendColumnsStr\" value=3D\""=
+ columnsStr + "\"></input>"
+"<input type=3D\"hidden\" name=3D\"sendOrderStr\" value=3D\"" +=
orderStr + "\"></input>"
+"<input type=3D\"hidden\" name=3D\"sendWhereStr\" value=3D\"" +=
whereStr + "\"></input>"
- +"<input type=3D\"hidden\" name=3D\"sendPersoColumnsStr\" value=3D=
\"" + persoColumnsStr + "\"></input>";
+ +"<input type=3D\"hidden\" name=3D\"sendPersoColumnsStr\" value=3D=
\"" + persoColumnsStr + "\"></input>"
+ +"<input type=3D\"hidden\" name=3D\"sendHavingsStr\" value=3D\""=
+ havingsStr + "\"></input>";
=20
//alert(divSubmitAll.innerHTML);
return true;
Modified: humano2/trunk/web/builder/site/js/grafcomponents/expandformrepo=
rt.js
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- humano2/trunk/web/builder/site/js/grafcomponents/expandformreport.js =
2005-05-20 20:18:52 UTC (rev 1116)
+++ humano2/trunk/web/builder/site/js/grafcomponents/expandformreport.js =
2005-05-20 20:25:35 UTC (rev 1117)
@@ -93,7 +93,10 @@
//CAUTION: we start from the second child because the first is a=
text node (title) !!!!
var divFirstSelect =3D node.firstChild.nextSibling;
var divSecondSelect =3D divFirstSelect.nextSibling;
+ var divThirdSelect =3D divSecondSelect.nextSibling;
=20
+ ///FIXME: this code should be inside inputline
+ =20
if((divFirstSelect.value !=3D -1) && (divSecondSelect.value!=3D =
-1)) //Verify if something has been selected
{
if(this.inputLine.type =3D=3D 'TWOSELECTANDINPUT')
@@ -107,6 +110,19 @@
res +=3D "\'" + divInput.value + "\'";
}
=20
+ =20
+ if(this.inputLine.type =3D=3D 'THREESELECTANDINPUT')
+ {
+ //alert("divFirstSelect:" + divFirstSelect);
+ res +=3D divFirstSelect.value + "|";
+ //alert("divSecondSelect:" + divSecondSelect);
+ res +=3D divSecondSelect.value + "|";
+ res +=3D divThirdSelect.value + "|";
+ var divInput =3D divThirdSelect.nextSibling;
+ //alert("divInput:" + divInput);
+ res +=3D "\'" + divInput.value + "\'";
+ }
+ =20
if(this.inputLine.type =3D=3D 'TWOSELECT')
{
//alert("divFirstSelect:" + divFirstSelect);
Modified: humano2/trunk/web/builder/site/js/grafcomponents/inputline.js
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- humano2/trunk/web/builder/site/js/grafcomponents/inputline.js 2005-05=
-20 20:18:52 UTC (rev 1116)
+++ humano2/trunk/web/builder/site/js/grafcomponents/inputline.js 2005-05=
-20 20:25:35 UTC (rev 1117)
@@ -25,6 +25,7 @@
//The content of html elements
this.select0 =3D params.select0;
this.select1 =3D params.select1;
+ this.select2 =3D params.select2;
this.lineTitle =3D params.lineTitle;
=20
//The preselected values
@@ -34,6 +35,7 @@
this.PreselectedSelect0 =3D params.PreselectedSelect0;
this.PreselectedSelect1 =3D params.PreselectedSelect1;
break;
+ =20
case 'TWOSELECTANDINPUT':
case 'INPUTANDTWOSELECT':
this.PreselectedSelect0 =3D params.PreselectedSelect0;
@@ -41,6 +43,13 @@
this.PreselectedInput0 =3D params.PreselectedInput0;
break;
=20
+ case 'THREESELECTANDINPUT':
+ this.PreselectedSelect0 =3D params.PreselectedSelect0;
+ this.PreselectedSelect1 =3D params.PreselectedSelect1;
+ this.PreselectedSelect2 =3D params.PreselectedSelect2;
+ this.PreselectedInput0 =3D params.PreselectedInput0;
+ break; =20
+ =20
default:=20
alert("Oopps... Looks like the InputLine has been badly init=
ialized!");
break;
@@ -112,7 +121,14 @@
=20
var option1String =3D this.GetOptionString(this.select0,index,this.P=
reselectedSelect0);
var option2String =3D this.GetOptionString(this.select1,index,this.P=
reselectedSelect1);
+ var option3String =3D"";
=20
+ if( this.select2 !=3D null)
+ {
+ option3String =3D this.GetOptionString(this.select2,index,this.P=
reselectedSelect2);
+ }
+ =20
+ =20
var inputValue;
if((this.PreselectedInput0 !=3D null) && (index >=3D 0) )
{
@@ -135,6 +151,19 @@
+ "<input name=3D\"input" + this.refName + lineNum=
ber + "\" value=3D\"" + inputValue + "" + "\" id=3D\"\"></input>";=20
break;
=20
+ case 'THREESELECTANDINPUT':
+ res =3D this.lineTitle + lineNumber + ": " + "<select style=3D=
\"width:100px;\" name=3D\"select1" + this.refName + lineNumber + "\" clas=
s=3D\"drpdwn2\">"
+ + option1String
+ + "</select>"
+ + "<select style=3D\"width:100px;\" name=3D\"select2" =
+ this.refName + lineNumber + "\" class=3D\"drpdwn2\">"
+ + option2String =20
+ + "</select>"
+ + "<select style=3D\"width:100px;\" name=3D\"select3" =
+ this.refName + lineNumber + "\" class=3D\"drpdwn2\">"
+ + option3String =20
+ + "</select>"
+ + "<input name=3D\"input" + this.refName + lineNumber =
+ "\" value=3D\"" + inputValue + "" + "\" id=3D\"\"></input>";=20
+ break;
+ =20
case 'TWOSELECT':
res =3D this.lineTitle + lineNumber + ": " + "<select style=
=3D\"width:100px;\" name=3D\"select1" + this.refName + lineNumber + "\" c=
lass=3D\"drpdwn2\">"
+ option1String
Modified: humano2/trunk/web/builder/site/xsl/createreport.xsl
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- humano2/trunk/web/builder/site/xsl/createreport.xsl 2005-05-20 20:18:=
52 UTC (rev 1116)
+++ humano2/trunk/web/builder/site/xsl/createreport.xsl 2005-05-20 20:25:=
35 UTC (rev 1117)
@@ -82,8 +82,8 @@
var InputLineParamsFilters =3D
{
type: 'TWOSELECTANDINPUT',
- select0: AttribsGetSelect0Arr(formArray,<xsl:value-o=
f select=3D"/report/reportDatas/classId" />),
- select1: FilterGetSelect1Arr(),
+ select0: AttribsGetSelectArray(formArray,<xsl:value-=
of select=3D"/report/reportDatas/classId" />),
+ select1: OperatorsGetSelectArray(),
lineTitle: 'Filter',
input0: '',
PreselectedInput0: inputTagValuesArrayFilter,
@@ -109,8 +109,8 @@
var InputLineParamsOrders =3D
{
type: 'TWOSELECT',
- select0: AttribsGetSelect0Arr(formArray,<xsl:value-o=
f select=3D"/report/reportDatas/classId" />),
- select1: OrderGetSelect1Arr(),
+ select0: AttribsGetSelectArray(formArray,<xsl:value-=
of select=3D"/report/reportDatas/classId" />),
+ select1: OrderGetSelectArray(),
lineTitle: 'Order',
input0: '',
PreselectedInput0: null,
@@ -136,8 +136,8 @@
var InputLineParamsPersoColumns =3D
{
type: 'TWOSELECT', //For the moment
- select0: AttribsGetSelect0Arr(formArray,<xsl:value-o=
f select=3D"/report/reportDatas/classId" />),
- select1: PersoColumnsGetSelect1Arr(),
+ select0: AttribsGetSelectArray(formArray,<xsl:value-=
of select=3D"/report/reportDatas/classId" />),
+ select1: FunctionsGetSelectArray(),
lineTitle: 'PersoCol',
input0: '',
PreselectedInput0: null,
@@ -148,105 +148,39 @@
var InputLinePersoColumns =3D new InputLine(InputLinePar=
amsPersoColumns);
</xsl:if>
=20
+ //Having
+ var selectIdAttArrayHaving =3D new Array();
+ var selectOpArrayHaving =3D new Array();
+ var selectFuncArrayHaving =3D new Array();
+ var inputTagValuesArrayHaving =3D new Array();
=20
+ var i=3D0;
+ <xsl:for-each select=3D"/report/reportDatas/reportParams/hav=
ings/having">
+ selectFuncArrayHaving[i] =3D <xsl:value-of select=3D"fu=
nc" />;
+ selectIdAttArrayHaving[i] =3D <xsl:value-of select=3D"i=
dAtt" />;
+ selectOpArrayHaving[i] =3D <xsl:value-of select=3D"oper=
ator" />;
+ inputTagValuesArrayHaving[i] =3D <xsl:value-of select=3D=
"value" />;
+ i++;
+ </xsl:for-each>
=20
- function recargar()
- {
- <![CDATA[
- //for(i=3D0;i<document.formulario.elements.length;i++)
- // alert(document.formulario.elements[i].name);
- ]]>
- indice =3D document.formulario.classList.selectedIndex;
- if(indice>0)
+ <xsl:if test=3D"/report/reportDatas/classId!=3D''">
+ var InputLineParamsHavings =3D
{
- valor =3D document.formulario.classList.options[indi=
ce].value;
- self.location =3D "createreport.aspx?classList=3D"+v=
alor;
+ type: 'THREESELECTANDINPUT',
+ select0: AttribsGetSelectArray(formArray,<xsl:value-=
of select=3D"/report/reportDatas/classId" />),
+ select1: FunctionsGetSelectArray(),
+ select2: OperatorsGetSelectArray(),
+ lineTitle: 'GroupFilter',
+ input0: '',
+ PreselectedInput0: inputTagValuesArrayHaving,
+ PreselectedSelect0: selectIdAttArrayHaving,
+ PreselectedSelect1: selectFuncArrayHaving,
+ PreselectedSelect2: selectOpArrayHaving,
+ refName: 'expandFormHaving'
}
- }
- //Esta funcion no esta siendo usada, pues se usa una mejora =
hecha por pcamacho
- function valoresIni()
- {
- var divFilter;
- var expandFormFilter;
- var divSort;
- var expandFormSort;
- var cantfilters =3D <xsl:value-of select=3D"count(/repor=
t/reportDatas/reportParams/conditions/condition)"/>
- var cantorders =3D <xsl:value-of select=3D"count(/report=
/reportDatas/reportParams/orders/order)"/>
- =20
- var divSort =3D GetNodeByTagNameAndAttName("div","Sort")=
;
- var divFilter =3D GetNodeByTagNameAndAttName("div","Filt=
er");
+ var InputLineHavings =3D new InputLine(InputLineParamsHa=
vings);
+ </xsl:if>
=20
- //alert(cantfilters);
- =20
- <![CDATA[
- for(i=3D1;i<cantfilters;i++)
- {
- expandFormFilter =3D new ExpandForm("expandFormFil=
ter",divFilter,true,Form.GetFilterArray(1),Form.GetFilterArray(2),"Filter=
",inputValuesFilter);
- expandFormFilter.AddLine();
- }
- ]]>
- <![CDATA[
- for(i=3D1;i<cantorders;i++)
- {
- expandFormSort =3D new ExpandForm("expandFormSort",d=
ivSort,false,Form.GetSortArray(1),Form.GetSortArray(2),"Order");
- expandFormSort.AddLine();
- }
- ]]>
- i =3D 0;
- <xsl:for-each select=3D"/report/reportDatas/reportParams=
/conditions/condition">
- <![CDATA[
- Objrow =3D eval("document.formulario.select1expandFo=
rmFilter"+i);
- if(eval(Objrow))
- {
- for(j=3D0;j<Objrow.length;j++)
- {
- if(Objrow[j].value=3D=3D"]]><xsl:value-of se=
lect=3D"idAtt"/><![CDATA[")
- Objrow.options[j].selected=3Dtrue;
- }
- }
- =20
- Objrow =3D eval("document.formulario.select2expandFo=
rmFilter"+i);
- if(eval(Objrow))
- {
- for(j=3D0;j<Objrow.length;j++)
- {
- if(Objrow[j].value=3D=3D"]]><xsl:value-of se=
lect=3D"operator"/><![CDATA[")
- Objrow.options[j].selected=3Dtrue;
- }
- }
- =20
- Objrow =3D eval("document.formulario.inputexpandForm=
Filter"+i);
- dato =3D ]]><xsl:value-of select=3D"value"/><![CDATA=
[;
- if(eval(Objrow))
- Objrow.value =3D dato;
- i++;
- ]]>
- </xsl:for-each>
- i =3D 0;
- <xsl:for-each select=3D"/report/reportDatas/reportParams=
/orders/order">
- <![CDATA[
- Objrow =3D eval("document.formulario.select1expandFo=
rmSort"+i);
- if(eval(Objrow))
- {
- for(j=3D0;j<Objrow.length;j++)
- {
- if(Objrow[j].value=3D=3D]]><xsl:value-of sel=
ect=3D"idAtt"/><![CDATA[)
- Objrow.options[j].selected=3Dtrue;
- }
- }
- if(eval(Objrow))
- {
- Objrow =3D eval("document.formulario.select2expa=
ndFormSort"+i);
- for(j=3D0;j<Objrow.length;j++)
- {
- if(Objrow[j].value=3D=3D]]><xsl:value-of sel=
ect=3D"ascOrDesc"/><![CDATA[)
- Objrow.options[j].selected=3Dtrue;
- }
- }
- i++;
- ]]>
- </xsl:for-each>
- }
</script>
=20
<body >
@@ -276,7 +210,7 @@
<!-- Only show classes for select wh=
en creating -->
<xsl:if test=3D"/report/reportDatas/=
saveName=3D'Create'" >=20
<td>
- <select class=3D"drpdwn2" id=3D"cla=
ssList" onchange=3D"recargar();">
+ <select class=3D"drpdwn2" id=3D"cla=
ssList" onchange=3D"Reload();">
<xsl:for-each select=3D"repo=
rt/classes/class">
<option>
<xsl:attribute name=3D=
"name">
@@ -374,17 +308,56 @@
=20
<!--######################### END: Perso=
Columns ################################## -->
=20
- <!-- ######################## Columns To=
Show ############################## -->
+ =20
+ <!--######################### Havings ##=
########################################## -->
<tr>
<td colspan=3D"2">
<table width=3D"100%" border=3D"=
0" cellSpacing=3D"0" cellPadding=3D"0">
<tr>
+ <td width=3D"100%" colspan=3D=
"2" class=3D"lev1divider">
+ <div class=3D"lev1divide=
r"><IMG height=3D"9" src=3D"clear2x2.gif" width=3D"100%"/></div>
+ </td>
+ </tr>
+ <tr>
+ <td class=3D"lev1head" valig=
n=3D"top"><font size=3D"2">Group filters...</font></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td class=3D"smallgraytextnolink" co=
lspan=3D"2">
+ <table>
+ <tr>
+ <td>
+ <div id=3D"Havings">
+ </div>
+ </td>
+ </tr>
+ </table>
+ <script language=3D"Javascript">
+ var divHavings =3D GetNodeBy=
TagNameAndAttName("div","Havings")[0];
+ var expandFormHavings =3D ne=
w ExpandForm("expandFormHavings",
+ =
divHavings,
+ =
"Having",
+ =
InputLineHavings);
+ </script>
+ </td>
+ </tr>
+ =20
+ <!--######################### END: Havin=
gs ####################################### -->
+ =20
+ <!-- ######################## Group colu=
mns ############################## -->
+ <tr>
+ <td colspan=3D"2">
+ <table width=3D"100%" border=3D"=
0" cellSpacing=3D"0" cellPadding=3D"0">
+ <tr>
<td width=3D"100%" colspan=3D=
"2">
<div class=3D"lev1divide=
r"><IMG height=3D"9" src=3D"clear2x2.gif" width=3D"100%"/></div>
</td>
</tr>
<tr>
- <td class=3D"lev1head" valig=
n=3D"top"><font size=3D"2">Columns...</font></td>
+ <td class=3D"lev1head" valig=
n=3D"top"><font size=3D"2">Group columns...</font></td>
</tr>
</table>
</td>
@@ -442,19 +415,14 @@
</tr>
</table>
<script>
- =20
//First List
var divColumnsToShowLeft =3D=
GetNodeByTagNameAndAttName("div","ColumnsToShowLeft")[0]; =20
var leftColumn =3D new Sorte=
dGraphicalList(Form.GetLeftAtt(),
=
divColumnsToShowLeft,"leftColumn");
- =09
- =
=20
//Second List
var divColumnsToShowRight =3D=
GetNodeByTagNameAndAttName("div","ColumnsToShowRight")[0]; =20
var rightColumn =3D new Sort=
edGraphicalList(Form.GetRightAtt(),
=
divColumnsToShowRight,"rightColumn"); =
=20
- =09
- =09
</script>
</td>
</tr>
@@ -521,7 +489,8 @@
Form.UpdateSubmitAll=
(rightColumn,
=
expandFormSort,
=
expandFormFilter,
- =
expandFormPersoColumns); //Don't forget to do the same in Form.UpdateHea=
der
+ =
expandFormPersoColumns,
+ =
expandFormHavings);=20
</xsl:attribute>
</input>
</div>
|