コード例 #1
0
        } // End Function GetParameterDefaultValue

        public static string GetParameterDefaultValue(System.Xml.XmlDocument doc, string strParameterName)
        {
            strParameterName = XmlTools.XmlEscape(strParameterName);

            System.Xml.XmlNamespaceManager nsmgr   = GetReportNamespaceManager(doc);
            System.Xml.XmlNode             xnParam = doc.SelectSingleNode("/dft:Report/dft:ReportParameters/dft:ReportParameter[@Name=\"" + strParameterName + "\"]/dft:DefaultValue/dft:Values/dft:Value", nsmgr);

            if (xnParam != null)
            {
                return(xnParam.InnerText);
            }

            return(null);
        } // End Function GetParameterDefaultValue
コード例 #2
0
        } // End Sub AddOrReplaceParameter

        public static void AddCustomParameter(string strFilename, System.Xml.XmlNode xnInsertHere, bool bFirst, bool bLast, string strXmlFragment)
        {
            string strReportName = System.IO.Path.GetFileNameWithoutExtension(strFilename);


            if (xnInsertHere != null)
            {
                Logging.LogMessage("{0}\t{1}", strReportName, "hasParameters");

                System.Xml.XmlDocument         doc        = xnInsertHere.OwnerDocument;
                System.Xml.XmlDocumentFragment xmlDocFrag = doc.CreateDocumentFragment();
                xmlDocFrag.InnerXml = strXmlFragment;


                bool bDoNotFechParameter = bFirst || bLast;

                if (bDoNotFechParameter)
                {
                    if (bFirst)
                    {
                        xnInsertHere.PrependChild(xmlDocFrag);
                    }
                    else
                    {
                        xnInsertHere.AppendChild(xmlDocFrag);
                    }
                }
                else
                {
                    if (StringComparer.InvariantCultureIgnoreCase.Equals(xnInsertHere.LocalName, "ReportParameters"))
                    {
                        xnInsertHere.AppendChild(xmlDocFrag);
                    }
                    else
                    {
                        xnInsertHere.ParentNode.InsertAfter(xmlDocFrag, xnInsertHere);
                    }
                } // End else of if (bDoNotFechParameter)

                XmlTools.SaveDocument(doc, strFilename, true);
            } // End if (xn
            else
            {
                Logging.LogMessage("{0}\tKeine Parameter in Report.", strReportName);
            }
        } // End Sub AddCustomParameter
コード例 #3
0
        } // End Sub PrintProc

        public static void PrintMandant(string strFilename)
        {
            System.Xml.XmlDocument         doc   = XmlTools.File2XmlDocument(strFilename);
            System.Xml.XmlNamespaceManager nsmgr = GetReportNamespaceManager(doc);

            System.Xml.XmlNode xnMandant = doc.SelectSingleNode("/dft:Report/dft:ReportParameters/dft:ReportParameter[@Name=\"in_mandant\"]/dft:DefaultValue/dft:Values/dft:Value", nsmgr);

            string strReportName = System.IO.Path.GetFileNameWithoutExtension(strFilename);

            if (xnMandant != null)
            {
                Logging.LogMessage("{0}\t{1}", strReportName, xnMandant.FirstChild.Value);
            }
            else
            {
                Logging.LogMessage("{0}\tKein Parameter in_mandant", strReportName);
            }
        } // End Sub PrintMandant
