Bruce Xiao 的程序生活

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

<%@ Page language="c#" Codebehind="pubScoreArea_View.aspx.cs" AutoEventWireup="false" Inherits="KPIS.Scoring.pubScoreArea_View" %>
<%@ Register TagPrefix="iewc" Namespace="Microsoft.Web.UI.WebControls" Assembly="Microsoft.Web.UI.WebControls" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
 <HEAD>
  <title>pubScoreArea_View</title>
  <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
  <meta content="C#" name="CODE_LANGUAGE">
  <meta content="JavaScript" name="vs_defaultClientScript">
  <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
  <LINK href="../CSS/style1.css" type="text/css" rel="stylesheet">
  <script language="javascript" src="../JavaScript/meizz2.js"></script>
  <LINK href="../CSS/style2.css" type="text/css" rel="stylesheet">
  <script language="javascript">
 var bgColorNotSelect = "#ffffff";
 var bgColorSelected = "#fceade";
 var selectedLine = null;
 function SelectLine(trID){
  if (document.getElementById(trID) !=null){
   if (selectedLine==trID){
    document.getElementById(trID).style.backgroundColor = bgColorNotSelect;
   } else {
    if (selectedLine !=null){
     document.getElementById(selectedLine).style.background = bgColorNotSelect;
    }
    document.getElementById(trID).style.backgroundColor = bgColorSelected;
   }
  }
  selectedLine=trID;
 }
 
  </script>
 </HEAD>
 <body MS_POSITIONING="GridLayout">
  <form id="Form1" method="post" runat="server">
   <table class="tblouter" cellSpacing="0" cellPadding="0" width="100%" border="0">
    <tr>
     <td>
      <TABLE class="titletbl" id="Table1" cellSpacing="0" cellPadding="0" width="100%" border="0">
       <TR>
        <td class="title1_L"></td>
        <TD class="td_title1"><asp:label id="lbUseInfo" runat="server" CssClass="f_title"></asp:label></TD>
        <td class="title1_R"></td>
       </TR>
      </TABLE>
     </td>
    </tr>
    <tr>
     <td><iewc:toolbar id="Toolbar1" runat="server" CssClass="toolbar" borderWidth="1px" border="0" DefaultStyle='background:url("../images/toolbar_bg.gif")'>
       <iewc:ToolbarButton Text="Add" ID="ibtnAdd" ImageUrl="../images/NewP.gif" DefaultStyle="border:0px; padding: 2px 0px 2px 20px;"
        HoverStyle="cursor:hand; padding: 2px 0px 2px 20px;" SelectedStyle="border: 0px; padding: 2px 0px 2px 18px;"></iewc:ToolbarButton>
       <iewc:ToolbarButton Text="Refresh" ID="ibtnRefresh" ImageUrl="../images/Refresh.gif" DefaultStyle="border:0px; padding: 2px 0px 2px 20px;"
        HoverStyle="cursor:hand; padding: 2px 0px 2px 20px;" SelectedStyle="border: 0px; padding: 2px 0px 2px 18px;"></iewc:ToolbarButton>
       <iewc:ToolbarButton Text="Back" ID="ibtnBack" ImageUrl="../images/back.gif" DefaultStyle="border:0px; padding: 2px 0px 2px 20px;"
        HoverStyle="cursor:hand; padding: 2px 0px 2px 20px;" SelectedStyle="border: 0px; padding: 2px 0px 2px 18px;"></iewc:ToolbarButton>
      </iewc:toolbar></td>
    </tr>
    <tr>
     <td><span id="span_Header" runat="server">
       <table style="WIDTH: 100%; HEIGHT: 58px" cellSpacing="0" cellPadding="0" border="0">
        <tr>
         <td style="WIDTH: 76px; HEIGHT: 3px"><font color="red">Indicator*:</font></td>
         <td style="WIDTH: 171px; HEIGHT: 3px"><asp:dropdownlist id="ddlIndicator" Runat="server" Width="296px"></asp:dropdownlist></td>
         <td style="WIDTH: 69px; HEIGHT: 3px"><font color="red">Weight(%)*:</font></td>
         <td style="WIDTH: 107px; HEIGHT: 3px"><asp:textbox id="tbWeight" Runat="server" Width="80px">0</asp:textbox></td>
         <td style="WIDTH: 65px; HEIGHT: 3px">Level:</td>
         <td style="HEIGHT: 3px"><asp:dropdownlist id="ddlLevel" Runat="server" Width="88px"></asp:dropdownlist></td>
        </tr>
        <tr>
         <td style="WIDTH: 76px"><font color="red">Scoring By*:</font></td>
         <td><asp:dropdownlist id="ddlScoringBy" Runat="server" Width="147px"></asp:dropdownlist></td>
         <td style="WIDTH: 69px"><font color="red">show Sort*:</font></td>
         <td style="WIDTH: 107px"><asp:textbox id="tbshowSort" Runat="server" Width="80px">0</asp:textbox></td>
         <td>Remark</td>
         <td><asp:textbox id="tbRemark" Runat="server" Width="312px"></asp:textbox></td>
        </tr>
        <tr>
         <td>Valid date<font class="Fred2">*</font>:</td>
         <td><asp:textbox id="tbvalid" runat="server" Width="136px" ></asp:textbox></td>
         <td>Invalid date<font class="Fred2">*</font>:</td>
         <td colspan="3"><asp:textbox id="tbinvalid" runat="server" Width="136px" ></asp:textbox></td>
        </tr>
        <tr>
         <td align="center" colSpan="8"><asp:button id="btnSave" CssClass="btn70" Runat="server" Text="Save"></asp:button><FONT face="新細明體">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT>
          <asp:button id="btnCancel" CssClass="btn70" Runat="server" Text="Cancel"></asp:button></td>
        </tr>
       </table>
      </span>
     </td>
    </tr>
    <TR>
     <td class="pL20"><asp:dropdownlist id="ddlQuery" runat="server" Width="136px">
       <asp:ListItem Value="(all*)" Selected="True">(all*)</asp:ListItem>
       <asp:ListItem Value="irName">Indicator</asp:ListItem>
       <asp:ListItem Value="Level">Level</asp:ListItem>
      </asp:dropdownlist><asp:textbox id="tbQuery" runat="server" Width="136px"></asp:textbox><asp:button id="btnQuery" CssClass="search2" Runat="server" Text="Query"></asp:button></td>
    </TR>
    <TR>
     <TD>
      <table class="tblpage" cellSpacing="0" cellPadding="0" width="100%">
       <tr>
        <td>
         <div>Record Total:
          <asp:label id="LRecords" runat="server" CssClass="fred" Width="20px"></asp:label>Page
          Current:
          <asp:label id="LPage" runat="server" CssClass="fred" Width="10px"></asp:label>/
          <asp:label id="LPages" runat="server" CssClass="fred" Width="10px"></asp:label>Page
         </div>
        </td>
       </tr>
      </table>
      <asp:datagrid id="dgScoreArea" runat="server" ItemStyle-Font-Name="Arial" ItemStyle-Font-Size="9pt"
       HeaderStyle-Font-Name="Arial" HeaderStyle-Font-Size="10pt" width="100%" DataKeyField="saID"
       AutoGenerateColumns="False" BorderWidth="1px" BorderColor="#6F9CC3" AllowPaging="True" PageSize="25"
       AllowSorting="True">
       <AlternatingItemStyle CssClass="ais_1"></AlternatingItemStyle>
       <ItemStyle Font-Size="9pt" Font-Names="Arial" CssClass="is_1"></ItemStyle>
       <HeaderStyle Font-Size="10pt" Font-Names="Arial" CssClass="hs_1"></HeaderStyle>
       <Columns>
        <asp:BoundColumn Visible="False" DataField="saID"></asp:BoundColumn>
        <asp:BoundColumn DataField="irMName" SortExpression="irMName" ReadOnly="True" HeaderText="Indicator"></asp:BoundColumn>
        <asp:TemplateColumn SortExpression="Weight" HeaderText="Weight(%)">
         <ItemTemplate>
          <asp:Label Runat="server" text='<%# Convert.ToString(Convert.ToDouble(DataBinder.Eval(Container.DataItem, "Weight").ToString())*100)+"%" %>' ID=Label2>
          </asp:Label>
         </ItemTemplate>
         <EditItemTemplate>
          <asp:TextBox Runat="server" ID="DGtbWeight" Text='<%# Convert.ToDouble(DataBinder.Eval(Container.DataItem, "Weight").ToString())*100 %>'>
          </asp:TextBox>
         </EditItemTemplate>
        </asp:TemplateColumn>
        <asp:TemplateColumn SortExpression="Level" HeaderText="Level">
         <ItemTemplate>
          <asp:Label Runat=server text='<%# DataBinder.Eval(Container.DataItem, "Level").ToString() %>' ID="Label3">
          </asp:Label>
         </ItemTemplate>
         <EditItemTemplate>
          <asp:DropDownList Runat="server" ID="DGddlLevel" DataSource='<%# GetData(2) %>' SelectedIndex='<%# GetIndex(2,DataBinder.Eval(Container.DataItem, "Level").ToString()) %>'>
          </asp:DropDownList>
         </EditItemTemplate>
        </asp:TemplateColumn>
        <asp:TemplateColumn SortExpression="ScoringBy" HeaderText="Scoring By">
         <ItemTemplate>
          <asp:Label Runat=server text='<%# DataBinder.Eval(Container.DataItem, "mScroingBy").ToString() %>' ID="Label4">
          </asp:Label>
         </ItemTemplate>
         <EditItemTemplate>
          <asp:DropDownList Runat="server" ID="DGddlScoringBy" DataSource='<%# GetData(3) %>' SelectedIndex='<%# GetIndex(3,DataBinder.Eval(Container.DataItem, "ScoringBy").ToString()) %>'>
          </asp:DropDownList>
         </EditItemTemplate>
        </asp:TemplateColumn>
        <asp:TemplateColumn SortExpression="showSort" HeaderText="Show Sort">
         <ItemTemplate>
          <asp:Label Runat="server" text='<%# DataBinder.Eval(Container.DataItem, "showSort").ToString() %>' ID="Label1">
          </asp:Label>
         </ItemTemplate>
         <EditItemTemplate>
          <asp:TextBox Runat="server" ID="DGtbshowSort" Text='<%# DataBinder.Eval(Container.DataItem, "showSort").ToString() %>'>
          </asp:TextBox>
         </EditItemTemplate>
        </asp:TemplateColumn>
        <asp:TemplateColumn SortExpression="ValidDate" HeaderText="ValidDate">
         <ItemTemplate>
          <asp:Label id=Label6 Runat="server" text='<%# String.Format("{0:yyyy-MM-dd}",DataBinder.Eval(Container.DataItem, "ValidDate")) %>'>
          </asp:Label>
         </ItemTemplate>
         <EditItemTemplate>
          <asp:TextBox id=tbValidDate Runat="server" onfocus="setdate(this);" Text='<%# String.Format("{0:yyyy-MM-dd}",DataBinder.Eval(Container.DataItem, "ValidDate")) %>'>
          </asp:TextBox>
         </EditItemTemplate>
        </asp:TemplateColumn>
        <asp:TemplateColumn SortExpression="InvalidDate" HeaderText="InvalidDate">
         <ItemTemplate>
          <asp:Label Runat="server" text='<%# String.Format("{0:yyyy-MM-dd}",DataBinder.Eval(Container.DataItem, "InvalidDate")) %>' ID="Label7">
          </asp:Label>
         </ItemTemplate>
         <EditItemTemplate>
          <asp:TextBox Runat="server" ID="tbInvalidDate" onfocus="setdate(this);" Text='<%# String.Format("{0:yyyy-MM-dd}",DataBinder.Eval(Container.DataItem, "InvalidDate")) %>'>
          </asp:TextBox>
         </EditItemTemplate>
        </asp:TemplateColumn>
        <asp:BoundColumn Visible="False" DataField="ValidDate" SortExpression="ValidDate" HeaderText="ValidDate"
         DataFormatString="{0:yyyy-MM-dd}"></asp:BoundColumn>
        <asp:BoundColumn Visible="False" DataField="InvalidDate" SortExpression="InvalidDate" HeaderText="InvalidDate"
         DataFormatString="{0:yyyy-MM-dd}"></asp:BoundColumn>
        <asp:TemplateColumn SortExpression="Remark" HeaderText="Remark">
         <ItemTemplate>
          <asp:Label Runat="server" text='<%# DataBinder.Eval(Container.DataItem, "Remark").ToString() %>' ID="Label5">
          </asp:Label>
         </ItemTemplate>
         <EditItemTemplate>
          <asp:TextBox Runat="server" ID="DGtbRemark" Text='<%# DataBinder.Eval(Container.DataItem, "Remark").ToString() %>'>
          </asp:TextBox>
         </EditItemTemplate>
        </asp:TemplateColumn>
        <asp:TemplateColumn>
         <ItemStyle Width="80px"></ItemStyle>
         <ItemTemplate>
          <asp:HyperLink id=Select runat="server" Text="Show Detail" NavigateUrl='<%# "pubScoreArea_View.aspx?F_SysCode=" + Request["F_SysCode"] + "&amp;saID=" + DataBinder.Eval(Container.DataItem, "saID") + "&amp;irMID=" + DataBinder.Eval(Container.DataItem, "irMID") + "&amp;pageNO=" + dgScoreArea.CurrentPageIndex %>'>Show Detail</asp:HyperLink>
         </ItemTemplate>
        </asp:TemplateColumn>
        <asp:TemplateColumn>
         <ItemStyle Width="60px"></ItemStyle>
         <ItemTemplate>
          <asp:LinkButton id="lkSetDetail" Runat="server" Text="Set Detail" CommandName="Detail"></asp:LinkButton>
         </ItemTemplate>
        </asp:TemplateColumn>
        <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Update" CancelText="Cancel" EditText="Edit">
         <ItemStyle HorizontalAlign="Center"></ItemStyle>
        </asp:EditCommandColumn>
        <asp:TemplateColumn>
         <ItemStyle Width="40px"></ItemStyle>
         <ItemTemplate>
          <asp:LinkButton id="lkDelete" runat="server" Text="Delete" CommandName="Delete"></asp:LinkButton>
         </ItemTemplate>
        </asp:TemplateColumn>
       </Columns>
       <PagerStyle NextPageText="Next" Font-Size="10pt" Font-Names="Arial" PrevPageText="Previous"
        Position="TopAndBottom"></PagerStyle>
      </asp:datagrid></TD>
    </TR>
    <TR>
     <TD>
      <hr class="hr">
      <asp:label id="lbDetail" runat="server" CssClass="fred2"></asp:label>
      <hr class="hr">
     </TD>
    </TR>
   </table>
  </form>
 </body>
