示例#1
0
        static void SetLine(ListViewItem item, RequestItem request)
        {
            // testing
            // request.State = null;

            string action_info = "";

            if (request.Action == "borrow")
            {
                var borrow_info = request.GetBorrowInfo();
                if (borrow_info != null)
                {
                    string returning_date = "";
                    if (string.IsNullOrEmpty(borrow_info.LatestReturnTime) == false)
                    {
                        if (DateTimeUtil.TryParseRfc1123DateTimeString(borrow_info.LatestReturnTime, out DateTime time) == true)
                        {
                            returning_date = time.ToString();
                        }
                        else
                        {
                            returning_date = $"时间字符串 '{borrow_info.LatestReturnTime}' 格式错误";
                        }
                    }
                    action_info = $"应还时间: {returning_date}";
                }
            }
            else
            {
                var return_info = request.GetReturnInfo();
                if (return_info != null &&
                    string.IsNullOrEmpty(return_info.OverdueString) == false)
                {
                    action_info = $"超期情况: {return_info.OverdueString}";
                }
            }

            ListViewUtil.ChangeItemText(item, COLUMN_ID, request.ID.ToString());
            ListViewUtil.ChangeItemText(item, COLUMN_PII, request.PII);
            ListViewUtil.ChangeItemText(item, COLUMN_BOOKTITLE, request.Entity?.Title);
            ListViewUtil.ChangeItemText(item, COLUMN_ACTION, request.Action);
            ListViewUtil.ChangeItemText(item, COLUMN_OPERATOR, request.OperatorID);
            ListViewUtil.ChangeItemText(item, COLUMN_NAME, request.Operator?.PatronName);

            ListViewUtil.ChangeItemText(item, COLUMN_OPERTIME, request.OperTime.ToString());
            ListViewUtil.ChangeItemText(item, COLUMN_STATE, request.State);
            ListViewUtil.ChangeItemText(item, COLUMN_ERRORCODE, request.SyncErrorCode);
            ListViewUtil.ChangeItemText(item, COLUMN_ERRORINFO, request.SyncErrorInfo);
            ListViewUtil.ChangeItemText(item, COLUMN_SYNCCOUNT, request.SyncCount.ToString());
            ListViewUtil.ChangeItemText(item, COLUMN_SYNCOPERTIME, request.SyncOperTime.ToString());
            ListViewUtil.ChangeItemText(item, COLUMN_ACTIONINFO, action_info);

            ListViewUtil.ChangeItemText(item, COLUMN_LINKID, request.LinkID);
            ListViewUtil.ChangeItemText(item, COLUMN_BATCHNO, request.BatchNo);
            ListViewUtil.ChangeItemText(item, COLUMN_TOSHELFNO, request.CurrentShelfNo);
            ListViewUtil.ChangeItemText(item, COLUMN_TOLOCATION, request.Location);
            ListViewUtil.ChangeItemText(item, COLUMN_TRANSFERDIRECTION, request.TransferDirection);
            item.Tag = request;
            SetLineColor(item, request);
        }
示例#2
0
        // 修改一个检索点事项
        private void button_modifyAccessPoint_Click(object sender, EventArgs e)
        {
            if (this.listView_accessPoints.SelectedItems.Count == 0)
            {
                MessageBox.Show(this, "尚未选择要修改的检索点事项");
                return;
            }

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

            AccessPointDialog dlg = new AccessPointDialog();

            MainForm.SetControlFont(dlg, this.Font, false);
            dlg.DbFromInfos = this.DbFromInfos;
            dlg.FromName    = item.Text;
            dlg.Weight      = ListViewUtil.GetItemText(item, 1);
            dlg.SearchStyle = ListViewUtil.GetItemText(item, 2);

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

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

            item.Text = dlg.FromName;
            ListViewUtil.ChangeItemText(item, 1, dlg.Weight);
            ListViewUtil.ChangeItemText(item, 2, dlg.SearchStyle);

            this.AccessPointsChanged = true;
        }
