Visual Basic
C#
C# | Copy Code |
---|---|
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Linq; using System.Text; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using Netcad.Data; using Netcad.Netigma; namespace HelpDocumentExamples.NetigmaFormEventServiceProvider { public class PYSFormEvents : INetigmaFormEventServiceProvider { [Browsable(false)] public string DisplayName { get { return "PYS Örnek Olaylar"; } } [Browsable(false)] public string Name { get { return "INetigmaFormEventServiceProvider.PYSFormEvents"; } } public object Clone() { return new PYSFormEvents(); } public WebControl GetFooterControl(FormEventArgs e) { //Herhangi bir kontrol eklenmeyecekse null değer döndürmelidir. return null; } /// <summary> /// Metoddan dönen kontrol formun üstüne ekleneir. /// </summary> /// <param name="e">Form, Domain, Datarow bilgileri</param> /// <returns>Forma eklenecek kontrol</returns> public WebControl GetHeaderControl(FormEventArgs e) { int year = DateTime.Now.AddYears(-18).Year; string sql = string.Format(@"SELECT SUM(OrderDetails.UnitPrice * OrderDetails.Quantity) AS Total FROM Orders INNER JOIN OrderDetails ON Orders.OrderID = OrderDetails.OrderID WHERE (DATEPART(year, Orders.OrderDate) = {0})",year); DataTable dt = e.Domain.DefaultDatabase.DataHelper.GetData(sql, null); if (dt != null && dt.Rows.Count >0) { var v = dt.Rows[0][0]; if (v != DBNull.Value) { WebControl hc = new WebControl(System.Web.UI.HtmlTextWriterTag.Div); hc.Controls.Add(new HtmlGenericControl("label") { InnerText = string.Format("Not: {1} yılına ait sipariş toplamı {0} TL. dir", Convert.ToDouble(v).ToString("N"), year) }); return hc; } else return null; } else return null; } /// <summary> /// Editör değerleri datarow dan doldurulmadan önce çalışır. /// </summary> /// <param name="e">Form, Domain, Datarow bilgileri</param> public void onPreLoadData(FormEventArgs e) { int year = DateTime.Now.AddYears(-18).Year; string sql = string.Format(@"SELECT SUM(Freight) AS TotalFreight FROM Orders WHERE (DATEPART(year, Orders.OrderDate) = {0})", year); DataTable dt = e.Domain.DefaultDatabase.DataHelper.GetData(sql, null); if (dt != null && dt.Rows.Count > 0) { var v = dt.Rows[0][0]; if (v != DBNull.Value && Convert.ToDouble(v) > 20000) { e.DataRow["Freight"] = 2; } } } /// <summary> /// Kaydet işlemi gerçekleşmeden önce, datarow değerleri editörden doldurulduktan sonra çalışır. e.cancel = true denmiş ise veritabanına kayıt engellenir. /// </summary> /// <param name="e">Form, Domain, Datarow bilgileri</param> public void onPreSave(FormEventArgs e) { object tmp = e.DataRow["Freight"]; e.Cancel = Convert.ToDouble(tmp) > 15000; e.Message = "Freight değeri 15000 den büyük olamaz"; } public void OnSaveCompleted(FormEventArgs e) { using (INetcadTable tbl = e.Domain.FindTable("Test")) { if (tbl != null) { var freight = e.DataRow["Freight"]; var newRow = tbl.NewRow(); newRow["freight"] = freight; newRow["date"] = DateTime.Now; tbl.Rows.Add(newRow); tbl.Update(); } } } } } |
Target Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, Windows Vista, Windows Server 2008 family