コード例 #1
0
        // 摘要:
        //     引发 System.Windows.Forms.Form.Load 事件。
        //
        // 参数:
        //   e:
        //     一个包含事件数据的 System.EventArgs。
        /// <summary>
        /// 引发 System.Windows.Forms.Form.Load 事件。
        /// </summary>
        /// <param name="e">一个包含事件数据的 System.EventArgs</param>
        protected override void OnLoad(EventArgs e)
        {
            if (Program.MainForm != null)
            {
                MainForm.SetControlFont(this, Program.MainForm.DefaultFont);
            }

            if (this._editing != null)
            {
                LoadItem(this.Item);

                EnablePrevNextRecordButtons();

                // 参考记录
                if (this.Item != null &&
                    this.Item.Error != null)
                {
                    this._splitContainer_main.Panel1Collapsed = false;

                    int nRet = FillExisting(out string strError);
                    if (nRet == -1)
                    {
                        MessageBox.Show(this, strError);
                    }

                    this._existing.SetReadOnly("all");

                    // 突出差异内容
                    this._editing.HighlightDifferences(this._existing);
                }
                else
                {
                    this._tableLayoutPanel_main.RowStyles[0].Height = 0F;
                    this._textBox_message.Visible = false;

                    this._label_editing.Visible = false;
                    this._splitContainer_main.Panel1Collapsed = true;
                    this._existing.Enabled = false;
                }
            }

            base.OnLoad(e);
        }
コード例 #2
0
ファイル: BatchTaskForm.cs プロジェクト: zgren/dp2
        private void BatchTaskForm_Load(object sender, EventArgs e)
        {
            if (Program.MainForm != null)
            {
                MainForm.SetControlFont(this, Program.MainForm.DefaultFont);
            }
#if NO
            MainForm.AppInfo.LoadMdiChildFormStates(this,
                                                    "mdi_form_state");
            this.Channel.Url = Program.MainForm.LibraryServerUrl;

            this.Channel.BeforeLogin -= new BeforeLoginEventHandle(Channel_BeforeLogin);
            this.Channel.BeforeLogin += new BeforeLoginEventHandle(Channel_BeforeLogin);

            stop = new DigitalPlatform.Stop();
            stop.Register(MainForm.stopManager, true);  // 和容器关联
#endif

            this.comboBox_taskName.Text = MainForm.AppInfo.GetString(
                "BatchTaskForm",
                "BatchTaskName",
                "");

            this.webBrowser_info.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_info_DocumentCompleted);


            // 使得菜单显示正确
            this.MessageStyle = this.MessageStyle;

            // 删除一些不需要的任务名
            for (int i = 0; i < this.comboBox_taskName.Items.Count; i++)
            {
                string strTaskName = this.comboBox_taskName.Items[i] as string;
                if (strTaskName.StartsWith("~"))
                {
                    this.comboBox_taskName.Items.RemoveAt(i);
                    i--;
                }
            }

            //
            API.PostMessage(this.Handle, WM_INITIAL, 0, 0);
        }
コード例 #3
0
ファイル: ChangeItemActionDialog.cs プロジェクト: zszqwe/dp2
        void menu_new_Click(object sender, EventArgs e)
        {
            OneActionDialog dlg = new OneActionDialog();

            MainForm.SetControlFont(dlg, this.Font, false);
            dlg.ElementCaption = this.ElementCaption;
            dlg.UserDir        = Program.MainForm.UserDir;
            dlg.DataDir        = Program.MainForm.DataDir;
            dlg.CfgDom         = this.CfgDom;
            dlg.UsedFieldNames = GetUsedFieldNames();
            dlg.RefDbName      = this.RefDbName;
            // dlg.AddOrRemoveListDropDown += dlg_AddOrRemoveListDropDown;
            dlg.GetValueTable -= new GetValueTableEventHandler(dlg_GetValueTable);
            dlg.GetValueTable += new GetValueTableEventHandler(dlg_GetValueTable);
            dlg.StartPosition  = FormStartPosition.CenterScreen;
            dlg.ShowDialog(this);

            if (dlg.DialogResult != System.Windows.Forms.DialogResult.OK)
            {
                return;
            }
            int index = -1;

            if (this.listView_actions.SelectedIndices.Count > 0)
            {
                index = this.listView_actions.SelectedIndices[0] + 1;
            }
            else
            {
                index = this.listView_actions.Items.Count;  // 追加
            }
            ListViewItem item = new ListViewItem();

            ListViewUtil.ChangeItemText(item, 0, dlg.FieldName);
            ListViewUtil.ChangeItemText(item, 1, dlg.FieldValue);
            ListViewUtil.ChangeItemText(item, 2, dlg.FieldValueAdd);
            ListViewUtil.ChangeItemText(item, 3, dlg.FieldValueRemove);
            ListViewUtil.ChangeItemText(item, 4, dlg.Additional);

            this.listView_actions.Items.Insert(index, item);
            ListViewUtil.SelectLine(item, true);
        }
コード例 #4
0
ファイル: OrderFileDialog.cs プロジェクト: zszqwe/dp2
        // 新增一个事项
        private void toolStripButton_newItem_Click(object sender, EventArgs e)
        {
            OrderOutputItemDialog dlg = new OrderOutputItemDialog();

            MainForm.SetControlFont(dlg, this.Font, false);

            dlg.ScriptManager = this.ScriptManager;
            dlg.AppInfo       = this.AppInfo;

            dlg.ExcludeSellers = GetUsedSellers(null);

            dlg.GetValueTable -= new GetValueTableEventHandler(dlg_GetValueTable);
            dlg.GetValueTable += new GetValueTableEventHandler(dlg_GetValueTable);

            dlg.StartPosition = FormStartPosition.CenterScreen;

REDO_INPUT:
            dlg.ShowDialog(this);

            if (dlg.DialogResult != DialogResult.OK)
            {
                return;
            }

            // TODO: 渠道名查重
            ListViewItem dup = ListViewUtil.FindItem(this.listView_list, dlg.Seller, 0);

            if (dup != null)
            {
                MessageBox.Show(this, "渠道名 '" + dlg.Seller + "' 在当前列表中已经存在。请重新输入...");
                goto REDO_INPUT;
            }

            ListViewItem item = new ListViewItem();

            item.Text = dlg.Seller;
            item.SubItems.Add(dlg.OutputFormat);

            this.listView_list.Items.Add(item);
            ListViewUtil.SelectLine(item, true);
            this.m_bChanged = true;
        }
コード例 #5
0
ファイル: ChatForm.cs プロジェクト: zgren/dp2
        private async void IMForm_Load(object sender, EventArgs e)
        {
            if (Program.MainForm != null)
            {
                MainForm.SetControlFont(this, Program.MainForm.DefaultFont);
            }

            this.ClearHtml();
            this.LoadRows();

            if (Program.MainForm != null && Program.MainForm.MessageHub != null)
            {
                Program.MainForm.MessageHub.ConnectionStateChange += MessageHub_ConnectionStateChange;
                Program.MainForm.MessageHub.AddMessage            += MessageHub_AddMessage;
            }
            SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;

            // Task.Factory.StartNew(() => DoLoadMessage(_currentGroupName, "", true));
            await DoLoadMessage(_currentGroupName, "", true);
        }
コード例 #6
0
        // 设置动作参数
        // return:
        //      false   放弃
        //      true    确认
        public bool SetChangeParameters()
        {
            ChangeBiblioActionDialog dlg = new ChangeBiblioActionDialog();

            MainForm.SetControlFont(dlg, this.Font, false);
            dlg.GetValueTable -= new GetValueTableEventHandler(dlg_GetValueTable);
            dlg.GetValueTable += new GetValueTableEventHandler(dlg_GetValueTable);
            // dlg.MainForm = Program.MainForm;

            Program.MainForm.AppInfo.LinkFormState(dlg, "ChangeBiblioActionDialog_state");
            dlg.ShowDialog(this);
            Program.MainForm.AppInfo.UnlinkFormState(dlg);

            if (dlg.DialogResult == System.Windows.Forms.DialogResult.OK)
            {
                return(true);
            }

            return(false);
        }