示例#3
0
        void menu_newColumn_Click(object sender, EventArgs e)
        {
            ReportColumnDialog dlg = new ReportColumnDialog();

            MainForm.SetControlFont(dlg, this.Font, false);
            if (this.AppInfo != null)
            {
                this.AppInfo.LinkFormState(dlg, "ReportColumnDialog_state");
            }
            dlg.ShowDialog(this);
            if (this.AppInfo != null)
            {
                this.AppInfo.UnlinkFormState(dlg);
            }

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

            ListViewItem item = new ListViewItem();

            ListViewUtil.ChangeItemText(item, COLUMN_NAME, dlg.ColumnName);
            ListViewUtil.ChangeItemText(item, COLUMN_DATATYPE, dlg.DataType);
            ListViewUtil.ChangeItemText(item, COLUMN_ALIGN, dlg.ColumnAlign);
            ListViewUtil.ChangeItemText(item, COLUMN_CSSCLASS, dlg.CssClass);
            ListViewUtil.ChangeItemText(item, COLUMN_SUM, dlg.ColumnSum == true ? "yes" : "no");
            ListViewUtil.ChangeItemText(item, COLUMN_EVAL, dlg.Eval);

            this.listView_columns.Items.Add(item);
            ListViewUtil.SelectLine(item, true);
        }
        // 修改名字和注释
        void menu_Modify(object sender, System.EventArgs e)
        {
            if (listView1.SelectedItems.Count == 0)
            {
                MessageBox.Show(this, "尚未选择拟修改的模板记录事项...");
                return;
            }
            TemplateRecordDialog dlg = new TemplateRecordDialog();

            // string strOldName = ListViewUtil.GetItemText(listView1.SelectedItems[0], 0);

            dlg.TemplateName    = ListViewUtil.GetItemText(listView1.SelectedItems[0], 0);
            dlg.TemplateComment = ListViewUtil.GetItemText(listView1.SelectedItems[0], 1);

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

            ListViewUtil.ChangeItemText(this.listView1.SelectedItems[0], 0, dlg.TemplateName);
            ListViewUtil.ChangeItemText(this.listView1.SelectedItems[0], 1, dlg.TemplateComment);

            this.Changed = true;
        }
示例#5
0
        // 勾选值事项。本函数须要在BuildList()后调用
        // 本函数能自动添加strValue中具备、但是ListView中尚未存在的事项行
        void SetValue(string strValue)
        {
            // 清除先前的全部checked状态
            for (int i = 0; i < this.listView1.Items.Count; i++)
            {
                ListViewItem item = this.listView1.Items[i];
                if (item.Checked == true)
                {
                    item.Checked = false;
                }
                item.Tag = null;    // 清除原来残留的序号
            }

            this.m_nIndex = 0;  // 序号

            string[] parts = strValue.Split(new char[] { ',' });

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

                // 根据\t分为若干部分
                string[] columns = strLine.Split(new char[] { '\t' });
                if (columns.Length == 0)
                {
                    continue;
                }

                // 只用第一部分来进行匹配勾选
                string strFirstColumn = columns[0].Trim();

                ListViewItem item = ListViewUtil.FindItem(
                    this.listView1,
                    strFirstColumn, 0);

                // 如果事项居然不存在
                if (item == null)
                {
                    item = new ListViewItem();

                    for (int j = 0; j < columns.Length; j++)
                    {
                        ListViewUtil.ChangeItemText(item, j, columns[j].Trim());
                    }
                    this.listView1.Items.Add(item);
                }

                item.Checked = true;

                // 保留原始序号
                ItemInfo iteminfo = new ItemInfo();
                iteminfo.Index   = this.m_nIndex++;
                iteminfo.OldItem = true;
                item.Tag         = iteminfo;
            }
        }
示例#6
0
        /// <summary>
        /// 装载报表列表
        /// </summary>
        /// <param name="nodeLibrary"></param>
        public void LoadReportList(XmlNode nodeLibrary)
        {
            this.listView_reports.Items.Clear();

            if (nodeLibrary == null)
            {
                return;
            }

            XmlNodeList nodes = nodeLibrary.SelectNodes("reports/report");

            if (nodes.Count > 0)
            {
                foreach (XmlNode node in nodes)
                {
                    string strName = DomUtil.GetAttr(node, "name");
                    string strFreq = DomUtil.GetAttr(node, "frequency");

                    string strType = DomUtil.GetAttr(node, "type");
                    //string strCfgFile = DomUtil.GetAttr(node, "cfgFile");
                    //string strNameTable = DomUtil.GetAttr(node, "nameTable");

                    ListViewItem item = new ListViewItem();
                    ListViewUtil.ChangeItemText(item, COLUMN_REPORT_NAME, strName);
                    ListViewUtil.ChangeItemText(item, COLUMN_REPORT_FREQ, strFreq);
                    ListViewUtil.ChangeItemText(item, COLUMN_REPORT_TYPE, strType);

                    this.listView_reports.Items.Add(item);
                }
            }
        }