コード例 #4
0
        public static void AddOrReplaceParameter(string strFilename, string parameterName, string strAppendAfterParameter, string fragment)
        {
            string strName = GetNameFromFragment(fragment);

            if (!StringComparer.InvariantCultureIgnoreCase.Equals(strName, parameterName))
            {
                throw new Exception("Parameter name mismatch - \"" + parameterName + "\" != \"" + strName + "\"");
            }

            System.Xml.XmlNode xnPrevious = null;
            System.Xml.XmlNode xn         = GetParameter(strFilename, parameterName);
            bool bFirst = false;


            if (xn != null)
            {
                xnPrevious = xn.PreviousSibling;
                xn.ParentNode.RemoveChild(xn);
                XmlTools.SaveDocument(xn.OwnerDocument, strFilename, true);
            } // End if (xn != null)

            if (xnPrevious == null)
            {
                xnPrevious = GetParameter(strFilename, strAppendAfterParameter);
            } // End if (xnPrevious == null)

            if (xnPrevious == null)
            {
                System.Xml.XmlDocument         doc   = XmlTools.File2XmlDocument(strFilename);
                System.Xml.XmlNamespaceManager nsmgr = GetReportNamespaceManager(doc);
                xnPrevious = doc.SelectSingleNode("/dft:Report/dft:ReportParameters", nsmgr);
                bFirst     = true;


                if (xnPrevious == null)
                {
                    return;
                }
            } // End if (xnPrevious == null)

            AddCustomParameter(strFilename, xnPrevious, bFirst, false, fragment);
        } // End Sub AddOrReplaceParameter
コード例 #5
0
        } // End Function GetDataSetDefinition

        public static void AddMainParametersNode(string strFilename)
        {
            if (HasParameters(strFilename))
            {
                return;
            }

            System.Xml.XmlNode xnDataSets = GetDataSetsNode(strFilename);
            if (xnDataSets == null)
            {
                return;
            }

            System.Xml.XmlDocument         doc        = xnDataSets.OwnerDocument;
            System.Xml.XmlDocumentFragment xmlDocFrag = doc.CreateDocumentFragment();
            xmlDocFrag.InnerXml = "<ReportParameters></ReportParameters>";

            xnDataSets.ParentNode.InsertAfter(xmlDocFrag, xnDataSets);
            XmlTools.SaveDocument(doc, strFilename, true);
        }
コード例 #6
0
        public static void AddCustomParameter(string strFilename, string strParameterName, string strAppendAfterParameter, string strXmlFragment)
        {
            System.Xml.XmlDocument         doc   = XmlTools.File2XmlDocument(strFilename);
            System.Xml.XmlNamespaceManager nsmgr = GetReportNamespaceManager(doc);

            if (HasParameter(doc, strParameterName))
            {
                return;
            }


            System.Xml.XmlNode xnParameters = doc.SelectSingleNode("/dft:Report/dft:ReportParameters", nsmgr);

            if (xnParameters == null)
            {
                return;
            }


            bool bFirst = StringComparer.OrdinalIgnoreCase.Equals(strAppendAfterParameter, "first");
            bool bLast  = StringComparer.OrdinalIgnoreCase.Equals(strAppendAfterParameter, "last");


            System.Xml.XmlNode xnAppendAfterThis = null;

            if (bFirst || bLast)
            {
                xnAppendAfterThis = xnParameters;
            }
            else
            {
                xnAppendAfterThis = GetParameter(doc, strAppendAfterParameter);
            }


            AddCustomParameter(strFilename, xnAppendAfterThis, bFirst, bLast, strXmlFragment);
        } // End Function AddCustomParameter
コード例 #7
0
        }     // End Sub AddCustomDataSet

        public static void AddCustomDataSet(string strFilename, string strDataSetName, string strXmlFragment)
        {
            System.Xml.XmlDocument         doc   = XmlTools.File2XmlDocument(strFilename);
            System.Xml.XmlNamespaceManager nsmgr = GetReportNamespaceManager(doc);

            if (HasDataSet(doc, strDataSetName))
            {
                return;
            }

            string strReportName = System.IO.Path.GetFileNameWithoutExtension(strFilename);

            System.Xml.XmlNode xnDataSets = doc.SelectSingleNode("/dft:Report/dft:DataSets", nsmgr);

            if (xnDataSets != null)
            {
                System.Xml.XmlNode xnAppendAfterThis = null;

                // bool bFirst = StringComparer.OrdinalIgnoreCase.Equals(strAppendAfterParameter, "first");
                // bool bLast = StringComparer.OrdinalIgnoreCase.Equals(strAppendAfterParameter, "last");

                // bool bDoNotFechParameter = bFirst || bLast;

                // if (!bDoNotFechParameter)
                // xnAppendAfterThis = GetParameter(doc, strAppendAfterParameter);
                xnAppendAfterThis = xnDataSets;

                if (xnAppendAfterThis != null) // || bDoNotFechParameter)
                {
                    Logging.LogMessage("{0}\t{1}", strReportName, "Has DataSets");



                    System.Xml.XmlDocument doc2 = new System.Xml.XmlDocument();
                    doc2.LoadXml(CreateFragmentString(strFilename, strXmlFragment));
                    System.Xml.XmlNode fragmentToInsert = doc2.DocumentElement.FirstChild;
                    doc2 = null;

                    // System.Xml.XmlDocumentFragment xmlDocFrag = doc.CreateDocumentFragment();
                    // xmlDocFrag.InnerXml = strXmlFragment;
                    // // xmlDocFrag.AppendChild(doc.ImportNode(fragmentToInsert, true));


                    // employeeNode.AppendChild(employeeNode.OwnerDocument.ImportNode(otherXmlDocument.DocumentElement, true));
                    // xnAppendAfterThis.ParentNode.InsertAfter(fragmentToInsert, xnAppendAfterThis);
                    // xnAppendAfterThis.ParentNode.InsertAfter(doc.ImportNode(fragmentToInsert, true), xnAppendAfterThis);
                    xnAppendAfterThis.AppendChild(doc.ImportNode(fragmentToInsert, true));

                    // xnAppendAfterThis.ParentNode.InsertAfter(xmlDocFrag, xnAppendAfterThis);

                    //if (bDoNotFechParameter)
                    //{
                    //    if (bFirst)
                    //        xnDataSets.PrependChild(xmlDocFrag);
                    //    else
                    //        xnDataSets.AppendChild(xmlDocFrag);
                    //}
                    //else
                    //{
                    //    xnAppendAfterThis.ParentNode.InsertAfter(xmlDocFrag, xnAppendAfterThis);
                    //} // End else of if (bDoNotFechParameter)
                } // End if (xnAppendAfterThis != null || string.IsNullOrEmpty(strAppendAfterParameter))
                else
                {
                    Logging.LogMessage("{0}\tKeine Parameter in Report.", strReportName);
                }
            } // End if (xnParameters != null)

            XmlTools.SaveDocument(doc, strFilename, true);
            //XmlTools.SaveDocument(doc, strFilename, "<ReportParameter Name=\"proc\" xmlns=\"\">", "<ReportParameter Name=\"proc\">");
        } // End Sub AddCustomDataSet
コード例 #8
0
 public static System.Xml.XmlNode GetDataSetsNode(string strFilename)
 {
     System.Xml.XmlDocument doc = XmlTools.File2XmlDocument(strFilename);
     return(GetDataSetsNode(doc));
 }
