Beispiel #1
0
    //建立日報表初始數據設定區塊
    private void BindCATEGORY01()
    {

        CGDModel.VDS_CGD38_BCO BCO = new CGDModel.VDS_CGD38_BCO(ConntionDB);
        ParameterList.Clear();
        ParameterList.Add("01");
        DataTable dt = BCO.QueryVDS_CGD_CODE_DETL(ParameterList);


        DataTable TempTable = new DataTable();
        TempTable.Columns.Add(new DataColumn("TITLE"));
        TempTable.Columns.Add(new DataColumn("SCODE"));
        TempTable.Columns.Add(new DataColumn("EXPLAIN"));
        TempTable.Columns.Add(new DataColumn("COLUMN_TYPE"));
        TempTable.Columns.Add(new DataColumn("X"));   //數字or百分比型態
        TempTable.Columns.Add(new DataColumn("Y"));   //數字or百分比型態
        TempTable.Columns.Add(new DataColumn("Z"));   //數字or百分比型態
        TempTable.Columns.Add(new DataColumn("X_T")); //時間型態
        TempTable.Columns.Add(new DataColumn("Y_T")); //時間型態
        TempTable.Columns.Add(new DataColumn("Z_T")); //時間型態
        TempTable.Columns.Add(new DataColumn("X_Value")); //不分型態
        TempTable.Columns.Add(new DataColumn("Y_Value")); //不分型態
        TempTable.Columns.Add(new DataColumn("Z_Value")); //不分型態
        TempTable.Columns.Add(new DataColumn("TOTAL"));
        TempTable.Columns.Add(new DataColumn("TEMP_TIME")); //紀錄理貨起始的最小時間或理貨結束的最大時間

        string strX, strY, strZ;        //儲存數值or百分比
        string strX_T, strY_T, strZ_T;  //儲存時間
        string strX_Value, strY_Value, strZ_Value; //不分型態的都會存
        string strTEMP_TIME;
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            DataRow dr = TempTable.NewRow();
            dr["TITLE"] = dt.Rows[i]["EXPLAIN"].ToString();
            dr["SCODE"] = dt.Rows[i]["SCODE"].ToString();
            dr["EXPLAIN"] = dt.Rows[i]["EXPLAIN"].ToString();
            dr["COLUMN_TYPE"] = dt.Rows[i]["COLUMN_TYPE"].ToString();
            strX = "";
            strY = "";
            strZ = "";
            strX_T = "";
            strY_T = "";
            strZ_T = "";
            strX_Value = "";
            strY_Value = "";
            strZ_Value = "";
            strTEMP_TIME = "";
            //假如是第一次新增要讀入預設值
            if (hdfID.Value == "")
            {
                //B2&B4
                if ((dr["SCODE"].ToString() == "01") || (dr["SCODE"].ToString() == "03"))
                {
                    //V_PICK_DATE     IN  VARCHAR2,
                    //V_PICK_BATCH    IN  VARCHAR2,       
                    ParameterList.Clear();
                    ParameterList.Add(slpPickDate.Text);
                    ParameterList.Add(txtPICK_BATCH.Text);
                    DataTable dtTemp = BCO.GetLineBoxData(ParameterList);
                    if (dtTemp.Rows.Count > 0)
                    {
                        //B2 理貨路線 SCODE='01'
                        if (dr["SCODE"].ToString() == "01")
                        {
                            strX_Value = GetXYZ(dtTemp, "LineCount", "X");
                            strY_Value = GetXYZ(dtTemp, "LineCount", "Y");
                            strZ_Value = GetXYZ(dtTemp, "LineCount", "Z");
                        }

                        //B4 理貨箱數 SCODE='03'
                        if (dr["SCODE"].ToString() == "03")
                        {
                            strX_Value = GetXYZ(dtTemp, "BoxCount", "X");
                            strY_Value = GetXYZ(dtTemp, "BoxCount", "Y");
                            strZ_Value = GetXYZ(dtTemp, "BoxCount", "Z");
                        }
                    }
                }

                //B3 理貨店數 SCODE='02'
                if (dr["SCODE"].ToString() == "02")
                {
                    //V_PICK_DATE      IN  VARCHAR2,
                    //V_PICK_BATCH     IN  VARCHAR2,
                    ParameterList.Clear();
                    ParameterList.Add(slpPickDate.Text);
                    ParameterList.Add(txtPICK_BATCH.Text);
                    DataTable dtTemp = BCO.GetStoreCount(ParameterList);
                    if (dtTemp.Rows.Count > 0)
                    {
                        strX_Value = GetXYZ(dtTemp, "StoreCount", "X");
                        strY_Value = GetXYZ(dtTemp, "StoreCount", "Y");
                        strZ_Value = GetXYZ(dtTemp, "StoreCount", "Z");
                    }
                }

                //B5 工作站數 SCODE='04'
                if (dr["SCODE"].ToString() == "04")
                {
                    //V_DPS_CODE         varchar2,
                    //V_PICK_DATE        varchar2,
                    //V_PICK_BATCH       varchar2,
                    ParameterList.Clear();
                    ParameterList.Add("A");
                    ParameterList.Add(slpPickDate.Text);
                    ParameterList.Add(txtPICK_BATCH.Text);
                    DataTable dtTemp = BCO.GetStationCount(ParameterList);
                    if (dtTemp.Rows.Count > 0)
                    {
                        strX_Value = dtTemp.Rows[0]["StationCount"].ToString();
                        strY_Value = dtTemp.Rows[0]["StationCount"].ToString();
                        strZ_Value = dtTemp.Rows[0]["StationCount"].ToString();
                    }
                }

                //B6 第一箱理貨所需時間(秒) SCODE='09'
                if (dr["SCODE"].ToString() == "09")
                {
                    strX_Value = "3";
                    strY_Value = "3";
                    strZ_Value = "3";
                }

                //B7 品保秤重容許率 SCODE='10'
                if (dr["SCODE"].ToString() == "10")
                {
                    strX_Value = "0.50";
                    strY_Value = "0.50";
                    strZ_Value = "0.50";
                }

            }
            else
            {
                //編輯時,讀取儲存資料
                //N_PID         IN  NUMBER,   
                //V_SCODE       IN varchar2,  
                ParameterList.Clear();
                ParameterList.Add(hdfID.Value);
                ParameterList.Add(DBNull.Value);
                DataTable dtData = BCO.QueryVDS_CGD_DAILY_BASE(ParameterList);
                DataRow[] drFind = dtData.Select("SCODE='" + dr["SCODE"].ToString() + "'");
                if (drFind.Length > 0)
                {
                    strX_Value = drFind[0]["X"].ToString();
                    strY_Value = drFind[0]["Y"].ToString();
                    strZ_Value = drFind[0]["Z"].ToString();
                }
            }

            //如果是數字類型的話 要計算合計欄位
            if (dr["COLUMN_TYPE"].ToString() == "1")
            {
                strX_Value = (strX_Value == "") ? "0" : strX_Value;
                strY_Value = (strY_Value == "") ? "0" : strY_Value;
                strZ_Value = (strZ_Value == "") ? "0" : strZ_Value;
                dr["TOTAL"] = int.Parse(strX_Value) + int.Parse(strY_Value) + int.Parse(strZ_Value);
            }

            //如果是時間類別
            if (dr["COLUMN_TYPE"].ToString() == "2")
            {
                strX_T = strX_Value;
                strY_T = strY_Value;
                strZ_T = strZ_Value;
            }
            else
            {
                strX = strX_Value;
                strY = strY_Value;
                strZ = strZ_Value;
            }

            dr["X"] = strX;
            dr["Y"] = strY;
            dr["Z"] = strZ;
            dr["X_T"] = strX_T;
            dr["Y_T"] = strY_T;
            dr["Z_T"] = strZ_T;
            dr["X_VALUE"] = strX_Value;
            dr["Y_VALUE"] = strY_Value;
            dr["Z_VALUE"] = strZ_Value;
            dr["TEMP_TIME"] = strTEMP_TIME;

            TempTable.Rows.Add(dr);
        }
        DataList1.DataSource = TempTable;
        DataList1.DataBind();
        Session["CGD38_CATEGORY01_" + PageTimeStamp.Value] = TempTable;
    }