示例#7
0
        // parameters:
        //      strAction   add/remove 之一
        int ChangeRights(string strAction, out string strError)
        {
            strError = "";

            foreach (ListViewItem item in this.listView1.CheckedItems)
            {
                UserInfo user = item.Tag as UserInfo;

                string strNewRights = user.Rights;
                StringUtil.SetInList(ref strNewRights, _weixinRights, strAction == "add");
                if (strNewRights == user.Rights)
                {
                    continue;   // 没有变化
                }
                user.Rights = strNewRights;
                long lRet = this.Channel.SetUser("change", user, out strError);
                if (lRet == -1)
                {
                    return(-1);
                }

                ListViewUtil.ChangeItemText(item, 1, GetWeixinRights(user.Rights));
            }

            return(0);
        }
示例#8
0
        void FillColumns(ListViewItem item,
                         List <DigitalPlatform.Marc.NameValueLine> results)
        {
            string title     = "";
            string author    = "";
            string publisher = "";

            foreach (var line in results)
            {
                if (line.Type == "title")
                {
                    title = line.Value;
                }
                if (line.Type == "author")
                {
                    author = line.Value;
                }
                if (line.Type == "publication_area")
                {
                    publisher = line.Value;
                }
            }

            ListViewUtil.ChangeItemText(item, 1, title);
            ListViewUtil.ChangeItemText(item, 2, author);
            ListViewUtil.ChangeItemText(item, 3, publisher);
        }
示例#9
0
        void FillList()
        {
            this.listView_papers.Items.Clear();

            if (this.Document == null)
            {
                return;
            }

            foreach (PaperSize ps in this.Document.PrinterSettings.PaperSizes)
            {
                ListViewItem item = new ListViewItem();
                ListViewUtil.ChangeItemText(item, COLUMN_PAPERNAME, ps.PaperName);
                ListViewUtil.ChangeItemText(item, COLUMN_KIND, ps.Kind.ToString());
                ListViewUtil.ChangeItemText(item, COLUMN_WIDTH, ps.Width.ToString());
                ListViewUtil.ChangeItemText(item, COLUMN_HEIGHT, ps.Height.ToString());
                this.listView_papers.Items.Add(item);
            }

            if (this.listView_papers.Items.Count > 0)
            {
                ListViewItem select = ListViewUtil.FindItem(this.listView_papers, this.textBox_paperName.Text, COLUMN_PAPERNAME);
                if (select != null)
                {
                    ListViewUtil.SelectLine(select, true);
                }
                else
                {
                    ListViewUtil.SelectLine(this.listView_papers, 0, true);
                }
            }
        }
示例#10
0
        public void FillList(ListView list)
        {
            list.Items.Clear();

            if (this.CfgDom == null || this.CfgDom.DocumentElement == null)
            {
                return;
            }

            XmlNodeList nodes = this.CfgDom.DocumentElement.SelectNodes("library");

            foreach (XmlNode node in nodes)
            {
                string strCode = DomUtil.GetAttr(node, "code");

                strCode = ReportForm.GetDisplayLibraryCode(strCode);

                ListViewItem item = new ListViewItem();
                ListViewUtil.ChangeItemText(item, 0, strCode);

                list.Items.Add(item);
            }

            if (list.Items.Count > 0)
            {
                list.Items[0].Selected = true;
            }
        }
示例#11
0
        private void button_groupContents_modify_Click(object sender, EventArgs e)
        {
            if (this.listView_groupContents_lines.SelectedItems.Count == 0)
            {
                MessageBox.Show(this, "尚未选定要修改的事项");
                return;
            }

            CellLineDialog dlg = new CellLineDialog();

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

            dlg.FillGroupFieldNameTable();
            dlg.FieldName     = this.listView_groupContents_lines.SelectedItems[0].Text;
            dlg.Caption       = this.listView_groupContents_lines.SelectedItems[0].SubItems[1].Text;
            dlg.StartPosition = FormStartPosition.CenterScreen;
            dlg.ShowDialog(this);

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

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

            item.Text = dlg.FieldName;
            ListViewUtil.ChangeItemText(item, 1, dlg.Caption);

            this.m_bGroupContentsChanged = true;
        }