</HTML>


using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace KPIS.Scoring
{
 /// <summary>
 /// pubScoreArea_View 的摘要描述。
 /// </summary>
 public class pubScoreArea_View : System.Web.UI.Page {
  protected System.Web.UI.WebControls.Label lbUseInfo;
  protected Microsoft.Web.UI.WebControls.Toolbar Toolbar1;
  protected System.Web.UI.WebControls.DropDownList ddlQuery;
  protected System.Web.UI.WebControls.TextBox tbQuery;
  protected System.Web.UI.WebControls.Button btnQuery;
  protected System.Web.UI.WebControls.Label LRecords;
  protected System.Web.UI.WebControls.Label LPage;
  protected System.Web.UI.WebControls.Label LPages;
  protected System.Web.UI.WebControls.DataGrid dgScoreArea;
  protected System.Web.UI.HtmlControls.HtmlGenericControl span_Header;
  protected System.Web.UI.WebControls.DropDownList ddlIndicator;
  protected System.Web.UI.WebControls.TextBox tbWeight;
  protected System.Web.UI.WebControls.DropDownList ddlLevel;
  protected System.Web.UI.WebControls.DropDownList ddlScoringBy;
  protected System.Web.UI.WebControls.TextBox tbshowSort;
  protected System.Web.UI.WebControls.Button btnSave;
  protected System.Web.UI.WebControls.Button btnCancel;
  protected System.Web.UI.WebControls.TextBox tbRemark;
  protected System.Web.UI.WebControls.TextBox tbvalid;
  protected System.Web.UI.WebControls.TextBox tbinvalid;
  protected System.Web.UI.WebControls.Label lbDetail;
 
  #region Web Form 設計工具產生的程式碼
  override protected void OnInit(EventArgs e) {
   //
   // CODEGEN: 此為 ASP.NET Web Form 設計工具所需的呼叫。
   //
   InitializeComponent();
   base.OnInit(e);
  }
  
  /// <summary>
  /// 此為設計工具支援所必須的方法 - 請勿使用程式碼編輯器修改
  /// 這個方法的內容。
  /// </summary>
  private void InitializeComponent() {   
   this.Toolbar1.ButtonClick += new System.EventHandler(this.Toolbar1_ButtonClick);
   this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
   this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
   this.btnQuery.Click += new System.EventHandler(this.btnQuery_Click);
   this.dgScoreArea.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgScoreArea_ItemCommand);
   this.dgScoreArea.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.dgScoreArea_PageIndexChanged);
   this.dgScoreArea.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgScoreArea_CancelCommand);
   this.dgScoreArea.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgScoreArea_EditCommand);
   this.dgScoreArea.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.dgScoreArea_SortCommand);
   this.dgScoreArea.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgScoreArea_UpdateCommand);
   this.dgScoreArea.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgScoreArea_DeleteCommand);
   this.dgScoreArea.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.dgScoreArea_ItemDataBound);
   this.Load += new System.EventHandler(this.Page_Load);

  }
  #endregion
  CommClass.PubFunction func = new CommClass.PubFunction();

  public int GetIndex(int Index, string category) {
   ArrayList arr = new ArrayList();
   int i = 0;
   DataSet mydataset = new DataSet();
   DataTable mydatatable = new DataTable();

   switch (Index){
    case 1: // Indicator
     mydataset=func.GetDataTable("Select irMID, case when '"+ Session["Language"] +"' = 'Chinese' then irNameCH else irNameEN end as irName from pubIndicatorBase order by showSort");
     break;
    case 2: // Level
     mydataset=func.GetDataTable("select Item, Remark from pubParameter where Category='productLevel' order by Remark ");
     arr.Add("ALL");
     break;
    case 3: // ScroingBY
     mydataset=func.GetDataTable("select Item, Remark from pubParameter where Category='ScoringBy' order by Remark");
     break;
   }

   mydatatable=mydataset.Tables[0];
   Hashtable statusindex = new Hashtable();

   while (i < mydatatable.Rows.Count) {
    statusindex[mydatatable.Rows[i][0].ToString()] = i;
    i += 1;
   }
   if (!((statusindex[category] == null))) {
    return ((int)(statusindex[category]));
   } else {
    return 0;
   }
  }

  public ArrayList GetData(int Index) {
   ArrayList arr = new ArrayList();
   int i = 0;
   DataSet mydataset = new DataSet();
   DataTable mydatatable = new DataTable();

   switch (Index){
    case 1: // Indicator
     mydataset=func.GetDataTable("Select irMID, case when '"+ Session["Language"] +"' = 'Chinese' then irNameCH else irNameEN end as irName from pubIndicatorBase order by showSort");
     break;
    case 2: // Level
     mydataset=func.GetDataTable("select Item, Remark from pubParameter where Category='productLevel' order by Remark ");
     arr.Add("ALL");
     break;
    case 3: // ScroingBY
     mydataset=func.GetDataTable("select Item, Remark from pubParameter where Category='ScoringBy' order by Remark");
     break;
   }
   mydatatable=mydataset.Tables[0];
   while (i < mydatatable.Rows.Count) {
    arr.Add(mydatatable.Rows[i][0].ToString());
    i += 1;
   }
   return arr;
  }
  
  void dgbind()
  {
   DataSet ds;
   //綁定數據, 并且按照指定條件顯示出來
   if ((IsPostBack==true) && (tbQuery.Text!=""))
   {
    ds=func.GetDataTable("Select *, case when ScoringBy='A' then 'Area' when ScoringBy='R' then 'Ranking' else 'Other' end as mScroingBy, "+
     " case when '"+ Session["Language"] +"' = 'Chinese' then b.irMNameCH else b.irMNameEN end as irMName "+
     " from pubScoreAreaM as a left join pubIndicatorMain as b on a.irMID =b.irMID where  b.irMID in (select irMID from pubIndicatorbase where irID in (" +func.GetIndicatorID(Convert.ToInt32(Session["uID"]),"All")+")) and   ("+getcond()+") ");
   }
   else
   {
    ds=func.GetDataTable("Select *, case when ScoringBy='A' then 'Area' when ScoringBy='R' then 'Ranking' else 'Other' end as mScroingBy, "+
     " case when '"+ Session["Language"] +"' = 'Chinese' then b.irMNameCH else b.irMNameEN end as irMName "+
     " from pubScoreAreaM as a left join pubIndicatorMain as b on a.irMID =b.irMID where datediff(day,getdate(),a.invaliddate)>=0 and datediff(day,getdate(),a.validdate)<=0 and b.irMID in (select irMID from pubIndicatorbase where irID in (" +func.GetIndicatorID(Convert.ToInt32(Session["uID"]),"All")+")) and   ("+getcond()+") ");
   }
   DataView dv;
   dv=ds.Tables[0].DefaultView;
   dv.Sort=ViewState["sortitem"]+" "+ViewState["sortdir"];
   dgScoreArea.DataSource=dv;
   if (dgScoreArea.CurrentPageIndex>=func.GetDGPageCount(ds.Tables[0],dgScoreArea))
   {
    dgScoreArea.CurrentPageIndex=0;
   }
   dgScoreArea.DataBind();
   LRecords.Text = ds.Tables[0].Rows.Count.ToString();
   LPages.Text = dgScoreArea.PageCount.ToString();
   LPage.Text = (dgScoreArea.CurrentPageIndex + 1).ToString();
   if(ds.Tables[0].Rows.Count==0)
   {
    if (IsPostBack)
    {
     Response.Write("<script language=javascript>alert('There is no relational data!');</script>");
     return;
    }
   }
  }

  //獲得查詢條件
  string getcond() {
   string tbstr;
   tbstr="";
   switch(ddlQuery.SelectedIndex) {
    case 0 : 
     tbstr = "1=1";
     break;
    case 1:
     if (tbQuery.Text.Trim() =="")
      tbstr = "1=1";
     else
      tbstr =" (b.irMNameCH like '%"+ tbQuery.Text.Trim() +"%') or (b.irMNameEN like '%" + tbQuery.Text.Trim() +"%')" ;
     break;
    case 2:
     if (tbQuery.Text.Trim() =="")
      tbstr = "1=1";
     else
      tbstr ="Level ='"+ tbQuery.Text.Trim() +"' " ;
     break;
   }
   return tbstr;
  }

  private void Page_Load(object sender, System.EventArgs e) { 
   if (Session["uID"] == null)
   {
    func.Login_Again();//Session 丟失後重新Login
   }
   else
   {
    if (Session["uID"].ToString() =="")
    {
     this.Response.Redirect("../Login.aspx");
    }
   }
   if (!IsPostBack) {
    //獲取幫助信息
    lbUseInfo.Text=func.GetUseInfo("pubScoreArea_View",Session["Language"].ToString());
    this.tbvalid.Attributes.Add("onfocus","setdate(this);");
    this.tbinvalid.Attributes.Add("onfocus","setdate(this);");
    string s= Page.Request.Url.ToString();    
    //設定權限,新增/修改/刪除
    if (Session["LoginRole"].ToString() !="A") {
     int uID =Convert.ToInt32(Session["uID"]);
     string F_SysCode =Request["F_SysCode"].ToString();
     this.Toolbar1.Items.FlatIndexItem(0).Enabled =func.GetMenu(uID,F_SysCode,"Add");
     if (func.GetMenu(uID,F_SysCode,"Delete") ==false) {
      dgScoreArea.Columns[dgScoreArea.Columns.Count-1].Visible =false;
     }
     if (func.GetMenu(uID,F_SysCode,"Edit") ==false) {
      dgScoreArea.Columns[dgScoreArea.Columns.Count-2].Visible =false;
      dgScoreArea.Columns[dgScoreArea.Columns.Count-3].Visible =false;
     }
    }

    tbWeight.Attributes.Add("onKeypress", "var isNS4 = (navigator.appName=='Netscape')?1:0; if(!isNS4){if(event.keyCode < 46 || event.keyCode > 57) event.returnValue = false;}else{if(event.which < 46 || event.which > 57) returnfalse;}");
    tbshowSort.Attributes.Add("onKeypress", "var isNS4 = (navigator.appName=='Netscape')?1:0; if(!isNS4){if(event.keyCode < 48 || event.keyCode > 57) event.returnValue = false;}else{if(event.which < 48 || event.which > 57) returnfalse;}");


    //設定 DataGrid 的當前顯示頁碼
    if (!(Request["pageNO"]==null)){
     dgScoreArea.CurrentPageIndex=Convert.ToInt32(Request["pageNO"].ToString());
    }

    ViewState["sortitem"]="showSort";
    ViewState["sortdir"]="asc";
    dgbind();
    if (!(Request["irMID"]==null)) {
     DataSet ds;
     //顯示對應指標分值區間的明細設定資料
     ds=func.GetDataTable("Select *, case when ScoringBy='A' then 'Area' when ScoringBy='R' then 'Ranking' else 'Other' end as mScroingBy, "+
      " case when '"+ Session["Language"] +"' = 'Chinese' then b.irMNameCH else b.irMNameEN end as irMName "+
      " from pubScoreAreaM as a left join pubIndicatorMain as b on a.irMID =b.irMID where a.irMID=" + Request["irMID"] +" ");
     if (ds.Tables[0].Rows.Count>0) {
      lbDetail.Text=ds.Tables[0].Rows[0]["irMName"].ToString() + " : ";
     }
     ds=func.GetDataTable("select dbo.GetScoreAreaString( " + Request["saID"] + ") as AreaString ");
     if (ds.Tables[0].Rows.Count>0) {
      lbDetail.Text += ds.Tables[0].Rows[0]["AreaString"];
     }
    }

    span_Header.Visible=false;
   }
  }

  private void dgScoreArea_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) {
   LinkButton DelButton= new LinkButton();  
   if ((e.Item.ItemType == ListItemType.AlternatingItem) || (e.Item.ItemType == ListItemType.Item)) {
    e.Item.Attributes.Add("onMouseover", "this.bgColor='#eeeeee'");
    e.Item.Attributes.Add("onmouseout", "this.bgColor='white'");
    e.Item.Attributes.Add("ID","dg_"+e.Item.Cells[0].Text);
    e.Item.Attributes.Add("onclick","SelectLine('dg_"+e.Item.Cells[0].Text+"')");
    e.Item.Attributes.Add("style","cursor:hand");
   }
  }

  private void Toolbar1_ButtonClick(object sender, System.EventArgs e) {
   Microsoft.Web.UI.WebControls.ToolbarItem item = (Microsoft.Web.UI.WebControls.ToolbarItem)sender;
   switch(item.ID) {
    case "ibtnAdd":
     func.FillDDL(ddlIndicator,"Select irMID, case when '"+ Session["Language"] +"' = 'Chinese' then irMNameCH else irMNameEN end as irMName from pubIndicatorMain where datediff(day,getdate(),invaliddate)>=0 and datediff(day,getdate(),validdate)<=0 and ScoringShow =1  order by irBigType desc, showsort","irMName","irMID");
     func.FillDDL(ddlLevel,"select Item,Remark from pubParameter where Category='productLevel' order by Remark","Remark","Item");
     func.FillDDL2(ddlLevel,"ALL","ALL","T");
     func.FillDDL(ddlScoringBy,"select Item,Remark from pubParameter where Category='ScoringBy' order by Remark", "Remark", "Item");
     tbRemark.Text="";
     span_Header.Visible=true;
     break;
    case "ibtnRefresh":
     dgbind();
     break;
   }
  }

  private void dgScoreArea_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) {
   int ID;
   ID = (int)dgScoreArea.DataKeys[e.Item.ItemIndex];
   if (func.ExecuteSQL("Delete pubScoreAreaM where saID=" + ID)==false) {
    Response.Write("<script language=javascript>alert('Delete formula fail!');</script>");
    return;
   }
   else {
    Response.Write("<script language=javascript>alert('Delete OK!');</script>");
    dgbind();
    return;
   }
  }

  private void dgScoreArea_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e) {
   func.DGPageChange(dgScoreArea, e);
   dgbind(); 
  }

  private void dgScoreArea_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e) {
   string sortitem=e.SortExpression;
   if (ViewState["sortitem"].ToString()==sortitem) {
    if (ViewState["sortdir"].ToString()=="asc") {
     ViewState["sortdir"]="desc";
    }
    else {
     ViewState["sortdir"]="asc";
    }
   }
   else
    ViewState["sortitem"]=sortitem; 
   dgbind();
  }

  private void btnQuery_Click(object sender, System.EventArgs e) {
   dgbind();
  }

  private void btnCancel_Click(object sender, System.EventArgs e) {
   span_Header.Visible=false;
  }

  private void btnSave_Click(object sender, System.EventArgs e) {
   DataSet ds = new DataSet();
   if (func.IsNumeric(tbWeight.Text)==false || func.IsNumeric(tbshowSort.Text)==false){
    Response.Write("<script language=javascript>alert('Error data type or enter null value of Weight and showSort!');</script>");
    return;
   }
   if (Convert.ToDecimal(tbWeight.Text) <=0 || Convert.ToDecimal(tbWeight.Text)>100){
    Response.Write("<script language=javascript>alert('Weight must be above 0 and less than 100!');</script>");
    return;
   }
   //先判斷資料庫中是否已經存在此資料, 若有則不保存, 否則保存
   if (ddlLevel.SelectedValue=="ALL"){
    ds= func.GetDataTable("Select count(*) as cs from pubScoreAreaM where irMID=" + ddlIndicator.SelectedValue +" and Level is NULL and ScoringBy='" + ddlScoringBy.SelectedValue +"' and ValidDate ='"+this.tbvalid.Text+"' and InvalidDate ='"+this.tbinvalid.Text+"' ");
   }else{
    ds= func.GetDataTable("Select count(*) as cs from pubScoreAreaM where irMID=" + ddlIndicator.SelectedValue +" and Level= '"+ ddlLevel.SelectedValue +"' and ScoringBy='" + ddlScoringBy.SelectedValue +"' and ValidDate ='"+this.tbvalid.Text+"' and InvalidDate ='"+this.tbinvalid.Text+"'");
   }
   if ((int)ds.Tables[0].Rows[0]["cs"]==0){
    if (func.ExecuteSQL("Insert into pubScoreAreaM (irMID, Weight, Level, ScoringBy, showSort, Remark, CreateBy,ValidDate) values (" + ddlIndicator.SelectedValue +","+ tbWeight.Text +"/100.0,case when '"+ ddlLevel.SelectedValue +"'='ALL' then NULL else '"+ ddlLevel.SelectedValue +"' end, '"+ ddlScoringBy.SelectedValue +"',"+tbshowSort.Text+",'"+ tbRemark.Text +"', '"+ Session["LoginID"].ToString() +"','"+this.tbvalid.Text+"')")==false){
     Response.Write("<script language=javascript>alert('Save data error!');</script>");
    }else{
     Response.Write("<script language=javascript>alert('Save OK!');</script>");
     tbWeight.Text="0";
     tbshowSort.Text="0";
     dgbind();
     return;
    }
   }else{
    Response.Write("<script language=javascript>alert('Already exist this data!');</script>");
    return;
   }
  }

  private void dgScoreArea_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) {
   //找到要更新資料行的ID
   int saID=(int)dgScoreArea.DataKeys[e.Item.ItemIndex];
   int irMID=func.GetID("saID=" + saID, "pubScoreAreaM", "irMID");

   //找出更新之後的值
   DropDownList level=(DropDownList)(dgScoreArea.Items[e.Item.ItemIndex].FindControl("DGddlLevel"));
   DropDownList scoringby=(DropDownList)(dgScoreArea.Items[e.Item.ItemIndex].FindControl("DGddlScoringBy"));
   TextBox weight=(TextBox)(dgScoreArea.Items[e.Item.ItemIndex].FindControl("DGtbWeight"));
   TextBox showsort=(TextBox)(dgScoreArea.Items[e.Item.ItemIndex].FindControl("DGtbshowSort"));
   TextBox ValidDate =(TextBox)(dgScoreArea.Items[e.Item.ItemIndex].FindControl("tbValidDate"));
   TextBox InvalidDate =(TextBox)(dgScoreArea.Items[e.Item.ItemIndex].FindControl("tbInvalidDate"));
   TextBox remark=(TextBox)(dgScoreArea.Items[e.Item.ItemIndex].FindControl("DGtbRemark"));
   
   //資料校驗, Weight 和 ShowSort 不能為空
   if ((func.IsNumeric(weight.Text)==false) || (func.IsNumeric(showsort.Text)==false)){
    Response.Write("<script language=javascript>alert('Weight and showSort can not allow NULL!');</script>");
    return;
   }else{
    DataSet ds = new DataSet();
    //先判斷資料庫中是否已經存在此資料, 若有則不保存, 否則保存
    if (level.SelectedValue=="ALL"){
     ds= func.GetDataTable("Select count(*) as cs from pubScoreAreaM where irMID=" + irMID +" and Level is NULL and ScoringBy='" + scoringby.SelectedValue +"' and ValidDate ='"+ValidDate.Text+"' and InvalidDate ='"+InvalidDate.Text+"' ");
    }else{
     ds= func.GetDataTable("Select count(*) as cs from pubScoreAreaM where irMID=" + irMID +" and Level= '"+ level.SelectedValue +"' and ScoringBy='" + scoringby.SelectedValue +"' and ValidDate ='"+ValidDate.Text+"' and InvalidDate ='"+InvalidDate.Text+"' ");
    }
    if (((int)ds.Tables[0].Rows[0]["cs"]==1) || ((int)ds.Tables[0].Rows[0]["cs"]==0) ) {
     //更新資料
     if (func.ExecuteSQL("update pubScoreAreaM set Weight="+ weight.Text +"/100.0,showSort="+ showsort.Text +", Level=case when '"+ level.SelectedValue +"'='ALL' then NULL else '"+ level.SelectedValue +"' end, ScoringBy='" + scoringby.SelectedValue +"',Remark='"+ remark.Text +"', ModifyBy='" + Session["LoginID"].ToString() +"', ModifyTime=getdate() where saID="+ saID)==false){
      Response.Write("<script language=javascript>alert('update data error!');</script>");
      return;
     }else {
      Response.Write("<script language=javascript>alert('update OK!');</script>");
     }
    }else{
     Response.Write("<script language=javascript>alert('Already exist this data!');</script>");
     return;
    }
   }
   dgScoreArea.EditItemIndex = -1;
   dgbind();
   dgScoreArea.Columns[dgScoreArea.Columns.Count-1].Visible =true;
   dgScoreArea.Columns[dgScoreArea.Columns.Count-3].Visible =true;
   dgScoreArea.Columns[dgScoreArea.Columns.Count-4].Visible=true;
  }

  private void dgScoreArea_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) {
   dgScoreArea.EditItemIndex=e.Item.ItemIndex;
   dgbind();
   dgScoreArea.Columns[dgScoreArea.Columns.Count-1].Visible =false;
   dgScoreArea.Columns[dgScoreArea.Columns.Count-3].Visible =false;
   dgScoreArea.Columns[dgScoreArea.Columns.Count-4].Visible=false;

  }

  private void dgScoreArea_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) {
   dgScoreArea.EditItemIndex=-1;
   dgbind();
   dgScoreArea.Columns[dgScoreArea.Columns.Count-1].Visible =true;
   dgScoreArea.Columns[dgScoreArea.Columns.Count-3].Visible =true;
   dgScoreArea.Columns[dgScoreArea.Columns.Count-4].Visible=true;
  }

  private void dgScoreArea_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) {
   if (e.CommandName=="Detail"){
    int ID;
    ID = (int)this.dgScoreArea.DataKeys[e.Item.ItemIndex];
    Response.Write("<script language=javascript>var openWnd; openWnd=window.open('pubScoreArea_Set.aspx?saID=" + ID + "&state=Edit','ScoreSet','height=500,width=700,status=no,toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes',null);" +
     " openWnd.moveTo((parseInt(screen.width)-700)/2,(parseInt(screen.height)-500)/2);</script>"); 
   }
  }

 }
}

posted on 2007-01-02 16:32  Bruce Xiao  阅读(404)  评论(0编辑  收藏  举报