public MdiParents()
        {
            InitializeComponent();

            //콤보박스초기화
            fnInitComb();

            //패널에 폼 올리기
            fnOpenChild((Form)VS);

            mIsPanel1Visible = Convert.ToString(Network.ReadIniFile("btnVisible", "YN", @".\setting.ini")) == "Y" ? true : false;
        }
        /// 서버랑 비교해서 옛 버전이면 다운.
        private void fnFTPDownSync()
        {
            //현재 로컬과 서버의 업로드 날짜를 비교. 서버의 업로드 날짜가 더 크면 다운
            DateTime dtLocalFileDate;

            mServerVerDate = fnReadVer(out mFtpCon);

            //ftp 연결이 안되어있을 경우 빠져나오자.
            if (!mFtpCon)
            {
                return;
            }

            try
            {
                dtLocalFileDate = DateTime.ParseExact(Convert.ToString(Network.ReadIniFile("FileTouchDate", "Date", @".\setting.ini")), "yyyyMMddHHmmss", null);
            }
            catch
            {
                dtLocalFileDate = new DateTime(1, 1, 1);
            }

            if (dtLocalFileDate < mServerVerDate)
            {
                if (MessageBox.Show("서버의 파일이 최신입니다.\r\n최신버전으로 동기화 하시겠습니까?", "파일 동기화", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    //기존 파일은 백업.
                    try
                    {
                        File.Copy(@".\Contents.db", @".\Contents_Bak.db", true);
                    }
                    catch (Exception e)
                    {
                        MessageBox.Show("파일 백업 중 오류 : " + e.ToString());
                    }

                    string strResult = Network.FtpDown(mAddress, mID, mPW, "Contents.db");
                    if (strResult != "")
                    {
                        MessageBox.Show(strResult);
                    }

                    //동기화를 성공했을 경우, 다운 받은 날짜의 정보를 setting.ini에 저장해둔다. upload시에 비교하여 동기화여부를 결정하는데 사용한다.
                    else
                    {
                        Network.WriteIniFile("FileTouchDate", "Date", mServerVerDate.ToString("yyyyMMddHHmmss"), @".\setting.ini");
                    }
                }
            }
        }
        // 전역변수 초기화 하기(IP,ID,PW,Option)
        private void fnInitVar()
        {
            //디비연결
            string strResult = String.Empty;
            string strSQL    = String.Empty;
            bool   isSync    = true;



            strSQL = @"
                        SELECT IP AS IP
                             , ID AS ID                             
                             , PW AS PW
                          FROM FTP;";

            //FTP만 하드코딩하자! V로 가져와버리면 안되니까!
            SQLiteConnection Conn = new SQLiteConnection(@"Data Source = .\Contents.db");
            DataSet          ds   = new DataSet();

            Conn.Open();
            SQLiteDataAdapter Ap = new SQLiteDataAdapter(strSQL, Conn);

            Ap.Fill(ds);
            Ap.Dispose();
            Conn.Dispose();


            if (ds.Tables[0].Rows.Count == 0)
            {
                mAddress = "";
                mID      = "";
                mPW      = "";
            }

            else
            {
                mAddress = ds.Tables[0].Rows[0]["IP"].ToString();
                mID      = ds.Tables[0].Rows[0]["ID"].ToString();
                mPW      = ds.Tables[0].Rows[0]["PW"].ToString();
            }

            if (strResult != "")
            {
                MessageBox.Show("서버db를 가져오는 중 오류발생 : \r\n" + strResult);
            }

            //옵션가져오기(SyncYN)
            isSync  = Network.ReadIniFile("OPTION", "SyncYN", @".\setting.ini") == "N" ? false : true;
            mSyncYN = isSync;
        }
Пример #4
0
        private void fnInitCon()
        {
            chkSync.Checked = Network.ReadIniFile("OPTION", "SyncYN", @".\setting.ini") == "N" ? false : true;
            string strFirstScreen = Network.ReadIniFile("OPTION", "FirstScreen", @".\setting.ini");

            if (strFirstScreen == "C")
            {
                rdoCurrent.Checked = true;
            }
            else if (strFirstScreen == "I")
            {
                rdoInterest.Checked = true;
            }
            else
            {
                rdoMainMemo.Checked = true;
            }
        }
        static void Main()
        {
            int LocX   = 0;
            int LocY   = 0;
            int Width  = 433;
            int Height = 266;

            try
            {
                LocX   = Convert.ToInt16(Network.ReadIniFile("LocStockCalc", "X", @".\setting.ini"));
                LocY   = Convert.ToInt16(Network.ReadIniFile("LocStockCalc", "Y", @".\setting.ini"));
                Width  = Convert.ToInt16(Network.ReadIniFile("SizeMain", "Width", @".\setting.ini"));
                Height = Convert.ToInt16(Network.ReadIniFile("SizeMain", "Height", @".\setting.ini"));
            }
            catch
            {}

            if (LocX > SystemInformation.VirtualScreen.Width ||
                LocY > SystemInformation.VirtualScreen.Height ||
                LocX < 0 || LocY < 0)
            {
                LocX = 0;
                LocY = 0;
            }

            if (Width > SystemInformation.VirtualScreen.Width ||
                Height > SystemInformation.VirtualScreen.Height ||
                Width < 0 || Height < 0)
            {
                Width  = 433;
                Height = 266;
            }


            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            MdiParents Mdi = new MdiParents();

            Mdi.StartPosition = FormStartPosition.Manual;
            Mdi.Location      = new Point(LocX, LocY);
            Mdi.Size          = new System.Drawing.Size(Width, Height);
            Application.Run(Mdi);
        }
Пример #6
0
        //Load이벤트
        private void Hold_Load(object sender, EventArgs e)
        {
            string strFirstScreen = Network.ReadIniFile("OPTION", "FirstScreen", @".\setting.ini");

            if (strFirstScreen == "C")
            {
                labHold_Click(null, null);
            }
            else if (strFirstScreen == "I")
            {
                labInterest_Click(null, null);
            }
            else
            {
                labMainMemo_Click(null, null);
            }

            fnPopupInit();
        }
Пример #7
0
        //지금은 로드이벤트에 담았지만, 나중엔 그냥 탭 클릭으로 넘겨야할 듯.
        private void mInitControl()
        {
            string strTabPage = Network.ReadIniFile("SelectedDetailTab", "PageName", @".\setting.ini");

            TabDetail.SelectedTab = null;
            if (strTabPage == "tabPrice")
            {
                TabDetail.SelectedTab = tabPrice;
            }
            else if (strTabPage == "tabVol")
            {
                TabDetail.SelectedTab = tabVol;
            }
            else if (strTabPage == "tabSto")
            {
                TabDetail.SelectedTab = tabSto;
            }
            else
            {
                TabDetail.SelectedIndex = 0;
            }
        }
Пример #8
0
        //Selected Stochastic
        private void mfnSelectedStochastic()
        {
            string strStoF     = Network.ReadIniFile("Chart:Stochastic", "Fast", @".\setting.ini");
            string strStoS     = Network.ReadIniFile("Chart:Stochastic", "Slow", @".\setting.ini");
            int    iBeforeDate = mfnStringToInt(txtBeforeDate.Text);

            if (strStoF == "")
            {
                strStoF = "10,5,E";
            }
            if (strStoS == "")
            {
                strStoS = "10,5,5,E";
            }

            txtStoFInput1.Text = (strStoF.Split(','))[0];
            txtStoFInput2.Text = (strStoF.Split(','))[1];
            txtStoSInput1.Text = (strStoS.Split(','))[0];
            txtStoSInput2.Text = (strStoS.Split(','))[1];
            txtStoSInput3.Text = (strStoS.Split(','))[2];

            string strAvgTypeF = strStoF.Split(',')[2];
            string strAvgTypeS = strStoS.Split(',')[3];

            mfnStoCboBind(cboStoF, strAvgTypeF);
            mfnStoCboBind(cboStoS, strAvgTypeS);

            int iFast1 = Convert.ToInt16(txtStoFInput1.Text.ToString());
            int iFast2 = Convert.ToInt16(txtStoFInput2.Text.ToString());
            int iSlow1 = Convert.ToInt16(txtStoSInput1.Text.ToString());
            int iSlow2 = Convert.ToInt16(txtStoSInput2.Text.ToString());
            int iSlow3 = Convert.ToInt16(txtStoSInput3.Text.ToString());

            double dStoFShowK       = mfnGetStoFastK(iFast1, iBeforeDate);
            double dStoFShowD       = strAvgTypeF == "S" ? mfnGetSmaStoFastD(iFast1, iFast2, iBeforeDate) : mfnGetEmaStoFastD(iFast1, iFast2, iBeforeDate);
            double dStoFShowKBefore = mfnGetStoFastK(iFast1, iBeforeDate + 1);
            double dStoFShowDBefore = strAvgTypeF == "S" ? mfnGetSmaStoFastD(iFast1, iFast2, iBeforeDate + 1) : mfnGetEmaStoFastD(iFast1, iFast2, iBeforeDate + 1);

            double dStoSShowK       = strAvgTypeS == "S" ? mfnGetSmaStoFastD(iSlow1, iSlow2, iBeforeDate) : mfnGetEmaStoFastD(iSlow1, iSlow2, iBeforeDate);
            double dStoSShowD       = strAvgTypeS == "S" ? mfnGetSmaStoSlowD(iSlow1, iSlow2, iSlow3, iBeforeDate) : mfnGetEmaStoSlowD(iSlow1, iSlow2, iSlow3, iBeforeDate);
            double dStoSShowKBefore = strAvgTypeS == "S" ? mfnGetSmaStoFastD(iSlow1, iSlow2, iBeforeDate + 1) : mfnGetEmaStoFastD(iSlow1, iSlow2, iBeforeDate + 1);
            double dStoSShowDBefore = strAvgTypeS == "S" ? mfnGetSmaStoSlowD(iSlow1, iSlow2, iSlow3, iBeforeDate + 1) : mfnGetEmaStoSlowD(iSlow1, iSlow2, iSlow3, iBeforeDate + 1);


            txtStoFShowK.Text       = dStoFShowK.ToString("0.##");
            txtStoFShowD.Text       = dStoFShowD.ToString("0.##");
            txtStoFShowKBefore.Text = dStoFShowKBefore.ToString("0.##");
            txtStoFShowDBefore.Text = dStoFShowDBefore.ToString("0.##");

            txtStoSShowK.Text       = dStoSShowK.ToString("0.##");
            txtStoSShowD.Text       = dStoSShowD.ToString("0.##");
            txtStoSShowKBefore.Text = dStoSShowKBefore.ToString("0.##");
            txtStoSShowDBefore.Text = dStoSShowDBefore.ToString("0.##");

            txtDiffFast.Text       = (dStoFShowK - dStoFShowD).ToString("0.##");
            txtDiffFastBefore.Text = (dStoFShowKBefore - dStoFShowDBefore).ToString("0.##");
            txtDiffSlow.Text       = (dStoSShowK - dStoSShowD).ToString("0.##");
            txtDiffSlowBefore.Text = (dStoSShowKBefore - dStoSShowDBefore).ToString("0.##");

            mfnTxtStoColorChg(dStoFShowK, dStoFShowD, txtStoFShowK);
            mfnTxtStoColorChg(dStoFShowKBefore, dStoFShowDBefore, txtStoFShowKBefore);

            mfnTxtStoColorChg(dStoSShowK, dStoSShowD, txtStoSShowK);
            mfnTxtStoColorChg(dStoSShowKBefore, dStoSShowDBefore, txtStoSShowKBefore);


            mfnTxtStoColorChg(dStoFShowK, dStoFShowD, txtDiffFast);
            mfnTxtStoColorChg(dStoFShowKBefore, dStoFShowDBefore, txtDiffFastBefore);

            mfnTxtStoColorChg(dStoSShowK, dStoSShowD, txtDiffSlow);
            mfnTxtStoColorChg(dStoSShowKBefore, dStoSShowDBefore, txtDiffSlowBefore);
        }
        /// 서버랑 비교해서 로컬이 최신이면 업로드. 프로그램 종료 시.
        private void fnFTPUpSync()
        {
            //파일을 수정했으면 날짜를 기록
            if (mMD5 != Network.GetMD5(@".\Contents.db"))
            {
                Network.WriteIniFile("FileTouchDate", "Date", fnGetFileDate(@".\Contents.db").ToString("yyyyMMddHHmmss"), @".\setting.ini");
            }

            //ftp연결이 안되어있을 경우 빠져나오자.
            if (!mFtpCon)
            {
                return;
            }

            DateTime dtTouchDate = DateTime.ParseExact(Convert.ToString(Network.ReadIniFile("FileTouchDate", "Date", @".\setting.ini")), "yyyyMMddHHmmss", null);

            //처음 파일날짜와 비교해서 변경이 있을 경우
            //&& 서버의 날짜보다 더 최신일 경우(다른 클라가 업로드한 경우도 있으므로 체크한다) 업로드 한다.
            if (dtTouchDate > mServerVerDate || mServerVerDate.Year == 1)
            {
                if (MessageBox.Show("로컬의 파일이 최신입니다.\r\n서버에 업로드 하시겠습니까?", "파일 동기화", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    /* 업로드 전 서버에 백업 */
                    // 3이 있으면 지우고, 2가 있으면 3으로, 1이 있으면 2로, 원본만 있으면 1로
                    string strRe = "";

                    strRe = Network.FtpDel(mAddress, mID, mPW, "Contents_Bak3.db");

                    if (strRe != "")
                    {
                        MessageBox.Show(strRe);
                        MessageBox.Show("업로드 실패");
                        return;
                    }

                    strRe = Network.FtpRename(mAddress, mID, mPW, "Contents_Bak2.db", "Contents_Bak3.db");

                    if (strRe != "")
                    {
                        MessageBox.Show(strRe);
                        MessageBox.Show("업로드 실패");
                        return;
                    }

                    strRe = Network.FtpRename(mAddress, mID, mPW, "Contents_Bak1.db", "Contents_Bak2.db");

                    if (strRe != "")
                    {
                        MessageBox.Show(strRe);
                        MessageBox.Show("업로드 실패");
                        return;
                    }

                    strRe = Network.FtpRename(mAddress, mID, mPW, "Contents.db", "Contents_Bak1.db");

                    if (strRe != "")
                    {
                        MessageBox.Show(strRe);
                        MessageBox.Show("업로드 실패");
                        return;
                    }

                    string strResult = Network.FtpUp(mAddress, mID, mPW, "Contents.db");
                    if (strResult != "")
                    {
                        MessageBox.Show(strResult);
                    }

                    //동기화를 성공했을 경우 서버에 날짜 올림
                    else
                    {
                        fnWriteVer(dtTouchDate.ToString("yyyyMMddHHmmss"));
                        strResult = Network.FtpUp(mAddress, mID, mPW, "ver.ps");
                        if (strResult != "")
                        {
                            MessageBox.Show("ver.ps 업로드 실패 : " + strResult);
                        }
                    }
                }
            }
        }