Пример #1
0
        /// <summary>
        /// 프로젝트 리스트를 조회한다.
        /// </summary>
        private void QrySectionList()
        {
            CHeader Header = new CHeader(UserInfo.UserID, "A0110A", "XtraQrySection", "00000", "");

            DataTable data = new DataTable("section_list");

            DataColumn colSectionGroupCd = new DataColumn("section_group_cd", typeof(string));
            DataColumn colSectionGroupNm = new DataColumn("section_group_nm", typeof(string));

            data.Columns.Add(colSectionGroupCd);
            data.Columns.Add(colSectionGroupNm);


            DataRow Dr = data.NewRow();

            Dr["section_group_cd"] = edtGroupCd.Text;
            Dr["section_group_nm"] = edtGroupNm.Text;


            data.Rows.Add(Dr);

            CParam Param = new CParam(data);

            DataSet ds = CTransfer.QryData(Header, Param.GetDataSet());

            DataTable Dt = ds.Tables["eror_dt"];

            itemErrCd.Caption  = Dt.Rows[0]["err_cd"].ToString();
            itemErrMsg.Caption = Dt.Rows[0]["err_msg"].ToString();

            DataTable Data = ds.Tables["Table"];

            gridControl1.DataSource = Data;
        }
Пример #2
0
        /// <summary>
        /// 자재및 장비 TreeList 정보를 조회한다.
        /// </summary>
        private void QryData()
        {
            CHeader Header = new CHeader(UserInfo.UserID, "A0111D", "XtraQryProject", "00000", "");

            DataTable data = new DataTable("item_list");

            DataColumn colItemParent = new DataColumn("item_parent", typeof(string));


            data.Columns.Add(colItemParent);

            DataRow Dr = data.NewRow();

            Dr["item_parent"] = "test";


            data.Rows.Add(Dr);

            CParam Param = new CParam(data);

            DataSet ds = CTransfer.QryData(Header, Param.GetDataSet());

            DataTable Dt = ds.Tables["eror_dt"];

            itemErrCd.Caption  = Dt.Rows[0]["err_cd"].ToString();
            itemErrMsg.Caption = Dt.Rows[0]["err_msg"].ToString();

            DataTable Data = ds.Tables["Table"];


            treeList1.DataSource = Data;
        }
