2022.12.22 TIL(rs208)

SaGo_MunGcci·2022년 12월 22일
0

C#

목록 보기
21/27

아예 처음 로직부터 잘못되었다.

나는 위상단의 데이터를 통해서(검진일자 + 검진의) 수검자 리스트를 그리드뷰에 바인딩시켰으나

아니었다

검진일자를 선택하면 그에 맞는 수검자 리스트가 나오고 그 수검자 리스트에 해당하는 사람을 병원등록번호를 출력해야했다.

그리고 소방공무원채용검사인데 회사코드 검진의가 필요없는데 끝까지 알아채지 못했다.

다음부터는 해당 화면에 맞는 정보만 있는지 판단하자.

아.....

그리고 서비스 발급 id도 완전 잘못해서 상담 서비스코드를 사용했어야 됫는데, 판정서비스코드를 사용했다.

솔직히 지금 만드는 화면이 내가 상담인지, 판정인지 잘모르겠다.

여튼 서비스 사용 코드를 SHMGX5013R -> 서식조회 SHMGX5002I -> 서식저장 으로 교체후 작업하니까 조회는 잘넘어 갔는데 저장에서 자꾸 00927: 누락된 등호라고 오류가 발생했다.

일단 기존의 서비스 코드와 비교해보니 해당 저장 수정 하는 merge into문 xml자체는 동일했으나 내가 사용해야 했던 상담쪽 서비스로직이 기존에 사용했던 코드와 달랐다. 그래서 클라이언트쪽에 대리님이 사용하셨던 클라이언트에서 보내는


 sParam["heFormDivCd"] = strJudgDivCd;
 sParam["cunslDt"] = judgDt;
 sParam["csdrLicnsNo"] = this.doclicnsNo;
 sParam["judgDt"] = judgDt;
 sParam["judgDrLcnsNo"] = this.doclicnsNo;

부분을 추가해주니까 저장, 수정이 되었다.

그밖에 수정한것 : 신체검사서를 작성한 사람들을 선택하면 해당 수검자의 생년월일이 리포트에 찍히게 함

조회할때도 변경된 서비스아이디를 사용해서

searchParam["gubun"] = "A"; // 구분 전체 Value : A
searchParam["heFormDivCd"] = strJudgDivCd;
searchParam["heBasisPkgCd"] = "geO";

이부분 추가함

전체 코드(코드 다듬어야 함.)