コード例 #7
0
ファイル: CommentEditForm.cs プロジェクト: ashuroxx7/dp2
        private void CommentEditForm_Load(object sender, EventArgs e)
        {
#if NO
            if (this.MainForm != null)
            {
                MainForm.SetControlFont(this, this.MainForm.DefaultFont);
            }

            LoadCommentItem(this.CommentItem);
            EnablePrevNextRecordButtons();

            // 参考记录
            if (this.CommentItem != null &&
                this.CommentItem.Error != null)
            {
                this.splitContainer_main.Panel1Collapsed = false;

                string strError = "";
                int    nRet     = FillExisting(out strError);
                if (nRet == -1)
                {
                    MessageBox.Show(this, strError);
                }


                this.commentEditControl_existing.SetReadOnly(ReadOnlyStyle.All);

                // 突出差异内容
                this.commentEditControl_editing.HighlightDifferences(this.commentEditControl_existing);
            }
            else
            {
                this.tableLayoutPanel_main.RowStyles[0].Height = 0F;
                this.textBox_message.Visible = false;

                this.label_editing.Visible = false;
                this.splitContainer_main.Panel1Collapsed = true;
                this.commentEditControl_existing.Enabled = false;
            }
#endif
        }
コード例 #8
0
        private void ActivateForm_Load(object sender, EventArgs e)
        {
            if (Program.MainForm != null)
            {
                MainForm.SetControlFont(this, Program.MainForm.DefaultFont);
            }
#if NO
            MainForm.AppInfo.LoadMdiChildFormStates(this,
                                                    "mdi_form_state");
            this.Channel.Url = Program.MainForm.LibraryServerUrl;

            this.Channel.BeforeLogin -= new BeforeLoginEventHandle(Channel_BeforeLogin);
            this.Channel.BeforeLogin += new BeforeLoginEventHandle(Channel_BeforeLogin);

            stop = new DigitalPlatform.Stop();
            stop.Register(MainForm.stopManager, true);  // 和容器关联
#endif

            this.readerEditControl_old.SetReadOnly("librarian");
            this.readerEditControl_old.GetValueTable += new GetValueTableEventHandler(readerEditControl1_GetValueTable);
            this.readerEditControl_old.Initializing   = false; // 如果没有此句,一开始在空模板上修改就不会变色

            this.readerEditControl_new.SetReadOnly("librarian");
            this.readerEditControl_new.GetValueTable += new GetValueTableEventHandler(readerEditControl1_GetValueTable);
            this.readerEditControl_new.Initializing   = false; // 如果没有此句,一开始在空模板上修改就不会变色


            // webbrowser
            this.m_webExternalHost_new.Initial(// Program.MainForm,
                this.webBrowser_newReaderInfo);
            this.webBrowser_newReaderInfo.ObjectForScripting = this.m_webExternalHost_new;

            this.m_webExternalHost_old.Initial(// Program.MainForm,
                this.webBrowser_oldReaderInfo);
            this.webBrowser_oldReaderInfo.ObjectForScripting = this.m_webExternalHost_old;

            // commander
            this.commander         = new Commander(this);
            this.commander.IsBusy -= new IsBusyEventHandler(commander_IsBusy);
            this.commander.IsBusy += new IsBusyEventHandler(commander_IsBusy);
        }
コード例 #9
0
        private void button_findDatabaseName_Click(object sender, EventArgs e)
        {
            /*
             * // 需要有DTLP资源对话框。需要有DtlpChannels的支持
             * if (this.DupCfgDialog == null)
             * {
             *  MessageBox.Show(this, "DupCfgDialog成员为空,无法打开选择目标数据库的对话框");
             *  return;
             * }
             *
             * GetDtlpResDialog dlg = new GetDtlpResDialog();
             *
             * dlg.Text = "请选择目标数据库";
             * dlg.Initial(this.DupCfgDialog.DtlpChannels,
             *  this.DupCfgDialog.DtlpChannel);
             * dlg.StartPosition = FormStartPosition.CenterScreen;
             * dlg.Path = this.textBox_databaseName.Text;
             * dlg.EnabledIndices = new int[] { DtlpChannel.TypeStdbase };
             * dlg.ShowDialog(this);
             *
             * this.textBox_databaseName.Text = dlg.Path;
             * */

            GetOpacMemberDatabaseNameDialog dlg = new GetOpacMemberDatabaseNameDialog();

            MainForm.SetControlFont(dlg, this.Font, false);

            dlg.Text = "请选择目标数据库";
            dlg.SelectedDatabaseName = this.textBox_databaseName.Text;
            dlg.AllDatabaseInfoXml   = AllBiblioDbInfoXml;
            dlg.ExcludingDbNames     = used_dbnames;
            dlg.StartPosition        = FormStartPosition.CenterScreen;
            dlg.ShowDialog(this);

            if (dlg.DialogResult != DialogResult.OK)
            {
                return;
            }

            this.textBox_databaseName.Text = dlg.SelectedDatabaseName;
        }
コード例 #10
0
        void OpenScanBarcodeForm()
        {
            if (this._scanBarcodeForm == null)
            {
                this._scanBarcodeForm = new ScanRegisterBarcodeForm();
                MainForm.SetControlFont(this._scanBarcodeForm, this.Font, false);
                this._scanBarcodeForm.BackColor      = SystemColors.ControlDark;
                this._scanBarcodeForm.BarcodeScaned += new ScanedEventHandler(_scanBarcodeForm_BarcodeScaned);
                this._scanBarcodeForm.FormClosed    += new FormClosedEventHandler(_scanBarcodeForm_FormClosed);
                this._scanBarcodeForm.Show(this);
            }
            else
            {
                if (this._scanBarcodeForm.WindowState == FormWindowState.Minimized)
                {
                    this._scanBarcodeForm.WindowState = FormWindowState.Normal;
                }
            }

            this.entityRegisterControl1.BeginThread();
        }
コード例 #11
0
        private void button_chargingHistory_getDateRange_Click(object sender, EventArgs e)
        {
            string   strError = "";
            int      nRet     = 0;
            DateTime start;
            DateTime end;

            nRet = Global.ParseTimeRangeString(this.textBox_chargingHistory_dateRange.Text,
                                               false,
                                               out start,
                                               out end,
                                               out strError);

            /*
             * if (nRet == -1)
             * {
             *  MessageBox.Show(this, strError);
             *  return;
             * }*/

            TimeRangeDlg dlg = new TimeRangeDlg();

            MainForm.SetControlFont(dlg, this.Font, false);

            dlg.Text               = "借阅历史日期范围";
            dlg.StartDate          = start;
            dlg.EndDate            = end;
            dlg.AllowStartDateNull = true; // 允许起点时间为空
            dlg.AllowEndDateNull   = true; // 允许终点时间为空

            dlg.StartPosition = FormStartPosition.CenterScreen;
            dlg.ShowDialog(this);

            if (dlg.DialogResult == DialogResult.Cancel)
            {
                return;
            }

            this.textBox_chargingHistory_dateRange.Text = Global.MakeTimeRangeString(dlg.StartDate, dlg.EndDate);
        }
コード例 #12
0
        private void button_orderColumns_Click(object sender, EventArgs e)
        {
            Order.EntityColumnOption option = new Order.EntityColumnOption(Program.MainForm.UserDir,
                                                                           "");
            option.LoadData(Program.MainForm.AppInfo,
                            EntityDefPath);

            PrintOptionDlg dlg = new PrintOptionDlg();

            MainForm.SetControlFont(dlg, this.Font, false);
            dlg.HidePage("tabPage_normal");
            dlg.HidePage("tabPage_templates");
            dlg.Text        = "册信息列";
            dlg.PrintOption = option;
            dlg.DataDir     = Program.MainForm.UserDir;
            dlg.ColumnItems = option.GetAllColumnItems();

            dlg.UiState = Program.MainForm.AppInfo.GetString(
                "save_entity",
                "columnDialog_uiState",
                "");

            Program.MainForm.AppInfo.LinkFormState(dlg, "distribute_order_outputoption_formstate");
            dlg.ShowDialog(this);
            Program.MainForm.AppInfo.UnlinkFormState(dlg);

            Program.MainForm.AppInfo.SetString(
                "save_entity",
                "columnDialog_uiState",
                dlg.UiState);

            if (dlg.DialogResult != DialogResult.OK)
            {
                return;
            }

            option.SaveData(Program.MainForm.AppInfo,
                            EntityDefPath);
        }
コード例 #13
0
        private void BindingForm_Load(object sender, EventArgs e)
        {
            if (Program.MainForm != null)
            {
                MainForm.SetControlFont(this, Program.MainForm.DefaultFont);
            }

            this.bindingControl1.GetOrderInfo -= new GetOrderInfoEventHandler(bindingControl1_GetOrderInfo);
            this.bindingControl1.GetOrderInfo += new GetOrderInfoEventHandler(bindingControl1_GetOrderInfo);

#if OLD_INITIAL
            this.bindingControl1.GetItemInfo -= new GetItemInfoEventHandler(bindingControl1_GetItemInfo);
            this.bindingControl1.GetItemInfo += new GetItemInfoEventHandler(bindingControl1_GetItemInfo);
#endif

            this.entityEditControl1.GetValueTable -= new GetValueTableEventHandler(orderDesignControl1_GetValueTable);
            this.entityEditControl1.GetValueTable += new GetValueTableEventHandler(orderDesignControl1_GetValueTable);

            this.entityEditControl1.SetReadOnly("binding");

            this.entityEditControl1.GetAccessNoButton.Click -= new EventHandler(button_getAccessNo_Click);
            this.entityEditControl1.GetAccessNoButton.Click += new EventHandler(button_getAccessNo_Click);

            this.orderDesignControl1.ArriveMode = true;
            this.orderDesignControl1.SeriesMode = true;
            this.orderDesignControl1.Changed    = false;

            this.orderDesignControl1.GetValueTable -= new GetValueTableEventHandler(orderDesignControl1_GetValueTable);
            this.orderDesignControl1.GetValueTable += new GetValueTableEventHandler(orderDesignControl1_GetValueTable);

            LoadState();

            Program.MainForm.LoadSplitterPos(
                this.splitContainer_main,
                "bindingform",
                "main_splitter_pos");

            API.PostMessage(this.Handle, WM_ENSURE_VISIBLE, 0, 0);
        }
コード例 #14
0
 private void SearchByBatchnoForm_Load(object sender, EventArgs e)
 {
     if (Program.MainForm != null)
     {
         MainForm.SetControlFont(this, Program.MainForm.DefaultFont);
     }
     if (this.comboBox_batchNo.Text == "")
     {
         this.comboBox_batchNo.Text = Program.MainForm.AppInfo.GetString(
             this.CfgSectionName, // "SearchByBatchnoForm",
             "batchno",
             "");
         this.comboBox_location.Text = Program.MainForm.AppInfo.GetString(
             this.CfgSectionName, // "SearchByBatchnoForm",
             "location",
             "<不指定>");
     }
     else
     {
         // 当batchno中有预先准备的值的时候,location就需要变成“不指定”了,以免用到以前残留的值
         this.comboBox_location.Text = "<不指定>";
     }
 }
コード例 #15
0
ファイル: ISO2709StatisForm.cs プロジェクト: zgren/dp2
        private void button_getProjectName_Click(object sender, EventArgs e)
        {
            // 出现对话框,询问Project名字
            GetProjectNameDlg dlg = new GetProjectNameDlg();

            MainForm.SetControlFont(dlg, this.Font, false);

            dlg.scriptManager = this.ScriptManager;
            dlg.ProjectName   = this.textBox_projectName.Text;
            dlg.NoneProject   = false;

            Program.MainForm.AppInfo.LinkFormState(dlg, "GetProjectNameDlg_state");
            dlg.ShowDialog(this);
            Program.MainForm.AppInfo.UnlinkFormState(dlg);


            if (dlg.DialogResult != DialogResult.OK)
            {
                return;
            }

            this.textBox_projectName.Text = dlg.ProjectName;
        }
コード例 #16
0
        private void CompareReaderForm_Load(object sender, EventArgs e)
        {
            if (this.MainForm != null)
            {
                MainForm.SetControlFont(this, this.MainForm.DefaultFont);
            }

            string strError = "";
            int    nRet     = this.readerEditControl_existing.SetData(
                this.ExistingXml,
                this.RecPath,
                this.ExistingTimestamp,
                out strError);

            if (nRet == -1)
            {
                MessageBox.Show(this, strError);
            }

            this.readerEditControl_existing.SetReadOnly("all");

            nRet = this.readerEditControl_unSaved.SetData(
                this.UnsavedXml,
                this.RecPath,
                this.UnsavedTimestamp,
                out strError);
            if (nRet == -1)
            {
                MessageBox.Show(this, strError);
            }

            this.readerEditControl_unSaved.SetReadOnly("librarian");

            this.readerEditControl_unSaved.HighlightDifferences(this.readerEditControl_existing);

            this.readerEditControl_unSaved.GetValueTable += new GetValueTableEventHandler(readerEditControl_unSaved_GetValueTable);
        }
コード例 #17
0
ファイル: ChannelForm.cs プロジェクト: zhangandding/dp2
        private void ChannelForm_Load(object sender, EventArgs e)
        {
            if (Program.MainForm != null)
            {
                MainForm.SetControlFont(this, Program.MainForm.DefaultFont);
            }

            string strWidths = Program.MainForm.AppInfo.GetString(
                "channel_form",
                "browse_list_column_width",
                "");

            if (String.IsNullOrEmpty(strWidths) == false)
            {
                ListViewUtil.SetColumnHeaderWidth(this.listView_channel,
                                                  strWidths,
                                                  true);
            }

            this._history.StateChanged -= new StateChangedEventHandler(_history_StateChanged);
            this._history.StateChanged += new StateChangedEventHandler(_history_StateChanged);

            RefreshBackForwardButtons();
        }
コード例 #18
0
        private void button_findOutputFormat_Click(object sender, EventArgs e)
        {
            // 出现对话框,询问Project名字
            GetProjectNameDlg dlg = new GetProjectNameDlg();

            MainForm.SetControlFont(dlg, this.Font, false);

            dlg.Text               = "请指定 订单输出 方案名";
            dlg.scriptManager      = this.ScriptManager;
            dlg.ProjectName        = this.comboBox_outputFormat.Text;
            dlg.NoneProject        = false;
            dlg.DisableNoneProject = true;

            this.AppInfo.LinkFormState(dlg, "OrderOutputItemDialog_GetProjectNameDlg_state");
            dlg.ShowDialog(this);
            this.AppInfo.UnlinkFormState(dlg);

            if (dlg.DialogResult != DialogResult.OK)
            {
                return;
            }

            this.comboBox_outputFormat.Text = dlg.ProjectName;
        }
コード例 #19
0
        private void CalendarForm_Load(object sender, EventArgs e)
        {
            if (Program.MainForm != null)
            {
                MainForm.SetControlFont(this, Program.MainForm.DefaultFont);
            }

#if NO
            MainForm.AppInfo.LoadMdiChildFormStates(this,
                                                    "mdi_form_state");
            this.Channel.Url = Program.MainForm.LibraryServerUrl;

            this.Channel.BeforeLogin -= new BeforeLoginEventHandle(Channel_BeforeLogin);
            this.Channel.BeforeLogin += new BeforeLoginEventHandle(Channel_BeforeLogin);

            stop = new DigitalPlatform.Stop();
            stop.Register(MainForm.stopManager, true);  // 和容器关联
#endif

            this.comboBox_calendarName.Text = MainForm.AppInfo.GetString(
                "CalendarForm",
                "CalendarName",
                "");
        }
コード例 #20
0
        private void ChangePasswordForm_Load(object sender, EventArgs e)
        {
            if (this.MainForm != null)
            {
                MainForm.SetControlFont(this, this.MainForm.DefaultFont);
            }
#if NO
            this.Channel.Url = this.MainForm.LibraryServerUrl;

            this.Channel.BeforeLogin -= new BeforeLoginEventHandle(Channel_BeforeLogin);
            this.Channel.BeforeLogin += new BeforeLoginEventHandle(Channel_BeforeLogin);


            stop = new DigitalPlatform.Stop();
            stop.Register(MainForm.stopManager, true);  // 和容器关联
#endif

            bool bReader = this.MainForm.AppInfo.GetBoolean(
                "default_account",
                "isreader",
                false);
            if (bReader == false)
            {
                this.textBox_reader_oldPassword.Enabled = false;
            }
            else
            {
                this.textBox_reader_comment.Text = "这是读者为自己修改密码。";
                this.tabControl_main.Controls.Remove(this.tabPage_worker);
                this.AddFreeControl(this.tabPage_worker);   // 2015/11/7
            }

            checkBox_worker_force_CheckedChanged(this, null);

            API.PostMessage(this.Handle, WM_FIRST_SETFOCUS, 0, 0);
        }