示例#12
0
        private void PrintOptionDlg_Load(object sender, EventArgs e)
        {
            this.textBox_pageHeader.Text = PrintOption.PageHeader;
            this.textBox_pageFooter.Text = PrintOption.PageFooter;

            this.textBox_tableTitle.Text   = PrintOption.TableTitle;
            this.textBox_linesPerPage.Text = PrintOption.LinesPerPage.ToString();
            // this.textBox_maxSummaryChars.Text = PrintOption.MaxSummaryChars.ToString();

            this.listView_columns.Items.Clear();
            for (int i = 0; i < PrintOption.Columns.Count; i++)
            {
                ListViewItem item = new ListViewItem();

#if NO
                item.Text = PrintOption.Columns[i].Name;
                item.SubItems.Add(PrintOption.Columns[i].Caption);
                item.SubItems.Add(PrintOption.Columns[i].MaxChars.ToString());
#endif
                ListViewUtil.ChangeItemText(item, COLUMN_NAME, PrintOption.Columns[i].Name);
                ListViewUtil.ChangeItemText(item, COLUMN_CAPTION, PrintOption.Columns[i].Caption);
                ListViewUtil.ChangeItemText(item, COLUMN_WIDTHCHARS, PrintOption.Columns[i].WidthChars.ToString());
                ListViewUtil.ChangeItemText(item, COLUMN_MAXCHARS, PrintOption.Columns[i].MaxChars.ToString());
                ListViewUtil.ChangeItemText(item, COLUMN_EVALUE, PrintOption.Columns[i].Evalue);


                this.listView_columns.Items.Add(item);
            }

            LoadTemplates();
        }
示例#13
0
        // 根据逗号分割的值列表先建立未勾选的全部列表事项
        void BuildList(string strValue)
        {
            this.listView1.Items.Clear();

            string[] parts = strValue.Split(new char[] { ',' });

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

                ListViewItem item = new ListViewItem();

                // 根据\t分为若干部分
                string[] columns = strLine.Split(new char[] { '\t' });
                for (int j = 0; j < columns.Length; j++)
                {
                    ListViewUtil.ChangeItemText(item, j, columns[j].Trim());
                }

                this.listView1.Items.Add(item);
            }
        }
示例#14
0
        // parameters:
        //      refrsh_item 如果为空,表示要刷新全部 ListViewItem。否则只刷新这一个 ListViewItem
        void RefreshInstanceName(ListViewItem refresh_item = null)
        {
            int i = 0;

            foreach (ListViewItem item in this.listView_instance.Items)
            {
                if (refresh_item != null && item != refresh_item)
                {
                    continue;
                }
                string data_dir      = ListViewUtil.GetItemText(item, COLUMN_DATADIR);
                string instance_name = Path.GetFileName(data_dir);

                // 从配置文件中得到 instanceName 配置
                string strFileName = Path.Combine(data_dir, "capo.xml");
                string temp        = InstanceDialog.GetInstanceName(strFileName);
                if (temp != null)
                {
                    instance_name = temp;
                }

                ListViewUtil.ChangeItemText(item, COLUMN_NAME, instance_name);
                i++;
            }
        }
示例#15
0
        // parameters:
        void FillServers(XmlNodeList servers)
        {
            foreach (XmlElement server in servers)
            {
                string name    = server.GetAttribute("name");
                string enabled = server.GetAttribute("enabled");

                ListViewItem item = new ListViewItem();
                if (server.OwnerDocument != _dom)
                {
                    // 对 server name 进行查重
                    if (SearchDup(ref name, null) == true)
                    {
                        server.SetAttribute("name", name);
                    }

                    XmlElement new_server = _dom.CreateElement("server");
                    _dom.DocumentElement.AppendChild(new_server);
                    DomUtil.SetElementOuterXml(new_server, server.OuterXml);
                    item.Tag = new_server;
                }
                else
                {
                    item.Tag = server;
                }

                ListViewUtil.ChangeItemText(item, COLUMN_NAME, name);
                ListViewUtil.ChangeItemText(item, COLUMN_DATABASE, ZServerUtil.GetDatabaseList(server));
                ListViewUtil.ChangeItemText(item, COLUMN_ENABLED, IsEnabled(enabled, true) ? "是" : "否");
                SetItemColor(item);
                this.listView1.Items.Add(item);
            }
        }
