Пример #1
0
        static void Main(string[] args)
        {
            ServerDocument sd = null;

            try {
                //Update the documents' internal manifest to point to the new location of
                //the customization library (dll)
                //1. Open the office document/template
                //Console.WriteLine("Enter the fullpath to the Office document or template:");
                //string doc = Console.ReadLine();
                sd = new ServerDocument("c:\\Argix.InvoiceHugoBoss.xltx");

                //2. Get the new path of the .Net dll (local, UNC, http, ftp)
                //Console.WriteLine("Enter the fullpath to the customization library:");
                //string lib = Console.ReadLine();
                string uri = sd.DeploymentManifestUrl.ToString(); // = lib;
                string id  = sd.SolutionId.ToString();            // = lib;

                //3. Save the assembly path into the document/template internal manifest
                sd.DeploymentManifestUrl = new Uri(sd.DeploymentManifestUrl.AbsoluteUri.Replace("rgxweb", "rgxvmweb"));
                sd.Save();
                Console.Read();
            }
            catch (Exception ex) { Console.WriteLine(ex.ToString()); Console.Read(); }
            finally { if (sd != null)
                      {
                          sd.Close();
                      }
            }
        }
Пример #2
0
        //</Snippet8>


        //<Snippet9>
        private void ModifyCachedString(string documentPath)
        {
            int            runtimeVersion  = 0;
            ServerDocument serverDocument1 = null;

            try
            {
                runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath);

                if (runtimeVersion != 3)
                {
                    MessageBox.Show("This document does not have a Visual Studio Tools for " +
                                    "Office customization, or it has a customization that was created with " +
                                    "a version of the runtime that is incompatible with this version of the " +
                                    "ServerDocument class.");
                    return;
                }

                if (ServerDocument.IsCacheEnabled(documentPath))
                {
                    //<Snippet11>
                    //<Snippet12>
                    serverDocument1 = new ServerDocument(documentPath);
                    CachedDataHostItem hostItem1 =
                        serverDocument1.CachedData.HostItems["ExcelWorkbook1.Sheet1"];
                    CachedDataItem dataItem1 = hostItem1.CachedData["CachedString"];
                    //</Snippet12>

                    if (dataItem1 != null &&
                        Type.GetType(dataItem1.DataType) == typeof(string))
                    {
                        dataItem1.SerializeDataInstance("This is the new cached string value.");
                        serverDocument1.Save();
                    }
                    //</Snippet11>
                }
                else
                {
                    MessageBox.Show("The specified document does not have cached data.");
                }
            }
            catch (System.IO.FileNotFoundException)
            {
                System.Windows.Forms.MessageBox.Show("The specified document does not exist.");
            }
            catch (UnknownCustomizationFileException)
            {
                System.Windows.Forms.MessageBox.Show("The specified document has a file " +
                                                     "extension that is not supported by Visual Studio Tools for Office.");
            }
            finally
            {
                if (serverDocument1 != null)
                {
                    serverDocument1.Close();
                }
            }
        }
Пример #3
0
        private void UpdateApplicationManifest()
        {
            // Define the parameters passed to the task.
            string targetDir    = this.Context.Parameters["targetDir"];
            string documentName = this.Context.Parameters["documentName"];
            string assemblyName = this.Context.Parameters["assemblyName"];

            if (String.IsNullOrEmpty(targetDir))
            {
                throw new InstallException("Cannot update the application manifest. The specified target directory name is not valid.");
            }
            if (String.IsNullOrEmpty(documentName))
            {
                throw new InstallException("Cannot update the application manifest. The specified document name is not valid.");
            }
            if (String.IsNullOrEmpty(assemblyName))
            {
                throw new InstallException("Cannot update the application manifest. The specified assembly name is not valid.");
            }

            // Get the application manifest from the document.
            string         documentPath   = Path.Combine(targetDir, documentName);
            ServerDocument serverDocument = new ServerDocument(documentPath, FileAccess.ReadWrite);

            try
            {
                AppManifest appManifest = serverDocument.AppManifest;

                string assemblyPath = Path.Combine(targetDir, assemblyName);
                appManifest.Dependency.AssemblyPath = assemblyPath;

                serverDocument.Save();
            }
            finally
            {
                if (serverDocument != null)
                {
                    serverDocument.Close();
                }
            }
        }
Пример #4
0
        static private void InitializeCachedDataSet()
        {
            //<Snippet2>
            //<Snippet3>
            AdventureWorksDataSet.AdventureWorksLTDataSet productDataSet =
                new AdventureWorksDataSet.AdventureWorksLTDataSet();
            AdventureWorksDataSet.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter productTableAdapter =
                new AdventureWorksDataSet.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter();

            string workbookPath = System.Environment.GetFolderPath(
                Environment.SpecialFolder.MyDocuments) +
                                  @"\AdventureWorksReport\bin\Debug\AdventureWorksReport.xlsx";
            ServerDocument serverDocument1 = null;

            //</Snippet3>

            //<Snippet4>
            try
            {
                productTableAdapter.Fill(productDataSet.Product);
                Console.WriteLine("The local dataset is filled.");

                serverDocument1 = new ServerDocument(workbookPath);
                CachedDataHostItem dataHostItem1 =
                    serverDocument1.CachedData.HostItems["AdventureWorksReport.Sheet1"];
                CachedDataItem dataItem1 = dataHostItem1.CachedData["adventureWorksLTDataSet"];

                // Initialize the worksheet dataset with the local dataset.
                if (dataItem1 != null)
                {
                    dataItem1.SerializeDataInstance(productDataSet);
                    serverDocument1.Save();
                    Console.WriteLine("The data is saved to the data cache.");
                    Console.ReadLine();
                }
                else
                {
                    Console.WriteLine("The data object is not found in the data cache.");
                }
            }
            catch (System.Data.SqlClient.SqlException ex)
            {
                Console.WriteLine(ex.Message);
            }
            catch (System.IO.FileNotFoundException)
            {
                Console.WriteLine("The specified workbook does not exist.");
            }
            finally
            {
                if (serverDocument1 != null)
                {
                    serverDocument1.Close();
                }

                Console.WriteLine("\n\nPress Enter to close the application.");
                Console.ReadLine();
            }
            //</Snippet4>
            //</Snippet2>
        }
Пример #5
0
        static private void ModifyCachedDataSet()
        {
            //<Snippet5>
            //<Snippet6>
            AdventureWorksDataSet.AdventureWorksLTDataSet productDataSet =
                new AdventureWorksDataSet.AdventureWorksLTDataSet();
            string workbookPath = System.Environment.GetFolderPath(
                Environment.SpecialFolder.MyDocuments) +
                                  @"\AdventureWorksReport\bin\Debug\AdventureWorksReport.xlsx";
            ServerDocument serverDocument1 = null;

            //</Snippet6>

            //<Snippet7>
            try
            {
                serverDocument1 = new ServerDocument(workbookPath);
                CachedDataHostItem dataHostItem1 =
                    serverDocument1.CachedData.HostItems["AdventureWorksReport.Sheet1"];
                CachedDataItem dataItem1 = dataHostItem1.CachedData["adventureWorksLTDataSet"];

                if (dataItem1 != null)
                {
                    Console.WriteLine("Before reading data from the cache dataset, the local dataset has " +
                                      "{0} rows.", productDataSet.Product.Rows.Count.ToString());

                    // Read the cached data from the worksheet dataset into the local dataset.
                    System.IO.StringReader schemaReader = new System.IO.StringReader(dataItem1.Schema);
                    System.IO.StringReader xmlReader    = new System.IO.StringReader(dataItem1.Xml);
                    productDataSet.ReadXmlSchema(schemaReader);
                    productDataSet.ReadXml(xmlReader);

                    Console.WriteLine("After reading data from the cache dataset, the local dataset has " +
                                      "{0} rows.", productDataSet.Product.Rows.Count.ToString());

                    // Modify the prices of each product in the local dataset.
                    foreach (AdventureWorksDataSet.AdventureWorksLTDataSet.ProductRow row in
                             productDataSet.Product.Rows)
                    {
                        if (row.ProductCategoryID < 20)
                        {
                            row.ListPrice = row.ListPrice + (row.ListPrice * (Decimal).10);
                        }
                        else
                        {
                            row.ListPrice = row.ListPrice - (row.ListPrice * (Decimal).10);
                        }
                    }

                    // Write the modified local dataset to the worksheet dataset using the DiffGram format.
                    System.Text.StringBuilder stringIn  = new System.Text.StringBuilder();
                    System.IO.StringWriter    stringOut = new System.IO.StringWriter(stringIn);
                    productDataSet.WriteXml(stringOut, System.Data.XmlWriteMode.DiffGram);
                    dataItem1.Xml = stringIn.ToString();

                    serverDocument1.Save();
                    Console.WriteLine("The product prices have been modified.");
                }
                else
                {
                    Console.WriteLine("The data object is not found in the data cache.");
                }
            }
            catch (System.IO.FileNotFoundException)
            {
                Console.WriteLine("The specified workbook does not exist.");
            }
            catch (System.Xml.XmlException)
            {
                Console.WriteLine("The data object has invalid XML information.");
            }
            finally
            {
                if (serverDocument1 != null)
                {
                    serverDocument1.Close();
                }

                Console.WriteLine("\n\nPress Enter to close the application.");
                Console.ReadLine();
            }
            //</Snippet7>
            //</Snippet5>
        }