コード例 #21
0
        // 插入一个成员库名
        private void button_insertMemberDatabaseName_Click(object sender, EventArgs e)
        {
            int    nRet     = 0;
            string strError = "";

            /*
             * int x = 0;
             * int y = 0;
             * API.GetEditCurrentCaretPos(
             *  this.textBox_memberDatabases,
             *  out x,
             *  out y);
             *
             * string strLine = "";
             *
             * if (this.textBox_memberDatabases.Lines.Length > 0)
             *  strLine = this.textBox_memberDatabases.Lines[y];
             * */

            // 要排除的数据库名
            // 两类情况:一类为已经作为成员库名使用了的;一类为尚未定义为OPAC普通库的
            List <string> exclude_dbnames = new List <string>();

            for (int i = 0; i < this.textBox_memberDatabases.Lines.Length; i++)
            {
                string strLine = this.textBox_memberDatabases.Lines[i].Trim();
                if (String.IsNullOrEmpty(strLine) == true)
                {
                    continue;
                }

                exclude_dbnames.Add(strLine);
            }

            // 不在OPAC已经定义的普通库名之列,要排除
            List <string> exclude1 = null;

            nRet = GetExcludeDbNames(this.ManagerForm.AllDatabaseInfoXml,
                                     this.ExistingOpacNormalDbNames,
                                     out exclude1,
                                     out strError);
            if (nRet == -1)
            {
                goto ERROR1;
            }

            exclude_dbnames.AddRange(exclude1);

            GetOpacMemberDatabaseNameDialog dlg = new GetOpacMemberDatabaseNameDialog();

            MainForm.SetControlFont(dlg, this.Font, false);

            dlg.SelectedDatabaseName = this.textBox_memberDatabases.SelectedText;
            dlg.ManagerForm          = this.ManagerForm;
            dlg.AllDatabaseInfoXml   = this.ManagerForm.AllDatabaseInfoXml;
            dlg.ExcludingDbNames     = exclude_dbnames;
            dlg.StartPosition        = FormStartPosition.CenterScreen;
            dlg.ShowDialog(this);

            if (dlg.DialogResult != DialogResult.OK)
            {
                return;
            }

            string strNewText = dlg.SelectedDatabaseName.Replace(",", "\r\n");

            // 如果先前没有选定文字范围的话,就要在新插入的内容末尾增加回车换行符号
            if (String.IsNullOrEmpty(this.textBox_memberDatabases.SelectedText) == true)
            {
                strNewText += "\r\n";
            }

            this.textBox_memberDatabases.Paste(strNewText);
            this.textBox_memberDatabases.Focus();

            // SetLineText(this.textBox_memberDatabases, y, dlg.SelectedDatabaseName);
            return;

ERROR1:
            MessageBox.Show(this, strError);
        }
コード例 #22
0
ファイル: BatchTaskForm.cs プロジェクト: pxmarc/dp2
        // 启动批处理任务
        // parameters:
        // return:
        //      -1  出错
        //      1   成功。strError 里面有提示成功的内容
        int StartBatchTask(string strTaskName,
                           out string strError)
        {
            strError = "";

            BatchTaskStartInfo startinfo = new BatchTaskStartInfo();

            if (strTaskName == "日志恢复")
            {
                StartLogRecoverDlg dlg = new StartLogRecoverDlg();
                MainForm.SetControlFont(dlg, this.Font, false);
                dlg.StartInfo = startinfo;
                dlg.ShowDialog(this);
                if (dlg.DialogResult != DialogResult.OK)
                {
                    strError = "用户放弃启动";
                    return(-1);
                }
            }
            else if (strTaskName == "dp2Library 同步")
            {
                StartReplicationDlg dlg = new StartReplicationDlg();
                MainForm.SetControlFont(dlg, this.Font, false);
                dlg.StartInfo = startinfo;
                dlg.ShowDialog(this);
                if (dlg.DialogResult != DialogResult.OK)
                {
                    strError = "用户放弃启动";
                    return(-1);
                }
            }
            else if (strTaskName == "重建检索点")
            {
                StartRebuildKeysDlg dlg = new StartRebuildKeysDlg();
                MainForm.SetControlFont(dlg, this.Font, false);
                dlg.StartInfo = startinfo;
                dlg.ShowDialog(this);
                if (dlg.DialogResult != DialogResult.OK)
                {
                    strError = "用户放弃启动";
                    return(-1);
                }
            }
            else if (strTaskName == "预约到书管理")
            {
                StartArriveMonitorDlg dlg = new StartArriveMonitorDlg();
                MainForm.SetControlFont(dlg, this.Font, false);
                dlg.StartInfo = startinfo;
                dlg.ShowDialog(this);
                if (dlg.DialogResult != DialogResult.OK)
                {
                    strError = "用户放弃启动";
                    return(-1);
                }
            }

            /*
             * else if (strTaskName == "跟踪DTLP数据库")
             * {
             * StartTraceDtlpDlg dlg = new StartTraceDtlpDlg();
             * MainForm.SetControlFont(dlg, this.Font, false);
             * dlg.StartInfo = startinfo;
             * dlg.ShowDialog(this);
             * if (dlg.DialogResult != DialogResult.OK)
             * {
             *  strError = "用户放弃启动";
             *  return -1;
             * }
             * }
             * */
            /*
             * else if (strTaskName == "正元一卡通读者信息同步")
             * {
             * StartZhengyuanReplicationDlg dlg = new StartZhengyuanReplicationDlg();
             * MainForm.SetControlFont(dlg, this.Font, false);
             * dlg.StartInfo = startinfo;
             * dlg.ShowDialog(this);
             * if (dlg.DialogResult != DialogResult.OK)
             * {
             *  strError = "用户放弃启动";
             *  return -1;
             * }
             * }
             * else if (strTaskName == "迪科远望一卡通读者信息同步")
             * {
             * StartDkywReplicationDlg dlg = new StartDkywReplicationDlg();
             * MainForm.SetControlFont(dlg, this.Font, false);
             * startinfo.Start = "!breakpoint";    // 一开始就有适当的缺省值,避免从头开始跟踪
             * dlg.StartInfo = startinfo;
             * dlg.ShowDialog(this);
             * if (dlg.DialogResult != DialogResult.OK)
             * {
             *  strError = "用户放弃启动";
             *  return -1;
             * }
             * }
             * */
            else if (strTaskName == "读者信息同步")
            {
#if NO
                StartPatronReplicationDlg dlg = new StartPatronReplicationDlg();
                MainForm.SetControlFont(dlg, this.Font, false);
                startinfo.Start = "!breakpoint";    // 一开始就有适当的缺省值,避免从头开始跟踪
                dlg.StartInfo   = startinfo;
                dlg.ShowDialog(this);
                if (dlg.DialogResult != DialogResult.OK)
                {
                    strError = "用户放弃启动";
                    return(-1);
                }
#endif
                startinfo.Start = "activate";   // 表示立即启动,忽略服务器原有定时启动参数
            }
            else if (strTaskName == "超期通知")
            {
                startinfo.Start = "activate";   // 表示立即启动,忽略服务器原有定时启动参数
            }
            else if (strTaskName == "创建 MongoDB 日志库")
            {
                StartLogRecoverDlg dlg = new StartLogRecoverDlg();
                MainForm.SetControlFont(dlg, this.Font, false);
                dlg.Text      = "启动 创建 MongoDB 日志库 任务";
                dlg.TaskName  = "创建 MongoDB 日志库";
                dlg.StartInfo = startinfo;
                dlg.ShowDialog(this);
                if (dlg.DialogResult != DialogResult.OK)
                {
                    strError = "用户放弃启动";
                    return(-1);
                }
            }
            else if (strTaskName == "服务器同步")
            {
                StartServerReplicationDlg dlg = new StartServerReplicationDlg();
                MainForm.SetControlFont(dlg, this.Font, false);
                dlg.Text      = "启动 服务器同步 任务";
                dlg.TaskName  = "服务器同步";
                dlg.StartInfo = startinfo;
                dlg.ShowDialog(this);
                if (dlg.DialogResult != DialogResult.OK)
                {
                    strError = "用户放弃启动";
                    return(-1);
                }
            }
            else if (strTaskName == "大备份")
            {
                if (StringUtil.CompareVersion(Program.MainForm.ServerVersion, "2.117") < 0)
                {
                    strError = "dp2library 应在 2.117 版以上才能使用“大备份”任务相关的功能";
                    return(-1);
                }

                StartBackupDialog dlg = new StartBackupDialog();
                MainForm.SetControlFont(dlg, this.Font, false);
                dlg.StartInfo = startinfo;
                dlg.ShowDialog(this);
                if (dlg.DialogResult == System.Windows.Forms.DialogResult.Abort)
                {
                    if (StopBatchTask(strTaskName,
                                      "abort",
                                      out strError) == -1)
                    {
                        return(-1);
                    }
                    strError = "任务 '" + strTaskName + "' 已被撤销";
                    return(1);
                }
                if (dlg.DialogResult != DialogResult.OK)
                {
                    strError = "用户放弃启动";
                    return(-1);
                }

                // 2017/9/30
                if (dlg.DownloadFiles)
                {
                    if (StringUtil.IsInList("download", MainForm._currentUserRights) == false)
                    {
                        strError = "启动“大备份”任务被拒绝。当前用户并不具备 download 权限,所以无法在大备份同时下载文件。请先为当前用户添加这个权限,再重新启动大备份任务";
                        return(-1);
                    }
                }
            }
            else if (strTaskName == "<日志备份>")
            {
                string strOutputFolder = "";

                // 备份日志文件。即,把日志文件从服务器拷贝到本地目录。要处理好增量复制的问题。
                // return:
                //      -1  出错
                //      0   放弃下载,或者没有必要下载。提示信息在 strError 中
                //      1   成功启动了下载
                int nRet = Program.MainForm.BackupOperLogFiles(ref strOutputFolder,
                                                               out strError);
                if (nRet != 1)
                {
                    if (nRet == 0 && string.IsNullOrEmpty(strError))
                    {
                        strError = "用户放弃启动";
                    }
                    return(-1);
                }
                strError = "本地任务 '<日志备份> 成功启动'";
                return(1);
            }

            this.m_lock.AcquireWriterLock(m_nLockTimeout);
            try
            {
                EnableControls(false);

                stop.OnStop += new StopEventHandler(this.DoStop);
                stop.Initial("正在"
                             + "启动"
                             + "任务 '" + strTaskName + "' ...");
                stop.BeginLoop();

                this.Update();
                Program.MainForm.Update();

                try
                {
                    BatchTaskInfo param = new BatchTaskInfo();
                    param.StartInfo = startinfo;

                    BatchTaskInfo resultInfo = null;

                    // return:
                    //      -1  出错
                    //      0   启动成功
                    //      1   调用前任务已经处于执行状态,本次调用激活了这个任务
                    long lRet = Channel.BatchTask(
                        stop,
                        strTaskName,
                        "start",
                        param,
                        out resultInfo,
                        out strError);
                    if (lRet == -1 || lRet == 1)
                    {
                        goto ERROR1;
                    }

                    if (resultInfo != null)
                    {
                        Global.WriteHtml(this.webBrowser_info,
                                         GetResultText(resultInfo.ResultText));
                        ScrollToEnd();
                    }

                    this.label_progress.Text = resultInfo.ProgressText;

                    if (strTaskName == "大备份" &&
                        resultInfo.StartInfo != null)
                    {
                        string        strOutputFolder = "";
                        List <string> paths           = StringUtil.SplitList(resultInfo.StartInfo.OutputParam);

                        StringUtil.RemoveBlank(ref paths);

                        List <dp2Circulation.MainForm.DownloadFileInfo> infos = MainForm.BuildDownloadInfoList(paths);

                        bool bAppend = false;
                        // 询问是否覆盖已有的目标下载文件。整体询问
                        // return:
                        //      -1  出错
                        //      0   放弃下载
                        //      1   同意启动下载
                        int nRet = Program.MainForm.AskOverwriteFiles(infos,    // paths,
                                                                      ref strOutputFolder,
                                                                      out bAppend,
                                                                      out strError);
                        if (nRet == -1)
                        {
                            return(-1);
                        }
                        if (nRet == 1)
                        {
                            paths = MainForm.GetFileNames(infos, (info) =>
                            {
                                return(info.ServerPath);
                            });
                            foreach (string path in paths)
                            {
                                if (string.IsNullOrEmpty(path) == false)
                                {
                                    // parameters:
                                    //      strOutputFolder 输出目录。
                                    //                      [in] 如果为 null,表示要弹出对话框询问目录。如果不为 null,则直接使用这个目录路径
                                    //                      [out] 实际使用的目录
                                    // return:
                                    //      -1  出错
                                    //      0   放弃下载
                                    //      1   成功启动了下载
                                    nRet = Program.MainForm.BeginDownloadFile(path,
                                                                              bAppend ? "append" : "overwrite",
                                                                              ref strOutputFolder,
                                                                              out strError);
                                    if (nRet == -1)
                                    {
                                        return(-1);
                                    }
                                    if (nRet == 0)
                                    {
                                        break;
                                    }
                                }
                            }
                        }
                    }
                }
                finally
                {
                    stop.EndLoop();
                    stop.OnStop -= new StopEventHandler(this.DoStop);
                    stop.Initial("");

                    EnableControls(true);
                }

                strError = "任务 '" + strTaskName + "' 已成功启动";
                return(1);

ERROR1:
                return(-1);
            }
            finally
            {
                this.m_lock.ReleaseWriterLock();
            }
        }