示例#16
0
        void FillList()
        {
            listView1.Items.Clear();

            if (Servers == null)
            {
                return;
            }

            for (int i = 0; i < Servers.Count; i++)
            {
                dp2Server server = (dp2Server)Servers[i];

                ListViewItem item = new ListViewItem(server.Name, 0);

                listView1.Items.Add(item);
                // item.Tag = server;

                ListViewUtil.ChangeItemText(item, COLUMN_URL, server.Url);
                ListViewUtil.ChangeItemText(item, COLUMN_USERNAME, server.DefaultUserName);
                ListViewUtil.ChangeItemText(item, COLUMN_SAVEPASSWORD, server.SavePassword == true ? "是" : "否");
                ListViewUtil.ChangeItemText(item, COLUMN_UID, server.UID);
                ListViewUtil.ChangeItemText(item, COLUMN_LINENO, (i + 1).ToString());

                //item.SubItems.Add(server.Url);
                //item.SubItems.Add(server.DefaultUserName);
                //item.SubItems.Add(server.SavePassword == true ? "是" : "否");
            }
        }
示例#17
0
        int ListTasks(out string strError)
        {
            strError = "";

            this.listView_tasks.Items.Clear();

            TaskInfo [] results = null;

            int nRet = this.Channel.DoBatchTask("",
                                                "getinfo",
                                                null,
                                                out results,
                                                out strError);

            if (nRet == -1)
            {
                return(-1);
            }

            foreach (TaskInfo info in results)
            {
                ListViewItem item = new ListViewItem();
                item.Text = info.Name;
                ListViewUtil.ChangeItemText(item, 1, info.ID);
                ListViewUtil.ChangeItemText(item, 2, info.State);
                this.listView_tasks.Items.Add(item);
            }

            return(0);
        }
示例#18
0
        void CreateServer(string server_xml)
        {
            XmlElement server = _dom.CreateElement("server");

            _dom.DocumentElement.AppendChild(server);
            server = DomUtil.SetElementOuterXml(server, server_xml);

            {
                // 对 server name 进行查重
                string name = server.GetAttribute("name");
                if (SearchDup(ref name, null) == true)
                {
                    server.SetAttribute("name", name);
                }

                {
                    ListViewItem item = new ListViewItem();
                    item.Tag = server;
                    ListViewUtil.ChangeItemText(item, COLUMN_NAME, name);
                    ListViewUtil.ChangeItemText(item, COLUMN_DATABASE, ZServerUtil.GetDatabaseList(server));
                    ListViewUtil.ChangeItemText(item, COLUMN_ENABLED, "是");
                    SetItemColor(item);

                    this.listView1.Items.Add(item);
                }

                this.Changed = true;
            }
        }
示例#19
0
        private void button_modifyInstance_Click(object sender, EventArgs e)
        {
            string strError = "";

            if (this.listView_instance.SelectedItems.Count == 0)
            {
                strError = "尚未选择要修改的实例";
                goto ERROR1;
            }

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

            InstanceDialog dlg = new InstanceDialog();

            FontUtil.AutoSetDefaultFont(dlg);

            dlg.InstanceName = ListViewUtil.GetItemText(item, COLUMN_NAME);
            dlg.DataDir      = ListViewUtil.GetItemText(item, COLUMN_DATADIR);

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

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

            ListViewUtil.ChangeItemText(item, COLUMN_DATADIR, dlg.DataDir);
            return;

ERROR1:
            MessageBox.Show(this, strError);
        }
示例#20
0
        private void toolStripButton_location_modify_Click(object sender, EventArgs e)
        {
            string strError = "";
            if (this.listView_location_list.SelectedItems.Count == 0)
            {
                strError = "尚未选定要修改的馆藏地点事项";
                goto ERROR1;
            }
            ListViewItem item = this.listView_location_list.SelectedItems[0];

            LocationItemDialog dlg = new LocationItemDialog();

            dlg.LocationString = ListViewUtil.GetItemText(item, 0);
            dlg.CanBorrow = (ListViewUtil.GetItemText(item, 1) == "是") ? true : false;
            dlg.StartPosition = FormStartPosition.CenterScreen;
            dlg.ShowDialog(this);

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

            ListViewUtil.ChangeItemText(item, 0, dlg.LocationString);
            ListViewUtil.ChangeItemText(item, 1, dlg.CanBorrow == true ? "是" : "否");

            ListViewUtil.SelectLine(item, true);
            return;
        ERROR1:
            MessageBox.Show(this, strError);
        }
示例#21
0
        void GetTagInfo(ListViewItem item)
        {
            ItemInfo item_info = (ItemInfo)item.Tag;
            OneTag   tag       = item_info.OneTag;

            RfidChannel channel = StartRfidChannel(
                Program.MainForm.RfidCenterUrl,
                out string strError);

            if (channel == null)
            {
                strError = "StartRfidChannel() error";
                goto ERROR1;
            }
            try
            {
                GetTagInfoResult result = channel.Object.GetTagInfo("*", tag.UID);
                if (result.Value == -1)
                {
                    strError = result.ErrorInfo;
                    goto ERROR1;
                }

                tag.TagInfo = result.TagInfo;

                string hex_string = Element.GetHexString(result.TagInfo.Bytes, "4");

                item_info.LogicChipItem = LogicChipItem.FromTagInfo(result.TagInfo);
                item_info.LogicChipItem.PropertyChanged += LogicChipItem_PropertyChanged;
                this.Invoke((Action)(() =>
                {
                    string pii = item_info.LogicChipItem.PrimaryItemIdentifier;
                    // .FindElement(ElementOID.PII)?.Text;
                    ListViewUtil.ChangeItemText(item, COLUMN_PII, pii);
                    if (this.SelectedPII != null &&
                        pii == this.SelectedPII)
                    {
                        item.Font = new Font(item.Font, FontStyle.Bold);
                    }
                }));
                return;
            }
            catch (Exception ex)
            {
                strError = "ListTags() 出现异常: " + ex.Message;
                goto ERROR1;
            }
            finally
            {
                EndRfidChannel(channel);
            }
ERROR1:
            this.Invoke((Action)(() =>
            {
                ListViewUtil.ChangeItemText(item, COLUMN_PII, "error:" + strError);
                // 把 item 修改为红色背景,表示出错的状态
                SetItemColor(item, "error");
            }));
        }
示例#22
0
        async Task ClearTagContent(ListViewItem item)
        {
            RfidChannel channel = StartRfidChannel(
                Program.MainForm.RfidCenterUrl,
                out string strError);

            if (channel == null)
            {
                strError = "StartRfidChannel() error";
                goto ERROR1;
            }
            try
            {
                ItemInfo item_info    = (ItemInfo)item.Tag;
                var      old_tag_info = item_info.OneTag.TagInfo;
                var      new_tag_info = old_tag_info.Clone();
                // 制造一套空内容
                {
                    new_tag_info.AFI   = 0;
                    new_tag_info.DSFID = 0;
                    new_tag_info.EAS   = false;
                    List <byte> bytes = new List <byte>();
                    for (int i = 0; i < new_tag_info.BlockSize * new_tag_info.MaxBlockCount; i++)
                    {
                        bytes.Add(0);
                    }
                    new_tag_info.Bytes      = bytes.ToArray();
                    new_tag_info.LockStatus = "";
                }
                var result = channel.Object.WriteTagInfo(item_info.OneTag.ReaderName,
                                                         old_tag_info,
                                                         new_tag_info);
                if (result.Value == -1)
                {
                    strError = result.ErrorInfo;
                    goto ERROR1;
                }

                await Task.Run(() => { GetTagInfo(item); });

                return;
            }
            catch (Exception ex)
            {
                strError = "ClearTagContent() 出现异常: " + ex.Message;
                goto ERROR1;
            }
            finally
            {
                EndRfidChannel(channel);
            }
ERROR1:
            this.Invoke((Action)(() =>
            {
                ListViewUtil.ChangeItemText(item, COLUMN_PII, "error:" + strError);
                // 把 item 修改为红色背景,表示出错的状态
                SetItemColor(item, "error");
            }));
        }
