or
<telerik:RadGrid ID="MasterRadGrid" runat="server" AutoGenerateColumns="False" AllowPaging="True" AllowSorting="True" GridLines="None" AllowMultiRowSelection="true" DataSourceID="DataSource1" CssClass="data-table achat-vente" ClientSettings-AllowExpandCollapse="true"> <ClientSettings> <Scrolling AllowScroll="true" UseStaticHeaders="true" ScrollHeight="590px" /> <Selecting AllowRowSelect="true" UseClientSelectColumnOnly="true" EnableDragToSelectRows="false" /> <ClientEvents OnGridCreated="GridCreated" /> </ClientSettings> <HierarchySettings ExpandTooltip="Afficher les détails" CollapseTooltip="Masquer les détails" /> <SortingSettings SortToolTip="Trier" SortedAscToolTip="Trier" SortedDescToolTip="Trier" /> <ItemStyle CssClass="row1" /> <AlternatingItemStyle CssClass="row2" /> <MasterTableView CellSpacing="1" CssClass="data-table" DataSourceID="DataSource1" HierarchyLoadMode="client" DataKeyNames="NOCOMP,CDART" ClientDataKeyNames="NOCOMP,CDART" Name="MasterTarif"> <PagerStyle Mode="NextPrevAndNumeric" PageSizeLabelText="Nombre de lignes par page" ShowPagerText="true" FirstPageToolTip="Première page" PrevPagesToolTip="Page précédente" NextPagesToolTip="Page suivante" LastPageToolTip="Dernière page" PagerTextFormat="{4} Articles {2} à {3} sur {5}" PageButtonCount="5" BackColor="#ABCD55" BorderStyle="None" VerticalAlign="Middle" /> <DetailTables> <telerik:GridTableView Name="DetailsTarif" runat="server" Width="100%" AllowPaging="false" AllowSorting="false" CellSpacing="1" CssClass="toggleRow row-open" DataSourceID="DataSource2" DataKeyNames="NOCOMP,CDART" ClientDataKeyNames="NOCOMP,CDART" HierarchyLoadMode="client"> <ItemStyle CssClass="rgRow row_detail" /> <AlternatingItemStyle CssClass="rgRow row_detail" /> <ParentTableRelation> <telerik:GridRelationFields DetailKeyField="NOCOMP" MasterKeyField="NOCOMP" /> <telerik:GridRelationFields DetailKeyField="CDART" MasterKeyField="CDART" /> </ParentTableRelation> <Columns> <telerik:GridBoundColumn UniqueName="DetailNoComp" DataField="NOCOMP" Visible="false" /> <telerik:GridBoundColumn UniqueName="DetailCodeArticle" DataField="CDART" Visible="false" /> <telerik:GridBoundColumn HeaderText="Type de remise" DataField="CODEREM"> <HeaderStyle CssClass="" Width="60px" /> </telerik:GridBoundColumn> <telerik:GridTemplateColumn> <HeaderStyle CssClass="sep no_bg" Width="5px" /> <ItemStyle CssClass="sep no_bg" Width="5px" /> </telerik:GridTemplateColumn> <telerik:GridBoundColumn HeaderText="Nombre d'unités Centravet" DataField="QTE" UniqueName="QteCentrav"> <HeaderStyle CssClass="" Width="150px" /> </telerik:GridBoundColumn> <telerik:GridTemplateColumn HeaderText="Marge quantité Centravet"> <HeaderStyle CssClass="" Width="150px" /> <ItemTemplate> <asp:Label ID="ToggleMargeQuantCentravetLbl" runat="server" Text='<%# dataBinder.Eval(Container.DataItem,"MARGE") %>' /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Nouvelle marge Centravet"> <HeaderStyle CssClass="" Width="150px" /> <ItemTemplate> <asp:Label ID="ToggleNvelleMargeCentravetOldLtr" runat="server" Text='<%# dataBinder.Eval(Container.DataItem,"MARGENW") %>' Visible="false" /> <telerik:RadNumericTextBox ID="ToggleNvelleMargeCentravetTxt" runat="server" Text='<%# dataBinder.Eval(Container.DataItem,"MARGENW") %>' Columns="8" Culture="fr-FR" MaxLength="8" MinValue="0" MaxValue="99999.99" NumberFormat-DecimalDigits="2" Width="60px" /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn> <HeaderStyle CssClass="sep no_bg" Width="5px" /> <ItemStyle CssClass="sep no_bg" Width="5px" /> </telerik:GridTemplateColumn> <telerik:GridBoundColumn HeaderText="Nombre d'unités Alcyon" DataField="QTE1"> <HeaderStyle CssClass="th-detail-Al" Width="150px" /> </telerik:GridBoundColumn> <telerik:GridTemplateColumn HeaderText="Marge quantité Alcyon"> <HeaderStyle CssClass="th-detail-Al" Width="150px" /> <ItemTemplate> <asp:Label ID="ToggleMargeQuantAlcyonLbl" runat="server" Text='<%# dataBinder.Eval(Container.DataItem,"MARGE1") %>' /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn> <HeaderStyle CssClass="sep no_bg" Width="5px" /> <ItemStyle CssClass="sep no_bg" Width="5px" /> </telerik:GridTemplateColumn> <telerik:GridBoundColumn HeaderText="Nombre d'unités Coveto" DataField="QTE2"> <HeaderStyle CssClass="th-detail-Co" Width="150px" /> </telerik:GridBoundColumn> <telerik:GridTemplateColumn HeaderText="Marge quantité Coveto"> <HeaderStyle CssClass="th-detail-Co" Width="150px" /> <ItemTemplate> <asp:Label ID="ToggleMargeQuantCovetoLbl" runat="server" Text='<%# dataBinder.Eval(Container.DataItem,"MARGE2") %>' /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn> <HeaderStyle CssClass="sep no_bg" Width="5px" /> <ItemStyle CssClass="sep no_bg" Width="5px" /> </telerik:GridTemplateColumn> <telerik:GridBoundColumn HeaderText="Nombre d'unités Central x" DataField="QTE3"> <HeaderStyle CssClass="th-detail-Cx" Width="150px" /> </telerik:GridBoundColumn> <telerik:GridTemplateColumn HeaderText="Marge quantité Central x"> <HeaderStyle CssClass="th-detail-Cx" Width="150px" /> <ItemTemplate> <asp:Label ID="ToggleMargeQuantXLbl" runat="server" Text='<%# dataBinder.Eval(Container.DataItem,"MARGE3") %>' /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn> <HeaderStyle CssClass="sep no_bg" Width="5px" /> <ItemStyle CssClass="sep no_bg" Width="5px" /> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="BILAN"> <HeaderStyle CssClass="" Width="150px" /> </telerik:GridTemplateColumn> <%--Colonne supplementaire de taille variable afin d'empêcher que le tableau occupe 100% de la largeur disponible--%> <telerik:GridTemplateColumn> <HeaderStyle CssClass="sep no_bg" /> <ItemStyle CssClass="sep no_bg" /> </telerik:GridTemplateColumn> </Columns> </telerik:GridTableView> </DetailTables> <ExpandCollapseColumn Visible="true" ExpandImageUrl="images/expand.gif" CollapseImageUrl="images/collapse.gif" ButtonType="ImageButton" UniqueName="ExpandColumn"> <HeaderStyle CssClass="th-achat" Width="50px" /> <ItemStyle CssClass="first" /> </ExpandCollapseColumn> <Columns> <telerik:GridTemplateColumn UniqueName="SelectColumn" HeaderText="Sélection"> <HeaderStyle CssClass="" Width="50px" /> <ItemTemplate> <asp:CheckBox ID="SelectedChk" runat="server" CausesValidation="true"></asp:CheckBox> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Quantité 12 mois mobiles" SortExpression="QTESTAT"> <HeaderStyle Width="60px" CssClass="" /> <ItemTemplate> <asp:Label ID="QuantiteLbl" runat="server" Text='<%# dataBinder.Eval(Container.DataItem,"QTESTAT") %>' /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="CA mobile Année N" SortExpression="CASTAT"> <HeaderStyle CssClass="" Width="60px" /> <ItemTemplate> <asp:Label ID="CaLbl" runat="server" Text='<%# dataBinder.Eval(Container.DataItem,"CASTAT") %>' /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Marge mobile Année N" SortExpression="MARGSTAT"> <HeaderStyle CssClass="" Width="60px" /> <ItemTemplate> <asp:Label ID="MargeLbl" runat="server" Text='<%# dataBinder.Eval(Container.DataItem,"MARGSTAT") %>' /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="5"> <HeaderStyle Width="3px" /> <ItemStyle CssClass="sep no_bg" Width="3px"></ItemStyle> <ItemTemplate> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Code article" SortExpression="CDART"> <HeaderStyle CssClass="" Width="60px" /> <ItemTemplate> <asp:Label ID="CodeArticleLbl" runat="server" Text='<%# dataBinder.Eval(Container.DataItem,"CDART") %>' /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn HeaderText="Nom <br/>fournisseur" SortExpression="NOMFOUR" DataField="NOMFOUR"> <HeaderStyle CssClass="" Width="100px" /> </telerik:GridBoundColumn> <telerik:GridTemplateColumn HeaderText="Libellé" SortExpression="LIBRED"> <HeaderStyle CssClass="" Width="300px" /> <ItemStyle CssClass="leftalign" /> <ItemTemplate> <asp:Literal ID="LibelleArticleLbl" runat="server" Text='<%# dataBinder.Eval(Container.DataItem,"LIBRED") %>' /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="5"> <HeaderStyle Width="3px" /> <ItemStyle CssClass="sep no_bg" Width="3px"></ItemStyle> <ItemTemplate> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="P.U. Net" SortExpression="PUNETHA"> <HeaderStyle CssClass="th-achat" Width="45px" /> <ItemTemplate> <asp:Label ID="PuNetLbl" runat="server" Text='<%# dataBinder.Eval(Container.DataItem,"PUNETHA") %>' /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="5"> <HeaderStyle Width="3px" /> <ItemStyle CssClass="sep no_bg" Width="3px"></ItemStyle> <ItemTemplate> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Marge unitaire Centravet" SortExpression="MARGEU"> <HeaderStyle CssClass="th-vente" Width="70px" /> <ItemTemplate> <asp:Label ID="MargeUnitCentravetLbl" runat="server" Text='<%# dataBinder.Eval(Container.DataItem,"MARGEU") %>' /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Nouvelle marge Centravet" SortExpression="MARGENW"> <HeaderStyle CssClass="th-vente" Width="77px" /> <ItemTemplate> <asp:Literal ID="NvelleMargeCentravetOldLtr" runat="server" Text='<%# dataBinder.Eval(Container.DataItem,"MARGENW") %>' Visible="false" /> <telerik:RadNumericTextBox ID="NvelleMargeCentravetTxt" runat="server" Text='<%# dataBinder.Eval(Container.DataItem,"MARGENW") %>' Culture="fr-FR" MaxLength="8" MinValue="-99999.999" MaxValue="99999.999" NumberFormat-DecimalDigits="3" Width="60px" /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Marge unitaire Alcyon" SortExpression="MACONCUR1"> <HeaderStyle CssClass="th-detail-Al" Width="62px" /> <ItemTemplate> <asp:Literal ID="MargeAlcyonLbl" runat="server" Text='<%# dataBinder.Eval(Container.DataItem,"MACONCUR1") %>' /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Marge unitaire Coveto" SortExpression="MACONCUR2"> <HeaderStyle CssClass="th-detail-Co" Width="62px" /> <ItemTemplate> <asp:Literal ID="MargeCovetoLbl" runat="server" Text='<%# dataBinder.Eval(Container.DataItem,"MACONCUR2") %>' /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Marge unitaire Central x" SortExpression="MACONCUR3"> <HeaderStyle CssClass="th-detail-Cx" Width="70px" /> <ItemTemplate> <asp:Literal ID="MargeXLbl" runat="server" Text='<%# dataBinder.Eval(Container.DataItem,"MACONCUR3") %>' /> </ItemTemplate> </telerik:GridTemplateColumn> <%--Colonne supplementaire de taille variable afin d'empêcher que le tableau occupe 100% de la largeur disponible--%> <telerik:GridTemplateColumn HeaderText="5"> <HeaderStyle Width="3px" /> <ItemStyle CssClass="sep no_bg" Width="3px"></ItemStyle> <ItemTemplate> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="BILAN"> <HeaderStyle CssClass="" Width="70px" /> <ItemTemplate> <telerik:RadNumericTextBox ID="BilanPrincipal" runat="server" BorderStyle="none" Culture="fr-FR" MaxLength="10" NumberFormat-DecimalDigits="2" Width="80px" BackColor="Transparent" EnabledStyle-HorizontalAlign="Center" ReadOnly="True" /> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> </MasterTableView></telerik:RadGrid> <asp:SqlDataSource ID="DataSource1" runat="server" ConnectionString="......." ProviderName="System.Data.OleDb" SelectCommand="SELECT NOCOMP, CDART, LIBRED, LIBLONG, GTIN, LIBFAM, NOMFOUR, QTESTAT, CASTAT, MARGSTAT, QTESTATP, CASTATP, MARGSTATP, PUNETHA, PHACST, PUVTE, PUVTENW, MARGEU, MARGENW, PUCONCUR1, MACONCUR1, PUCONCUR2, MACONCUR2, PUCONCUR3, MACONCUR3 FROM TARIVETTST.COMPARTI WHERE NOCOMP=?"> <SelectParameters> <asp:Parameter Name="NOCOMP" /> </SelectParameters></asp:SqlDataSource><asp:SqlDataSource ID="DataSource2" runat="server" ConnectionString="....." ProviderName="System.Data.OleDb" SelectCommand="select NOCOMP, CDART, CODEREM, QTE, MARGE, PXREV, TAUX, MARGENW, PXREVNW, QTE1, MARGE1, PXREV1, QTE2, MARGE2, PXREV2, QTE3, MARGE3, PXREV3, DATDEB, DATFIN from TARIVETTST.COMPREM WHERE nocomp=? AND cdart=?" > <SelectParameters> <asp:SessionParameter Name="NOCOMP" SessionField="NOCOMP" Type="String" /> <asp:SessionParameter Name="CDART" SessionField="CDART" Type="String" /> </SelectParameters></asp:SqlDataSource>using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using ERMS.Entities;using ERMS.Services;using System.Data;using Telerik.Web.UI;using Telerik.Web.UI.Calendar;using Telerik.Web.UI.Scheduler;/// <summary>/// Summary description for OpenAccessCustomProvider/// </summary>public class OpenAccessCustomProvider : OpenAccessProviderBase{ public OpenAccessCustomProvider() { // // TODO: Add constructor logic here // } public override void Delete(RadScheduler owner, Appointment appointmentToDelete) { throw new NotImplementedException(); } #region " Declaration " Orders objOrders = new Orders(); OrdersService objOrdersService = new OrdersService(); TList<Orders> objOrdersList = new TList<Orders>(); ViewGetSearchOrdersService objOrderView = new ViewGetSearchOrdersService(); DataSet dsOrderView = new DataSet(); #endregion #region " Variables " Int32 _int_cnt = 0; #endregion public override IEnumerable<Appointment> GetAppointments(RadScheduler owner) { List<Appointment> appList = new List<Appointment>(); DateTime dtEndDate = new DateTime(); DateTime dtStartDate = new DateTime(); dsOrderView = objOrderView.GetPaged("CompanyIDF = " + (new clsPageBase()).SESSION_COMPANYID + "", "OrderDate", 0, int.MaxValue, out _int_cnt).ToDataSet(true); if (dsOrderView != null && dsOrderView.Tables.Count > 0) { for (int i = 0; i < dsOrderView.Tables[0].Rows.Count; i++) { if (!string.IsNullOrEmpty(dsOrderView.Tables[0].Rows[i]["StartDate"].ToString())) { if (string.IsNullOrEmpty(dsOrderView.Tables[0].Rows[i]["StartTime"].ToString()) == false) { dtStartDate = Convert.ToDateTime(Convert.ToDateTime(dsOrderView.Tables[0].Rows[i]["StartDate"]).ToString("MM dd yyyy") + " " + dsOrderView.Tables[0].Rows[i]["StartTime"].ToString()); } } if (!string.IsNullOrEmpty(dsOrderView.Tables[0].Rows[i]["FinishDate"].ToString())) { if (string.IsNullOrEmpty(dsOrderView.Tables[0].Rows[i]["FinishTime"].ToString()) == false) { dtEndDate = Convert.ToDateTime(Convert.ToDateTime(dsOrderView.Tables[0].Rows[i]["FinishDate"]).ToString("MM dd yyyy") + " " + dsOrderView.Tables[0].Rows[i]["FinishTime"].ToString()); } } Appointment newApponitment = new Appointment(); newApponitment.Owner = owner; newApponitment.ID = dsOrderView.Tables[0].Rows[i]["OrderID"].ToString(); newApponitment.Subject = dsOrderView.Tables[0].Rows[i]["Title"].ToString(); newApponitment.Start = dtStartDate; newApponitment.End = dtEndDate; Resource newResource = new Resource(); newResource.Type = "OrderStatus"; newResource.Key = newApponitment.ID; newResource.Text = dsOrderView.Tables[0].Rows[i]["OrderStatus"].ToString(); newApponitment.Resources.Add(newResource); appList.Add(newApponitment); } } return appList; } public override IEnumerable<ResourceType> GetResourceTypes(RadScheduler owner) { ResourceType[] resourceTypes = new ResourceType[1]; resourceTypes[0] = new ResourceType("OrderStatus", false); return resourceTypes; } public override IEnumerable<Resource> GetResourcesByType(RadScheduler owner, string resourceType) { List<Resource> OrderResources = new List<Resource>(); TList<OrderStatus> objOrderStatusList = new TList<OrderStatus>(); foreach (OrderStatus item in (new OrderStatusService()).GetAll()) { Resource newResource = new Resource(); newResource.Type = "OrderStatus"; newResource.Key = item.Id; newResource.Text = item.Status; OrderResources.Add(newResource); } return OrderResources; } public override void Insert(RadScheduler owner, Appointment appointmentToInsert) { throw new NotImplementedException(); } public override void Update(RadScheduler owner, Appointment appointmentToUpdate) { throw new NotImplementedException(); }}<telerik:RadScheduler runat="server" ID="RadScheduler1" Skin="Default" ShowFooter="true" OverflowBehavior="Scroll" SelectedView="MonthView" Height="100%" NumberOfHoveredRows="1" DataKeyField="ID" DataSubjectField="Subject" DataStartField="Start" DataEndField="End"TimelineView-UserSelectable="false" Culture="(Default)" StartInFullTime="true"AllowDelete="false" AllowEdit="false" AllowInsert="false" ShowViewTabs="true"OnAppointmentDataBound="RadScheduler1_AppointmentDataBound" ProviderName="OpenAccessProvider" OnAppointmentCreated="RadScheduler1_AppointmentCreated"> <Localization AdvancedAllDayEvent="All day" /> <AdvancedForm DateFormat="M/d/yyyy" TimeFormat="h:mm tt" /> <AppointmentTemplate> <asp:LinkButton ID="lnkSubject" runat="server"></asp:LinkButton> </AppointmentTemplate></telerik:RadScheduler>protected void RadScheduler1_AppointmentCreated(object sender, AppointmentCreatedEventArgs e) { Label lblRed = (Label)e.Container.FindControl("lblRed"); LinkButton lnkSubject = (LinkButton)e.Container.FindControl("lnkSubject"); lnkSubject.Text = clsGeneral.ShowSingleQuote(e.Appointment.Subject); //lnkSubject.Attributes.Add("onClick", "return DoFilter('" + e.Appointment.ID.ToString() + "','" + e.Appointment.Resources.GetResourceByType("OrderStatus").Text + "');"); lnkSubject.Attributes.Add("onclick", "return DisplayEventInformation(" + e.Appointment.ID.ToString() + " );"); lnkSubject.Attributes.Add("onmouseover", "javascript:ddrivetip('<b>Click here to manage this Event</b>',250);"); lnkSubject.Attributes.Add("onmouseout", "javascript:hideddrivetip();"); e.Appointment.ToolTip = ""; lblRed.Text = e.Appointment.Resources.GetResourceByType("OrderStatus").Text; } protected void RadScheduler1_AppointmentDataBound(object source, SchedulerEventArgs e) { Int64 OrderID = 0; OrderID = Convert.ToInt64(e.Appointment.ID); objOrders = objOrdersService.GetById(OrderID); DateTime dtOrder = Convert.ToDateTime(objOrders.OrderDate); DateTime dtStartOn = Convert.ToDateTime(e.Appointment.Start); DateTime dtToday = DateTime.Now; Int64 days = 0; Int64 days1 = 0; days = clsGeneral.DateDiff(clsGeneral.DateInterval.Hour, dtToday, dtStartOn); days = days / 24; days1 = clsGeneral.DateDiff(clsGeneral.DateInterval.Hour, dtOrder, dtStartOn); days1 = days1 / 24; //For the Highest Priority Order,Consider Today Date and StartUp Date //For the Rush Order,Consider the Order Date to Start Date Difference if (days1 <= 5) { e.Appointment.CssClass = "rsCategoryBlue"; } else { if (days <= 5) { e.Appointment.CssClass = "rsCategoryRed"; } else if (days > 5) { e.Appointment.CssClass = "rsCategoryYellow"; } } }