コード例 #9
0
        } // End Function GetImageTag

        // AlterImage(strFileName, "in_gebaeude", "Gebäude / Bâtiment / Edificio / Building");
        public static void AlterImage(string strFilename, string strReportParameterName)
        {
            System.Xml.XmlDocument         doc   = XmlTools.File2XmlDocument(strFilename);
            System.Xml.XmlNamespaceManager nsmgr = GetReportNamespaceManager(doc);


            string strReportName = System.IO.Path.GetFileNameWithoutExtension(strFilename);

            System.Xml.XmlNode xnImageTag = GetImageTag(doc, strReportParameterName);
            // System.Console.WriteLine(xnImageTag);

            if (xnImageTag == null)
            {
                Logging.LogMessage("{0}\tKein Image in " + strReportParameterName, strReportName);
                return;
            } // End if (xnImageTag == null)

            // http://www.w3schools.com/xpath/xpath_syntax.asp
            // http://www.bennadel.com/blog/2142-using-and-expressions-in-xpath-xml-search-directives-in-coldfusion.htm

            System.Xml.XmlNode xnSource = xnImageTag.SelectSingleNode("./dft:Source", nsmgr);
            xnSource.InnerText = "External";

            System.Xml.XmlNode xnValue = xnImageTag.SelectSingleNode("./dft:Value", nsmgr);
            xnValue.InnerText = "logo_immo.png";

            System.Xml.XmlNode xnSizing = xnImageTag.SelectSingleNode("./dft:Sizing", nsmgr);
            xnSizing.InnerText = "FitProportional";


            System.Xml.XmlNode xnLeft = xnImageTag.SelectSingleNode("./dft:Left", nsmgr);
            // System.Xml.XmlNode xnPageWidth = doc.SelectSingleNode("/dft:Report/dft:Page/dft:PageWidth", nsmgr);
            // System.Xml.XmlNode xnPageHeight = doc.SelectSingleNode("/dft:Report/dft:Page/dft:PageHeight", nsmgr);

            if (xnLeft != null)
            {
                double strLeft = ConvertToCm(xnLeft.InnerText);
                // double strPageWidth = ConvertToCm(xnPageWidth.InnerText);
                // double strPageHeight = ConvertToCm(xnPageHeight.InnerText);



                if (strLeft > 10) // Right aligned logo
                {
                    System.Xml.XmlNode xnStyle = xnImageTag.SelectSingleNode("./dft:Style", nsmgr);

                    if (xnStyle != null)
                    {
                        System.Xml.XmlNode xnPadding = xnStyle.SelectSingleNode("./dft:PaddingLeft", nsmgr);

                        if (xnPadding == null)
                        {
                            var ele = doc.CreateElement("PaddingLeft", doc.DocumentElement.NamespaceURI);
                            ele.InnerText = "45pt";
                            System.Xml.XmlNode xnCrap = xnStyle.AppendChild(ele);
                            // xnCrap.Attributes.Remove(xnCrap.Attributes["xmlns"]);
                        } // End if (xnPadding == null)
                    }     // End if (xnStyle != null)
                }         // End if (strLeft > 10)
            }             // End if (xnLeft != null)
              // else System.Console.WriteLine("Null left " + strFilename);

            ///dft:Report/dft:Page/dft:PageHeader/dft:ReportItems/dft:Image/dft:Style/dft:PaddingLeft

            XmlTools.SaveDocument(doc, strFilename);
        } // End Sub ChangeParameterPrompt
コード例 #10
0
        static void OldMain()
        {
            bool b = false; // Remove "Unreachable Code" warning

            if (b)
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            } // End if (false)


            string strPath = @"S:\StefanSteiger\COR_Basic\";

            //string strReport = "GM_Gebaeudestammdaten.rdl";
            string strReport = "GM_Gebaeudestammdaten_ML.rdl";

            strReport = "AL_Anlageninventar_ML.rdl";
            strReport = "FM_NutzungsartenDIN_277_Wincasa_ML.rdl";
            strReport = "FM_NutzungsartenDIN_277_Wincasa_ML.rdl";
            strReport = "KU_Kunstinventar_ML.rdl";

            string FILE_NAME = System.IO.Path.Combine(strPath, strReport);

            // AddProc(FILE_NAME);
            // AddMandant(FILE_NAME);

            // ReadUsingReportViewer(FILE_NAME);
            //Select the cd node with the matching title
            System.Xml.XmlDocument doc = XmlTools.File2XmlDocument(FILE_NAME);



            string strXML = @"