示例#23
0
        // 在 listview 中列出所有中心服务器
        int ListCenter(out string strError)
        {
            strError = "";

            this.listView_center.Items.Clear();

            string strOutputInfo = "";
            int    nRet          = GetCenterInfo(out strOutputInfo,
                                                 out strError);

            if (nRet == -1)
            {
                return(-1);
            }

            this.CenterInfoXml = strOutputInfo;

            if (string.IsNullOrEmpty(this.CenterInfoXml) == true)
            {
                return(0);
            }

            XmlDocument dom = new XmlDocument();

            try
            {
                dom.LoadXml(strOutputInfo);
            }
            catch (Exception ex)
            {
                strError = "XML 装入 DOM 时出错: " + ex.Message;
                return(-1);
            }

            XmlNodeList nodes = dom.DocumentElement.SelectNodes("server");

            for (int i = 0; i < nodes.Count; i++)
            {
                XmlNode node = nodes[i];

                string strName     = DomUtil.GetAttr(node, "name");
                string strUrl      = DomUtil.GetAttr(node, "url");
                string strUserName = DomUtil.GetAttr(node, "username");
                string strRefID    = DomUtil.GetAttr(node, "refid");
                string strPassword = DomUtil.GetAttr(node, "password");

                ListViewItem item = new ListViewItem(strName, 0);
                ListViewUtil.ChangeItemText(item, 1, strUrl);
                ListViewUtil.ChangeItemText(item, 2, strUserName);
                ListViewUtil.ChangeItemText(item, 3, strRefID);
                // item.Tag = node.OuterXml;   // 记载XML定义片断
                item.Tag = strPassword;
                this.listView_center.Items.Add(item);
            }

            listView_center_SelectedIndexChanged(this, null);
            return(0);
        }
示例#24
0
 // 修改 ListViewItem 的 PII 列文字
 static void SetItemPIIColumn(ListViewItem item, string pii)
 {
     if (string.IsNullOrEmpty(pii))
     {
         pii = "(空白)";
     }
     ListViewUtil.ChangeItemText(item, COLUMN_PII, pii);
     SetItemColor(item, "normal");
 }
示例#25
0
        void AddItem(Account account)
        {
            ListViewItem item = new ListViewItem();

            ListViewUtil.ChangeItemText(item, COLUMN_SERVERURL, account.ServerUrl);
            ListViewUtil.ChangeItemText(item, COLUMN_USERNAME, account.UserName);
            item.Tag = account;
            this.listView_accounts.Items.Add(item);
        }
示例#26
0
        async Task <bool> SaveTagContent(ListViewItem item)
        {
            ItemInfo item_info = (ItemInfo)item.Tag;

            if (item_info.LogicChipItem.Changed == false)
            {
                return(false);
            }

            RfidChannel channel = StartRfidChannel(
                Program.MainForm.RfidCenterUrl,
                out string strError);

            if (channel == null)
            {
                strError = "StartRfidChannel() error";
                goto ERROR1;
            }
            try
            {
                var old_tag_info = item_info.OneTag.TagInfo;
                var new_tag_info = BuildNewTagInfo(
                    old_tag_info,
                    item_info.LogicChipItem);

                var result = channel.Object.WriteTagInfo(item_info.OneTag.ReaderName,
                                                         old_tag_info,
                                                         new_tag_info);
                if (result.Value == -1)
                {
                    strError = result.ErrorInfo;
                    goto ERROR1;
                }

                await Task.Run(() => { GetTagInfo(item); });

                UpdateChanged(item_info.LogicChipItem);
                return(true);
            }
            catch (Exception ex)
            {
                strError = "SaveTagContent() 出现异常: " + ex.Message;
                goto ERROR1;
            }
            finally
            {
                EndRfidChannel(channel);
            }
ERROR1:
            this.Invoke((Action)(() =>
            {
                ListViewUtil.ChangeItemText(item, COLUMN_PII, "error:" + strError);
                // 把 item 修改为红色背景,表示出错的状态
                SetItemColor(item, "error");
            }));
            return(false);
        }
