text/microsoft-resx
2.0
System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
17, 56
select t.Name, s.Name as Scenario_Name,
s.ProjectedRevenue,
s.ExpectedGrossMargin,
s.CalculatedGrossMargin,
s.CalculatedGrossMargin_LM, s.StartDate,
s.EndDate, s.Duration, s.TDDirectCosts,
s.TDDirectCosts_LM, s.BUDirectCosts,
s.BUDirectCosts_LM, s.CostSavings,
s.CostSavingsStartDate,
s.CostSavingsEndDate, s.CostSavingsType,
p.Name as Project_Name, p.Priority,
p.Probability, p.Deadline,
st.Name as Status_Name,
p.IsRevenueGenerating, (SELECT DATEDIFF(wk, s.CostSavingsStartDate, s.CostSavingsEndDate)) AS CS_Duration,
t.Id as TeamId
from Project p,
Scenario s,
Team t,
Team2Project tp,
Status st
where t.Id = tp.TeamId
and p.Id = tp.ProjectId
and s.ParentId = p.Id
and st.Id = p.StatusId
and p.IsRevenueGenerating=1
PERhdGFTZXQgTmFtZT0ic3FsRGF0YVNvdXJjZTIiPjxWaWV3IE5hbWU9IkN1c3RvbVNxbFF1ZXJ5Ij48RmllbGQgTmFtZT0iTmFtZSIgVHlwZT0iU3RyaW5nIiAvPjxGaWVsZCBOYW1lPSJTY2VuYXJpb19OYW1lIiBUeXBlPSJTdHJpbmciIC8+PEZpZWxkIE5hbWU9IlByb2plY3RlZFJldmVudWUiIFR5cGU9IkRlY2ltYWwiIC8+PEZpZWxkIE5hbWU9IkV4cGVjdGVkR3Jvc3NNYXJnaW4iIFR5cGU9IkRlY2ltYWwiIC8+PEZpZWxkIE5hbWU9IkNhbGN1bGF0ZWRHcm9zc01hcmdpbiIgVHlwZT0iRGVjaW1hbCIgLz48RmllbGQgTmFtZT0iQ2FsY3VsYXRlZEdyb3NzTWFyZ2luX0xNIiBUeXBlPSJEZWNpbWFsIiAvPjxGaWVsZCBOYW1lPSJTdGFydERhdGUiIFR5cGU9IkRhdGVUaW1lIiAvPjxGaWVsZCBOYW1lPSJFbmREYXRlIiBUeXBlPSJEYXRlVGltZSIgLz48RmllbGQgTmFtZT0iRHVyYXRpb24iIFR5cGU9IkludDMyIiAvPjxGaWVsZCBOYW1lPSJURERpcmVjdENvc3RzIiBUeXBlPSJEZWNpbWFsIiAvPjxGaWVsZCBOYW1lPSJURERpcmVjdENvc3RzX0xNIiBUeXBlPSJEZWNpbWFsIiAvPjxGaWVsZCBOYW1lPSJCVURpcmVjdENvc3RzIiBUeXBlPSJEZWNpbWFsIiAvPjxGaWVsZCBOYW1lPSJCVURpcmVjdENvc3RzX0xNIiBUeXBlPSJEZWNpbWFsIiAvPjxGaWVsZCBOYW1lPSJDb3N0U2F2aW5ncyIgVHlwZT0iRGVjaW1hbCIgLz48RmllbGQgTmFtZT0iQ29zdFNhdmluZ3NTdGFydERhdGUiIFR5cGU9IkRhdGVUaW1lIiAvPjxGaWVsZCBOYW1lPSJDb3N0U2F2aW5nc0VuZERhdGUiIFR5cGU9IkRhdGVUaW1lIiAvPjxGaWVsZCBOYW1lPSJDb3N0U2F2aW5nc1R5cGUiIFR5cGU9IkludDE2IiAvPjxGaWVsZCBOYW1lPSJQcm9qZWN0X05hbWUiIFR5cGU9IlN0cmluZyIgLz48RmllbGQgTmFtZT0iUHJpb3JpdHkiIFR5cGU9IkludDMyIiAvPjxGaWVsZCBOYW1lPSJQcm9iYWJpbGl0eSIgVHlwZT0iRGVjaW1hbCIgLz48RmllbGQgTmFtZT0iRGVhZGxpbmUiIFR5cGU9IkRhdGVUaW1lIiAvPjxGaWVsZCBOYW1lPSJTdGF0dXNfTmFtZSIgVHlwZT0iU3RyaW5nIiAvPjxGaWVsZCBOYW1lPSJJc1JldmVudWVHZW5lcmF0aW5nIiBUeXBlPSJCb29sZWFuIiAvPjxGaWVsZCBOYW1lPSJDU19EdXJhdGlvbiIgVHlwZT0iSW50MzIiIC8+PEZpZWxkIE5hbWU9IlRlYW1JZCIgVHlwZT0iR3VpZCIgLz48L1ZpZXc+PC9EYXRhU2V0Pg==
using System;
using System.Web;
using System.Linq;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.IO;
using System.Xml;
using DevExpress.Data.Filtering;
List<GroupField> _sortinParams = new List<GroupField>();
const string SortedColumnSuffix_Ascending = " ▼";
const string SortedColumnSuffix_Descending = " ▲";
private static DateTime DEFAULT_DATE = new DateTime(2000,1,1);
private void ReportBase_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) {
if (this.Parameters.Any<DevExpress.Data.IParameter>(t=>t.Name == "__RPT_BASE_PARAM_SORT_FIELD") &&
this.Parameters.Any<DevExpress.Data.IParameter>(t=>t.Name == "__RPT_BASE_PARAM_SORT_DIR"))
{
var keysXml = (string)this.Parameters["__RPT_BASE_PARAM_SORT_FIELD"].Value;
var valuesXml = (string)this.Parameters["__RPT_BASE_PARAM_SORT_DIR"].Value;
if (!string.IsNullOrWhiteSpace(keysXml) && !string.IsNullOrWhiteSpace(valuesXml))
{
var keys = Deserialize<List<string>>(keysXml);
var values = Deserialize<List<bool>>(valuesXml);
if (keys != null && values != null && keys.Count > 0 && keys.Count == values.Count)
for (var i=0; i<keys.Count; i++)
{
_sortinParams.Add(new GroupField(keys[i], values[i] ? XRColumnSortOrder.Ascending : XRColumnSortOrder.Descending));
}
}
Detail.SortFields.Clear();
Detail.SortFields.AddRange(_sortinParams.ToArray());
}
}
private void ReportBase_DataSourceDemanded(object sender, System.EventArgs e) {
List<CriteriaOperator> operators = new List<CriteriaOperator>();
// setup param default values here
Guid[] teams = new Guid[0];
decimal ProjectedRevenueO = 0;
decimal ProjectedRevenueU = 0;
decimal RetainedEarningsO = 0;
decimal RetainedEarningsU = 0;
decimal BUCostO=0;
decimal BUCostU=0;
decimal CDurationO=0;
decimal CDurationU=0;
decimal CostSavingsO=0;
decimal CostSavingsU=0;
decimal CSDurationO=0;
decimal CSDurationU=0;
DateTime? startDateF = DEFAULT_DATE;
DateTime? startDateT = DEFAULT_DATE;
//datetime SDateF=0;
//datetime SDateT=0;
//datetime EDateF=0;
//datetime EDateT=0;
// get param values if not empty
if (this.Parameters["Team"] != null)
{
teams = (Guid[])this.Parameters["Team"].Value;
}
if (this.Parameters["ProjectedRevenueO"] != null)
{
ProjectedRevenueO= (decimal)this.Parameters["ProjectedRevenueO"].Value;
}
if (this.Parameters["ProjectedRevenueU"] != null)
{
ProjectedRevenueU= (decimal)this.Parameters["ProjectedRevenueU"].Value;
}
if (this.Parameters["RetainedEarningsO"] != null)
{
RetainedEarningsO= (decimal)this.Parameters["RetainedEarningsO"].Value;
}
if (this.Parameters["RetainedEarningsU"] != null)
{
RetainedEarningsU= (decimal)this.Parameters["RetainedEarningsU"].Value;
}
if (this.Parameters["BUCostO"] != null)
{
BUCostO= (decimal)this.Parameters["BUCostO"].Value;
}
if (this.Parameters["BUCostU"] != null)
{
BUCostU= (decimal)this.Parameters["BUCostU"].Value;
}
if (this.Parameters["CDurationO"] != null)
{
CDurationO= (decimal)this.Parameters["CDurationO"].Value;
}
if (this.Parameters["CDurationU"] != null)
{
CDurationU= (decimal)this.Parameters["CDurationU"].Value;
}
if (this.Parameters["CostSavingsO"] != null)
{
CostSavingsO= (decimal)this.Parameters["CostSavingsO"].Value;
}
if (this.Parameters["CostSavingsU"] != null)
{
CostSavingsU= (decimal)this.Parameters["CostSavingsU"].Value;
}
if (this.Parameters["CSDurationO"] != null)
{
CSDurationO= (decimal)this.Parameters["CSDurationO"].Value;
}
if (this.Parameters["CSDurationU"] != null)
{
CSDurationU= (decimal)this.Parameters["CSDurationU"].Value;
}
if (this.Parameters["SDateF"] != null && this.Parameters["SDateF"].RawValue != null)
{
startDateF = (DateTime)this.Parameters["SDateF"].Value;
}
if (this.Parameters["SDateT"] != null && this.Parameters["SDateT"].RawValue != null)
{
startDateT = (DateTime)this.Parameters["SDateT"].Value;
}
// build filter operators using for not default values
if (teams.Length > 0)
{
operators.Add(new InOperator("TeamId", teams));
}
if (ProjectedRevenueO > 0)
{
operators.Add(new BinaryOperator("ProjectedRevenue", ProjectedRevenueO, BinaryOperatorType.GreaterOrEqual));
}
if (ProjectedRevenueU > 0)
{
operators.Add(new BinaryOperator("ProjectedRevenue", ProjectedRevenueU, BinaryOperatorType.LessOrEqual));
}
if (RetainedEarningsO> 0)
{
operators.Add(new BinaryOperator("RetainedEarnings", RetainedEarningsO, BinaryOperatorType.GreaterOrEqual));
}
if (RetainedEarningsU> 0)
{
operators.Add(new BinaryOperator("RetainedEarnings", RetainedEarningsU, BinaryOperatorType.LessOrEqual));
}
if (BUCostO > 0)
{
operators.Add(new BinaryOperator("BUDirectCosts", BUCostO, BinaryOperatorType.GreaterOrEqual));
}
if (BUCostU> 0)
{
operators.Add(new BinaryOperator("BUDirectCosts", BUCostU, BinaryOperatorType.LessOrEqual));
}
if (CDurationO> 0)
{
operators.Add(new BinaryOperator("Duration", CDurationO, BinaryOperatorType.GreaterOrEqual));
}
if (CDurationU> 0)
{
operators.Add(new BinaryOperator("Duration", CDurationU, BinaryOperatorType.LessOrEqual));
}
if (CostSavingsO> 0)
{
operators.Add(new BinaryOperator("CostSavings", CostSavingsO, BinaryOperatorType.GreaterOrEqual));
}
if (CostSavingsU> 0)
{
operators.Add(new BinaryOperator("CostSavings", CostSavingsU, BinaryOperatorType.LessOrEqual));
}
if (CSDurationO> 0)
{
operators.Add(new BinaryOperator("CS_Duration", CSDurationO, BinaryOperatorType.GreaterOrEqual));
}
if (CSDurationU> 0)
{
operators.Add(new BinaryOperator("CS_Duration", CSDurationU, BinaryOperatorType.LessOrEqual));
}
if (startDateF != DEFAULT_DATE)
{
operators.Add(new BinaryOperator("StartDate", startDateF.Value, BinaryOperatorType.GreaterOrEqual));
}
if (startDateT != DEFAULT_DATE)
{
operators.Add(new BinaryOperator("StartDate", startDateT.Value, BinaryOperatorType.LessOrEqual));
}
// convert filter operators to filterstring
GroupOperator collection = new GroupOperator(GroupOperatorType.And, operators);
// add cost saving type filter
this.FilterString = "[CostSavingsType] In (?CostSavingsType)";
this.FilterString += " AND " + collection.ToString();
}
public void HeaderCell_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{
XRLabel headerCell = sender as XRLabel;
string fieldName = (string)headerCell.Tag;
GroupField sort = _sortinParams.Find(sortField => sortField.FieldName == fieldName);
// рисуем иконку направления сортировки, если это поле перечислено в _sortinParams сво-ве
headerCell.Text = headerCell.Text.Replace(SortedColumnSuffix_Ascending, "");
headerCell.Text = headerCell.Text.Replace(SortedColumnSuffix_Descending, "");
if (sort != null)
{
headerCell.Text += (sort.SortOrder == XRColumnSortOrder.Ascending)
? SortedColumnSuffix_Ascending
: SortedColumnSuffix_Descending;
}
headerCell.NavigateUrl = String.Format("javascript:void('{0}')", headerCell.Tag);
}
public T Deserialize<T>(string input) where T : class
{
System.Xml.Serialization.XmlSerializer ser = new System.Xml.Serialization.XmlSerializer(typeof(T));
using (StringReader sr = new StringReader(input))
return (T)ser.Deserialize(sr);
}