Example #1
0
        private void toolStripButton_mergeTo_Click(object sender, EventArgs e)
        {
            // TODO: 出现合并对话框,选择保留源和目标中哪一条书目记录
            GetMergeStyleDialog merge_dlg = new GetMergeStyleDialog();

            MainForm.SetControlFont(merge_dlg, this.Font, false);
            merge_dlg.EnableSubRecord = false;
            merge_dlg.SourceRecPath   = this.OriginRecPath;
            merge_dlg.TargetRecPath   = this.SelectedRecPath;
            merge_dlg.MessageText     = "请指定源书目记录(左侧)和目标书目记录(右侧)合并的方法";

            merge_dlg.UiState = Program.MainForm.AppInfo.GetString(
                "BiblioDupDialog",
                "GetMergeStyleDialog_uiState",
                "");
            {
                MergeStyle style = merge_dlg.GetMergeStyle();
                // 去掉和 Subrecord 有关的 bit
                style = (style & (dp2Circulation.MergeStyle.ReserveSourceBiblio | dp2Circulation.MergeStyle.ReserveTargetBiblio));
                // 设置为 合并下级记录
                style |= dp2Circulation.MergeStyle.CombineSubrecord;
                merge_dlg.SetMergeStyle(style);
            }
            Program.MainForm.AppInfo.LinkFormState(merge_dlg, "entityform_GetMergeStyleDialog_state");
            merge_dlg.ShowDialog(this);
            Program.MainForm.AppInfo.SetString(
                "BiblioDupDialog",
                "GetMergeStyleDialog_uiState",
                merge_dlg.UiState);

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

            this.MergeStyle = merge_dlg.GetMergeStyle();

            if ((this.MergeStyle & dp2Circulation.MergeStyle.ReserveTargetBiblio) == dp2Circulation.MergeStyle.ReserveTargetBiblio)
            {
                this.Action = "mergeTo";    // useTargetBiblio
            }
            else
            {
                this.Action = "mergeToUseSourceBiblio";
            }
            this.Close();
        }