/// <summary>
    /// 檔案清單版本明細每筆資料綁定事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void gvFILE_VERSION_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
    {
        GridViewRow gr = e.Row;

        gr.Attributes.Add("onmouseover", "this.bkc=this.style.backgroundColor;this.style.backgroundColor='#ccffff'"); // 設定每筆資料在滑鼠移動進去時的背景顏色
        gr.Attributes.Add("onmouseout", "this.style.backgroundColor=this.bkc");                                       // 設定每筆資料在滑鼠移出時的背景色
        if (gr.RowType == DataControlRowType.DataRow)
        {
            DataTable tblItems = gvFILE_VERSION.DataTable;
            DataRow   row      = tblItems.Rows[gr.DataItemIndex];

            KYTTextBox ktxtFileName         = gr.FindControl("ktxtFileName") as KYTTextBox;         // 檔案名稱
            KYTTextBox ktxtMODIFY_TIME      = gr.FindControl("ktxtMODIFY_TIME") as KYTTextBox;      // 最後驗證時間
            KYTTextBox ktxtFILE_VERSION     = gr.FindControl("ktxtFILE_VERSION") as KYTTextBox;     // 版本雜湊值
            KYTTextBox ktxtFILE_SHA         = gr.FindControl("ktxtFILE_SHA") as KYTTextBox;         // 版本雜湊值
            KYTTextBox ktxtFILE_COMPARE_SHA = gr.FindControl("ktxtFILE_COMPARE_SHA") as KYTTextBox; // 比對雜湊值
            gr.BackColor = Color.White;                                                             // 設定底色
            if (!string.IsNullOrWhiteSpace(row["IS_NEWFILE"].ToString()) &&
                (bool)row["IS_NEWFILE"])
            {
                gr.BackColor = Color.PaleGreen;
            }
            else if (!string.IsNullOrWhiteSpace(row["OLDER_FILE_SHA"].ToString()) && // 有更新過檔案
                     row["FILE_SHA"].ToString() != row["OLDER_FILE_SHA"].ToString()) // 更新前後檔案不同
            {
                gr.BackColor = Color.BlueViolet;
            }
            else if (!string.IsNullOrEmpty(row["FILE_COMPARE_SHA"].ToString()) &&
                     row["FILE_SHA"].ToString() != row["FILE_COMPARE_SHA"].ToString()) // 比對後檔案不相同
            {
                gr.BackColor = Color.Crimson;
            }
        }
    }
Beispiel #2
0
    /// <summary>
    /// 取得TextBox物件所能設定的最大寬度
    /// </summary>
    /// <param name="ktxtControl">KYTTextBox物件</param>
    /// <param name="maxCharLength">最大字元長度</param>
    /// <param name="minimumWidth">最小寬度</param>
    /// <param name="fontSize">輸入框內字元大小</param>
    public int getTextBoxWidth(KYTTextBox ktxtControl, int maxCharLength, int minimumWidth, float fontSize = 12.0F)
    {
        string maxlengthStr = ktxtControl.Text.Trim().Length <= maxCharLength?ktxtControl.Text.Trim() : ktxtControl.Text.Trim().Substring(0, maxCharLength);

        System.Drawing.Size size = System.Windows.Forms.TextRenderer.MeasureText(maxlengthStr, new System.Drawing.Font(ktxtControl.TextBox1.Font.Name, fontSize));
        return(size.Width < minimumWidth ? minimumWidth : size.Width);
    }
    protected void gvColumns_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        GridViewRow gr = e.Row;

        if (gr.RowType == DataControlRowType.DataRow)
        {
            DataTable   tblColumns        = gvColumns.DataTable;
            DataRow     row               = tblColumns.Rows[gr.DataItemIndex];
            KYTCheckBox kcbPK             = (KYTCheckBox)gr.FindControl("kcbPK");            // 鍵值
            KYTCheckBox kcbALLOW_NULL     = (KYTCheckBox)gr.FindControl("kcbALLOW_NULL");    // 允許NULL
            KYTTextBox  ktxtCOLUMN_NAME   = (KYTTextBox)gr.FindControl("ktxtCOLUMN_NAME");   // 欄位名稱
            KYTTextBox  ktxtDATA_TYPE     = (KYTTextBox)gr.FindControl("ktxtDATA_TYPE");     // 欄位類型
            KYTTextBox  ktxtDEFAULT_VALUE = (KYTTextBox)gr.FindControl("ktxtDEFAULT_VALUE"); // 預設值
            KYTTextBox  ktxtCOLUMN_DESC   = (KYTTextBox)gr.FindControl("ktxtCOLUMN_DESC");   // 說明
            kcbPK.ViewType             = KYTViewType.Input;
            kcbALLOW_NULL.ViewType     = KYTViewType.Input;
            ktxtCOLUMN_NAME.ViewType   = KYTViewType.Input;
            ktxtDATA_TYPE.ViewType     = KYTViewType.Input;
            ktxtDEFAULT_VALUE.ViewType = KYTViewType.Input;
            ktxtCOLUMN_DESC.ViewType   = KYTViewType.Input;
            kcbPK.Checked         = row["PK"].ToString().ToUpper() == "Y";
            kcbALLOW_NULL.Checked = row["ALLOW_NULL"].ToString().ToUpper() == "Y";
        }
    }
Beispiel #4
0
    protected void lbtnDEL_Click(object sender, EventArgs e)
    {
        LinkButton      _lbtnDEL        = (LinkButton)sender;
        GridViewRow     gr              = _lbtnDEL.NamingContainer as GridViewRow;
        KYTDropDownList kddlFormName    = (KYTDropDownList)gr.FindControl("kddlFormName"); // 表單名稱
        KYTTextBox      ktxtRFC_NAME    = (KYTTextBox)gr.FindControl("ktxtRFC_NAME");      // RFC方法名稱
        KYTTextBox      ktxtDLL_PATH    = (KYTTextBox)gr.FindControl("ktxtDLL_PATH");      // DLL組件路徑
        KYTTextBox      ktxtZTABLE_NAME = (KYTTextBox)gr.FindControl("ktxtZTABLE_NAME");   // 中繼表主表表格名稱

        using (SqlDataAdapter sda = new SqlDataAdapter(@"
                SET NOCOUNT ON;
                DELETE
                  FROM [ZUOF_RFC_MA] 
                 WHERE [FORM_ID] = @FORM_ID 
                   AND [RFC_NAME] = @RFC_NAME 
            ", new DatabaseHelper().Command.Connection.ConnectionString))
            using (DataSet ds = new DataSet())
            {
                sda.SelectCommand.Parameters.AddWithValue("@FORM_ID", kddlFormName.SelectedValue);
                sda.SelectCommand.Parameters.AddWithValue("@RFC_NAME", ktxtRFC_NAME.Text.Trim());
                try
                {
                    sda.Fill(ds);
                    DataTable dtSource = gvForms.DataTable;
                    dtSource.Rows.RemoveAt(gr.DataItemIndex);

                    gvForms.BindDataOnly = true; // 不要收納現在網頁上的內容
                    gvForms.DataSource   = dtSource;
                    gvForms.DataBind();
                }
                catch (Exception ex)
                {
                    KYTUtilLibs.KYTDebugLog.Log(KYTLog.DebugLog.LogLevel.Error, string.Format(@"MAINTAIN_RFC_STATUS_RELATION.lbtnDEL_Click.DELETE.ZUOF_RFC_MA.ERROR::{0}", ex.Message));
                }
            }
    }
Beispiel #5
0
    protected void gvForms_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        GridViewRow gr = e.Row;

        gr.Attributes.Add("onmouseover", "this.bkc=this.style.backgroundColor;this.style.backgroundColor='#ccffff'"); // 設定每筆資料在滑鼠移動進去時的背景顏色
        gr.Attributes.Add("onmouseout", "this.style.backgroundColor=this.bkc");                                       // 設定每筆資料在滑鼠移出時的背景色
        if (gr.RowType == DataControlRowType.DataRow)
        {
            DataTable       tblItems            = gvForms.DataTable;
            DataRow         row                 = tblItems.Rows[gr.DataItemIndex];
            LinkButton      lbtnCOPY            = (LinkButton)gr.FindControl("lbtnCOPY");            // 複製按鈕
            LinkButton      lbtnDEL             = (LinkButton)gr.FindControl("lbtnDEL");             // 刪除按鈕
            KYTDropDownList kddlFormName        = (KYTDropDownList)gr.FindControl("kddlFormName");   // 表單名稱
            KYTTextBox      ktxtRFC_NAME        = (KYTTextBox)gr.FindControl("ktxtRFC_NAME");        // RFC方法名稱
            KYTTextBox      ktxtDLL_FILE_NAME   = (KYTTextBox)gr.FindControl("ktxtDLL_FILE_NAME");   // DLL檔案名稱
            KYTTextBox      ktxtDLL_PATH        = (KYTTextBox)gr.FindControl("ktxtDLL_PATH");        // DLL組件路徑
            KYTTextBox      ktxtRE_PROCESS_NAME = (KYTTextBox)gr.FindControl("ktxtRE_PROCESS_NAME"); // 重送RFC方法名稱
            KYTTextBox      ktxtZTABLE_NAME     = (KYTTextBox)gr.FindControl("ktxtZTABLE_NAME");     // 中繼表主表表格名稱
            HiddenField     hidDBData           = (HiddenField)gr.FindControl("hidDBData");          // 在DB有資料
            hidDBData.Value = row["IS_DBDATA"].ToString() == "Y" ? "Y" : "N";
            if (kddlFormName.DataSource == null)
            {
                kddlFormName.DataSource     = getFORMNAME();
                kddlFormName.DataTextField  = "FORM_NAME";
                kddlFormName.DataValueField = "FORM_ID";
                kddlFormName.DataBind();
            }
            kddlFormName.SelectedValue       = row["FORM_ID"].ToString();
            kddlFormName.DropDownList1.Width = 150;
            if (row["IS_DBDATA"].ToString() == "Y")
            {
                lbtnDEL.OnClientClick = string.Format(@"return confirm('是否要刪除?\n, 表單名稱: {0}, RFC: {1}');",
                                                      kddlFormName.SelectedItem.Text,
                                                      !string.IsNullOrEmpty(ktxtRFC_NAME.Text.Trim()) ? ktxtRFC_NAME.Text.Trim() : "未填寫");
            }
        }
        else if (gr.RowType == DataControlRowType.Footer)
        {
            #region 設定輸入框最大寬度
            int MAX_RFC_NAME_Width         = 0;
            int MAX_DLL_FILE_NAME_Width    = 0;
            int MAX_DLL_PATH_Width         = 0;
            int MAX_RE_PROCESS_NAMEE_Width = 0;
            int MAX_ZTABLE_NAME_Width      = 0;
            foreach (GridViewRow _gr in gvForms.Rows)
            {
                KYTTextBox ktxtRFC_NAME        = (KYTTextBox)_gr.FindControl("ktxtRFC_NAME");        // RFC方法名稱
                KYTTextBox ktxtDLL_FILE_NAME   = (KYTTextBox)_gr.FindControl("ktxtDLL_FILE_NAME");   // DLL檔案名稱
                KYTTextBox ktxtDLL_PATH        = (KYTTextBox)_gr.FindControl("ktxtDLL_PATH");        // DLL組件路徑
                KYTTextBox ktxtRE_PROCESS_NAME = (KYTTextBox)_gr.FindControl("ktxtRE_PROCESS_NAME"); // 重送RFC方法名稱
                KYTTextBox ktxtZTABLE_NAME     = (KYTTextBox)_gr.FindControl("ktxtZTABLE_NAME");     // 中繼表主表表格名稱
                #region 取得最大寬度
                int RFC_NAME_Width = getTextBoxWidth(ktxtRFC_NAME, 30, 50);
                MAX_RFC_NAME_Width = RFC_NAME_Width > MAX_RFC_NAME_Width ? RFC_NAME_Width : MAX_RFC_NAME_Width;

                int DLL_FILE_NAME_Width = getTextBoxWidth(ktxtDLL_FILE_NAME, 15, 50);
                MAX_DLL_FILE_NAME_Width = DLL_FILE_NAME_Width > MAX_DLL_FILE_NAME_Width ? DLL_FILE_NAME_Width : MAX_DLL_FILE_NAME_Width;

                int DLL_PATH_Width = getTextBoxWidth(ktxtDLL_PATH, 50, 50);
                MAX_DLL_PATH_Width = DLL_PATH_Width > MAX_DLL_PATH_Width ? DLL_PATH_Width : MAX_DLL_PATH_Width;

                int RE_PROCESS_NAMEE_Width = getTextBoxWidth(ktxtRE_PROCESS_NAME, 20, 50);
                MAX_RE_PROCESS_NAMEE_Width = RE_PROCESS_NAMEE_Width > MAX_RE_PROCESS_NAMEE_Width ? RE_PROCESS_NAMEE_Width : MAX_RE_PROCESS_NAMEE_Width;

                int ZTABLE_NAME_Width = getTextBoxWidth(ktxtZTABLE_NAME, 25, 50);
                MAX_ZTABLE_NAME_Width = ZTABLE_NAME_Width > MAX_ZTABLE_NAME_Width ? ZTABLE_NAME_Width : MAX_ZTABLE_NAME_Width;
                #endregion 取得最大寬度
            }
            foreach (GridViewRow _gr in gvForms.Rows)
            {
                KYTTextBox ktxtRFC_NAME        = (KYTTextBox)_gr.FindControl("ktxtRFC_NAME");        // RFC方法名稱
                KYTTextBox ktxtDLL_FILE_NAME   = (KYTTextBox)_gr.FindControl("ktxtDLL_FILE_NAME");   // DLL檔案名稱
                KYTTextBox ktxtDLL_PATH        = (KYTTextBox)_gr.FindControl("ktxtDLL_PATH");        // DLL組件路徑
                KYTTextBox ktxtRE_PROCESS_NAME = (KYTTextBox)_gr.FindControl("ktxtRE_PROCESS_NAME"); // 重送RFC方法名稱
                KYTTextBox ktxtZTABLE_NAME     = (KYTTextBox)_gr.FindControl("ktxtZTABLE_NAME");     // 中繼表主表表格名稱
                ktxtRFC_NAME.Width        = MAX_RFC_NAME_Width;
                ktxtDLL_FILE_NAME.Width   = MAX_DLL_FILE_NAME_Width;
                ktxtDLL_PATH.Width        = MAX_DLL_PATH_Width;
                ktxtRE_PROCESS_NAME.Width = MAX_RE_PROCESS_NAMEE_Width;
                ktxtZTABLE_NAME.Width     = MAX_ZTABLE_NAME_Width;
            }
            #endregion 設定輸入框最大寬度
        }
    }