/*=====================================================================================
프로젝트명 : AMIS3.0
프로그램ID : VHMGXRS208S
업  무  명 : 소방공무원 채용 신체검사서
최초작성일 : 2022.09.29
개  발  자 :
참고사항   : 
변경이력   : 
====================================================================================*/
using AMIS3.HM.ZZ;
using AMIS3.HM.ZZ.ZZLIB002;
using AMIS3.HM.ZZ.ZZLIB003.Controls;
using AMIS3.HM.ZZ.ZZLIB003.Dto;
using AMIS3.HM.ZZ.ZZLIB003.Mvc.Utils;
using AMIS3.UIFramework;
using AMIS3.UIFramework.DataModel;
using AMIS3.UIFramework.FxExtension;
using AMIS3.UIFramework.Security;
using AMIS3.UIFramework.UI;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace AMIS3.HM.GX.RS208
{
    public partial class VHMGXRS208S : ScreenBase, ISmartToolbar
    {

        public List<ActionButtonItem> ActionButtonItems { get; set; }
        UIFramework.UI.Controls.DocViewer.AReportViewer rptViewer = new UIFramework.UI.Controls.DocViewer.AReportViewer();
        DataTable dtRSLT;
        DataTable _dtActcustCd;

        // 2022.12.08 / 박민준 / AutoCalculator 사용하기 위해서 HeExOrDrCD 클래스 추가
        HeExOrDrCD exOrDrCD = null;

        // 2022.12.08 / 박민준 / pannel을 이용한 SetSvDataTable, GetData 하기위한 전역변수 추가
        DataTable svDt = null;
        private string strFormCd = "SF20220101";       // 서식코드
        private string strFormVerCd = "SF20220101";    // 서식버전 코드
        string patNo = "";                             // 병원등록번호             
        string heDt = "";                              // 일자 
        long vistSn = 0;
        int chkCnt = 0;                                // 전체선택시 전역변수
        string judgDt = "";                            // 판정일자  
        string doclicnsNo = "";          // 의사면허번호

        private string strJudgDivCd = "F";        
        String address = "강원도 강릉시 사천면 방동길 38 강릉아산병원"; // 아산병원 주소 전역변수


        public VHMGXRS208S()
        {
            InitializeComponent();

            SetControl();

            SetEvent();

            ActionBtnSetting();
        }

        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
        }

        #region 컨트롤 초기화
        /// <summary>
        /// 컨트롤 초기화
        /// </summary>
        private void SetControl()
        {
            // 2022.12.08 / 박민준 / 해당 항목 변경X           
            teWeight.ReadOnly = true;
            teHeight.ReadOnly = true;
            teBpHigh.ReadOnly = true;
            teBpLow.ReadOnly = true;
            teEyeLA.ReadOnly = true;
            teEyeRA.ReadOnly = true;
            teEyeLB.ReadOnly = true;
            teEyeRB.ReadOnly = true;
            teClrVison.ReadOnly = true;
            teEarLA.ReadOnly = true;
            teEarRA.ReadOnly = true;
            teEarLB.ReadOnly = true;
            teEarRB.ReadOnly = true;

            //조회기간
            dtpStartDt.DateTime = DateTime.Now;
            dtpEndDt.DateTime = DateTime.Now;

            var searchParam = new PreData();

            searchParam["synthCd"] = "RsltCunslDr";
           


            // 그리드 row순번표시
            grvPbcrCrteRsltBrkdwn.IndicatorWidth = 25;
            grvPbcrCrteRsltBrkdwn.SetCustomDrawRowIndicatorRowNum();

        }
        // 2022.12.08 / 박민준 / 액션버튼 저장 추가  
        private void ActionBtnSetting()
        {

            ActionButtonItems = new List<ActionButtonItem>();

            ActionButtonItems.Add(new ActionButtonItem
            {
                Text = "저장",
                Idx = 0,
                IsImportant = true,
                Permissions = "W",
                ClickAction = OnSaveAction,
                Name = "actSave"
            });

            ActionBtn1.Items = ActionButtonItems;
            ActionBtn1.FallDownMenuWidth = 80;

        }

        // 2022.12.08 / 박민준 / 액션버튼에 저장하기 누를때
        async void OnSaveAction()
        {

            // 저장로직 처리
            svDt = new DataTable();
            AmcData amcDataParam = new AmcData();
            amcDataParam.recordSets = new RecordSets();
            amcDataParam.preDatas = new PreDatas();

            PreData sParam = new PreData();
            sParam["patno"] = patNo;
            sParam["vistSn", ADataType.L] = vistSn;
            sParam["heDt"] = heDt;
            ------------------------------------------
            sParam["heFormDivCd"] = strJudgDivCd;
            sParam["cunslDt"] = judgDt;
            sParam["csdrLicnsNo"] = this.doclicnsNo;
            sParam["judgDt"] = judgDt;
            sParam["judgDrLcnsNo"] = this.doclicnsNo;
			------------------------------------------

            svDt.SetSvDataTable("상담", strJudgDivCd, strFormCd, strFormVerCd, patNo, heDt, vistSn, false);
            pn2.GetData(ref svDt, "itemItemCd", "itemResultVal");

            amcDataParam.recordSets.Add("IRS", svDt.ToRecordSet(true));
            amcDataParam.preDatas.Add("IPD", sParam);      //  상태값변경
            ------------------------------------------------------------------
            // SHMGC3500T //SHMGX5002I
            var responseData = await CommService.CallServiceAsync("SHMGX5002I", amcDataParam);
            ------------------------------------------------------------------

            AMessageBox.ShowInstant(this, responseData.header.message);

            //성공인 경우, 재조회
            if (string.Equals(responseData.header.resultCode, "S"))
            {
                AMessageBox.Show("저장완료", "정상적으로 저장되었습니다.", AMessageType.OK);

            }
            else
            {
                AMessageBox.Show("저장에러", responseData.header.message, AMessageType.Error);
            }
            // pnlMain.SetControlClear();

        }

        #endregion

        /// <summary>
        /// 이벤트 처리
        /// </summary>
        private void SetEvent()
        {
            #region 각종 버튼 이벤트 코드
            // 조회
            btnSearch.Click += async (sender, e) =>
            {                

                if (dtpStartDt.Text == "")
                {
                    AMessageBox.Show("조회오류!!", "조회시작일자를 선택해 주세요!!", AMessageType.Warning);
                    dtpStartDt.DateTime = DateTime.Now;
                    return;
                }

                if (dtpEndDt.Text == "")
                {
                    AMessageBox.Show("조회오류!!", "조회종료일자를 선택해 주세요!!", AMessageType.Warning);
                    dtpEndDt.DateTime = DateTime.Now;
                    return;
                }

                bool isOverDays = IsOverDays(dtpStartDt.DateTime, dtpEndDt.DateTime, 31);

                if (isOverDays == false)
                {
                    return;
                }                

                // 원래 주석 되어있었음.
                //  rptViewer.BindingDataTableList.Clear();
                //   rptViewer.BindFieldDic.Clear();

                grdPbcrCrteRsltBrkdwn.DataSource = null;

                await SvCallLoadPbcrCrteRsltBrkdwnList();

            };

            //조회시작일 선택시
            dtpStartDt.Closed += (sender, e) =>
            {
                dtpEndDt.DateTime = dtpStartDt.DateTime;
            };

            // 조회종료일 선택시
            dtpEndDt.Closed += (sender, e) =>
            {
                TimeSpan tDiff = dtpEndDt.DateTime.Subtract(dtpStartDt.DateTime);

                if (tDiff.Days < 0)
                {
                    AMessageBox.Show("조회오류!!", "조회시작일보다 이전일을 선택할 수 없습니다!!", AMessageType.Warning);

                    dtpEndDt.DateTime = dtpStartDt.DateTime;
                    return;
                }

            };

            dtpStartDt.KeyDown += (sender, e) =>
            {
                if (e.KeyCode == Keys.Enter)
                    dtpEndDt.DateTime = dtpStartDt.DateTime;
            };

            dtpEndDt.KeyDown += (sender, e) =>
            {
                //if (e.KeyCode == Keys.Enter)
                //    btnSearch.PerformClick();
            };

            grvPbcrCrteRsltBrkdwn.RowCellClick += (sender, e) =>
            {
                if (grvPbcrCrteRsltBrkdwn.DataRowCount == 0)
                    return;

                if (e.Button != MouseButtons.Left)
                    return;

                if (e.Clicks != 1)
                    return;

                grvPbcrCrteRsltBrkdwn.SetRowCellValue(e.RowHandle, "chck", grvPbcrCrteRsltBrkdwn.GetRowCellValue(e.RowHandle, "chck").ToStringDefault() == "Y" ? "N" : "Y");
            };

            chkWhol.CheckedChanged += (sender, e) =>
            {
                if (grvPbcrCrteRsltBrkdwn.DataRowCount == 0)
                    return;

                chkCnt++;

                if (chkCnt % 2 != 0)
                {
                    grvPbcrCrteRsltBrkdwn.SelectAll();
                }
                else
                {
                    grvPbcrCrteRsltBrkdwn.ClearSelection();
                }

            };

            lblChoicN.Click += (sender, e) =>
            {
                if (grvPbcrCrteRsltBrkdwn.DataRowCount == 0)
                    return;

                for (int rowIndex = 0; rowIndex < grvPbcrCrteRsltBrkdwn.DataRowCount; rowIndex++)
                {
                    if (grvPbcrCrteRsltBrkdwn.GetRowCellValue(rowIndex, "informCnsnYn").ToStringDefault() == "N")
                        grvPbcrCrteRsltBrkdwn.SetRowCellValue(rowIndex, "chck", "Y");
                    else
                        grvPbcrCrteRsltBrkdwn.SetRowCellValue(rowIndex, "chck", "N");
                }
            };

            btnPrint.Click += (sender, e) =>
            {

                if (grvPbcrCrteRsltBrkdwn.SelectedRowsCount == 0)
                {
                    AMessageBox.Show("", "수진자를 선택하세요");
                    return;
                }

                try
                {
                    DrmService.Instance.WaterMarkDisable(); //워터마크 해제
                                                            //  rptViewer.PrintReport(0, null, 1, -1, 1);
                }
                finally
                {
                    DrmService.Instance.WaterMarkEnable();  //워터마크 적용
                }

                //프린트호출
                ReportPrint();
                ----------------------------------------------
                // 프린트버튼 클릭시 체크 해제
                grvPbcrCrteRsltBrkdwn.ClearSelection();
				----------------------------------------------
            }; 
            #endregion
        }

        // 2022.12.12 / 박민준 / 리포트 출력하기  
        /// <summary>
        ///  리포트할때 필요한 값을 dictionary로 분해 하여 최종적으로 InitReport에 전달
        /// </summary>
        private void ReportPrint()
        {
            #region ...
            Dictionary<string, string> bindData = null;
            bool printY = false;

            // 해당 선택된 셀의 값을 가져옴
            for (int i = 0; i < grvPbcrCrteRsltBrkdwn.SelectedRowsCount; i++)
            {
                DataRow dr = grvPbcrCrteRsltBrkdwn.GetDataRow(grvPbcrCrteRsltBrkdwn.GetSelectedRows()[i]);
                PreData pd = new PreData();
                pd["patno"] = dr["patno"].ToStringDefault();
                pd["heDt"] = dr["heDt"].ToStringDefault().Replace("-", "");
                pd["vistSn", ADataType.L] = dr["vistSn"].ToStringDefault();
                pd["formCd"] = strFormCd;
                pd["formVerCd"] = strFormVerCd;
                pd["heFormDivCd"] = strJudgDivCd;
                

                //retrieveItemForReport()메서드 실행	
                DataTable dtReport = retrieveItemForReport(pd);
------------------------------------------------------------------------------
                String patBirthdt = String.Empty;
 ------------------------------------------------------------------------------
                 //데이터바인딩                
                bindData = new Dictionary<string, string>();
                foreach (DataRow dtr in dtReport.Rows)
                {
                    bindData.Add(dtr["itemCd"].ToStringDefault(), dtr["answer"].ToStringDefault());
                    -------------------------------------------------------
                    patBirthdt = dtr["patBirthdt"].ToStringDefault();
                    -------------------------------------------------------
                }

                bindData.Add("patno", dr["patno"].ToStringDefault());
                bindData.Add("patNM", dr["patNm"].ToStringDefault());
                bindData.Add("rgno", dr["rgno"].ToStringDefault());
                bindData.Add("today", DateTime.Today.ToString("yyyy") + "년 " + DateTime.Today.ToString("MM") + "월 " + DateTime.Today.ToString("dd") + "일");
                bindData.Add("patBirthcd", patBirthdt);
                

                // 2022.12.12 / 박민준 / 신장부터 임의로 넣은 값 바인딩.(코드 받으면 Getdata해서 받을 것들 임의로 넣음)
                // DataTable dtReport = retrieveItemForReport(pd); 이렇게 조회해와서 신장~ 청력까지 조회해오기
                // 주석처리

                //if (dr["patno"].ToStringDefault().Equals("16108411"))
                //{

                //    bindData.Add("patBirthcd", "19441029");
                //    bindData.Add("height", "170");
                //    bindData.Add("weight", "68");
                //    bindData.Add("bphigh", "123");
                //    bindData.Add("bplow", "76");
                //    bindData.Add("eyeLa", "0.7");
                //    bindData.Add("eyeRa", "0.7");
                //    bindData.Add("clrvision", "정상");
                //    bindData.Add("earLa", "정상");
                //    bindData.Add("earRa", "정상");

                //}

                //if (dr["patno"].ToStringDefault().Equals("19094218"))
                //{

                //    bindData.Add("patBirthcd", "19640406");
                //    bindData.Add("height", "160");
                //    bindData.Add("weight", "70");
                //    bindData.Add("bphigh", "99");
                //    bindData.Add("bplow", "76");
                //    bindData.Add("eyeLa", "0.1");
                //    bindData.Add("eyeRa", "0.1");
                //    bindData.Add("clrvision", "정상");
                //    bindData.Add("earLa", "비정상");
                //    bindData.Add("earRa", "정상");

                //}

                //if (dr["patno"].ToStringDefault().Equals("19112558"))
                //{


                //    bindData.Add("patBirthcd", "19570115");
                //    bindData.Add("height", "175");
                //    bindData.Add("weight", "74");
                //    bindData.Add("bphigh", "120");
                //    bindData.Add("bplow", "56");
                //    bindData.Add("eyeLa", "1.1");
                //    bindData.Add("eyeRa", "1.1");
                //    bindData.Add("clrvision", "비정상");
                //    bindData.Add("earLa", "정상");
                //    bindData.Add("earRa", "정상");
                //}

                //if (dr["patno"].ToStringDefault().Equals("19137456"))
                //{
                //    bindData.Add("patBirthcd", "19890113");
                //    bindData.Add("height", "169");
                //    bindData.Add("weight", "80");
                //    bindData.Add("bphigh", "180");
                //    bindData.Add("bplow", "70");
                //    bindData.Add("eyeLa", "1.5");
                //    bindData.Add("eyeRa", "1.3");
                //    bindData.Add("clrvision", "정상");
                //    bindData.Add("earLa", "비정상");
                //    bindData.Add("earRa", "비정상");
                //}

                //if (dr["patno"].ToStringDefault().Equals("18049664"))
                //{

                //    bindData.Add("patBirthcd", "19680714");
                //    bindData.Add("height", "187");
                //    bindData.Add("weight", "60");
                //    bindData.Add("bphigh", "120");
                //    bindData.Add("bplow", "70");
                //    bindData.Add("eyeLa", "1.9");
                //    bindData.Add("eyeRa", "0.2");
                //    bindData.Add("clrvision", "비정상");
                //    bindData.Add("earLa", "정상");
                //    bindData.Add("earRa", "비정상");
                //}


                InitReport("VHMGXRS208R01.reb", bindData);

            }
            //수진자재조회
            //retrieveSugumList(); 
            #endregion
        }

        private DataTable retrieveItemForReport(PreData pd)
        {
            DataTable returnItem = new DataTable();
            AmcData amcDataParam = new AmcData
            {
                preDatas = new PreDatas
                {
                    { "IPD",  pd }
                }
            };
            AmcData resultList = CommService.CallService("SHMGC3503R", amcDataParam);

            // 4.응답전문 =>  DT 변환
            if (resultList.IsSuccess)
            {
                returnItem = resultList.recordSets["ORS_ITEM"].ToDataTable();
            }
            return returnItem;
        }

        /// <summary>
        /// 2022.12.12 / 박민준 / 요청한 데이터를 rexpert3.0 최종 바인딩 추가
        /// </summary>
        /// <param name="reportNm"></param>
        /// <param name="bindData"></param>
        /// <returns></returns>
        private bool InitReport(String reportNm, Dictionary<string, string> bindData)
        {
            UIFramework.UI.Controls.DocViewer.AReportViewer reportV = new UIFramework.UI.Controls.DocViewer.AReportViewer();
            CommonMethod.GetResourceFile(this, "Report." + reportNm, "rpt" + reportNm);
            bool printY = false;
            reportV.BindingDataTableList.Clear();
            reportV.BindFieldDic.Clear();
            reportV.BindFieldDic = bindData;     //1.전달값
            reportV.TabHeaderVisible = false; //false
            reportV.ToolbarVisible = true;
            reportV.StatusbarVisible = false; //false

            reportV.OpenReport(@"c:\amis3\temp\" + "rpt" + reportNm);
            reportV.PrintPreview("preview", System.Windows.Forms.FormWindowState.Normal, 900, 1250);
            //printY = reportV.PrintReport(0, null, 1, -1, 1);
            return printY;
        }

        // 2022.12.08 / 박민준 / 셀 클릭시 임시로 DB에서 받아왔다고 가정한 코드추가!! (실제로는 DB에서 가져와야 된다.)
        //  2022.12.08 / 박민준 / 클릭이벤트에서 더블클릭이벤트로 수정 (실제로는 DB에서 가져와야 된다.)
        async void grdPbcrCrteRsltBrkdwn_DoubleClick(object sender, EventArgs e)
        {
            #region ...
            patNo = grvPbcrCrteRsltBrkdwn.GetFocusedRowCellValue("patno").ToString();
            heDt = grvPbcrCrteRsltBrkdwn.GetFocusedRowCellValue("heDt").ToString().Replace("-", "");
            vistSn = grvPbcrCrteRsltBrkdwn.GetFocusedRowCellValue("vistSn").ToStringDefault("0").ToLong();
            this.grvPbcrCrteRsltBrkdwn.Appearance.FocusedRow.BackColor = Color.AliceBlue;
            this.grvPbcrCrteRsltBrkdwn.Appearance.FocusedCell.BackColor = Color.AliceBlue;
            tepatno.Text = patNo;



            //AMessageBox.ShowInstant(patNo);

            //if (patNo == "16108411")
            //{
            //    // HeExOrDrCD의 객체를 생성해야 AutoCalculator를 사용할 수있다???
            //    // 즉 AutoCalulator에서 exOrDrCD의 값으로 AutoCalculator에 있는 함수를 사용 할 수있다???
            //    exOrDrCD = new HeExOrDrCD();

            //    exOrDrCD.Height = "170";
            //    exOrDrCD.Weight = "68";
            //    exOrDrCD.BP_High = "123";
            //    exOrDrCD.BP_Low = "76";
            //    exOrDrCD.Eye_L = "0.7";
            //    exOrDrCD.Eye_R = "0.7";

            //    String clrVison = "정상";
            //    String ear_L = "정상";
            //    String ear_R = "정상";


            //    teHeight.Text = exOrDrCD.Height;
            //    teWeight.Text = exOrDrCD.Weight;
            //    teBpHigh.Text = exOrDrCD.BP_High;
            //    teBpLow.Text = exOrDrCD.BP_Low;
            //    teEyeLA.Text = exOrDrCD.Eye_L;
            //    teEyeRA.Text = exOrDrCD.Eye_R;
            //    teClrVison.Text = clrVison;
            //    teEarLA.Text = ear_L;
            //    teEarRA.Text = ear_R;

            //}

            //if (patNo == "19094218")
            //{
            //    exOrDrCD = new HeExOrDrCD();

            //    exOrDrCD.Height = "160";
            //    exOrDrCD.Weight = "70";
            //    exOrDrCD.BP_High = "99";
            //    exOrDrCD.BP_Low = "76";
            //    exOrDrCD.Eye_L = "0.1";
            //    exOrDrCD.Eye_R = "0.1";

            //    String clrVison = "정상";
            //    String ear_L = "비정상";
            //    String ear_R = "정상";


            //    teHeight.Text = exOrDrCD.Height;
            //    teWeight.Text = exOrDrCD.Weight;
            //    teBpHigh.Text = exOrDrCD.BP_High;
            //    teBpLow.Text = exOrDrCD.BP_Low;
            //    teEyeLA.Text = exOrDrCD.Eye_L;
            //    teEyeRA.Text = exOrDrCD.Eye_R;
            //    teClrVison.Text = clrVison;
            //    teEarLA.Text = ear_L;
            //    teEarRA.Text = ear_R;
            //}


            //if (patNo == "19112558")
            //{
            //    exOrDrCD = new HeExOrDrCD();

            //    exOrDrCD.Height = "175";
            //    exOrDrCD.Weight = "74";
            //    exOrDrCD.BP_High = "120";
            //    exOrDrCD.BP_Low = "56";
            //    exOrDrCD.Eye_L = "1.1";
            //    exOrDrCD.Eye_R = "1.1";

            //    String clrVison = "비정상";
            //    String ear_L = "정상";
            //    String ear_R = "정상";


            //    teHeight.Text = exOrDrCD.Height;
            //    teWeight.Text = exOrDrCD.Weight;
            //    teBpHigh.Text = exOrDrCD.BP_High;
            //    teBpLow.Text = exOrDrCD.BP_Low;
            //    teEyeLA.Text = exOrDrCD.Eye_L;
            //    teEyeRA.Text = exOrDrCD.Eye_R;
            //    teClrVison.Text = clrVison;
            //    teEarLA.Text = ear_L;
            //    teEarRA.Text = ear_R;
            //}


            //if (patNo == "19137456")
            //{
            //    exOrDrCD = new HeExOrDrCD();

            //    exOrDrCD.Height = "169";
            //    exOrDrCD.Weight = "80";
            //    exOrDrCD.BP_High = "180";
            //    exOrDrCD.BP_Low = "70";
            //    exOrDrCD.Eye_L = "1.5";
            //    exOrDrCD.Eye_R = "1.3";

            //    String clrVison = "정상";
            //    String ear_L = "비정상";
            //    String ear_R = "비정상";


            //    teHeight.Text = exOrDrCD.Height;
            //    teWeight.Text = exOrDrCD.Weight;
            //    teBpHigh.Text = exOrDrCD.BP_High;
            //    teBpLow.Text = exOrDrCD.BP_Low;
            //    teEyeLA.Text = exOrDrCD.Eye_L;
            //    teEyeRA.Text = exOrDrCD.Eye_R;
            //    teClrVison.Text = clrVison;
            //    teEarLA.Text = ear_L;
            //    teEarRA.Text = ear_R;
            //}

            //if (patNo == "18049664")
            //{
            //    exOrDrCD = new HeExOrDrCD();

            //    exOrDrCD.Height = "187";
            //    exOrDrCD.Weight = "60";
            //    exOrDrCD.BP_High = "120";
            //    exOrDrCD.BP_Low = "70";
            //    exOrDrCD.Eye_L = "1.9";
            //    exOrDrCD.Eye_R = "0.2";

            //    String clrVison = "비정상";
            //    String ear_L = "정상";
            //    String ear_R = "비정상";


            //    teHeight.Text = exOrDrCD.Height;
            //    teWeight.Text = exOrDrCD.Weight;
            //    teBpHigh.Text = exOrDrCD.BP_High;
            //    teBpLow.Text = exOrDrCD.BP_Low;
            //    teEyeLA.Text = exOrDrCD.Eye_L;
            //    teEyeRA.Text = exOrDrCD.Eye_R;
            //    teClrVison.Text = clrVison;
            //    teEarLA.Text = ear_L;
            //    teEarRA.Text = ear_R;
            //}


            //AmcData amcDataParam = new AmcData
            //{
            //    preDatas = new PreDatas
            //    {
            //        { "IPD",  searchParam }
            //    }
            //};

            //AmcData resultList = await CommService.CallServiceAsync("SHMGC3503R", amcDataParam, this, LoadingType.BlockLoad);

            AmcData amcDataParam = new AmcData();
            amcDataParam.preDatas = new PreDatas();

            PreData sParam = new PreData();
            sParam["patno"] = patNo;
            sParam["vistSn", ADataType.L] = vistSn;
            sParam["heDt"] = heDt;
            sParam["heFormDivCd"] = strJudgDivCd;
            sParam["formCd"] = strFormCd;
            sParam["formVerCd"] = strFormVerCd;

            amcDataParam.preDatas.Add("IPD", sParam);      //  상태값변경
            
            var responseData = await CommService.CallServiceAsync("SHMGC3503R", amcDataParam);

            DataTable dtTest = new DataTable();

            dtTest = responseData.recordSets["ORS_ITEM"].ToDataTable();

            List<String> someData = new List<string>();

            // 받아온 데이터 테이블을 분해하는 방법 1
            foreach (DataRow dr in dtTest.Rows)
            {
                string row = string.Empty;
                row = dr["answer"].ToStringDefault();
                someData.Add(row);
                //patBirthdt = dr["patBirthdt"].ToStringDefault();
            }

            //AMessageBox.Show("확인", patBirthdt);

            // 2022.12.08 / 박민준 / 리스트 예외처리
            if (someData.Count <= 0)
            {
                AMessageBox.ShowInstant("검사항목이 없습니다.");

                String noStr = String.Empty;

                teEye.Text = noStr;
                teIbin.Text = noStr;
                teTeeth.Text = noStr;
                teBreath.Text = noStr;
                teLiver.Text = noStr;
                teNerve.Text = noStr;
                teDigest.Text = noStr;
                teSkin.Text = noStr;
                teCircul.Text = noStr;
                tePsycho.Text = noStr;
                teUrinary.Text = noStr;
                teSerum.Text = noStr;
                tethoraxXray.Text = noStr;
                teEtc.Text = noStr;
                rgresult.EditValue = noStr;
                meReason.Text = noStr;
                meChkmore.Text = noStr;

            }
            else
            {
                teEye.Text = someData[0];
                teIbin.Text = someData[1];
                teTeeth.Text = someData[2];
                teBreath.Text = someData[3];
                teLiver.Text = someData[4];
                teNerve.Text = someData[5];
                teDigest.Text = someData[6];
                teSkin.Text = someData[7];
                teCircul.Text = someData[8];
                tePsycho.Text = someData[9];
                teUrinary.Text = someData[10];
                teSerum.Text = someData[11];
                tethoraxXray.Text = someData[12];
                teEtc.Text = someData[13];
                rgresult.EditValue = someData[14].ToString();
                meReason.Text = someData[15];
                meChkmore.Text = someData[16];
            } 
            #endregion
        }

        /// <summary>
        /// 날짜 검증 이벤트
        /// </summary>
        /// <param name="stDt"></param>
        /// <param name="endDt"></param>
        /// <param name="days"></param>
        /// <returns></returns>
        private bool IsOverDays(DateTime stDt, DateTime endDt, int days)
        {
            #region ...
            TimeSpan tDiff = endDt.Subtract(stDt);

            if (tDiff.Days > days)
            {
                //한달이상의 특정시간인 경우
                if (DateTime.Now.TimeOfDay >= TimeSpan.Parse("05:00:00") &&
                    DateTime.Now.TimeOfDay <= TimeSpan.Parse("16:30:00"))
                {
                    // 실패시 메세지 출력
                    AMessageBox.Show("조회오류!!", "[" + DateTime.Now.Hour.ToString() + "시" + DateTime.Now.Minute + "분] "
                                                     + "한달 이상일 경우 오후 4시반 이후에 작업바랍니다 !!", AMessageType.Error);
                    return false;
                }
            }          

            return true; 
            #endregion
        }

        #region ====== ActionEVENTS ======


        /// <summary>
        /// 엑셀저장Action 이벤트
        /// </summary>
        private void OnDeleteAction()
        {
            string patno = "";
            for (int i = grvPbcrCrteRsltBrkdwn.RowCount - 1; i >= 0; i--)
            {
                if (grvPbcrCrteRsltBrkdwn.GetRowCellValue(i, "chck").ToString() != "Y") continue;

                patno = grvPbcrCrteRsltBrkdwn.GetRowCellValue(i, "patno").ToString();

                // 선택행 삭제
                grvPbcrCrteRsltBrkdwn.DeleteRow(i);

                StringBuilder sb = new StringBuilder();

                sb.Append("patno");
                sb.Append(" = ");
                sb.Append(patno);

                DataRow[] foundRows = dtRSLT.Select(sb.ToString());

                for (int j = foundRows.Length - 1; j >= 0; j--)
                {
                    dtRSLT.Rows.Remove(foundRows[j]);
                }

                dtRSLT.AcceptChanges();

            }

            // 순번 재설정
            int num = 0;
            patno = "";
            foreach (DataRow item in dtRSLT.Rows)
            {
                if (patno != item["patno"].ToString())
                {
                    num++;
                    patno = item["patno"].ToString();
                }

                item["rcnt"] = num.ToString();
            }

            dtRSLT.AcceptChanges();

            //리포트 바인딩
            List<DataTable> dtList = new List<DataTable>();
            dtList.Add(dtRSLT);

            //  rptViewer.BindingDataTableList = dtList;
            //     rptViewer.OpenReport(@"c:\amis3\temp\" + "rpt" + "VHMGXRS204R01.reb");
        }
        #endregion

        /// <summary>
        /// 공단기준결과내역조회
        /// </summary>
        /// <returns></returns>
        private async Task SvCallLoadPbcrCrteRsltBrkdwnList()
        {
            #region ...
            var searchParam = new PreData();
          
            searchParam["startDt"] = dtpStartDt.DateTime.ToString("yyyyMMdd");
            searchParam["endDt"] = dtpEndDt.DateTime.ToString("yyyyMMdd");
            ------------------------------------------------------------------------------
            searchParam["gubun"] = "A"; // 구분 전체 Value : A
            searchParam["heFormDivCd"] = strJudgDivCd;
            searchParam["heBasisPkgCd"] = "geO";
            ------------------------------------------------------------------------------

            var amcDataParam = new AmcData
            {
                preDatas = new PreDatas { { "IPD", searchParam } }
            };
------------------------------------------------------------------------------
            var responseData = await CommService.CallServiceAsync("SHMGX5000R", amcDataParam, this, LoadingType.BlockSearch);
------------------------------------------------------------------------------
            if (responseData.IsFail)
            {
                AMessageBox.Show("조회오류!!", responseData.header.message, AMessageType.Error);
                return;
            } 
            #endregion

            ShowPbcrCrteRsltBrkdwnList(responseData); 
        }

        private void ShowPbcrCrteRsltBrkdwnList(AmcData responseData)
        {
            #region ...
            DataTable dtTtark = responseData.recordSets["ORS"].ToDataTable(false);

            if (dtTtark == null || dtTtark.Rows.Count == 0)
            {
                AMessageBox.Show("확인", responseData.header.message);
                return;
            }

            grdPbcrCrteRsltBrkdwn.DataSource = dtTtark;
            
            #endregion
        }
        
-------------------------------------------------------------------------------        
        // 검사항목 예외처리
        private Boolean validate()
        {

            bool result = true;

            if (teEye.Text.ToString().Equals("") || teEye.Text.ToString().Equals(null))
            {
                AMessageBox.Show("경고", "안질환 검사 결과를 입력해주세요.");

                return result = false;
            }

            if (teIbin.Text.ToString().Equals("") || teIbin.Text.ToString().Equals(null))
            {
                AMessageBox.Show("경고", "이비인후과질환 검사 결과를 입력해주세요.");
                return result = false;
            }

            if (teTeeth.Text.ToString().Equals("") || teTeeth.Text.ToString().Equals(null))
            {
                AMessageBox.Show("경고", "치아 검사 결과를 입력해주세요.");

                return result = false;
            }

            if (teBreath.Text.ToString().Equals("") || teBreath.Text.ToString().Equals(null))
            {
                AMessageBox.Show("경고", "호흡기질환 검사 결과를 입력해주세요.");

                return result = false;
            }

            if (teLiver.Text.ToString().Equals("") || teLiver.Text.ToString().Equals(null))
            {
                AMessageBox.Show("경고", "간질환 검사 결과를 입력해주세요.");

                return result = false;
            }

            if (teNerve.Text.ToString().Equals("") || teNerve.Text.ToString().Equals(null))
            {
                AMessageBox.Show("경고", "신경질환 검사 결과를 입력해주세요.");
                return result = false;
            }

            if (teDigest.Text.ToString().Equals("") || teDigest.Text.ToString().Equals(null))
            {
                AMessageBox.Show("경고", "소화기질환 검사 결과를 입력해주세요.");
                return result = false;
            }

            if (teSkin.Text.ToString().Equals("") || teSkin.Text.ToString().Equals(null))
            {
                AMessageBox.Show("경고", "피부질환 검사 결과를 입력해주세요.");
                return result = false;
            }

            if (teCircul.Text.ToString().Equals("") || teCircul.Text.ToString().Equals(null))
            {
                AMessageBox.Show("경고", "순환기질환 검사 결과를 입력해주세요.");
                return result = false;
            }

            if (tePsycho.Text.ToString().Equals("") || tePsycho.Text.ToString().Equals(null))
            {
                AMessageBox.Show("경고", "정신질환 검사 결과를 입력해주세요.");
                return result = false;
            }

            if (teUrinary.Text.ToString().Equals("") || teUrinary.Text.ToString().Equals(null))
            {
                AMessageBox.Show("경고", "비뇨기질환 검사 결과를 입력해주세요.");
                return result = false;
            }

            if (teSerum.Text.ToString().Equals("") || teSerum.Text.ToString().Equals(null))
            {
                AMessageBox.Show("경고", "혈청 검사 결과를 입력해주세요.");
                return result = false;
            }

            if (tethoraxXray.Text.ToString().Equals("") || tethoraxXray.Text.ToString().Equals(null))
            {
                AMessageBox.Show("경고", "흉부X선 검사 결과를 입력해주세요.");
                return result = false;
            }

            if (rgresult.EditValue.ToString().Equals("") || rgresult.EditValue.ToString().Equals(null))
            {
                AMessageBox.Show("경고", "검사결과 합격여부를 설정해주세요.");
                return result = false;
            }

            return result;

        }
        
-------------------------------------------------------------------------------
    }
}
profile
이리저리 생각만 많은 사고뭉치입니다.

0개의 댓글