顯示具有 CaluField 標籤的文章。 顯示所有文章
顯示具有 CaluField 標籤的文章。 顯示所有文章

2022年8月23日 星期二

V120402 - - 取得 CaluField - keycode - 取得借閱人姓名 & 借閱人單位 - rename

 目的: 取得 CaluField 欄位值, 自訂 CaluField欄位名稱 - getKeyCode

處理說明: 1>getKeyCode  - 自訂 CaluField欄位名稱,及傳回欄位值 index


1>*.cs

//新增  CaluField 欄位  - [借閱人姓名][借閱人單位]

 Tmp_Sql = " SELECT   EMPLYID  as BRP, EMPLYNM,DEPID  "

                            + "  FROM      HR_EMPLYM ";

getKeyCode("BRP", ref ds, Tmp_Sql, "", "BRP_;BRP__", new int[] { 1,2 });


  //新增  CaluField 欄位  - [管制現況]            

            getKeyCode("STAT", ref ds);

2022年7月29日 星期五

V80C02 - 自訂SQL 取得 CaluField 欄位值

 目的: 自訂SQL 取得 CaluField 欄位值 ,  不用 getKeyCode

 處理說明: 由於 CaluField 欄位不是由單一欄位值取得, CaluField 欄位

                   必需自行組合 SQL , 取得欄位值



1>*.cs 
public dynamic getGridData_M()
{
            
            cmd.CommandText = Tmp_Sql;
            string countSql = " SELECT COUNT(*) as total FROM (" + Tmp_Sql + ")";
            DataSet ds = getDataTable(cmd, countSql);

            //STEP2: ds.Tables["T1"].rows  新增 column欄位值
            //自訂  CaluField 欄位  - [報工工時(ALSHR_)]
            //取得報工工時  -- JCN+DT+EMPLYID+MOSM , 工號+施工日期+ 施工人員+主步序            
            ds.Tables["T1"].Columns.Add("ALSHR_", typeof(object));           //報工工時 ALSHR_
            
            string Tmp_Val = "";  //欄位值 以 ; 分隔
            string Tmp_SAPNO = "",Tmp_DT,Tmp_EMPLYID,Tmp_MOSM;
            string Tmp_ALSHR_;

            foreach(DataRow row in ds.Tables["T1"].Rows)
            {
                Tmp_SAPNO = row["SAPNO"].ToString();
                Tmp_DT = myfunc.DatetoStr(DateTime.Parse(row["DT"].ToString()));
                Tmp_EMPLYID = row["EMPLYID"].ToString();
                Tmp_MOSM = row["MOSM"].ToString();
                //若為一般工單(非 QDR('F') 或  ILIAS工單('V') ), 則 SAP工號+'0000"              \
                if (Tmp_SAPNO.Length > 0)
                {
                    Tmp_SAPNO = myfunc.get_SAPNO(Tmp_SAPNO);                        
                    //自訂 SQL , 取得 CaluField 欄位值 
                    Tmp_Sql = " SELECT  JCN, WORK_ID, round((sum(HOUR_WORK)+sum(HOUR_OT))/60,2)  WCHR  "
                                    + " FROM  "
                                    + "  (  SELECT  JCN, ACT, WC, HOUR_WORK, WORK_ID, HOUR_OT "
                                         + " FROM   HOUR.ALS_HOUR_COMP@ALS_HOUR  "
                                         + " WHERE  JCN = " + myfunc.AA(Tmp_SAPNO)
                                         + " AND       substr(ACT, 1, 1) = " + myfunc.AA(Tmp_MOSM)
                                         + " AND        WORK_ID = " + myfunc.AA(Tmp_EMPLYID)
                                         + " AND        DATA_DATE =" + myfunc.AA(Tmp_DT)
                                         + " UNION  ALL "
                                         + " SELECT  JCN, ACT, WC, HOUR_WORK, WORK_ID, HOUR_OT  "
                                         + "  FROM   HOUR.ALS_HOUR_COMP_HISTORY@ALS_HOUR "
                                         + " WHERE  JCN = " + myfunc.AA(Tmp_SAPNO)
                                         + " AND       substr(ACT, 1, 1) = " + myfunc.AA(Tmp_MOSM)
                                         + " AND        WORK_ID = " + myfunc.AA(Tmp_EMPLYID)
                                         + " AND        DATA_DATE =" + myfunc.AA(Tmp_DT)
                                  + " ) "
                                  + "  GROUP BY  JCN, WORK_ID ";
                    Tmp_Val = myfunc.SqlValue(Tmp_Sql);
                    if (Tmp_Val.Length > 1)
                    {
                        row["ALSHR_"] = myfunc.StrExtract(Tmp_Val, 3);    //報工工時
                    }
                }  // end of   if (Tmp_SAPNO.Length > 0)
            }  // end of  foreach (DataRow row in ds.Tables["T1"].Rows)

            return ds;

}