//private StiDataSource GetDataSourceByName(string name)
        //{
        //    foreach (StiDataSource ds in report.Dictionary.DataSources)
        //    {
        //        if (ds.Alias == name)
        //        {
        //            return ds;
        //        }
        //    }
        //    return null;
        //}

        private StiDataRelation GetDataRelationByName(string name, StiDataSource ds)
        {
            StiDataRelation dr = null;

            foreach (StiDataRelation drTemp in report.Dictionary.Relations)
            {
                if ((drTemp.Name == name || drTemp.NameInSource == name) && (drTemp.ChildSource == ds))
                {
                    dr = drTemp;
                    break;
                }
            }
            return(dr);
        }
Exemple #2
0
        private void ReadRelation(XmlNode node, StiReport report)
        {
            StiDataRelation relation = new StiDataRelation();

            report.Dictionary.Relations.Add(relation);
            relation.NameInSource = ReadString(node, "ReferenceName", relation.Name);
            relation.Name         = relation.Alias = ReadString(node, "Name", relation.Name);

            string parentDataSource = ReadString(node, "ParentDataSource", "");
            string childDataSource  = ReadString(node, "ChildDataSource", "");

            string parentColumnsString = ReadString(node, "ParentColumns", "");
            string childColumnsString  = ReadString(node, "ChildColumns", "");

            string[] parentColumns = parentColumnsString.Split(new string[] { "\r\n" }, StringSplitOptions.None);
            string[] childColumns  = parentColumnsString.Split(new string[] { "\r\n" }, StringSplitOptions.None);

            relation.ParentSource  = report.DataSources[parentDataSource];
            relation.ChildSource   = report.DataSources[childDataSource];
            relation.ParentColumns = parentColumns;
            relation.ChildColumns  = childColumns;
        }
        private List <StiToken> PostProcessTokensList(List <StiToken> tokensList)
        {
            List <StiToken> newList = new List <StiToken>();

            tokenPos = 0;
            while (tokenPos < tokensList.Count)
            {
                StiToken token = tokensList[tokenPos];
                tokenPos++;
                if (token.Type == StiTokenType.Identifier)
                {
                    StiDataSource     ds  = report.Dictionary.DataSources[token.Value];
                    StiBusinessObject bos = report.Dictionary.BusinessObjects[token.Value];

                    #region check for DataSource field
                    if (ds != null)
                    {
                        StringBuilder fieldPath = new StringBuilder(StiNameValidator.CorrectName(token.Value));
                        while (tokenPos + 1 < tokensList.Count && tokensList[tokenPos].Type == StiTokenType.Dot)
                        {
                            token = tokensList[tokenPos + 1];
                            string nextName = StiNameValidator.CorrectName(token.Value);

                            StiDataRelation dr = GetDataRelationByName(nextName, ds);
                            if (dr != null)
                            {
                                ds        = dr.ParentSource;
                                tokenPos += 2;
                                fieldPath.Append(".");
                                fieldPath.Append(dr.NameInSource);
                                continue;
                            }
                            if (ds.Columns.Contains(nextName))
                            {
                                tokenPos += 2;
                                fieldPath.Append(".");
                                fieldPath.Append(nextName);
                                break;
                            }
                            foreach (StiDataColumn column in ds.Columns)
                            {
                                if (StiNameValidator.CorrectName(column.Name) == nextName)
                                {
                                    tokenPos += 2;
                                    fieldPath.Append(".");
                                    fieldPath.Append(column.NameInSource);
                                    break;
                                }
                            }

                            CheckDataSourceField(ds.Name, nextName);
                            tokenPos += 2;
                            fieldPath.Append(".");
                            fieldPath.Append(nextName);

                            //token = tokensList[tokenPos - 1];
                            break;
                        }
                        token.Type = StiTokenType.DataSourceField;
                        //надо оптимизировать и сохранять сразу массив строк !!!!!
                        token.Value = fieldPath.ToString();
                    }
                    #endregion

                    #region check for BusinessObject field
                    else if (bos != null)
                    {
                        StringBuilder fieldPath = new StringBuilder(token.Value);
                        while (tokenPos + 1 < tokensList.Count && tokensList[tokenPos].Type == StiTokenType.Dot)
                        //while (inputExpression[pos2] == '.')
                        {
                            token = tokensList[tokenPos + 1];
                            string nextName = token.Value;

                            if (bos.Columns.Contains(nextName))
                            {
                                tokenPos += 2;
                                fieldPath.Append(".");
                                fieldPath.Append(nextName);
                                break;
                            }
                            bos = bos.BusinessObjects[nextName];
                            if (bos != null)
                            {
                                tokenPos += 2;
                                fieldPath.Append(".");
                                fieldPath.Append(bos.Name);
                                continue;
                            }
                            break;
                        }
                        token.Type = StiTokenType.BusinessObjectField;
                        //надо оптимизировать и сохранять сразу массив строк !!!!!
                        token.Value = fieldPath.ToString();
                    }
                    #endregion

                    else if ((newList.Count > 0) && (newList[newList.Count - 1].Type == StiTokenType.Dot))
                    {
                        if (MethodsList.Contains(token.Value))
                        {
                            token.Type = StiTokenType.Method;
                        }
                        else if (PropertiesList.Contains(token.Value))
                        {
                            token.Type = StiTokenType.Property;
                        }
                        else
                        {
                            ThrowError(ParserErrorCode.FieldMethodOrPropertyNotFound, token, token.Value);
                        }
                    }

                    else if (TypesList.Contains(token.Value))
                    {
                        token.Type = StiTokenType.Cast;

                        if ((tokenPos + 1 < tokensList.Count) && (tokensList[tokenPos].Type == StiTokenType.Dot))
                        {
                            string tempName = token.Value + "." + tokensList[tokenPos + 1].Value;
                            if (FunctionsList.Contains(tempName))
                            {
                                token.Type  = StiTokenType.Function;
                                token.Value = tempName;
                                tokenPos   += 2;
                            }
                            if (SystemVariablesList.Contains(tempName))
                            {
                                token.Type  = StiTokenType.SystemVariable;
                                token.Value = tempName;
                                tokenPos   += 2;
                            }
                        }
                    }

                    else if (ComponentsList.Contains(token.Value))
                    {
                        token.Type = StiTokenType.Component;
                        if ((tokenPos + 1 < tokensList.Count) && (tokensList[tokenPos].Type == StiTokenType.Colon) && ComponentsList.Contains(tokensList[tokenPos + 1].Value))
                        {
                            StiComponent comp = (StiComponent)ComponentsList[tokensList[tokenPos + 1].Value];
                            if (comp != null && comp is StiDataBand)
                            {
                                token.Value = (comp as StiDataBand).DataSourceName;
                                token.Type  = StiTokenType.DataSourceField;
                                tokenPos   += 2;
                            }
                        }
                    }

                    else if (FunctionsList.Contains(token.Value))
                    {
                        while ((StiFunctionType)FunctionsList[token.Value] == StiFunctionType.NameSpace)
                        {
                            if (tokenPos + 1 >= tokensList.Count)
                            {
                                ThrowError(ParserErrorCode.UnexpectedEndOfExpression);
                            }
                            token.Value += "." + tokensList[tokenPos + 1].Value;
                            tokenPos    += 2;
                            if (!FunctionsList.Contains(token.Value))
                            {
                                ThrowError(ParserErrorCode.FunctionNotFound, token, token.Value);
                            }
                        }
                        token.Type = StiTokenType.Function;
                    }

                    else if (SystemVariablesList.Contains(token.Value) && (token.Value != "value" || component is Stimulsoft.Report.CrossTab.StiCrossCell))
                    {
                        token.Type = StiTokenType.SystemVariable;
                    }

                    //else if (token.Value.ToLowerInvariant() == "true" || token.Value.ToLowerInvariant() == "false")
                    //{
                    //    if (token.Value.ToLowerInvariant() == "true")
                    //        token.ValueObject = true;
                    //    else
                    //        token.ValueObject = false;
                    //    token.Type = StiTokenType.Number;
                    //}
                    //else if (token.Value.ToLowerInvariant() == "null")
                    //{
                    //    token.ValueObject = null;
                    //    token.Type = StiTokenType.Number;
                    //}

                    else if (ConstantsList.Contains(token.Value))
                    {
                        while (ConstantsList[token.Value] == namespaceObj)
                        {
                            if (tokenPos + 1 >= tokensList.Count)
                            {
                                ThrowError(ParserErrorCode.UnexpectedEndOfExpression);
                            }
                            string oldTokenValue = token.Value;
                            token.Value += "." + tokensList[tokenPos + 1].Value;
                            tokenPos    += 2;
                            if (!ConstantsList.Contains(token.Value))
                            {
                                ThrowError(ParserErrorCode.ItemDoesNotContainDefinition, token, oldTokenValue, tokensList[tokenPos + 1].Value);
                            }
                        }
                        token.ValueObject = ConstantsList[token.Value];
                        token.Type        = StiTokenType.Number;
                    }

                    else if (report.Dictionary.Variables.Contains(token.Value))
                    {
                        token.Type = StiTokenType.Variable;
                    }
                    else if (token.Value == "or" || token.Value == "and" || token.Value == "not")
                    {
                        if (token.Value == "or")
                        {
                            token.Type = StiTokenType.DoubleOr;
                        }
                        if (token.Value == "and")
                        {
                            token.Type = StiTokenType.DoubleAnd;
                        }
                        if (token.Value == "not")
                        {
                            token.Type = StiTokenType.Not;
                        }
                    }
                    else
                    {
                        if ((tokenPos < tokensList.Count) && (tokensList[tokenPos].Type != StiTokenType.Dot) || (tokenPos == tokensList.Count))
                        {
                            CheckDataSourceField(defaultDataSourceName, token.Value);

                            token.Type  = StiTokenType.DataSourceField;
                            token.Value = defaultDataSourceName + "." + token.Value;
                        }
                        else
                        {
                            if ((tokenPos + 1 < tokensList.Count) && (tokensList[tokenPos].Type == StiTokenType.Dot))
                            {
                                CheckDataSourceField(token.Value, tokensList[tokenPos + 1].Value);

                                token.Type  = StiTokenType.DataSourceField;
                                token.Value = token.Value + "." + tokensList[tokenPos + 1].Value;
                                tokenPos   += 2;
                            }
                            else
                            {
                                ThrowError(ParserErrorCode.NameDoesNotExistInCurrentContext, token, token.Value);
                            }
                        }
                    }
                }
                newList.Add(token);
            }
            return(newList);
        }
 private void InitializeComponent()
 {
     SP_GetRequestHeader       = new SP_GetRequestHeaderDataSource();
     SP_GetRequestDetail       = new SP_GetRequestDetailDataSource();
     ParentSP_GetRequestHeader = new StiDataRelation("SP_GetRequestHeader_SP_GetRequestDetail", "SP_GetRequestHeader", "SP_GetRequestHeader", SP_GetRequestHeader, SP_GetRequestDetail, new[] {
         "RequestID"
     }, new[] {
         "RequestID"
     });
     NeedsCompiling       = false;
     EngineVersion        = StiEngineVersion.EngineV2;
     ReferencedAssemblies = new[] {
         "System.Dll",
         "System.Drawing.Dll",
         "System.Windows.Forms.Dll",
         "System.Data.Dll",
         "System.Xml.Dll",
         "Stimulsoft.Controls.Dll",
         "Stimulsoft.Base.Dll",
         "Stimulsoft.Report.Dll"
     };
     ReportAlias  = "RptRequestDetail";
     ReportAuthor = "Programmer.GE";
     //
     // ReportChanged
     //
     ReportChanged = new DateTime(2010, 4, 30, 19, 58, 27, 845);
     //
     // ReportCreated
     //
     ReportCreated     = new DateTime(2010, 3, 4, 16, 2, 4, 0);
     ReportDescription = "პროდუქციის შეკვეთა";
     ReportFile        = "D:\\User\\Documents\\Projects\\Apothex\\Source\\Class Library\\Apothex.Reporting\\Product" +
                         "ion\\RptRequestDetail.mrt";
     ReportGuid     = "39889ce012f240ecbc7962a86ff663a7";
     ReportName     = "RptRequestDetail";
     ReportUnit     = StiReportUnitType.Centimeters;
     ScriptLanguage = StiReportLanguageType.CSharp;
     //
     // Page1
     //
     Page1            = new StiPage();
     Page1.Guid       = "5d26ae79894e4dcebbc2212ba7686670";
     Page1.Name       = "Page1";
     Page1.PageHeight = 29.7;
     Page1.PageWidth  = 21;
     Page1.PaperSize  = PaperKind.A4;
     Page1.Border     = new StiBorder(StiBorderSides.None, Color.Black, 2, StiPenStyle.Solid, false, 4, new StiSolidBrush(Color.Black));
     Page1.Brush      = new StiSolidBrush(Color.Transparent);
     //
     // DataSP_GetRequestHeader
     //
     DataSP_GetRequestHeader = new StiDataBand();
     DataSP_GetRequestHeader.ClientRectangle    = new RectangleD(0, 0.4, 19, 0.6);
     DataSP_GetRequestHeader.DataSourceName     = "SP_GetRequestHeader";
     DataSP_GetRequestHeader.Name               = "DataSP_GetRequestHeader";
     DataSP_GetRequestHeader.Sort               = new String[0];
     DataSP_GetRequestHeader.Border             = new StiBorder(StiBorderSides.None, Color.Black, 1, StiPenStyle.Solid, false, 4, new StiSolidBrush(Color.Black));
     DataSP_GetRequestHeader.Brush              = new StiSolidBrush(Color.Transparent);
     DataSP_GetRequestHeader.BusinessObjectGuid = null;
     //
     // Text2
     //
     Text2 = new StiText();
     Text2.ClientRectangle                   = new RectangleD(0, 0, 19, 0.6);
     Text2.HorAlignment                      = StiTextHorAlignment.Center;
     Text2.Name                              = "Text2";
     Text2.GetValue                         += new StiGetValueEventHandler(Text2__GetValue);
     Text2.VertAlignment                     = StiVertAlignment.Center;
     Text2.Border                            = new StiBorder(StiBorderSides.None, Color.Black, 1, StiPenStyle.Solid, false, 4, new StiSolidBrush(Color.Black));
     Text2.Brush                             = new StiSolidBrush(Color.Transparent);
     Text2.Font                              = new Font("BPG Glaho Arial", 10F);
     Text2.Guid                              = null;
     Text2.Interaction                       = null;
     Text2.Margins                           = new StiMargins(0, 0, 0, 0);
     Text2.TextBrush                         = new StiSolidBrush(Color.Black);
     Text2.TextOptions                       = new StiTextOptions(false, false, false, 0F, HotkeyPrefix.None, StringTrimming.None);
     DataSP_GetRequestHeader.Guid            = null;
     DataSP_GetRequestHeader.Interaction     = null;
     DataSP_GetRequestHeader.MasterComponent = null;
     //
     // HeaderSP_GetRequestDetail
     //
     HeaderSP_GetRequestDetail = new StiHeaderBand();
     HeaderSP_GetRequestDetail.ClientRectangle = new RectangleD(0, 1.8, 19, 0.6);
     HeaderSP_GetRequestDetail.Name            = "HeaderSP_GetRequestDetail";
     HeaderSP_GetRequestDetail.Border          = new StiBorder(StiBorderSides.None, Color.Black, 1, StiPenStyle.Solid, false, 4, new StiSolidBrush(Color.Black));
     HeaderSP_GetRequestDetail.Brush           = new StiSolidBrush(Color.Transparent);
     //
     // HeaderSP_GetRequestDetail_OrdinalNumber
     //
     HeaderSP_GetRequestDetail_OrdinalNumber = new StiText();
     HeaderSP_GetRequestDetail_OrdinalNumber.ClientRectangle = new RectangleD(0, 0, 0.8, 0.6);
     HeaderSP_GetRequestDetail_OrdinalNumber.HorAlignment    = StiTextHorAlignment.Center;
     HeaderSP_GetRequestDetail_OrdinalNumber.Name            = "HeaderSP_GetRequestDetail_OrdinalNumber";
     HeaderSP_GetRequestDetail_OrdinalNumber.GetValue       += new StiGetValueEventHandler(HeaderSP_GetRequestDetail_OrdinalNumber__GetValue);
     HeaderSP_GetRequestDetail_OrdinalNumber.VertAlignment   = StiVertAlignment.Center;
     HeaderSP_GetRequestDetail_OrdinalNumber.Border          = new StiBorder(StiBorderSides.All, Color.Black, 1, StiPenStyle.Solid, false, 4, new StiSolidBrush(Color.Black));
     HeaderSP_GetRequestDetail_OrdinalNumber.Brush           = new StiSolidBrush(Color.Transparent);
     HeaderSP_GetRequestDetail_OrdinalNumber.Font            = new Font("BPG Glaho Arial", 10F, FontStyle.Bold);
     HeaderSP_GetRequestDetail_OrdinalNumber.Guid            = null;
     HeaderSP_GetRequestDetail_OrdinalNumber.Interaction     = null;
     HeaderSP_GetRequestDetail_OrdinalNumber.Margins         = new StiMargins(0, 0, 0, 0);
     HeaderSP_GetRequestDetail_OrdinalNumber.TextBrush       = new StiSolidBrush(Color.Black);
     HeaderSP_GetRequestDetail_OrdinalNumber.TextOptions     = new StiTextOptions(false, false, true, 0F, HotkeyPrefix.None, StringTrimming.None);
     //
     // HeaderSP_GetRequestDetail_MedicamentName
     //
     HeaderSP_GetRequestDetail_MedicamentName = new StiText();
     HeaderSP_GetRequestDetail_MedicamentName.ClientRectangle = new RectangleD(0.8, 0, 6, 0.6);
     HeaderSP_GetRequestDetail_MedicamentName.HorAlignment    = StiTextHorAlignment.Center;
     HeaderSP_GetRequestDetail_MedicamentName.Name            = "HeaderSP_GetRequestDetail_MedicamentName";
     HeaderSP_GetRequestDetail_MedicamentName.GetValue       += new StiGetValueEventHandler(HeaderSP_GetRequestDetail_MedicamentName__GetValue);
     HeaderSP_GetRequestDetail_MedicamentName.VertAlignment   = StiVertAlignment.Center;
     HeaderSP_GetRequestDetail_MedicamentName.Border          = new StiBorder(StiBorderSides.All, Color.Black, 1, StiPenStyle.Solid, false, 4, new StiSolidBrush(Color.Black));
     HeaderSP_GetRequestDetail_MedicamentName.Brush           = new StiSolidBrush(Color.Transparent);
     HeaderSP_GetRequestDetail_MedicamentName.Font            = new Font("BPG Glaho Arial", 10F, FontStyle.Bold);
     HeaderSP_GetRequestDetail_MedicamentName.Guid            = null;
     HeaderSP_GetRequestDetail_MedicamentName.Interaction     = null;
     HeaderSP_GetRequestDetail_MedicamentName.Margins         = new StiMargins(0, 0, 0, 0);
     HeaderSP_GetRequestDetail_MedicamentName.TextBrush       = new StiSolidBrush(Color.Black);
     HeaderSP_GetRequestDetail_MedicamentName.TextOptions     = new StiTextOptions(false, false, true, 0F, HotkeyPrefix.None, StringTrimming.None);
     //
     // HeaderSP_GetRequestDetail_RequestQty
     //
     HeaderSP_GetRequestDetail_RequestQty = new StiText();
     HeaderSP_GetRequestDetail_RequestQty.ClientRectangle = new RectangleD(6.8, 0, 1.4, 0.6);
     HeaderSP_GetRequestDetail_RequestQty.HorAlignment    = StiTextHorAlignment.Center;
     HeaderSP_GetRequestDetail_RequestQty.Name            = "HeaderSP_GetRequestDetail_RequestQty";
     HeaderSP_GetRequestDetail_RequestQty.GetValue       += new StiGetValueEventHandler(HeaderSP_GetRequestDetail_RequestQty__GetValue);
     HeaderSP_GetRequestDetail_RequestQty.VertAlignment   = StiVertAlignment.Center;
     HeaderSP_GetRequestDetail_RequestQty.Border          = new StiBorder(StiBorderSides.All, Color.Black, 1, StiPenStyle.Solid, false, 4, new StiSolidBrush(Color.Black));
     HeaderSP_GetRequestDetail_RequestQty.Brush           = new StiSolidBrush(Color.Transparent);
     HeaderSP_GetRequestDetail_RequestQty.Font            = new Font("BPG Glaho Arial", 10F, FontStyle.Bold);
     HeaderSP_GetRequestDetail_RequestQty.Guid            = null;
     HeaderSP_GetRequestDetail_RequestQty.Interaction     = null;
     HeaderSP_GetRequestDetail_RequestQty.Margins         = new StiMargins(0, 0, 0, 0);
     HeaderSP_GetRequestDetail_RequestQty.TextBrush       = new StiSolidBrush(Color.Black);
     HeaderSP_GetRequestDetail_RequestQty.TextOptions     = new StiTextOptions(false, false, true, 0F, HotkeyPrefix.None, StringTrimming.None);
     //
     // HeaderSP_GetRequestDetail_CountryName1
     //
     HeaderSP_GetRequestDetail_CountryName1 = new StiText();
     HeaderSP_GetRequestDetail_CountryName1.ClientRectangle = new RectangleD(8.2, 0, 2.8, 0.6);
     HeaderSP_GetRequestDetail_CountryName1.HorAlignment    = StiTextHorAlignment.Center;
     HeaderSP_GetRequestDetail_CountryName1.Name            = "HeaderSP_GetRequestDetail_CountryName1";
     HeaderSP_GetRequestDetail_CountryName1.GetValue       += new StiGetValueEventHandler(HeaderSP_GetRequestDetail_CountryName1__GetValue);
     HeaderSP_GetRequestDetail_CountryName1.VertAlignment   = StiVertAlignment.Center;
     HeaderSP_GetRequestDetail_CountryName1.Border          = new StiBorder(StiBorderSides.All, Color.Black, 1, StiPenStyle.Solid, false, 4, new StiSolidBrush(Color.Black));
     HeaderSP_GetRequestDetail_CountryName1.Brush           = new StiSolidBrush(Color.Transparent);
     HeaderSP_GetRequestDetail_CountryName1.Font            = new Font("BPG Glaho Arial", 10F, FontStyle.Bold);
     HeaderSP_GetRequestDetail_CountryName1.Guid            = null;
     HeaderSP_GetRequestDetail_CountryName1.Interaction     = null;
     HeaderSP_GetRequestDetail_CountryName1.Margins         = new StiMargins(0, 0, 0, 0);
     HeaderSP_GetRequestDetail_CountryName1.TextBrush       = new StiSolidBrush(Color.Black);
     HeaderSP_GetRequestDetail_CountryName1.TextOptions     = new StiTextOptions(false, false, true, 0F, HotkeyPrefix.None, StringTrimming.None);
     //
     // HeaderSP_GetRequestDetail_CountryName2
     //
     HeaderSP_GetRequestDetail_CountryName2 = new StiText();
     HeaderSP_GetRequestDetail_CountryName2.ClientRectangle = new RectangleD(11, 0, 2.8, 0.6);
     HeaderSP_GetRequestDetail_CountryName2.HorAlignment    = StiTextHorAlignment.Center;
     HeaderSP_GetRequestDetail_CountryName2.Name            = "HeaderSP_GetRequestDetail_CountryName2";
     HeaderSP_GetRequestDetail_CountryName2.GetValue       += new StiGetValueEventHandler(HeaderSP_GetRequestDetail_CountryName2__GetValue);
     HeaderSP_GetRequestDetail_CountryName2.VertAlignment   = StiVertAlignment.Center;
     HeaderSP_GetRequestDetail_CountryName2.Border          = new StiBorder(StiBorderSides.All, Color.Black, 1, StiPenStyle.Solid, false, 4, new StiSolidBrush(Color.Black));
     HeaderSP_GetRequestDetail_CountryName2.Brush           = new StiSolidBrush(Color.Transparent);
     HeaderSP_GetRequestDetail_CountryName2.Font            = new Font("BPG Glaho Arial", 10F, FontStyle.Bold);
     HeaderSP_GetRequestDetail_CountryName2.Guid            = null;
     HeaderSP_GetRequestDetail_CountryName2.Interaction     = null;
     HeaderSP_GetRequestDetail_CountryName2.Margins         = new StiMargins(0, 0, 0, 0);
     HeaderSP_GetRequestDetail_CountryName2.TextBrush       = new StiSolidBrush(Color.Black);
     HeaderSP_GetRequestDetail_CountryName2.TextOptions     = new StiTextOptions(false, false, true, 0F, HotkeyPrefix.None, StringTrimming.None);
     //
     // HeaderSP_GetRequestDetail_BrandName1
     //
     HeaderSP_GetRequestDetail_BrandName1 = new StiText();
     HeaderSP_GetRequestDetail_BrandName1.ClientRectangle = new RectangleD(13.8, 0, 2.6, 0.6);
     HeaderSP_GetRequestDetail_BrandName1.HorAlignment    = StiTextHorAlignment.Center;
     HeaderSP_GetRequestDetail_BrandName1.Name            = "HeaderSP_GetRequestDetail_BrandName1";
     HeaderSP_GetRequestDetail_BrandName1.GetValue       += new StiGetValueEventHandler(HeaderSP_GetRequestDetail_BrandName1__GetValue);
     HeaderSP_GetRequestDetail_BrandName1.VertAlignment   = StiVertAlignment.Center;
     HeaderSP_GetRequestDetail_BrandName1.Border          = new StiBorder(StiBorderSides.All, Color.Black, 1, StiPenStyle.Solid, false, 4, new StiSolidBrush(Color.Black));
     HeaderSP_GetRequestDetail_BrandName1.Brush           = new StiSolidBrush(Color.Transparent);
     HeaderSP_GetRequestDetail_BrandName1.Font            = new Font("BPG Glaho Arial", 10F, FontStyle.Bold);
     HeaderSP_GetRequestDetail_BrandName1.Guid            = null;
     HeaderSP_GetRequestDetail_BrandName1.Interaction     = null;
     HeaderSP_GetRequestDetail_BrandName1.Margins         = new StiMargins(0, 0, 0, 0);
     HeaderSP_GetRequestDetail_BrandName1.TextBrush       = new StiSolidBrush(Color.Black);
     HeaderSP_GetRequestDetail_BrandName1.TextOptions     = new StiTextOptions(false, false, true, 0F, HotkeyPrefix.None, StringTrimming.None);
     //
     // HeaderSP_GetRequestDetail_BrandName2
     //
     HeaderSP_GetRequestDetail_BrandName2 = new StiText();
     HeaderSP_GetRequestDetail_BrandName2.ClientRectangle = new RectangleD(16.4, 0, 2.6, 0.6);
     HeaderSP_GetRequestDetail_BrandName2.HorAlignment    = StiTextHorAlignment.Center;
     HeaderSP_GetRequestDetail_BrandName2.Name            = "HeaderSP_GetRequestDetail_BrandName2";
     HeaderSP_GetRequestDetail_BrandName2.GetValue       += new StiGetValueEventHandler(HeaderSP_GetRequestDetail_BrandName2__GetValue);
     HeaderSP_GetRequestDetail_BrandName2.VertAlignment   = StiVertAlignment.Center;
     HeaderSP_GetRequestDetail_BrandName2.Border          = new StiBorder(StiBorderSides.All, Color.Black, 1, StiPenStyle.Solid, false, 4, new StiSolidBrush(Color.Black));
     HeaderSP_GetRequestDetail_BrandName2.Brush           = new StiSolidBrush(Color.Transparent);
     HeaderSP_GetRequestDetail_BrandName2.Font            = new Font("BPG Glaho Arial", 10F, FontStyle.Bold);
     HeaderSP_GetRequestDetail_BrandName2.Guid            = null;
     HeaderSP_GetRequestDetail_BrandName2.Interaction     = null;
     HeaderSP_GetRequestDetail_BrandName2.Margins         = new StiMargins(0, 0, 0, 0);
     HeaderSP_GetRequestDetail_BrandName2.TextBrush       = new StiSolidBrush(Color.Black);
     HeaderSP_GetRequestDetail_BrandName2.TextOptions     = new StiTextOptions(false, false, true, 0F, HotkeyPrefix.None, StringTrimming.None);
     HeaderSP_GetRequestDetail.Guid        = null;
     HeaderSP_GetRequestDetail.Interaction = null;
     //
     // DataSP_GetRequestDetail
     //
     DataSP_GetRequestDetail = new StiDataBand();
     DataSP_GetRequestDetail.ClientRectangle  = new RectangleD(0, 3.2, 19, 0.6);
     DataSP_GetRequestDetail.DataRelationName = "SP_GetRequestHeader_SP_GetRequestDetail";
     DataSP_GetRequestDetail.DataSourceName   = "SP_GetRequestDetail";
     DataSP_GetRequestDetail.Name             = "DataSP_GetRequestDetail";
     DataSP_GetRequestDetail.Sort             = new[] {
         "ASC",
         "OrdinalNumber"
     };
     DataSP_GetRequestDetail.Border             = new StiBorder(StiBorderSides.None, Color.Black, 1, StiPenStyle.Solid, false, 4, new StiSolidBrush(Color.Black));
     DataSP_GetRequestDetail.Brush              = new StiSolidBrush(Color.Transparent);
     DataSP_GetRequestDetail.BusinessObjectGuid = null;
     //
     // DataSP_GetRequestDetail_MedicamentName
     //
     DataSP_GetRequestDetail_MedicamentName                 = new StiText();
     DataSP_GetRequestDetail_MedicamentName.CanGrow         = true;
     DataSP_GetRequestDetail_MedicamentName.ClientRectangle = new RectangleD(0.8, 0, 6, 0.6);
     DataSP_GetRequestDetail_MedicamentName.GrowToHeight    = true;
     DataSP_GetRequestDetail_MedicamentName.Name            = "DataSP_GetRequestDetail_MedicamentName";
     DataSP_GetRequestDetail_MedicamentName.GetValue       += new StiGetValueEventHandler(DataSP_GetRequestDetail_MedicamentName__GetValue);
     DataSP_GetRequestDetail_MedicamentName.VertAlignment   = StiVertAlignment.Center;
     DataSP_GetRequestDetail_MedicamentName.Border          = new StiBorder(StiBorderSides.All, Color.Black, 1, StiPenStyle.Solid, false, 4, new StiSolidBrush(Color.Black));
     DataSP_GetRequestDetail_MedicamentName.Brush           = new StiSolidBrush(Color.Transparent);
     DataSP_GetRequestDetail_MedicamentName.Font            = new Font("BPG Glaho Arial", 8F);
     DataSP_GetRequestDetail_MedicamentName.Guid            = null;
     DataSP_GetRequestDetail_MedicamentName.Interaction     = null;
     DataSP_GetRequestDetail_MedicamentName.Margins         = new StiMargins(0, 0, 0, 0);
     DataSP_GetRequestDetail_MedicamentName.TextBrush       = new StiSolidBrush(Color.Black);
     DataSP_GetRequestDetail_MedicamentName.TextOptions     = new StiTextOptions(false, false, true, 0F, HotkeyPrefix.None, StringTrimming.None);
     //
     // DataSP_GetRequestDetail_OrdinalNumber
     //
     DataSP_GetRequestDetail_OrdinalNumber                 = new StiText();
     DataSP_GetRequestDetail_OrdinalNumber.CanGrow         = true;
     DataSP_GetRequestDetail_OrdinalNumber.ClientRectangle = new RectangleD(0, 0, 0.8, 0.6);
     DataSP_GetRequestDetail_OrdinalNumber.GrowToHeight    = true;
     DataSP_GetRequestDetail_OrdinalNumber.Name            = "DataSP_GetRequestDetail_OrdinalNumber";
     DataSP_GetRequestDetail_OrdinalNumber.GetValue       += new StiGetValueEventHandler(DataSP_GetRequestDetail_OrdinalNumber__GetValue);
     DataSP_GetRequestDetail_OrdinalNumber.VertAlignment   = StiVertAlignment.Center;
     DataSP_GetRequestDetail_OrdinalNumber.Border          = new StiBorder(StiBorderSides.All, Color.Black, 1, StiPenStyle.Solid, false, 4, new StiSolidBrush(Color.Black));
     DataSP_GetRequestDetail_OrdinalNumber.Brush           = new StiSolidBrush(Color.Transparent);
     DataSP_GetRequestDetail_OrdinalNumber.Font            = new Font("BPG Glaho Arial", 8F);
     DataSP_GetRequestDetail_OrdinalNumber.Guid            = null;
     DataSP_GetRequestDetail_OrdinalNumber.Interaction     = null;
     DataSP_GetRequestDetail_OrdinalNumber.Margins         = new StiMargins(0, 0, 0, 0);
     DataSP_GetRequestDetail_OrdinalNumber.TextBrush       = new StiSolidBrush(Color.Black);
     DataSP_GetRequestDetail_OrdinalNumber.TextOptions     = new StiTextOptions(false, false, true, 0F, HotkeyPrefix.None, StringTrimming.None);
     //
     // DataSP_GetRequestDetail_RequestQty
     //
     DataSP_GetRequestDetail_RequestQty                 = new StiText();
     DataSP_GetRequestDetail_RequestQty.CanGrow         = true;
     DataSP_GetRequestDetail_RequestQty.ClientRectangle = new RectangleD(6.8, 0, 1.4, 0.6);
     DataSP_GetRequestDetail_RequestQty.GrowToHeight    = true;
     DataSP_GetRequestDetail_RequestQty.HorAlignment    = StiTextHorAlignment.Right;
     DataSP_GetRequestDetail_RequestQty.Name            = "DataSP_GetRequestDetail_RequestQty";
     DataSP_GetRequestDetail_RequestQty.GetValue       += new StiGetValueEventHandler(DataSP_GetRequestDetail_RequestQty__GetValue);
     DataSP_GetRequestDetail_RequestQty.VertAlignment   = StiVertAlignment.Center;
     DataSP_GetRequestDetail_RequestQty.Border          = new StiBorder(StiBorderSides.All, Color.Black, 1, StiPenStyle.Solid, false, 4, new StiSolidBrush(Color.Black));
     DataSP_GetRequestDetail_RequestQty.Brush           = new StiSolidBrush(Color.Transparent);
     DataSP_GetRequestDetail_RequestQty.Font            = new Font("BPG Glaho Arial", 8F);
     DataSP_GetRequestDetail_RequestQty.Guid            = null;
     DataSP_GetRequestDetail_RequestQty.Interaction     = null;
     DataSP_GetRequestDetail_RequestQty.Margins         = new StiMargins(0, 0, 0, 0);
     DataSP_GetRequestDetail_RequestQty.TextBrush       = new StiSolidBrush(Color.Black);
     DataSP_GetRequestDetail_RequestQty.TextFormat      = new StiNumberFormatService(1, ",", 4, " ", 3, true, false, " ");
     DataSP_GetRequestDetail_RequestQty.TextOptions     = new StiTextOptions(false, false, true, 0F, HotkeyPrefix.None, StringTrimming.None);
     //
     // DataSP_GetRequestDetail_CountryName1
     //
     DataSP_GetRequestDetail_CountryName1                 = new StiText();
     DataSP_GetRequestDetail_CountryName1.CanGrow         = true;
     DataSP_GetRequestDetail_CountryName1.ClientRectangle = new RectangleD(8.2, 0, 2.8, 0.6);
     DataSP_GetRequestDetail_CountryName1.GrowToHeight    = true;
     DataSP_GetRequestDetail_CountryName1.Name            = "DataSP_GetRequestDetail_CountryName1";
     DataSP_GetRequestDetail_CountryName1.GetValue       += new StiGetValueEventHandler(DataSP_GetRequestDetail_CountryName1__GetValue);
     DataSP_GetRequestDetail_CountryName1.VertAlignment   = StiVertAlignment.Center;
     DataSP_GetRequestDetail_CountryName1.Border          = new StiBorder(StiBorderSides.All, Color.Black, 1, StiPenStyle.Solid, false, 4, new StiSolidBrush(Color.Black));
     DataSP_GetRequestDetail_CountryName1.Brush           = new StiSolidBrush(Color.Transparent);
     DataSP_GetRequestDetail_CountryName1.Font            = new Font("BPG Glaho Arial", 8F);
     DataSP_GetRequestDetail_CountryName1.Guid            = null;
     DataSP_GetRequestDetail_CountryName1.Interaction     = null;
     DataSP_GetRequestDetail_CountryName1.Margins         = new StiMargins(0, 0, 0, 0);
     DataSP_GetRequestDetail_CountryName1.TextBrush       = new StiSolidBrush(Color.Black);
     DataSP_GetRequestDetail_CountryName1.TextOptions     = new StiTextOptions(false, false, true, 0F, HotkeyPrefix.None, StringTrimming.None);
     //
     // DataSP_GetRequestDetail_CountryName2
     //
     DataSP_GetRequestDetail_CountryName2                 = new StiText();
     DataSP_GetRequestDetail_CountryName2.CanGrow         = true;
     DataSP_GetRequestDetail_CountryName2.ClientRectangle = new RectangleD(11, 0, 2.8, 0.6);
     DataSP_GetRequestDetail_CountryName2.GrowToHeight    = true;
     DataSP_GetRequestDetail_CountryName2.Name            = "DataSP_GetRequestDetail_CountryName2";
     DataSP_GetRequestDetail_CountryName2.GetValue       += new StiGetValueEventHandler(DataSP_GetRequestDetail_CountryName2__GetValue);
     DataSP_GetRequestDetail_CountryName2.VertAlignment   = StiVertAlignment.Center;
     DataSP_GetRequestDetail_CountryName2.Border          = new StiBorder(StiBorderSides.All, Color.Black, 1, StiPenStyle.Solid, false, 4, new StiSolidBrush(Color.Black));
     DataSP_GetRequestDetail_CountryName2.Brush           = new StiSolidBrush(Color.Transparent);
     DataSP_GetRequestDetail_CountryName2.Font            = new Font("BPG Glaho Arial", 8F);
     DataSP_GetRequestDetail_CountryName2.Guid            = null;
     DataSP_GetRequestDetail_CountryName2.Interaction     = null;
     DataSP_GetRequestDetail_CountryName2.Margins         = new StiMargins(0, 0, 0, 0);
     DataSP_GetRequestDetail_CountryName2.TextBrush       = new StiSolidBrush(Color.Black);
     DataSP_GetRequestDetail_CountryName2.TextOptions     = new StiTextOptions(false, false, true, 0F, HotkeyPrefix.None, StringTrimming.None);
     //
     // DataSP_GetRequestDetail_BrandName1
     //
     DataSP_GetRequestDetail_BrandName1                 = new StiText();
     DataSP_GetRequestDetail_BrandName1.CanGrow         = true;
     DataSP_GetRequestDetail_BrandName1.ClientRectangle = new RectangleD(13.8, 0, 2.6, 0.6);
     DataSP_GetRequestDetail_BrandName1.Name            = "DataSP_GetRequestDetail_BrandName1";
     DataSP_GetRequestDetail_BrandName1.GetValue       += new StiGetValueEventHandler(DataSP_GetRequestDetail_BrandName1__GetValue);
     DataSP_GetRequestDetail_BrandName1.VertAlignment   = StiVertAlignment.Center;
     DataSP_GetRequestDetail_BrandName1.Border          = new StiBorder(StiBorderSides.All, Color.Black, 1, StiPenStyle.Solid, false, 4, new StiSolidBrush(Color.Black));
     DataSP_GetRequestDetail_BrandName1.Brush           = new StiSolidBrush(Color.Transparent);
     DataSP_GetRequestDetail_BrandName1.Font            = new Font("BPG Glaho Arial", 8F);
     DataSP_GetRequestDetail_BrandName1.Guid            = null;
     DataSP_GetRequestDetail_BrandName1.Interaction     = null;
     DataSP_GetRequestDetail_BrandName1.Margins         = new StiMargins(0, 0, 0, 0);
     DataSP_GetRequestDetail_BrandName1.TextBrush       = new StiSolidBrush(Color.Black);
     DataSP_GetRequestDetail_BrandName1.TextOptions     = new StiTextOptions(false, false, true, 0F, HotkeyPrefix.None, StringTrimming.None);
     //
     // DataSP_GetRequestDetail_BrandName2
     //
     DataSP_GetRequestDetail_BrandName2                 = new StiText();
     DataSP_GetRequestDetail_BrandName2.CanGrow         = true;
     DataSP_GetRequestDetail_BrandName2.ClientRectangle = new RectangleD(16.4, 0, 2.6, 0.6);
     DataSP_GetRequestDetail_BrandName2.GrowToHeight    = true;
     DataSP_GetRequestDetail_BrandName2.Name            = "DataSP_GetRequestDetail_BrandName2";
     DataSP_GetRequestDetail_BrandName2.VertAlignment   = StiVertAlignment.Center;
     DataSP_GetRequestDetail_BrandName2.Border          = new StiBorder(StiBorderSides.All, Color.Black, 1, StiPenStyle.Solid, false, 4, new StiSolidBrush(Color.Black));
     DataSP_GetRequestDetail_BrandName2.Brush           = new StiSolidBrush(Color.Transparent);
     DataSP_GetRequestDetail_BrandName2.Font            = new Font("BPG Glaho Arial", 8F);
     DataSP_GetRequestDetail_BrandName2.Guid            = null;
     DataSP_GetRequestDetail_BrandName2.Interaction     = null;
     DataSP_GetRequestDetail_BrandName2.Margins         = new StiMargins(0, 0, 0, 0);
     DataSP_GetRequestDetail_BrandName2.TextBrush       = new StiSolidBrush(Color.Black);
     DataSP_GetRequestDetail_BrandName2.TextOptions     = new StiTextOptions(false, false, true, 0F, HotkeyPrefix.None, StringTrimming.None);
     DataSP_GetRequestDetail.Guid        = null;
     DataSP_GetRequestDetail.Interaction = null;
     Page1.ExcelSheetValue            = null;
     Page1.Interaction                = null;
     Page1.Margins                    = new StiMargins(1, 1, 1, 1);
     Page1_Watermark                  = new StiWatermark();
     Page1_Watermark.Font             = new Font("Arial", 100F);
     Page1_Watermark.Image            = null;
     Page1_Watermark.TextBrush        = new StiSolidBrush(Color.FromArgb(50, 0, 0, 0));
     RptRequestDetail_PrinterSettings = new StiPrinterSettings();
     PrinterSettings                  = RptRequestDetail_PrinterSettings;
     Page1.Report    = this;
     Page1.Watermark = Page1_Watermark;
     DataSP_GetRequestHeader.Page   = Page1;
     DataSP_GetRequestHeader.Parent = Page1;
     Text2.Page   = Page1;
     Text2.Parent = DataSP_GetRequestHeader;
     HeaderSP_GetRequestDetail.Page                  = Page1;
     HeaderSP_GetRequestDetail.Parent                = Page1;
     HeaderSP_GetRequestDetail_OrdinalNumber.Page    = Page1;
     HeaderSP_GetRequestDetail_OrdinalNumber.Parent  = HeaderSP_GetRequestDetail;
     HeaderSP_GetRequestDetail_MedicamentName.Page   = Page1;
     HeaderSP_GetRequestDetail_MedicamentName.Parent = HeaderSP_GetRequestDetail;
     HeaderSP_GetRequestDetail_RequestQty.Page       = Page1;
     HeaderSP_GetRequestDetail_RequestQty.Parent     = HeaderSP_GetRequestDetail;
     HeaderSP_GetRequestDetail_CountryName1.Page     = Page1;
     HeaderSP_GetRequestDetail_CountryName1.Parent   = HeaderSP_GetRequestDetail;
     HeaderSP_GetRequestDetail_CountryName2.Page     = Page1;
     HeaderSP_GetRequestDetail_CountryName2.Parent   = HeaderSP_GetRequestDetail;
     HeaderSP_GetRequestDetail_BrandName1.Page       = Page1;
     HeaderSP_GetRequestDetail_BrandName1.Parent     = HeaderSP_GetRequestDetail;
     HeaderSP_GetRequestDetail_BrandName2.Page       = Page1;
     HeaderSP_GetRequestDetail_BrandName2.Parent     = HeaderSP_GetRequestDetail;
     DataSP_GetRequestDetail.MasterComponent         = DataSP_GetRequestHeader;
     DataSP_GetRequestDetail.Page   = Page1;
     DataSP_GetRequestDetail.Parent = Page1;
     DataSP_GetRequestDetail_MedicamentName.Page   = Page1;
     DataSP_GetRequestDetail_MedicamentName.Parent = DataSP_GetRequestDetail;
     DataSP_GetRequestDetail_OrdinalNumber.Page    = Page1;
     DataSP_GetRequestDetail_OrdinalNumber.Parent  = DataSP_GetRequestDetail;
     DataSP_GetRequestDetail_RequestQty.Page       = Page1;
     DataSP_GetRequestDetail_RequestQty.Parent     = DataSP_GetRequestDetail;
     DataSP_GetRequestDetail_CountryName1.Page     = Page1;
     DataSP_GetRequestDetail_CountryName1.Parent   = DataSP_GetRequestDetail;
     DataSP_GetRequestDetail_CountryName2.Page     = Page1;
     DataSP_GetRequestDetail_CountryName2.Parent   = DataSP_GetRequestDetail;
     DataSP_GetRequestDetail_BrandName1.Page       = Page1;
     DataSP_GetRequestDetail_BrandName1.Parent     = DataSP_GetRequestDetail;
     DataSP_GetRequestDetail_BrandName2.Page       = Page1;
     DataSP_GetRequestDetail_BrandName2.Parent     = DataSP_GetRequestDetail;
     //
     // Add to DataSP_GetRequestHeader.Components
     //
     DataSP_GetRequestHeader.Components.Clear();
     DataSP_GetRequestHeader.Components.AddRange(new StiComponent[] {
         Text2
     });
     //
     // Add to HeaderSP_GetRequestDetail.Components
     //
     HeaderSP_GetRequestDetail.Components.Clear();
     HeaderSP_GetRequestDetail.Components.AddRange(new StiComponent[] {
         HeaderSP_GetRequestDetail_OrdinalNumber,
         HeaderSP_GetRequestDetail_MedicamentName,
         HeaderSP_GetRequestDetail_RequestQty,
         HeaderSP_GetRequestDetail_CountryName1,
         HeaderSP_GetRequestDetail_CountryName2,
         HeaderSP_GetRequestDetail_BrandName1,
         HeaderSP_GetRequestDetail_BrandName2
     });
     //
     // Add to DataSP_GetRequestDetail.Components
     //
     DataSP_GetRequestDetail.Components.Clear();
     DataSP_GetRequestDetail.Components.AddRange(new StiComponent[] {
         DataSP_GetRequestDetail_MedicamentName,
         DataSP_GetRequestDetail_OrdinalNumber,
         DataSP_GetRequestDetail_RequestQty,
         DataSP_GetRequestDetail_CountryName1,
         DataSP_GetRequestDetail_CountryName2,
         DataSP_GetRequestDetail_BrandName1,
         DataSP_GetRequestDetail_BrandName2
     });
     //
     // Add to Page1.Components
     //
     Page1.Components.Clear();
     Page1.Components.AddRange(new StiComponent[] {
         DataSP_GetRequestHeader,
         HeaderSP_GetRequestDetail,
         DataSP_GetRequestDetail
     });
     //
     // Add to Pages
     //
     Pages.Clear();
     Pages.AddRange(new[] {
         Page1
     });
     Dictionary.Relations.Add(ParentSP_GetRequestHeader);
     SP_GetRequestDetail.Columns.AddRange(new[] {
         new StiDataColumn("RequestID", "RequestID", "RequestID", typeof(int)),
         new StiDataColumn("RequestDetailID", "RequestDetailID", "RequestDetailID", typeof(int)),
         new StiDataColumn("MedicamentID", "MedicamentID", "MedicamentID", typeof(int)),
         new StiDataColumn("MedicamentName", "MedicamentName", "MedicamentName", typeof(string)),
         new StiDataColumn("RequestQty", "RequestQty", "RequestQty", typeof(decimal)),
         new StiDataColumn("CountryCode1", "CountryCode1", "CountryCode1", typeof(string)),
         new StiDataColumn("CountryName1", "CountryName1", "CountryName1", typeof(string)),
         new StiDataColumn("CountryCode2", "CountryCode2", "CountryCode2", typeof(string)),
         new StiDataColumn("CountryName2", "CountryName2", "CountryName2", typeof(string)),
         new StiDataColumn("BrandID", "BrandID", "BrandID", typeof(int)),
         new StiDataColumn("BrandName", "BrandName", "BrandName", typeof(string)),
         new StiDataColumn("OrdinalNumber", "OrdinalNumber", "OrdinalNumber", typeof(short)),
         new StiDataColumn("Action", "Action", "Action", typeof(int))
     });
     DataSources.Add(SP_GetRequestDetail);
     SP_GetRequestHeader.Columns.AddRange(new[] {
         new StiDataColumn("RequestID", "RequestID", "RequestID", typeof(int)),
         new StiDataColumn("BranchID", "BranchID", "BranchID", typeof(int)),
         new StiDataColumn("BranchName", "BranchName", "BranchName", typeof(string)),
         new StiDataColumn("RequestDate", "RequestDate", "RequestDate", typeof(DateTime)),
         new StiDataColumn("Status", "Status", "Status", typeof(byte)),
         new StiDataColumn("ModifierID", "ModifierID", "ModifierID", typeof(int)),
         new StiDataColumn("Modifier", "Modifier", "Modifier", typeof(string)),
         new StiDataColumn("ModifiedDate", "ModifiedDate", "ModifiedDate", typeof(DateTime)),
         new StiDataColumn("ApproverID", "ApproverID", "ApproverID", typeof(int)),
         new StiDataColumn("Approver", "Approver", "Approver", typeof(string))
     });
     DataSources.Add(SP_GetRequestHeader);
 }
Exemple #5
0
        public StiReport Convert(string fileXtraReports)
        {
            CultureInfo currentCulture = Application.CurrentCulture;

            try
            {
                Application.CurrentCulture = new CultureInfo("en-US", false);

                report = new StiReport();
                report.Pages.Clear();

                XtraReport xtraReport = new XtraReport();
                xtraReport.LoadLayout(fileXtraReports);

                detailLevel           = 0;
                currentDataSourceName = xtraReport.DataMember;
                reportUnit            = xtraReport.ReportUnit;

                if (reportUnit == ReportUnit.TenthsOfAMillimeter)
                {
                    report.ReportUnit = StiReportUnitType.Millimeters;
                }
                else
                {
                    report.ReportUnit = StiReportUnitType.HundredthsOfInch;
                }

                ReadPage(xtraReport, report);

                foreach (StiPage page in report.Pages)
                {
                    StiComponentsCollection comps = page.GetComponents();
                    foreach (StiComponent comp in comps)
                    {
                        comp.Page = page;
                    }

                    page.LargeHeightFactor = 2;
                    page.LargeHeight       = true;
                }


                //create datasources and relations, variables
                foreach (DictionaryEntry de in fields)
                {
                    string[] parts = ((string)de.Key).Split(new char[] { '.' });
                    if (parts.Length >= 2)
                    {
                        StiDataSource ds = report.Dictionary.DataSources[parts[0]];
                        if (ds == null)
                        {
                            ds       = new StiDataTableSource();
                            ds.Name  = parts[0];
                            ds.Alias = parts[0];
                            (ds as StiDataTableSource).NameInSource = datasetName;
                            ds.Columns.Add(new StiDataColumn("id"));
                            report.Dictionary.DataSources.Add(ds);
                        }

                        int pos = 1;
                        while (pos < parts.Length - 1)
                        {
                            string dsName = parts[pos];
                            if (dsName.StartsWith(ds.Name))
                            {
                                dsName = dsName.Substring(ds.Name.Length);
                            }

                            StiDataSource childSource = report.Dictionary.DataSources[dsName];
                            if (childSource == null)
                            {
                                childSource       = new StiDataTableSource();
                                childSource.Name  = dsName;
                                childSource.Alias = dsName;
                                (childSource as StiDataTableSource).NameInSource = datasetName;
                                childSource.Columns.Add(new StiDataColumn("id"));
                                report.Dictionary.DataSources.Add(childSource);
                            }
                            StiDataRelation relation = ds.GetChildRelations()[parts[pos]];
                            if (relation == null)
                            {
                                relation = new StiDataRelation(parts[pos], ds, childSource, new string[1] {
                                    "id"
                                }, new string[1] {
                                    "id"
                                });
                                report.Dictionary.Relations.Add(relation);
                            }
                            ds = childSource;
                            pos++;
                        }

                        if (ds.Columns[parts[pos]] == null)
                        {
                            StiDataColumn column = new StiDataColumn();
                            column.Name = parts[pos];
                            ds.Columns.Add(column);
                        }
                    }
                    else if (parts.Length == 1)
                    {
                        StiVariable varr = report.Dictionary.Variables[parts[0]];
                        if (varr == null)
                        {
                            varr       = new StiVariable();
                            varr.Name  = parts[0];
                            varr.Alias = parts[0];
                            report.Dictionary.Variables.Add(varr);
                        }
                    }
                }

                return(report);
            }
            finally
            {
                Application.CurrentCulture = currentCulture;
            }
        }