示例#27
0
        void FillInstance(string strDataDir)
        {
            this.listView_instance.Items.Clear();

#if NO
            // 如果目录不存在,则不用填充
            DirectoryInfo root = new DirectoryInfo(strDataDir);
            if (root.Exists == false)
            {
                return;
            }

            var dis = root.GetDirectories();
            int i   = 0;
            foreach (DirectoryInfo di in dis)
            {
                // string strXmlFileName = Path.Combine(di.FullName, "capo.xml");

                ListViewItem item = new ListViewItem((i + 1).ToString());
                ListViewUtil.ChangeItemText(item, COLUMN_DATADIR, di.FullName);
                this.listView_instance.Items.Add(item);

                i++;
            }
#endif
            int nErrorCount = 0;

            List <string> data_dirs = GetInstanceDataDir(strDataDir);
            int           i         = 0;
            foreach (string data_dir in data_dirs)
            {
                string   strFileName = Path.Combine(data_dir, "capo.xml");
                LineInfo info        = new LineInfo();
                info.Build(strFileName);

                string instance_name = Path.GetFileName(data_dir);

                ListViewItem item = new ListViewItem(instance_name);
                ListViewUtil.ChangeItemText(item, COLUMN_DATADIR, data_dir);
                ListViewUtil.ChangeItemText(item, COLUMN_DP2LIBRARY_URL, info.dp2Library_url);
                ListViewUtil.ChangeItemText(item, COLUMN_DP2MSERVER_URL, info.dp2MServer_url);
                this.listView_instance.Items.Add(item);

                i++;
            }

            RefreshInstanceName();

            if (nErrorCount > 0)
            {
                this.listView_instance.Columns[COLUMN_ERRORINFO].Width = 200;
            }
            else
            {
                this.listView_instance.Columns[COLUMN_ERRORINFO].Width = 0;
            }
        }
示例#28
0
        void SetItemText(ListViewItem item, int column, string strText)
        {
            if (this.listView_list.InvokeRequired)
            {
                this.listView_list.BeginInvoke(new Action <ListViewItem, int, string>(SetItemText), item, column, strText);
                return;
            }

            ListViewUtil.ChangeItemText(item, column, strText);
        }
示例#29
0
        void RefreshInstanceName()
        {
            int i = 0;

            foreach (ListViewItem item in this.listView_instance.Items)
            {
                ListViewUtil.ChangeItemText(item, COLUMN_NAME, (i + 1).ToString());
                i++;
            }
        }
示例#30
0
        // 填充一行的信息
        int FillLine(
            ListViewItem item,
            out string strError)
        {
            strError = "";

            Debug.Assert(item.Tag != null, "");

            ItemInfo info          = (ItemInfo)item.Tag;
            string   strRecPath    = info.RecPath;
            string   strPatronXml  = info.PatronXml;
            string   strBiblioHtml = info.PatronHtml;

            XmlDocument dom = new XmlDocument();

            try
            {
                dom.LoadXml(strPatronXml);
            }
            catch (Exception ex)
            {
                strError = "XML装入DOM失败: " + ex.Message;
                return(-1);
            }

            string strBarcode = DomUtil.GetElementText(dom.DocumentElement,
                                                       "barcode");
            string strState = DomUtil.GetElementText(dom.DocumentElement,
                                                     "state");
            string strName = DomUtil.GetElementText(dom.DocumentElement,
                                                    "name");
            string strGender = DomUtil.GetElementText(dom.DocumentElement,
                                                      "gender");
            string strDepartment = DomUtil.GetElementText(dom.DocumentElement,
                                                          "department");
            string strIdCardNumber = DomUtil.GetElementText(dom.DocumentElement,
                                                            "idCardNumber");
            string strComment = DomUtil.GetElementText(dom.DocumentElement,
                                                       "comment");

            ListViewUtil.ChangeItemText(item, COLUMN_BARCODE, strBarcode);
            // item.SubItems.Add(strBarcode);
            ListViewUtil.ChangeItemText(item, COLUMN_STATE, strState);
            ListViewUtil.ChangeItemText(item, COLUMN_NAME, strName);
            ListViewUtil.ChangeItemText(item, COLUMN_GENDER, strGender);
            ListViewUtil.ChangeItemText(item, COLUMN_DEPARTMENT, strDepartment);
            ListViewUtil.ChangeItemText(item, COLUMN_IDCARDNUMBER, strIdCardNumber);
            ListViewUtil.ChangeItemText(item, COLUMN_COMMENT, strComment);

            ListViewUtil.ChangeItemText(item, COLUMN_RECPATH, strRecPath);

            // item.BackColor = SystemColors.Window;

            return(0);
        }