コード例 #23
0
ファイル: ScriptExtension.cs プロジェクト: gvhung/dp2
        // 从 dp2003.com 安装全部方案
        void InstallStatisProjects()
        {
            string strError      = "";
            int    nRet          = -1;
            int    nInstallCount = 0;

            bool bDebugger = false;

            if (Control.ModifierKeys == Keys.Control)
            {
                bDebugger = true;
            }

            // 下载projects.xml文件
            string strLocalFileName = PathUtil.MergePath(this.DataDir, "~temp_projects.xml");
            string strTempFileName  = PathUtil.MergePath(this.DataDir, "~temp_download_projects.xml");

            try
            {
                File.Delete(strLocalFileName);
            }
            catch
            {
            }
            try
            {
                File.Delete(strTempFileName);
            }
            catch
            {
            }

            nRet = WebFileDownloadDialog.DownloadWebFile(
                this,
                "http://dp2003.com/dp2circulation/projects/projects.xml",
                strLocalFileName,
                strTempFileName,
                out strError);
            if (nRet == -1)
            {
                goto ERROR1;
            }

            // 列出已经安装的方案的URL
            List <string> installed_urls     = new List <string>();
            List <Form>   newly_opened_forms = new List <Form>();
            List <Form>   forms = new List <Form>();

            List <Type> types = new List <Type>();

            types.Add(typeof(Iso2709StatisForm));
            types.Add(typeof(OperLogStatisForm));
            types.Add(typeof(ReaderStatisForm));
            types.Add(typeof(ItemStatisForm));
            types.Add(typeof(OrderStatisForm));
            types.Add(typeof(BiblioStatisForm));
            types.Add(typeof(XmlStatisForm));
            types.Add(typeof(PrintOrderForm));

            foreach (Type type in types)
            {
                // bool bNewOpened = false;
                var form = GetTopChildWindow(type);
                if (form == null)
                {
                    form             = (Form)Activator.CreateInstance(type);
                    form.MdiParent   = this;
                    form.WindowState = FormWindowState.Minimized;
                    form.Show();
                    newly_opened_forms.Add(form);
                    Application.DoEvents();
                }

                forms.Add(form);

                dynamic       o    = form;
                List <string> urls = new List <string>();
                nRet = o.ScriptManager.GetInstalledUrls(out urls,
                                                        out strError);
                if (nRet == -1)
                {
                    goto ERROR1;
                }

                installed_urls.AddRange(urls);
            }

            // 凭条打印
            {
                List <string> urls = new List <string>();
                nRet = this.OperHistory.ScriptManager.GetInstalledUrls(out urls,
                                                                       out strError);
                if (nRet == -1)
                {
                    goto ERROR1;
                }

                installed_urls.AddRange(urls);
            }

            // 框架窗口
            {
                List <string> urls = new List <string>();
                nRet = this.ScriptManager.GetInstalledUrls(out urls,
                                                           out strError);
                if (nRet == -1)
                {
                    goto ERROR1;
                }

                installed_urls.AddRange(urls);
            }

            try
            {
                SelectInstallProjectsDialog dlg = new SelectInstallProjectsDialog();
                MainForm.SetControlFont(dlg, this.DefaultFont);
                dlg.XmlFilename   = strLocalFileName;
                dlg.InstalledUrls = installed_urls;
                if (bDebugger == true)
                {
                    dlg.Category = "debugger";
                }
                dlg.StartPosition = FormStartPosition.CenterScreen;

                this.AppInfo.LinkFormState(dlg,
                                           "SelectInstallProjectsDialog_state");
                dlg.ShowDialog(this);
                this.AppInfo.UnlinkFormState(dlg);
                if (dlg.DialogResult == System.Windows.Forms.DialogResult.Cancel)
                {
                    return;
                }

                // 分宿主进行安装
                foreach (Form form in forms)
                {
                    // 为一个统计窗安装若干方案
                    // parameters:
                    //      projects    待安装的方案。注意有可能包含不适合安装到本窗口的方案
                    // return:
                    //      -1  出错
                    //      >=0 安装的方案数
                    nRet = InstallProjects(
                        form,
                        GetWindowName(form),
                        dlg.SelectedProjects,
                        "!url",
                        out strError);
                    if (nRet == -1)
                    {
                        goto ERROR1;
                    }
                    nInstallCount += nRet;
                }

                // 凭条打印
                {
                    nRet = InstallProjects(
                        this.OperHistory,
                        "凭条打印",
                        dlg.SelectedProjects,
                        "!url",
                        out strError);
                    if (nRet == -1)
                    {
                        goto ERROR1;
                    }
                    nInstallCount += nRet;
                }

                // MainForm
                {
                    nRet = InstallProjects(
                        this,
                        "框架窗口",
                        dlg.SelectedProjects,
                        "!url",
                        out strError);
                    if (nRet == -1)
                    {
                        goto ERROR1;
                    }
                    nInstallCount += nRet;
                }
            }
            finally
            {
                // 关闭本次新打开的窗口
                foreach (Form form in newly_opened_forms)
                {
                    form.Close();
                }
            }

            MessageBox.Show(this, "共安装方案 " + nInstallCount.ToString() + " 个");
            return;

ERROR1:
            MessageBox.Show(this, strError);
        }
コード例 #24
0
ファイル: ScriptExtension.cs プロジェクト: gvhung/dp2
        // 从磁盘安装全部方案
        void InstallStatisProjectsFromDisk()
        {
            string strError      = "";
            int    nRet          = -1;
            int    nInstallCount = 0;

            bool bDebugger = false;

            if (Control.ModifierKeys == Keys.Control)
            {
                bDebugger = true;
            }

            FolderBrowserDialog dir_dlg = new FolderBrowserDialog();

            dir_dlg.Description         = "请指定方案所在目录:";
            dir_dlg.RootFolder          = Environment.SpecialFolder.MyComputer;
            dir_dlg.ShowNewFolderButton = false;
            // dir_dlg.SelectedPath = this.textBox_outputFolder.Text;

            if (dir_dlg.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            // this.textBox_outputFolder.Text = dir_dlg.SelectedPath;


            // 寻找 projects.xml 文件
            string strLocalFileName = PathUtil.MergePath(dir_dlg.SelectedPath, "projects.xml");

            if (File.Exists(strLocalFileName) == false)
            {
                // strError = "您所指定的目录 '" + dir_dlg.SelectedPath + "' 中并没有包含 projects.xml 文件,无法进行安装";
                // goto ERROR1;

                // 如果没有 projects.xml 文件,则搜索全部 *.projpack 文件,并创建好一个临时的 ~projects.xml文件
                strLocalFileName = PathUtil.MergePath(this.DataDir, "~projects.xml");
                nRet             = ScriptManager.BuildProjectsFile(dir_dlg.SelectedPath,
                                                                   strLocalFileName,
                                                                   out strError);
                if (nRet == -1)
                {
                    goto ERROR1;
                }
            }

            // 列出已经安装的方案的URL
            List <string> installed_urls     = new List <string>();
            List <Form>   newly_opened_forms = new List <Form>();
            List <Form>   forms = new List <Form>();

            List <Type> types = new List <Type>();

            types.Add(typeof(Iso2709StatisForm));
            types.Add(typeof(OperLogStatisForm));
            types.Add(typeof(ReaderStatisForm));
            types.Add(typeof(ItemStatisForm));
            types.Add(typeof(OrderStatisForm));
            types.Add(typeof(BiblioStatisForm));
            types.Add(typeof(XmlStatisForm));
            types.Add(typeof(PrintOrderForm));

            foreach (Type type in types)
            {
                // bool bNewOpened = false;
                var form = GetTopChildWindow(type);
                if (form == null)
                {
                    form             = (Form)Activator.CreateInstance(type);
                    form.MdiParent   = this;
                    form.WindowState = FormWindowState.Minimized;
                    form.Show();
                    newly_opened_forms.Add(form);
                    Application.DoEvents();
                }

                forms.Add(form);

                dynamic       o    = form;
                List <string> urls = new List <string>();
                nRet = o.ScriptManager.GetInstalledUrls(out urls,
                                                        out strError);
                if (nRet == -1)
                {
                    goto ERROR1;
                }

                installed_urls.AddRange(urls);
            }

            // 凭条打印
            {
                List <string> urls = new List <string>();
                nRet = this.OperHistory.ScriptManager.GetInstalledUrls(out urls,
                                                                       out strError);
                if (nRet == -1)
                {
                    goto ERROR1;
                }

                installed_urls.AddRange(urls);
            }

            // 框架窗口
            {
                List <string> urls = new List <string>();
                nRet = this.ScriptManager.GetInstalledUrls(out urls,
                                                           out strError);
                if (nRet == -1)
                {
                    goto ERROR1;
                }

                installed_urls.AddRange(urls);
            }

            try
            {
                SelectInstallProjectsDialog dlg = new SelectInstallProjectsDialog();
                MainForm.SetControlFont(dlg, this.DefaultFont);
                dlg.XmlFilename   = strLocalFileName;
                dlg.InstalledUrls = installed_urls;
                if (bDebugger == true)
                {
                    dlg.Category = "debugger";
                }
                dlg.StartPosition = FormStartPosition.CenterScreen;

                this.AppInfo.LinkFormState(dlg,
                                           "SelectInstallProjectsDialog_state");
                dlg.ShowDialog(this);
                this.AppInfo.UnlinkFormState(dlg);
                if (dlg.DialogResult == System.Windows.Forms.DialogResult.Cancel)
                {
                    return;
                }

                // 分宿主进行安装
                foreach (Form form in forms)
                {
                    // 为一个统计窗安装若干方案
                    // parameters:
                    //      projects    待安装的方案。注意有可能包含不适合安装到本窗口的方案
                    // return:
                    //      -1  出错
                    //      >=0 安装的方案数
                    nRet = InstallProjects(
                        form,
                        GetWindowName(form),
                        dlg.SelectedProjects,
                        dir_dlg.SelectedPath,
                        out strError);
                    if (nRet == -1)
                    {
                        goto ERROR1;
                    }
                    nInstallCount += nRet;
                }

                // 凭条打印
                {
                    nRet = InstallProjects(
                        this.OperHistory,
                        "凭条打印",
                        dlg.SelectedProjects,
                        dir_dlg.SelectedPath,
                        out strError);
                    if (nRet == -1)
                    {
                        goto ERROR1;
                    }
                    nInstallCount += nRet;
                }

                // MainForm
                {
                    nRet = InstallProjects(
                        this,
                        "框架窗口",
                        dlg.SelectedProjects,
                        dir_dlg.SelectedPath,
                        out strError);
                    if (nRet == -1)
                    {
                        goto ERROR1;
                    }
                    nInstallCount += nRet;
                }
            }
            finally
            {
                // 关闭本次新打开的窗口
                foreach (Form form in newly_opened_forms)
                {
                    form.Close();
                }
            }

            MessageBox.Show(this, "共安装方案 " + nInstallCount.ToString() + " 个");
            return;

ERROR1:
            MessageBox.Show(this, strError);
        }
コード例 #25
0
ファイル: ISO2709StatisForm.cs プロジェクト: zgren/dp2
        private async void Iso2709StatisForm_Load(object sender, EventArgs e)
        {
            if (Program.MainForm != null)
            {
                MainForm.SetControlFont(this, Program.MainForm.DefaultFont);
            }



#if NO
            this.Channel.Url = Program.MainForm.LibraryServerUrl;

            this.Channel.BeforeLogin -= new BeforeLoginEventHandle(Channel_BeforeLogin);
            this.Channel.BeforeLogin += new BeforeLoginEventHandle(Channel_BeforeLogin);

            stop = new DigitalPlatform.Stop();
            stop.Register(MainForm.stopManager, true);  // 和容器关联
#endif

            ScriptManager.CfgFilePath = Path.Combine(
                Program.MainForm.UserDir,
                "iso2709_statis_projects.xml");

#if NO
            ScriptManager.applicationInfo = Program.MainForm.AppInfo;
            ScriptManager.CfgFilePath     =
                Program.MainForm.DataDir + "\\iso2709_statis_projects.xml";
            ScriptManager.DataDir = Program.MainForm.DataDir;

            ScriptManager.CreateDefaultContent -= new CreateDefaultContentEventHandler(scriptManager_CreateDefaultContent);
            ScriptManager.CreateDefaultContent += new CreateDefaultContentEventHandler(scriptManager_CreateDefaultContent);

            try
            {
                ScriptManager.Load();
            }
            catch (FileNotFoundException)
            {
                // 不必报错 2009/2/4
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, ex.Message);
            }
#endif

            // 输入的ISO2709文件名
            this._openMarcFileDialog.FileName = Program.MainForm.AppInfo.GetString(
                "iso2709statisform",
                "input_iso2709_filename",
                "");

            // 编码方式
            this._openMarcFileDialog.EncodingName = Program.MainForm.AppInfo.GetString(
                "iso2709statisform",
                "input_iso2709_file_encoding",
                "");

            this._openMarcFileDialog.MarcSyntax = Program.MainForm.AppInfo.GetString(
                "iso2709statisform",
                "input_marc_syntax",
                "unimarc");

            this._openMarcFileDialog.Mode880 = Program.MainForm.AppInfo.GetBoolean(
                "iso2709statisform",
                "input_mode880",
                false);

            // 方案名
            this.textBox_projectName.Text = Program.MainForm.AppInfo.GetString(
                "iso2709statisform",
                "projectname",
                "");

            /*
             * var ret = await Program.MainForm.EnsureConnectLibraryServerAsync();
             * if (ret == false)
             * {
             *  MessageBox.Show(this, "连接到 dp2library 失败,ISO2709 统计窗无法打开");
             *  this.Close();
             * }
             */
        }