Пример #3
0
        private void QrySectionList()
        {
            try
            {
                CHeader Header = new CHeader(UserInfo, "A0120A", "XtraQrySection", "00000", "");

                DataTable data = new DataTable("section_list");

                DataColumn colSectionGroupCd = new DataColumn("section_group_cd", typeof(string));
                data.Columns.Add(colSectionGroupCd);

                DataRow Dr = data.NewRow();
                Dr["section_group_cd"] = lookupGroup.GetColumnValue("section_group_cd");

                data.Rows.Add(Dr);

                CParam Param = new CParam(data);

                DataSet ds = CTransfer.QryData(Header, Param.GetDataSet());

                DataTable Dt = ds.Tables["eror_dt"];
                itemErrCd.Caption  = Dt.Rows[0]["err_cd"].ToString();
                itemErrMsg.Caption = Dt.Rows[0]["err_msg"].ToString();

                DataTable Data = ds.Tables["Table"];
                gridControl1.DataSource = Data;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #4
0
        private void BtnQryManhole_Click(object sender, EventArgs e)
        {
            CHeader Header = new CHeader(UserInfo.UserID, "A1002A", "XtraPLH", "00000", "");



            DataTable  Data         = new DataTable("PlhInfo");
            DataColumn colProjectCd = new DataColumn("project_cd", typeof(string));


            Data.Columns.Add(colProjectCd);



            DataRow Dr = Data.NewRow();

            Dr["project_cd"] = ProjectInfo.ProjectCD;

            Data.Rows.Add(Dr);

            //Project 정보를 담은 ...
            CParam Param = new CParam(Data);


            using (DataSet ds = CTransfer.QryData(Header, Param.GetDataSet()))
            {
                DataTable Dt = ds.Tables["eror_dt"];
                itemErrCd.Caption  = Dt.Rows[0]["err_cd"].ToString();
                itemErrMsg.Caption = Dt.Rows[0]["err_msg"].ToString();

                DataTable rcvData = ds.Tables["Table"];
                gridControl1.DataSource = rcvData;
            }
        }
Пример #5
0
        /// <summary>
        /// 대분류 정보를 lookup Editor에 출력
        /// </summary>
        private void LoadMngrGb()
        {
            CHeader Header = new CHeader(UserInfo.UserID, "A0111A", "XtraMngrTp", "00000", "");

            DataTable data = new DataTable("section_list");

            DataColumn colSectionGroupNm = new DataColumn("mngr_gb_nm", typeof(string));

            data.Columns.Add(colSectionGroupNm);


            DataRow Dr = data.NewRow();

            Dr["mngr_gb_nm"] = "";

            data.Rows.Add(Dr);

            CParam Param = new CParam(data);

            DataSet ds = CTransfer.QryData(Header, Param.GetDataSet());

            DataTable Dt = ds.Tables["eror_dt"];

            itemErrCd.Caption  = Dt.Rows[0]["err_cd"].ToString();
            itemErrMsg.Caption = Dt.Rows[0]["err_msg"].ToString();

            DataTable Data = ds.Tables["Table"];

            lookUpMngrGb.Properties.DataSource = Data;
        }
Пример #6
0
        private void AddTreeNode(string strTreeNode)
        {
            try
            {
                CHeader Header = new CHeader(UserInfo.UserID, "A0111F", "XtraItemDlg", "00000", "");



                DataTable data = new DataTable("item_list");

                DataColumn colItemParent = new DataColumn("parent", typeof(string));
                DataColumn colItemitem   = new DataColumn("item_name", typeof(string));


                data.Columns.Add(colItemParent);
                data.Columns.Add(colItemitem);

                DataRow Dr = data.NewRow();
                Dr["parent"]    = treeList1.FocusedNode["item_key"].ToString();
                Dr["item_name"] = strTreeNode;



                data.Rows.Add(Dr);

                CParam Param = new CParam(data);

                DataSet ds = CTransfer.QryData(Header, Param.GetDataSet());

                DataTable Dt = ds.Tables["eror_dt"];
                itemErrCd.Caption  = Dt.Rows[0]["err_cd"].ToString();
                itemErrMsg.Caption = Dt.Rows[0]["err_msg"].ToString();

                if (Dt.Rows[0]["err_cd"].ToString() != "00000")
                {
                    XtraMessageBox.Show("서버 저장중 오류가 발생했습니다.재 조회후 다시 처리 합시다.");

                    return;
                }
                else
                {
                    /*
                     * 정상처리 된 후 TreeNode를 추가한다.
                     */

                    QryData();
                }
            }
            catch (Exception err)
            {
                string strMsg = string.Format("{0}[{1}]", "서버 저장중 오류가 발생했습니다. 재 조회후 다시 처리 합시다.", err.Message.ToString());

                XtraMessageBox.Show(strMsg);

                return;
            }
        }
Пример #7
0
 private bool PrepairModule(ref byte[] data)
 {
     checked
     {
         try
         {
             int    pModule = WorldServiceLocator._WS_Warden.ByteArrPtr(ref data);
             object?obj     = Marshal.PtrToStructure(new IntPtr(pModule), typeof(CHeader));
             Header       = ((obj != null) ? ((CHeader)obj) : default);
Пример #8
0
        /// <summary>
        /// 신규 중분류를 등록한다.
        /// </summary>
        private void InsertSection()
        {
            try
            {
                CHeader Header = new CHeader(UserInfo.UserID, "A0113B", "XtraMngrCd", "00000", "");

                DataTable data = new DataTable("section_list");

                DataColumn colSectionMngrGb   = new DataColumn("mngr_gb", typeof(Int32));
                DataColumn colSectionMngrTp   = new DataColumn("mngr_tp", typeof(Int32));
                DataColumn colSectionMngrCdNm = new DataColumn("mngr_cd_nm", typeof(string));
                DataColumn colSectionUnitTp   = new DataColumn("unit_tp", typeof(string));
                DataColumn colSectionUnit     = new DataColumn("unit", typeof(double));


                data.Columns.Add(colSectionMngrGb);
                data.Columns.Add(colSectionMngrTp);
                data.Columns.Add(colSectionMngrCdNm);
                data.Columns.Add(colSectionUnitTp);
                data.Columns.Add(colSectionUnit);

                DataRow Dr = data.NewRow();

                //Dr.ItemArray = gridView1.GetFocusedDataRow().ItemArray.Clone() as object[];
                Dr["mngr_gb"]    = gridView1.GetFocusedDataRow()["mngr_gb"];
                Dr["mngr_tp"]    = gridView1.GetFocusedDataRow()["mngr_tp"];
                Dr["mngr_cd_nm"] = gridView1.GetFocusedDataRow()["mngr_cd_nm"];
                Dr["unit_tp"]    = gridView1.GetFocusedDataRow()["unit_tp"];
                Dr["unit"]       = gridView1.GetFocusedDataRow()["unit"];

                data.Rows.Add(Dr);

                CParam Param = new CParam(data);

                DataSet ds = CTransfer.InsertData(Header, Param.GetDataSet());

                DataTable Dt = ds.Tables["eror_dt"];
                itemErrCd.Caption  = Dt.Rows[0]["err_cd"].ToString();
                itemErrMsg.Caption = Dt.Rows[0]["err_msg"].ToString();

                if (itemErrCd.Caption == "00000")
                {
                    //DataTable dt1 = ds.Tables["Table"];
                    //edtGroupCd.Text = dt1.Rows[0]["cnt"].ToString();

                    QrySectionList();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            //DataTable Data = ds.Tables["Table"];
            //gridControl1.DataSource = Data;
        }
Пример #9
0
        private void btnSavePipeTool_Click(object sender, EventArgs e)
        {
            if (m_strFileName.Trim() == "")
            {
                XtraMessageBox.Show("PIPE TOOLS 파일이 없습니다.");
                return;
            }

            CPipetools pipetoolsData = new CPipetools(ProjectInfo.ProjectCD, Path.GetFileNameWithoutExtension(m_strFileName), sheetPipeTools);

            pipetoolsData.LoadDataTools();



            try
            {
                pipetoolsData.m_dt_line.TableName = "pipetool";
                pipetoolsData.m_dt_지장물.TableName  = "pipetool_g";
                pipetoolsData.m_dt_포장.TableName   = "pipetool_pavement";
            }
            catch (Exception ex)
            {
                itemErrCd.Caption  = "ERROR";
                itemErrMsg.Caption = ex.Message;

                throw;
            }



            CHeader Header = new CHeader(UserInfo.UserID, "A1301A", "XtraPlH", "00000", "");



            //Project 정보를 담은 ...
            CParam Param = new CParam(pipetoolsData.m_dt_line);

            Param.AddDataTable(pipetoolsData.m_dt_지장물);
            Param.AddDataTable(pipetoolsData.m_dt_포장);


            using (DataSet ds = CTransfer.InsertData(Header, Param.GetDataSet()))
            {
                DataTable Dt = ds.Tables["eror_dt"];
                itemErrCd.Caption  = Dt.Rows[0]["err_cd"].ToString();
                itemErrMsg.Caption = Dt.Rows[0]["err_msg"].ToString();


                if (Dt.Rows[0]["err_cd"].ToString() == "00000")
                {
                    QryMaxerInput();
                }
            }
        }
Пример #10
0
        private void LoadMngrTp()
        {
            if (lookUpMngrGb.Properties.DataSource is null)
            {
                itemErrCd.Caption  = "ERROR";
                itemErrMsg.Caption = "대분류 선택을 확인하세요 (null)";

                return;
            }

            if (lookUpMngrGb.Text == "NO DATA")
            {
                itemErrCd.Caption  = "ERROR";
                itemErrMsg.Caption = "대분류 선택을 확인하세요 (no data)";


                return;
            }



            CHeader Header = new CHeader(UserInfo.UserID, "A0112A", "XtraMngrCd", "00000", "");

            DataTable data = new DataTable("section_list");

            DataColumn colMngrGb   = new DataColumn("mngr_gb", typeof(Int32));
            DataColumn colMngrTpNm = new DataColumn("mngr_tp_nm", typeof(string));

            data.Columns.Add(colMngrGb);
            data.Columns.Add(colMngrTpNm);


            DataRow Dr = data.NewRow();

            Dr["mngr_gb"]    = Convert.ToInt32(lookUpMngrGb.GetColumnValue("mngr_gb").ToString());
            Dr["mngr_tp_nm"] = "";

            data.Rows.Add(Dr);

            CParam Param = new CParam(data);

            DataSet ds = CTransfer.QryData(Header, Param.GetDataSet());

            DataTable Dt = ds.Tables["eror_dt"];

            itemErrCd.Caption  = Dt.Rows[0]["err_cd"].ToString();
            itemErrMsg.Caption = Dt.Rows[0]["err_msg"].ToString();

            DataTable Data = ds.Tables["Table"];

            lookUpMngrTp.Properties.DataSource = Data;
        }
Пример #11
0
        private void InsertSection()
        {
            try
            {
                CHeader Header = new CHeader(UserInfo.UserID, "A0110B", "XtraQrySection", "00000", "");

                DataTable data = new DataTable("section_list");

                DataColumn colSectionGroupCd = new DataColumn("section_group_cd", typeof(string));
                DataColumn colSectionGroupNm = new DataColumn("section_group_nm", typeof(string));

                data.Columns.Add(colSectionGroupCd);
                data.Columns.Add(colSectionGroupNm);


                DataRow Dr = data.NewRow();

                Dr.ItemArray = gridView1.GetFocusedDataRow().ItemArray.Clone() as object[];

                data.Rows.Add(Dr);

                CParam Param = new CParam(data);

                DataSet ds = CTransfer.InsertData(Header, Param.GetDataSet());

                DataTable Dt = ds.Tables["eror_dt"];
                itemErrCd.Caption  = Dt.Rows[0]["err_cd"].ToString();
                itemErrMsg.Caption = Dt.Rows[0]["err_msg"].ToString();

                if (itemErrCd.Caption == "00000")
                {
                    DataTable dt1 = ds.Tables["Table"];
                    edtGroupCd.Text = dt1.Rows[0]["cnt"].ToString();

                    QrySectionList();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            //DataTable Data = ds.Tables["Table"];
            //gridControl1.DataSource = Data;
        }
Пример #12
0
        /// <summary>
        /// 프로젝트 리스트를 조회한다.
        /// </summary>
        private void QrySectionList()
        {
            try
            {
                CHeader Header = new CHeader(UserInfo.UserID, "A0113A", "XtraMngrCd", "00000", "");

                DataTable data = new DataTable("section_list");

                DataColumn colMngrGb   = new DataColumn("mngr_gb", typeof(Int32));
                DataColumn colMngrTp   = new DataColumn("mngr_tp", typeof(Int32));
                DataColumn colMngrCdNm = new DataColumn("mngr_cd_nm", typeof(string));

                data.Columns.Add(colMngrGb);
                data.Columns.Add(colMngrTp);
                data.Columns.Add(colMngrCdNm);


                DataRow Dr = data.NewRow();
                Dr["mngr_gb"]    = Convert.ToInt32(lookUpMngrGb.GetColumnValue("mngr_gb").ToString());
                Dr["mngr_tp"]    = Convert.ToInt32(lookUpMngrTp.GetColumnValue("mngr_tp").ToString());
                Dr["mngr_cd_nm"] = edtMngrCdNm.Text;

                data.Rows.Add(Dr);

                CParam Param = new CParam(data);

                DataSet ds = CTransfer.QryData(Header, Param.GetDataSet());

                DataTable Dt = ds.Tables["eror_dt"];
                itemErrCd.Caption  = Dt.Rows[0]["err_cd"].ToString();
                itemErrMsg.Caption = Dt.Rows[0]["err_msg"].ToString();

                DataTable Data = ds.Tables["Table"];
                gridControl1.DataSource = Data;
            }
            catch (Exception ex)
            {
                itemErrCd.Caption  = "ERROR";
                itemErrMsg.Caption = ex.Message;
            }
        }
Пример #13
0
        private void QryMassCalc()
        {
            if (xtraTabControl2.SelectedTabPage.Text == "토적표")
            {
                CHeader Header = new CHeader(UserInfo.UserID, "A1003A", "XtraPLH", "00000", "");



                DataTable  Data         = new DataTable("PlhInfo");
                DataColumn colProjectCd = new DataColumn("project_cd", typeof(string));


                Data.Columns.Add(colProjectCd);



                DataRow Dr = Data.NewRow();
                Dr["project_cd"] = ProjectInfo.ProjectCD;

                Data.Rows.Add(Dr);

                //Project 정보를 담은 ...
                CParam Param = new CParam(Data);


                using (DataSet ds = CTransfer.QryData(Header, Param.GetDataSet()))
                {
                    DataTable Dt = ds.Tables["eror_dt"];
                    itemErrCd.Caption  = Dt.Rows[0]["err_cd"].ToString();
                    itemErrMsg.Caption = Dt.Rows[0]["err_msg"].ToString();

                    DataTable rcvData = ds.Tables["Table"];
                    gridControl3.DataSource = rcvData;
                }
            }
        }
Пример #14
0
        private void InsertData()
        {
            try
            {
                DataTable chkTable = (DataTable)gridControl3.DataSource;

                if (chkTable == null)
                {
                    MessageBox.Show("데이터가 없습니다.");

                    return;
                }

                CHeader Header = new CHeader(UserInfo, "A1003B", "XtraQrySection", "00000", "");

                DataTable data = new DataTable("section_list");

                DataColumn colProjectCd      = new DataColumn("project_cd", typeof(string));
                DataColumn colKey            = new DataColumn("key", typeof(Int32));
                DataColumn colyoungsu_m2     = new DataColumn("yongsu_m2", typeof(double));
                DataColumn col보도블럭_석분_m2     = new DataColumn("보도블럭_석분_m2", typeof(double));
                DataColumn col덧씌우기_asp_m     = new DataColumn("덧씌우기_asp_m", typeof(double));
                DataColumn col덧씌우기_asp_con_m = new DataColumn("덧씌우기_asp_con_m", typeof(double));


                data.Columns.Add(colProjectCd);
                data.Columns.Add(colKey);
                data.Columns.Add(colyoungsu_m2);
                data.Columns.Add(col보도블럭_석분_m2);
                data.Columns.Add(col덧씌우기_asp_m);
                data.Columns.Add(col덧씌우기_asp_con_m);

                //DataRow Dr = data.NewRow();



                //Dr["section_group_cd"] = lookupGroup.GetColumnValue("section_group_cd");
                //Dr["section_id"] = edtSectionId.Text;
                //Dr["section_id_nm"] = edtSectionIdNm.Text;
                //Dr["asphalt1"] = edtAsphalt1.Text;
                //Dr["asphalt2"] = edtAsphalt2.Text;
                //Dr["complay"] = edtCompLay.Text;
                //Dr["mixlay"] = edtMixLay.Text;
                //Dr["desc"] = edtDesc.Text;

                DataRow Dr = data.NewRow();
                Dr["project_cd"]     = ProjectInfo.ProjectCD;
                Dr["key"]            = advBandedGridView1.GetFocusedDataRow()["key"];
                Dr["yongsu_m2"]      = advBandedGridView1.GetFocusedDataRow()["yongsu_m2"];
                Dr["보도블럭_석분_m2"]     = advBandedGridView1.GetFocusedDataRow()["보도블럭_석분_m2"];
                Dr["덧씌우기_asp_m"]     = advBandedGridView1.GetFocusedDataRow()["덧씌우기_asp_m"];
                Dr["덧씌우기_asp_con_m"] = advBandedGridView1.GetFocusedDataRow()["덧씌우기_asp_con_m"];



                //Dr.ItemArray = advBandedGridView1.GetFocusedDataRow().ItemArray.Clone() as object[];

                data.Rows.Add(Dr);
                //data.Rows.Add(.);

                CParam Param = new CParam(data);

                DataSet ds = CTransfer.InsertData(Header, Param.GetDataSet());

                DataTable Dt = ds.Tables["eror_dt"];
                itemErrCd.Caption  = Dt.Rows[0]["err_cd"].ToString();
                itemErrMsg.Caption = Dt.Rows[0]["err_msg"].ToString();

                ///정상등록된 경우만 최종 결과값을 재 조회한다.
                if (Dt.Rows[0]["err_cd"].ToString() == "00000")
                {
                    //QryList();
                }


                //                DataTable Data = ds.Tables["Table"];
                //                gridControl1.DataSource = Data;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #15
0
        /// <summary>
        /// Drop 하기 전에 이벤트를 처리한다.
        /// 아이템 밑에 아이템은 불가
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void TreeList1_BeforeDropNode(object sender, DevExpress.XtraTreeList.BeforeDropNodeEventArgs e)
        {
            Console.WriteLine("aaaa");
            if (treeList1.FindNodeByID(e.DestinationNode.Id)["node_tp"].ToString() == "2")
            {
                XtraMessageBox.Show("아이템은 하위 정보를 가질 수 없습니다. Node를 생성하세요");

                e.Cancel = true;

                return;
            }


            int parent_key, item_key;


            try
            {
                parent_key = Convert.ToInt16(treeList1.FindNodeByID(e.DestinationNode.Id)["item_key"]);
                item_key   = Convert.ToInt16(treeList1.FindNodeByID(e.SourceNode.Id)["item_key"]);


                CHeader Header = new CHeader(UserInfo.UserID, "A0111E", "XtraItemDlg", "00000", "");

                DataTable data = new DataTable("item_list");

                DataColumn colItemParent = new DataColumn("parent", typeof(int));
                DataColumn colItemitem   = new DataColumn("item_key", typeof(int));


                data.Columns.Add(colItemParent);
                data.Columns.Add(colItemitem);

                DataRow Dr = data.NewRow();
                Dr["parent"]   = parent_key;
                Dr["item_key"] = item_key;


                data.Rows.Add(Dr);

                CParam Param = new CParam(data);

                DataSet ds = CTransfer.QryData(Header, Param.GetDataSet());

                DataTable Dt = ds.Tables["eror_dt"];
                itemErrCd.Caption  = Dt.Rows[0]["err_cd"].ToString();
                itemErrMsg.Caption = Dt.Rows[0]["err_msg"].ToString();

                if (Dt.Rows[0]["err_cd"].ToString() != "00000")
                {
                    XtraMessageBox.Show("서버 저장중 오류가 발생했습니다.재 조회후 다시 처리 합시다.");
                    e.Cancel = true;
                    return;
                }
            }
            catch (Exception err)
            {
                string strMsg = string.Format("{0}[{1}]", "서버 저장중 오류가 발생했습니다. 재 조회후 다시 처리 합시다.", err.Message.ToString());

                XtraMessageBox.Show(strMsg);

                e.Cancel = true;

                return;
            }
        }
Пример #16
0
 private bool PrepairModule(ref byte[] data)
 {
     checked
     {
         try
         {
             var pModule = WorldServiceLocator._WS_Warden.ByteArrPtr(ref data);
             var obj     = Marshal.PtrToStructure(new IntPtr(pModule), typeof(CHeader));
             Header       = (obj != null) ? ((CHeader)obj) : default;
             dwModuleSize = Header.dwModuleSize;
             if (dwModuleSize < int.MaxValue)
             {
                 m_Mod = WorldServiceLocator._WS_Warden.Malloc(dwModuleSize);
                 if (m_Mod != 0)
                 {
                     Marshal.Copy(data, 0, (IntPtr)m_Mod, 40);
                     var index       = 40 + (Header.dwChunkCount * 3 * 4);
                     var dwChunkDest = m_Mod + BitConverter.ToInt32(data, 40);
                     var dwModuleEnd = m_Mod + dwModuleSize;
                     var bCopyChunk  = true;
                     while (dwChunkDest < dwModuleEnd)
                     {
                         int dwCurrentChunkSize = BitConverter.ToInt16(data, index);
                         index += 2;
                         if (bCopyChunk)
                         {
                             Marshal.Copy(data, index, new IntPtr(dwChunkDest), dwCurrentChunkSize);
                             index += dwCurrentChunkSize;
                         }
                         dwChunkDest += dwCurrentChunkSize;
                         bCopyChunk   = !bCopyChunk;
                     }
                     WorldServiceLocator._WorldServer.Log.WriteLine(LogType.DEBUG, "[WARDEN] Update...");
                     WorldServiceLocator._WorldServer.Log.WriteLine(LogType.DEBUG, "[WARDEN] Update: Adjusting references to global variables...");
                     var pbRelocationTable = m_Mod + Header.dwSizeOfCode;
                     var dwRelocationIndex = 0;
                     var dwLastRelocation  = 0;
                     while (dwRelocationIndex < Header.dwRelocationCount)
                     {
                         int dwValue = Marshal.ReadByte(new IntPtr(pbRelocationTable));
                         if (dwValue < 0)
                         {
                             dwValue            = (dwValue & 0x7F) << 8;
                             dwValue            = (dwValue + Marshal.ReadByte(new IntPtr(checked (pbRelocationTable + 1)))) << 8;
                             dwValue            = (dwValue + Marshal.ReadByte(new IntPtr(checked (pbRelocationTable + 2)))) << 8;
                             dwValue           += Marshal.ReadByte(new IntPtr(checked (pbRelocationTable + 3)));
                             pbRelocationTable += 4;
                             var old2 = Marshal.ReadInt32(new IntPtr(m_Mod + dwValue));
                             Marshal.WriteInt32(new IntPtr(m_Mod + dwValue), m_Mod + old2);
                         }
                         else
                         {
                             dwValue            = (dwValue << 8) + dwLastRelocation + Marshal.ReadByte(new IntPtr(checked (pbRelocationTable + 1)));
                             pbRelocationTable += 2;
                             var old = Marshal.ReadInt32(new IntPtr(m_Mod + dwValue));
                             Marshal.WriteInt32(new IntPtr(m_Mod + dwValue), m_Mod + old);
                         }
                         dwRelocationIndex++;
                         dwLastRelocation = dwValue;
                     }
                     WorldServiceLocator._WorldServer.Log.WriteLine(LogType.DEBUG, "[WARDEN] Update: Updating API library references...");
                     var dwLibraryIndex = 0;
                     while (dwLibraryIndex < Header.dwLibraryCount)
                     {
                         var obj2          = Marshal.PtrToStructure(new IntPtr(m_Mod + Header.dwLibraryTable + (dwLibraryIndex * 8)), typeof(CLibraryEntry));
                         var pLibraryTable = (obj2 != null) ? ((CLibraryEntry)obj2) : default;
                         var procLib       = Marshal.PtrToStringAnsi(new IntPtr(m_Mod + pLibraryTable.dwFileName));
                         WorldServiceLocator._WorldServer.Log.WriteLine(LogType.DEBUG, "    Library: {0}", procLib);
                         var hModule = NativeMethods.LoadLibrary(procLib, "");
                         if (hModule != 0)
                         {
                             var dwImports = m_Mod + pLibraryTable.dwImports;
                             var dwCurrent = Marshal.ReadInt32(new IntPtr(dwImports));
                             while (dwCurrent != 0)
                             {
                                 var procAddr = 0;
                                 dwCurrent = Marshal.ReadInt32(new IntPtr(dwImports));
                                 if (dwCurrent <= 0)
                                 {
                                     dwCurrent &= 0x7FFFFFFF;
                                     procAddr   = (int)(uint)NativeMethods.GetProcAddress((IntPtr)hModule, Convert.ToString(new IntPtr(dwCurrent)), "");
                                     WorldServiceLocator._WorldServer.Log.WriteLine(LogType.DEBUG, "        Ordinary: 0x{0:X8}", dwCurrent);
                                 }
                                 else
                                 {
                                     var procFunc       = Marshal.PtrToStringAnsi(new IntPtr(m_Mod + dwCurrent));
                                     var procRedirector = typeof(ApiRedirector).GetMethod("my" + procFunc);
                                     var procDelegate   = typeof(ApiRedirector).GetNestedType("d" + procFunc);
                                     if (procRedirector is null || procDelegate is null)
                                     {
                                         procAddr = (int)(uint)NativeMethods.GetProcAddress((IntPtr)hModule, procFunc, "");
                                         WorldServiceLocator._WorldServer.Log.WriteLine(LogType.DEBUG, "        Function: {0} @ 0x{1:X8}", procFunc, procAddr);
                                     }
                                     else
                                     {
                                         delegateCache.Add(procFunc, Delegate.CreateDelegate(procDelegate, procRedirector));
                                         procAddr = (int)Marshal.GetFunctionPointerForDelegate(delegateCache[procFunc]);
                                         WorldServiceLocator._WorldServer.Log.WriteLine(LogType.DEBUG, "        Function: {0} @ MY 0x{1:X8}", procFunc, procAddr);
                                     }
                                     Marshal.WriteInt32(new IntPtr(dwImports), procAddr);
                                 }
                                 dwImports += 4;
                             }
                         }
                         dwLibraryIndex++;
                         dwLibraryCount++;
                     }
                     for (var dwIndex = 0; dwIndex < Header.dwChunkCount; dwIndex++)
                     {
                         var pdwChunk2      = m_Mod + ((10 + (dwIndex * 3 * 4)) * 4);
                         var dwOldProtect   = 0u;
                         var lpAddress      = m_Mod + Marshal.ReadInt32(new IntPtr(pdwChunk2));
                         var dwSize         = Marshal.ReadInt32(new IntPtr(pdwChunk2 + 4));
                         var flNewProtect   = Marshal.ReadInt32(new IntPtr(pdwChunk2 + 8));
                         var lpflOldProtect = (int)dwOldProtect;
                         NativeMethods.VirtualProtect(lpAddress, dwSize, flNewProtect, ref lpflOldProtect, "");
                         dwOldProtect = (uint)lpflOldProtect;
                         if ((unchecked ((uint)flNewProtect) & 0xF0u) != 0)
                         {
                             NativeMethods.FlushInstructionCache(NativeMethods.GetCurrentProcess(""), lpAddress, dwSize, "");
                         }
                     }
                     var bUnload = true;
                     if (Header.dwSizeOfCode < dwModuleSize)
                     {
                         var dwOffset = (Header.dwSizeOfCode + 4095) & -4096;
                         if (dwOffset >= Header.dwSizeOfCode && dwOffset > dwModuleSize)
                         {
                             NativeMethods.VirtualFree(m_Mod + dwOffset, dwModuleSize - dwOffset, 16384, "");
                         }
                         bUnload = false;
                     }
                     return(!bUnload);
                 }
                 return(false);
             }
Пример #17
0
        private void InsertData()
        {
            try
            {
                DataTable chkTable = (DataTable)gridControl1.DataSource;

                if (chkTable == null)
                {
                    MessageBox.Show("데이터가 없습니다.");

                    return;
                }

                CHeader Header = new CHeader(UserInfo, "A0120B", "XtraQrySection", "00000", "");

                DataTable data = new DataTable("section_list");

                DataColumn colSectionGroupCd = new DataColumn("section_group_cd", typeof(string));
                DataColumn colSectionId      = new DataColumn("section_id", typeof(string));
                DataColumn colSectionNm      = new DataColumn("section_id_nm", typeof(string));
                DataColumn colAsphalt1       = new DataColumn("asphalt1", typeof(double));
                DataColumn colAsphalt2       = new DataColumn("asphalt2", typeof(double));
                DataColumn colComplay        = new DataColumn("complay", typeof(double));
                DataColumn colMixlay         = new DataColumn("mixlay", typeof(double));
                DataColumn colDesc           = new DataColumn("desc", typeof(string));


                data.Columns.Add(colSectionGroupCd);
                data.Columns.Add(colSectionId);
                data.Columns.Add(colSectionNm);
                data.Columns.Add(colAsphalt1);
                data.Columns.Add(colAsphalt2);
                data.Columns.Add(colComplay);
                data.Columns.Add(colMixlay);
                data.Columns.Add(colDesc);

                //DataRow Dr = data.NewRow();



                //Dr["section_group_cd"] = lookupGroup.GetColumnValue("section_group_cd");
                //Dr["section_id"] = edtSectionId.Text;
                //Dr["section_id_nm"] = edtSectionIdNm.Text;
                //Dr["asphalt1"] = edtAsphalt1.Text;
                //Dr["asphalt2"] = edtAsphalt2.Text;
                //Dr["complay"] = edtCompLay.Text;
                //Dr["mixlay"] = edtMixLay.Text;
                //Dr["desc"] = edtDesc.Text;

                DataRow Dr = data.NewRow();



                Dr.ItemArray           = gridView1.GetFocusedDataRow().ItemArray.Clone() as object[];
                Dr["section_group_cd"] = lookupGroup.GetColumnValue("section_group_cd");
                data.Rows.Add(Dr);
                //data.Rows.Add(.);

                CParam Param = new CParam(data);

                DataSet ds = CTransfer.InsertData(Header, Param.GetDataSet());

                DataTable Dt = ds.Tables["eror_dt"];
                itemErrCd.Caption  = Dt.Rows[0]["err_cd"].ToString();
                itemErrMsg.Caption = Dt.Rows[0]["err_msg"].ToString();

                ///정상등록된 경우만 최종 결과값을 재 조회한다.
                if (Dt.Rows[0]["err_cd"].ToString() == "00000")
                {
                    QrySectionList();
                }


//                DataTable Data = ds.Tables["Table"];
//                gridControl1.DataSource = Data;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }