2025年4月14日 星期一

V20305K – 子畫面簡單Grid – [V]加入另一SQL的資料至Grid (dt1 --> dt0) - T1C -重設 ds 的筆數

目的: V20305K – 子畫面簡單Grid – [V]加入另一SQL的資料至Grid

處理說明: 1>取得原始SQL 的資料 - ds.dt0
                      DataSet ds = getDataTable(cmd, countSql, false);
                      Tmp_RNK = ds.Tables["T1"].Rows.Count;
                  2>取得額外 SQL 的資料 , 並加入 dt0
                       Tmp_dt1 = myfunc.SqlOpen(Tmp_dt1, Tmp_Sql);
                       Tmp_cnt1 = Tmp_dt1.Rows.Count;
                       for (int j = 0; j < Tmp_cnt1; j++)
                      {                        
                        DataRow dr0 = ds.Tables["T1"].Rows.Add();
                        DataRow dr1 = Tmp_dt1.Rows[j];
                        Tmp_RNK = Tmp_RNK + 1;
                        dr0["RNK"] = Tmp_RNK.ToString();
                        dr0["EIAC"] = dr1["EIAC"].ToString();
                        dr0["EI_LCN"] = dr1["EI_LCN"].ToString();
                      }
                   3>重設 dt0 的筆數
                        ds.Tables["T1C"].Rows[0]["TOTAL"] = Tmp_RNK;


1>*.cs
try
            {
                DataSet ds = getDataTable(cmd, countSql, false);
                Tmp_RNK = ds.Tables["T1"].Rows.Count;
                //若[V]含膠漆料,則找出膠漆料的資料
                if (Tmp_sub_chk_INCCLUE=="true") 
                {
                    Tmp_Sql = " SELECT     LCN   "
                                   + "  FROM       PAP @TLS_245  "
                                   + "  WHERE     PN = " + myfunc.AA("MATERIAL REQUIREMENT")
                                    + "  AND         EFF = 'Y'    "
                                   + "   AND         EIAC = " + myfunc.AA(Tmp_EIAC);
                    Tmp_ROOT_LCN = myfunc.SqlValue(Tmp_Sql);
                    Tmp_Sql= "  SELECT  a.EIAC,a.LCN,a.ALC,  "
                                                    +" a.PN,a.CAGE,a.SPN,a.SCAGE,a.QPA,  "
                                                    +" b.EI_LCN,b.EI_ALC,b.NHA_LCN,b.NHA_ALC,  "
                                                    +" c.TMNOXX,c.WP,c.FIG,c.IND  "
                                    +" FROM    PAP @TLS_245 a,N_EI_UOC @TLS_245 b,(select * from PAPTOMD @TLS_245 where STAT = 'Y') c  "
                                    +" WHERE  a.EIAC = b.EIAC  "
                                    +"  AND      a.LCN = b.LCN  "
                                     +" AND      a.ALC = b.ALC  "
                                     +" AND      a.EIAC = c.EIAC(+)   "
                                     +" AND       a.LCN = c.LCN(+)  "
                                     +" AND       a.ALC = c.ALC(+)   "
                                     +" AND       a.PN = c.PN(+)   "
                                     +" AND       a.EFF = 'Y'   "
                                     +" AND       b.EFF = 'Y'   "
                                     +"  AND      a.LCN like "+ myfunc.AA(Tmp_ROOT_LCN+"%")
                                     +" AND       a.EIAC = "+myfunc.AA(Tmp_EIAC)
                                     +" ORDER   BY a.PN ";
                    Tmp_dt1 = myfunc.SqlOpen(Tmp_dt1, Tmp_Sql);
                    Tmp_cnt1 = Tmp_dt1.Rows.Count;
                    for (int j = 0; j < Tmp_cnt1; j++)
                    {                        
                        DataRow dr0 = ds.Tables["T1"].Rows.Add();
                        DataRow dr1 = Tmp_dt1.Rows[j];
                        Tmp_RNK = Tmp_RNK + 1;
                        dr0["RNK"] = Tmp_RNK.ToString();
                        dr0["EIAC"] = dr1["EIAC"].ToString();
                        dr0["EI_LCN"] = dr1["EI_LCN"].ToString();
                        dr0["EI_ALC"] = dr1["EI_ALC"].ToString();
                        dr0["NHA_LCN"] = dr1["NHA_LCN"].ToString();
                        dr0["NHA_ALC"] = dr1["NHA_ALC"].ToString();
                        dr0["LCN"] = dr1["LCN"].ToString();
                        dr0["ALC"] = dr1["ALC"].ToString();
                        dr0["PN"] = dr1["PN"].ToString();
                        dr0["CAGE"] = dr1["CAGE"].ToString();
                        dr0["TMNOXX"] = dr1["TMNOXX"].ToString();
                        dr0["WP"] = dr1["WP"].ToString();
                        dr0["FIG"] = dr1["FIG"].ToString();
                        dr0["IND"] = dr1["IND"].ToString();                        
                    };
                }

                ds.Tables["T1C"].Rows[0]["TOTAL"] = Tmp_RNK;
                ds.Tables["T1"].Columns.Add("NHA_PN_", typeof(object));           //上層件號
                ds.Tables["T1"].Columns.Add("RQPN_", typeof(object));           //提料件號
                ds.Tables["T1"].Columns.Add("C_NM_", typeof(object));           //物料名稱
                ds.Tables["T1"].Columns.Add("NSN_", typeof(object));           //料號                
                               

                foreach (DataRow row in ds.Tables["T1"].Rows)
                {
                    Tmp_EIAC = row["EIAC"].ToString();
                    Tmp_EI_LCN = row["EI_LCN"].ToString();
                    Tmp_PN = row["PN"].ToString();
                    Tmp_CAGE = row["CAGE"].ToString();

                    Tmp_Sql = " SELECT   NSN  "
                                + "  FROM       SP_NSN@TLS_245 "
                                + "  WHERE    1=1 "
                                + "   AND         PN=" + myfunc.AA(Tmp_PN)
                                + "  AND          CAGE=" + myfunc.AA(Tmp_CAGE)
                                + "   AND         rownum=1  ";
                    Tmp_NSN_ = myfunc.SqlValue(Tmp_Sql);


                    row["RQPN_"] = Tmp_RQPN_;
                    row["NHA_PN_"] = Tmp_NHA_PN_;
                    row["C_NM_"] = Tmp_C_NM_;
                    row["NSN_"] = Tmp_NSN_;                    
                }


沒有留言:

張貼留言