コード例 #26
0
        private void button_writeCard_Click(object sender, EventArgs e)
        {
            string strError = "";

            // 防止重入
            if (this.m_nIn > 0)
            {
                strError = "发生冲突。稍后重试";
                goto ERROR1;
            }

            bool bSucceed = false;
            int  nRet     = 0;

            this.m_nIn++;
            this.button_writeCard.Enabled = false;
            try
            {
                // 先完成数据库操作
                nRet = this.AmerceForm.Submit(
                    this.AmerceItems,
                    this.OverdueInfos,
                    false,
                    out strError);
                if (nRet == -1)
                {
                    goto ERROR1;
                }


                if (this.m_bBegined == false)
                {
                    obj.DisableSendKey();
                    this.m_bBegined = true;
                }

                string strUsedCardNumber = "";
                string strNewPrice       = "";
                int    nErrorCode        = 0;
                string strPassword       = "";


                int nRedoCount = 0;
REDO:
                // 扣款
                // parameters:
                //      strCardNumber   要求的卡号。如果为空,则表示不要求卡号,直接从当前卡上扣款
                //      strSubMoney 要扣的款额。例如:"0.01"
                //      strUsedCardNumber   实际扣款的卡号
                //      strPrice    扣款后的余额
                //      nErrorCode 原始错误码
                //          -1:连接串口错误;
                //          -2:没有发现卡片;
                //          -3:无法读取卡的唯一序列号;
                //          -4:装入密钥错误;
                //          -5:读卡错误;
                //          -6:卡已过有有效期;
                //          -7:密码错误
                //          -8:输入的金额太大;
                //          -9:写卡失败;
                // return:
                //      -1  出错
                //      0   没有卡
                //      1   成功扣款和获得信息
                //      2   虽然扣款成功,但是上传流水失败
                nRet = obj.SubCardMoney(this.CardNumber,
                                        this.SubmitPrice,
                                        strPassword,
                                        out strUsedCardNumber,
                                        out strNewPrice,
                                        out nErrorCode,
                                        out strError);
                if (nRet == 0)
                {
                    strError = "请放上IC卡,否则无法扣款";
                    goto ERROR1;
                }

                if (nRet == -1)
                {
                    if (nErrorCode == -7)
                    {
                        CardPasswordDialog dlg = new CardPasswordDialog();
                        MainForm.SetControlFont(dlg, this.Font, false);

                        if (nRedoCount == 0)
                        {
                            dlg.MessageText = "请(持卡者)输入IC卡密码";
                        }
                        else
                        {
                            dlg.MessageText = strError;
                        }

                        dlg.CardNumber    = this.CardNumber;
                        dlg.StartPosition = FormStartPosition.CenterScreen;
                        dlg.ShowDialog(this);

                        if (dlg.DialogResult != DialogResult.OK)
                        {
                            return; // 放弃扣款
                        }
                        strPassword = dlg.Password;
                        nRedoCount++;
                        goto REDO;
                    }

                    strError = "扣款错误:" + strError;
                    goto ERROR1;
                }

                // this.label_cardInfo.Text = "卡号: " + strCardNumber + "\r\n" + "卡上金额: " + strNewPrice;

                this.m_bDone = true;
                this.button_writeCard.Enabled = false;  // 避免再次扣款
                bSucceed = true;
                MessageBox.Show(this, "扣款 " + this.SubmitPrice + " 成功,新余额 " + strNewPrice);

                if (nRet == 2)
                {
                    MessageBox.Show(this, strError);
                }
            }
            catch (Exception ex)
            {
                strError = "错误:" + ex.Message;
                goto ERROR1;
            }
            finally
            {
                if (bSucceed == false)
                {
                    string strError_1 = "";
                    nRet = this.AmerceForm.RollBack(out strError_1);
                    if (nRet == -1)
                    {
                        strError_1 = "针对交费操作的Rollback失败: " + strError_1 + "\r\n请系统管理员进行手动清理";
                        MessageBox.Show(this, strError_1);
                    }
                }

                this.m_nIn--;

                if (this.m_bDone == false)
                {
                    this.button_writeCard.Enabled = true;
                }
            }

            this.DialogResult = DialogResult.OK;
            this.Close();
            return;

ERROR1:
            MessageBox.Show(this, strError);
        }
コード例 #27
0
ファイル: EntityFormOptionDlg.cs プロジェクト: Hopeshine/dp2
        private void EntityFormOptionDlg_Load(object sender, EventArgs e)
        {
            if (Program.MainForm != null)
            {
                MainForm.SetControlFont(this, Program.MainForm.DefaultFont);
            }

            string strError = "";

            // 册一般登记
            {
                string strNormalDefault = Program.MainForm.AppInfo.GetString(
                    "entityform_optiondlg",
                    "normalRegister_default",
                    "<root />");
                int nRet = this.entityEditControl_normalRegisterDefault.SetData(strNormalDefault,
                                                                                "",
                                                                                null,
                                                                                out strError);
                if (nRet == -1)
                {
                    MessageBox.Show(this, strError);
                }

                this.entityEditControl_normalRegisterDefault.SetReadOnly("librarian");
                this.entityEditControl_normalRegisterDefault.GetValueTable += new GetValueTableEventHandler(entityEditControl_GetValueTable);

                this.checkBox_normalRegister_simple.Checked = Program.MainForm.AppInfo.GetBoolean(
                    "entityform_optiondlg",
                    "normalRegister_simple",
                    false);
            }

            // 册快速登记
            {
                string strQuickDefault = Program.MainForm.AppInfo.GetString(
                    "entityform_optiondlg",
                    "quickRegister_default",
                    "<root />");
                int nRet = this.entityEditControl_quickRegisterDefault.SetData(strQuickDefault,
                                                                               "",
                                                                               null,
                                                                               out strError);
                if (nRet == -1)
                {
                    MessageBox.Show(this, strError);
                }

                this.entityEditControl_quickRegisterDefault.SetReadOnly("librarian");
                this.entityEditControl_quickRegisterDefault.GetValueTable += new GetValueTableEventHandler(entityEditControl_GetValueTable);
            }

            // 期一般登记
            {
                string strIssueNormalDefault = Program.MainForm.AppInfo.GetString(
                    "entityform_optiondlg",
                    "issue_normalRegister_default",
                    "<root />");
                int nRet = this.issueEditControl_normalRegisterDefault.SetData(
                    strIssueNormalDefault,
                    "",
                    null,
                    out strError);
                if (nRet == -1)
                {
                    MessageBox.Show(this, strError);
                }

                this.issueEditControl_normalRegisterDefault.SetReadOnly("librarian");
                this.issueEditControl_normalRegisterDefault.GetValueTable += new GetValueTableEventHandler(entityEditControl_GetValueTable);
            }

            // 期快速登记
            {
                string strIssueQuickDefault = Program.MainForm.AppInfo.GetString(
                    "entityform_optiondlg",
                    "issue_quickRegister_default",
                    "<root />");
                int nRet = this.issueEditControl_quickRegisterDefault.SetData(
                    strIssueQuickDefault,
                    "",
                    null,
                    out strError);
                if (nRet == -1)
                {
                    MessageBox.Show(this, strError);
                }

                this.issueEditControl_quickRegisterDefault.SetReadOnly("librarian");
                this.issueEditControl_quickRegisterDefault.GetValueTable += new GetValueTableEventHandler(entityEditControl_GetValueTable);
            }


            // 订购一般登记
            {
                string strOrderNormalDefault = Program.MainForm.AppInfo.GetString(
                    "entityform_optiondlg",
                    "order_normalRegister_default",
                    "<root />");
                int nRet = this.orderEditControl_normalRegisterDefault.SetData(
                    strOrderNormalDefault,
                    "",
                    null,
                    out strError);
                if (nRet == -1)
                {
                    MessageBox.Show(this, strError);
                }

                this.orderEditControl_normalRegisterDefault.SetReadOnly("librarian");
                this.orderEditControl_normalRegisterDefault.GetValueTable += new GetValueTableEventHandler(entityEditControl_GetValueTable);
            }

            // 2012/12/26
            // 评注一般登记
            {
                string strCommentNormalDefault = Program.MainForm.AppInfo.GetString(
                    "entityform_optiondlg",
                    "comment_normalRegister_default",
                    "<root />");
                int nRet = this.commentEditControl1.SetData(
                    strCommentNormalDefault,
                    "",
                    null,
                    out strError);
                if (nRet == -1)
                {
                    MessageBox.Show(this, strError);
                }

                this.commentEditControl1.SetReadOnly("librarian");
                this.commentEditControl1.GetValueTable += new GetValueTableEventHandler(entityEditControl_GetValueTable);
            }


            // 校验条码
            this.checkBox_verifyItemBarcode.Checked = Program.MainForm.AppInfo.GetBoolean(
                "entity_form",
                "verify_item_barcode",
                false);

            this.HidePages();
        }