<result>
    <relatedProducts>
        <item>
            <id>123foo</id>
            <name>foo</name>
            <text>Foobar</text>
        </item>
        <item>
            <id>hello</id>
            <name>bye</name>
            <text>ciao</text>
        </item>
        <item>
            <id></id>
            <name></name>
            <text></text>
        </item>
    </relatedProducts>
</result>
";

            System.Xml.XmlDocument mydoc = new System.Xml.XmlDocument();
            mydoc.LoadXml(strXML);

            //System.Xml.XmlNodeList x = mydoc.SelectNodes("//*[text()"); // Should be: mydoc.SelectNodes("//*/*[text()");
            //System.Xml.XmlNodeList x = mydoc.SelectNodes("//*[contains(text(), 'foo')]");
            System.Xml.XmlNodeList x = mydoc.SelectNodes("//*[contains(translate(text(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜÉÈÊÀÁÂÒÓÔÙÚÛÇÅÏÕÑŒ', 'abcdefghijklmnopqrstuvwxyzäöüéèêàáâòóôùúûçåïõñœ'),'foo')]"); // Should be: mydoc.SelectNodes("//*/*[text()");
            Console.WriteLine(x.Count);



            //Select the cd node with the matching title
            System.Xml.XmlElement          root  = doc.DocumentElement;
            System.Xml.XmlNamespaceManager nsmgr = ReportServerTools.GetReportNamespaceManager(doc);


            //System.Xml.XmlNodeList xxx = oldCd.SelectNodes("xpath");

            //System.Xml.XmlNodeList xxx = root.SelectNodes("//*/dft:*[text()=\"String\"]", nsmgr);
            System.Xml.XmlNodeList xxx = root.SelectNodes("//*/dft:*[text()]", nsmgr);
            Console.WriteLine(xxx.Count);



            System.Xml.XmlNode oldCd = root.SelectSingleNode("/dft:Report/dft:DataSources/dft:DataSource[@Name=\"COR_Basic\"]", nsmgr);


            // System.Xml.XmlNode RepParams = root.SelectSingleNode("/dft:Report/dft:ReportParameters", nsmgr);
            // System.Xml.XmlNodeList AllParams = RepParams.SelectNodes("//dft:ReportParameter", nsmgr);



            // http://stackoverflow.com/questions/3655549/xpath-containstext-some-string-doesnt-work-when-used-with-node-with-more
            //System.Xml.XmlNodeList AllParams = root.SelectNodes("/dft:Report/dft:ReportParameters/dft:ReportParameter", nsmgr);
            System.Xml.XmlNodeList AllParams = root.SelectNodes("/dft:Report/dft:ReportParameters/dft:ReportParameter/dft:Prompt[contains(text(),\"Liegenschaft\")]", nsmgr);
            Console.WriteLine(AllParams.Count);



            Console.WriteLine(" ----------------------------------------- ");


            foreach (System.Xml.XmlNode ThisParameter in AllParams)
            {
                // XmlAttribute a = doc.SelectSingleNode("/reply/@success");
                Console.WriteLine(ThisParameter.Attributes["Name"].Value);

                System.Xml.XmlNode ParamDataType = ThisParameter.SelectSingleNode("//dft:DataType", nsmgr);
                Console.WriteLine(ParamDataType.FirstChild.Value);
            } // Next ThisParameter

            System.Xml.XmlNodeList stichtage = root.SelectNodes("/dft:Report/dft:ReportParameters/dft:ReportParameter[@Name=\"in_stichtag\"]", nsmgr);
            System.Xml.XmlNode     stichtag  = root.SelectSingleNode("/dft:Report/dft:ReportParameters/dft:ReportParameter[@Name=\"in_stichtag\"]", nsmgr);

            System.Xml.XmlNode stichtagvalue = root.SelectSingleNode("/dft:Report/dft:ReportParameters/dft:ReportParameter[@Name=\"in_stichtag\"]/dft:DefaultValue/dft:Values/dft:Value", nsmgr);

            Console.WriteLine(stichtagvalue.FirstChild.Value);


            // /dft:Report/dft:ReportParameters/dft:ReportParameter[@Name="in_gebaeude"]



            System.Xml.XmlNode datasetname = root.SelectSingleNode("/dft:Report/dft:ReportParameters/dft:ReportParameter[@Name=\"in_gebaeude\"]/dft:DefaultValue/dft:DataSetReference/dft:DataSetName", nsmgr);
            string             dataset     = datasetname.FirstChild.Value;

            System.Xml.XmlNode dsn = root.SelectSingleNode("/dft:Report/dft:DataSets/dft:DataSet[@Name=\"SEL_Gebaeude\"]", nsmgr);


            System.Xml.XmlNode dsn3 = root.SelectSingleNode("/dft:Report/dft:DataSets/dft:DataSet[@Name=\"SEL_Gebaeude\"]/dft:Query", nsmgr);

            System.Xml.XmlNode commandtextnode = root.SelectSingleNode("/dft:Report/dft:DataSets/dft:DataSet[@Name=\"SEL_Gebaeude\"]/dft:Query/dft:CommandText", nsmgr);
            string             commandText     = commandtextnode.FirstChild.Value;

            Console.WriteLine(commandText);


            System.Xml.XmlNodeList AllDatasetParams = root.SelectNodes("/dft:Report/dft:DataSets/dft:DataSet[@Name=\"SEL_Gebaeude\"]/dft:Query/dft:QueryParameters/dft:QueryParameter", nsmgr);
            Console.WriteLine(AllDatasetParams.Count);

            Console.WriteLine(" ----------------------------------------- ");
            foreach (System.Xml.XmlNode DataSetParameter in AllDatasetParams)
            {
                string strName = DataSetParameter.Attributes["Name"].Value;
                string lala    = DataSetParameter.FirstChild.FirstChild.Value;
                Console.WriteLine(lala);

                Console.WriteLine(strName);
            } // Next DataSetParameter


            System.Xml.XmlNode dsn5 = root.SelectSingleNode("/dft:Report/dft:DataSets/dft:DataSet[@Name=\"SEL_Gebaeude\"]/dft:Query/dft:QueryParameters", nsmgr);
            System.Xml.XmlNode dsn6 = root.SelectSingleNode("/dft:Report/dft:DataSets/dft:DataSet[@Name=\"SEL_Gebaeude\"]/dft:Query/dft:QueryParameters/dft:QueryParameter", nsmgr);


            System.Xml.XmlNodeList embeddedImages = root.SelectNodes("/dft:Report/dft:EmbeddedImages/dft:EmbeddedImage", nsmgr);


            System.Xml.XmlNode stao = root.SelectSingleNode("/dft:Report/dft:ReportParameters/dft:ReportParameter[@Name=\"in_standort\"]", nsmgr);
            if (stao != null)
            {
                Console.WriteLine("Has stao");
            }


            Console.WriteLine(stichtag);

            // /dft:Report/dft:PageHeader/dft:ReportItems/dft:Image/dft:Value[text()="=Convert.FromBase64String(Parameters!def_logo.Value)"]
            // /dft:Report/dft:PageHeader/dft:ReportItems/dft:Image/dft:Visibility/dft:Hidden[text()="=CBool(Parameters!def_HideLogo.Value)"]



            // System.Xml.XmlElement newCd = doc.CreateElement("cd");
            // newCd.SetAttribute("country", "country.Text");

            // newCd.InnerXml = "<title>" + this.comboBox1.Text + "</title>" + "<artist>" + artist.Text + "</artist>" + "<price>" + price.Text + "</price>";

            // root.ReplaceChild(newCd, oldCd);

            //save the output to a file
            //doc.Save(FILE_NAME);


            Console.WriteLine(Environment.NewLine);
            Console.WriteLine(" --- Press any key to continue --- ");
            Console.ReadKey();
        } // End Sub Main