Exemple #1
0
    private DataTable ConvertDT_GV3(string strNo)
    {
        bool IsExist = false;       //是否已經讀取過這個收款單號
        DataTable dtNewLoad = null; //新讀取的資料
        DataTable dtExist = null;   //已經讀取過的立沖關連資料        
        DataTable TempTable = null; //整理過的新讀取資料

        //判斷立沖關連資料Session裡面是否已有資料存在
        if (Session[PageTimeStamp.Value + GridView3.ID] != null)
        {
            dtExist = (DataTable)Session[PageTimeStamp.Value + GridView3.ID];
            for (int i = 0; i < dtExist.Rows.Count; i++)
            {
                if (dtExist.Rows[i]["LINK_NO"].ToString() == strNo)
                {
                    IsExist = true;
                    break;
                }
            }
        }
        //假如還沒有讀這筆收款單號
        if (IsExist == false)
        {
            CAAModel.MaintainAccountRecord BCO = new CAAModel.MaintainAccountRecord(ConntionDB);
            ParameterList.Clear();
            ParameterList.Add(strNo);
            dtNewLoad = BCO.QueryWash(ParameterList);
        }

        if (dtNewLoad != null)
        {
            //把立沖關連資訊的DataTable 轉成適合編輯的DataTable
            TempTable = GV3_DT_SCHEMA();

            //加入比對用的關連資料
            ConvertDT_GV3_REF("1", strNo);

            for (int i = 0; i < dtNewLoad.Rows.Count; i++)
            {
                DataRow dr = TempTable.NewRow();
                dr["SHOW_CUBE_NO"] = dtNewLoad.Rows[i]["SHOW_CUBE_NO"].ToString();
                dr["CUBE_NO"] = dtNewLoad.Rows[i]["CUBE_NO"].ToString();
                dr["CUBE_TYPE"] = dtNewLoad.Rows[i]["CUBE_TYPE"].ToString();
                dr["WASH_NO"] = dtNewLoad.Rows[i]["WASH_NO"].ToString();
                dr["WASH_TYPE"] = dtNewLoad.Rows[i]["WASH_TYPE"].ToString();
                dr["WASH_AMT"] = dtNewLoad.Rows[i]["WASH_AMT"].ToString();
                dr["WASH_DATE"] = dtNewLoad.Rows[i]["WASH_DATE"].ToString();
                dr["DEL_FLAG"] = "0";
                dr["CREATEDATE"] = dtNewLoad.Rows[i]["CREATEDATE"].ToString();
                dr["CREATEUID"] = dtNewLoad.Rows[i]["CREATEUID"].ToString();
                dr["CHANGE"] = "0";
                dr["WASH_STATUS"] = dtNewLoad.Rows[i]["WASH_STATUS"].ToString();
                dr["WASH_STATUS2"] = dtNewLoad.Rows[i]["WASH_STATUS2"].ToString();
                dr["LINK_NO"] = dtNewLoad.Rows[i]["LINK_NO"].ToString();
                dr["LINK_TYPE"] = dtNewLoad.Rows[i]["LINK_TYPE"].ToString();
                dr["SORT_NO"] = dtNewLoad.Rows[i]["SORT_NO"].ToString();
                dr["SOURCE_TYPE"] = dtNewLoad.Rows[i]["SOURCE_TYPE"].ToString();
                dr["CLOSE_FLAG"] = dtNewLoad.Rows[i]["CLOSE_FLAG"].ToString();
                dr["CHECK_DATE"] = "0";
                TempTable.Rows.Add(dr);
            }
        }

        if ((dtExist != null) && (TempTable != null))
        {
            if (TempTable.Rows.Count > 0)
            {
                DataSet ds = new DataSet("MergeDataSet");
                ds.Tables.Add(dtExist.Copy());
                ds.Tables[0].Merge(TempTable);
                ds.AcceptChanges();
                dtExist = ds.Tables[0];
            }
        }
        else if (dtExist == null)
        {
            dtExist = TempTable;
        }

        Session[PageTimeStamp.Value + GridView3.ID] = dtExist;

        //return dtExist; //回傳所有資料



        return DT_Filter(dtExist, "LINK_NO='" + strNo + "' And DEL_FLAG='0'"); //只回傳單筆收款單號的沖帳資料

    }