搞定Office 2003開發技術-Smart Document開發實務(開發篇-下)_朱明中P249 -----box----- #程式1 case 11: // for Customer List's combo box. // Load Customer Info. conn = new SqlConnection ("Initial Catalog=Northwind; user id=sa"); cmd = new SqlCommand(); iCount = 0; strResult = String.Empty; conn.Open(); cmd.Connection = conn; cmd.CommandType = CommandType.Text; cmd.CommandText = "SELECT COUNT(CompanyName) FROM Customers"; iCount = (int)cmd.ExecuteScalar(); cmd.CommandText = "SELECT CompanyName FROM Customers ORDER BY CompanyName ASC"; dr = cmd.ExecuteReader (CommandBehavior.CloseConnection); while (dr.Read()) { // load customer name. if (strResult == String.Empty) strResult = dr.GetString(0); else strResult += ";" + dr.GetString(0); } dr.Close(); conn.Dispose(); cmd.Dispose(); dr = null; // set combo properties. List = strResult.Split(';'); Count = iCount; InitialSelected = -1; break; -----end----- -----box----- #程式2 // set control style. Props.Write("W", doc.SelectSingleNode ("//sdc:Control[@ControlID='"   + ControlID.ToString() + "']", xnm).Attributes.GetNamedItem("Width").InnerText); Props.Write("Align","left"); -----end----- -----box----- #程式3 conn = new SqlConnection ("Initial Catalog=Northwind; user id=sa"); cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandType = CommandType.Text; cmd.CommandText = "SELECT * FROM Customers WHERE CompanyName='" + this.strCustomerName + "'"; conn.Open(); dr = cmd.ExecuteReader (CommandBehavior.CloseConnection); dr.Read(); // set XML content. rng.Document.SelectSingleNode ("//ns:Customer/ns:CustomerName", "xmlns:ns='" + this.strNamespace + "'", false).Text = dr.GetString(dr.GetOrdinal("CompanyName")); rng.Document.SelectSingleNode ("//ns:Customer/ns:Contact", "xmlns:ns='" + this.strNamespace + "'", false).Text = dr.GetString(dr.GetOrdinal("ContactName")); rng.Document.SelectSingleNode ("//ns:Customer/ns:BillingAddress", "xmlns:ns='" + this.strNamespace + "'", false).Text = dr.GetString(dr.GetOrdinal("Address")) + " " + dr.GetString(dr.GetOrdinal("City")) + " " + dr.GetString(dr.GetOrdinal("Region")) + " " + dr.GetString(dr.GetOrdinal("PostalCode")) + " " + dr.GetString(dr.GetOrdinal("Country")); rng.Document.SelectSingleNode ("//ns:Customer/ns:ShippingAddress", "xmlns:ns='" + this.strNamespace + "'", false).Text = dr.GetString(dr.GetOrdinal("Address")) + " " + dr.GetString(dr.GetOrdinal("City")) + " " + dr.GetString(dr.GetOrdinal("Region")) + " " + dr.GetString(dr.GetOrdinal("PostalCode")) + " " + dr.GetString(dr.GetOrdinal("Country")); rng.Document.SelectSingleNode ("//ns:Customer/ns:Telephone", "xmlns:ns='" + this.strNamespace + "'", false).Text = dr.GetString(dr.GetOrdinal("Phone")); rng.Document.SelectSingleNode ("//ns:Customer/ns:Fax", "xmlns:ns='" + this.strNamespace + "'", false).Text = dr.GetString(dr.GetOrdinal("Fax")); this.bCustomerInfoExists = true; dr.Close(); conn.Dispose(); cmd.Dispose(); dr = null; -----end----- -----box----- #程式5 case 11: // Customer Secton's Customer ComboBox change. this.strCustomerName = Value; break; -----end----- -----box----- #程式7 // change control content. oControlID = "22"; node.SmartTag.SmartTagActions.get_Item (ref oControlID).TextboxText = dr.GetValue(dr.GetOrdinal("ProductID")).ToString(); oControlID = "24"; node.SmartTag.SmartTagActions.get_Item (ref oControlID).TextboxText = dr.GetValue(dr.GetOrdinal("UnitPrice")).ToString(); -----end----- -----box----- #程式8 case 3: // complete order. object[] oParam = { (object)Word.WdSaveOptions.wdDoNotSaveChanges, (object)Word.WdOriginalFormat.wdOriginalDocumentFormat, (object)false }; odoc = new XmlDocument(); odoc.LoadXml (rng.Document.XMLNodes[1].get_XML(true)); odoc.Save(rng.Document.Path + "//CustomerOrderResult.xml"); MessageBox.Show("訂單已完成 !", "北風貿易產品訂購單", MessageBoxButtons.OK, MessageBoxIcon.Information); // close document. rng.Document.Close (ref oParam[0], ref oParam[1], ref oParam[2]); break; -----end----- -----box----- caspol.exe -pp off -ag -url -n -----end----- -----box----- caspol.exe -pp off -ag 1.1 -url "file:// C:\Office2003Sample\CustomerOrder\*" FullTrust -n SmartDocumentCodeSample -----end----- -----box----- #程式9 1.0 40000 urn:JCIStudio.Samples.Office2003. Northwind.SmartDocument.CustomerOrder {40139023-B1FB-4a57-829C-C3C44D3B68B9} smartDocument Customer Order true Word.Application solutionActionHandler 1.0 CustomerOrder.dll CustomerOrder.CustomerOrder schema schema CustomerOrder_Schema schema 1.0 CustomerOrder.xsd -----end-----