コード例 #28
0
        // 导入成员库的全部检索途径(显示时已去重合并)到当前检索途径定义中。
        // 导入当前定义窗时,发现重复的style要警告。对于重复style的<from>允许用户选择保留以前的还是用新的冲入
        private void button_from_import_Click(object sender, EventArgs e)
        {
            string strError = "";
            int    nRet     = 0;

            List <string> dbnames = GetMemberDatabaseNames();

            if (dbnames.Count == 0)
            {
                strError = "尚未定义成员库名,因此无法导入成员库的检索途径定义";
                goto ERROR1;
            }

            ImportFromsDialog dlg = new ImportFromsDialog();

            MainForm.SetControlFont(dlg, this.Font, false);

            this.EnableControls(false);
            nRet = dlg.Initial(this.ManagerForm,
                               dbnames,
                               out strError);
            this.EnableControls(true);
            if (nRet == -1)
            {
                goto ERROR1;
            }
            dlg.StartPosition = FormStartPosition.CenterScreen;
            dlg.ShowDialog(this);

            if (dlg.DialogResult != DialogResult.OK)
            {
                return;
            }

            if (this.fromEditControl1.Elements.Count == 0)
            {
                this.fromEditControl1.Xml = dlg.SelectedFromsXml;
            }
            else
            {
                // 如果当前已经有内容,提醒合并还是替代
                DialogResult result = MessageBox.Show(this,
                                                      "当前已存在检索途径配置信息。是否将要导入的内容要合并到当前窗口?\r\n\r\n(Yes: 合并; No: 覆盖; Cancel: 放弃)",
                                                      "OpacVirtuslDatabaseDialog",
                                                      MessageBoxButtons.YesNoCancel,
                                                      MessageBoxIcon.Question,
                                                      MessageBoxDefaultButton.Button1);
                if (result == DialogResult.Yes)
                {
                    // 合并要导入的检索途径定义
                    nRet = MergeImportFroms(dlg.SelectedFromsXml,
                                            out strError);
                    if (nRet == -1)
                    {
                        goto ERROR1;
                    }
                }
                if (result == DialogResult.No)
                {
                    // 覆盖
                    this.fromEditControl1.Xml = dlg.SelectedFromsXml;
                }
                if (result == DialogResult.Cancel)
                {
                    return;
                }
            }

            return;

ERROR1:
            MessageBox.Show(this, strError);
        }
コード例 #29
0
        private void toolStripButton_center_modify_Click(object sender, EventArgs e)
        {
            string strError = "";

            if (this.listView_center.SelectedItems.Count == 0)
            {
                strError = "尚未选定要修改的服务器事项";
                goto ERROR1;
            }

            ListViewItem item = this.listView_center.SelectedItems[0];

            string strRefID = ListViewUtil.GetItemText(item, 3);

            if (string.IsNullOrEmpty(strRefID) == true)
            {
                strError = "所选定的事项缺乏参考 ID 值,无法请求服务器端进行修改";
                goto ERROR1;
            }

            CenterServerDialog dlg = new CenterServerDialog();

            MainForm.SetControlFont(dlg, this.Font, false);
            dlg.Text       = "修改中心服务器";
            dlg.CreateMode = false;
            dlg.ServerName = ListViewUtil.GetItemText(item, 0);
            dlg.ServerUrl  = ListViewUtil.GetItemText(item, 1);
            dlg.UserName   = ListViewUtil.GetItemText(item, 2);
            dlg.RefID      = ListViewUtil.GetItemText(item, 3);
            dlg.Password   = (string)item.Tag;

            dlg.ShowDialog(this);

            if (dlg.DialogResult == System.Windows.Forms.DialogResult.Cancel)
            {
                return;
            }

            // 修改
            XmlDocument dom = new XmlDocument();

            dom.LoadXml("<server />");
            DomUtil.SetAttr(dom.DocumentElement, "name", dlg.ServerName);
            DomUtil.SetAttr(dom.DocumentElement, "url", dlg.ServerUrl);
            DomUtil.SetAttr(dom.DocumentElement, "username", dlg.UserName);
            if (dlg.ChangePassword == true)
            {
                DomUtil.SetAttr(dom.DocumentElement, "password", dlg.Password);
            }
            DomUtil.SetAttr(dom.DocumentElement, "refid", dlg.RefID);

            int nRet = SetCenterInfo(
                "modify",
                dom.DocumentElement.OuterXml,
                out strError);

            if (nRet == -1)
            {
                goto ERROR1;
            }

            // 刷新显示
            nRet = ListCenter(out strError);
            if (nRet == -1)
            {
                goto ERROR1;
            }

            // 选中刚刚修改的行
            item = ListViewUtil.FindItem(this.listView_center, dlg.RefID, 3);
            if (item != null)
            {
                item.Selected = true;
            }


            return;

ERROR1:
            MessageBox.Show(this, strError);
        }
コード例 #30
0
        private void toolStripButton_center_add_Click(object sender, EventArgs e)
        {
            string strError = "";

            int index = -1;

            if (this.listView_center.SelectedIndices.Count > 0)
            {
                index = this.listView_center.SelectedIndices[0];
            }

            string strRefID = Guid.NewGuid().ToString();

            CenterServerDialog dlg = new CenterServerDialog();

            MainForm.SetControlFont(dlg, this.Font, false);
            dlg.Text       = "添加中心服务器";
            dlg.CreateMode = true;
            dlg.RefID      = strRefID;

            dlg.ShowDialog(this);

            if (dlg.DialogResult == System.Windows.Forms.DialogResult.Cancel)
            {
                return;
            }

            // 创建
            XmlDocument dom = new XmlDocument();

            dom.LoadXml("<server />");
            DomUtil.SetAttr(dom.DocumentElement, "name", dlg.ServerName);
            DomUtil.SetAttr(dom.DocumentElement, "url", dlg.ServerUrl);
            DomUtil.SetAttr(dom.DocumentElement, "username", dlg.UserName);
            DomUtil.SetAttr(dom.DocumentElement, "password", dlg.Password);
            DomUtil.SetAttr(dom.DocumentElement, "refid", dlg.RefID);

            int nRet = SetCenterInfo(
                "create",
                dom.DocumentElement.OuterXml,
                out strError);

            if (nRet == -1)
            {
                goto ERROR1;
            }

            // 刷新显示
            nRet = ListCenter(out strError);
            if (nRet == -1)
            {
                goto ERROR1;
            }

            // 选中新创建的行
            ListViewItem item = ListViewUtil.FindItem(this.listView_center, dlg.RefID, 3);

            if (item != null)
            {
                item.Selected = true;
            }

            return;

ERROR1:
            MessageBox.Show(this, strError);
        }