Netcad Netigma API Reference
INetigmaFormEventServiceProvider Interface
Members  Example  See Also  Send Feedback
Netcad.Netigma Namespace : INetigmaFormEventServiceProvider Interface


Represents methods and properties for the events that wanted to be run

Syntax

 
Visual Basic
C#
 
 

Example

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();
                }
            }

        }
    }
}

Requirements

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

See Also

© 2016 All Rights Reserved.