SHASHANK Balaganchi Ответов: 1

Невозможно получить циклы с помощью-в релизе для HP ALM с помощью кода C#


Цель этого кода-получить имя цикла, когда пользователь выбирает конкретные релизы в выпадающем списке Release.

Код извлекает все циклы для проекта в HP ALM, а не при выборе выпуска он должен извлекать цикл, специфичный для выпуска.

Я попробовал следующий код . Не могли бы вы помочь мне получить цикл, специфичный для выпуска, выбранного в HP ALM?

Что я уже пробовал:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MetroFramework.Forms;
using MetroFramework;
using TDAPIOLELib;

namespace ALM___Utilities
{
    public partial class Main : MetroForm
    {
        public BugFactory BugF;
        public TDFilter BugFFilter;
        public List BugL;
        public Release rl;
        public Cycle Cyc;
        public CycleFactory CyF;
        public ReleaseFactory rel;
        public List listRel;
        public List listcycle;

        public Main(ITDConnection2 qctd)
        {
            InitializeComponent();
        }

        //private void Export_Defects_Button_Click(object sender, EventArgs e)
        //{
        // BugF = LoginForm.qctd.BugFactory;

        // BugL = (List)BugF.NewList(BugF.Filter.Text);
        //foreach (Bug thisBug in BugL)
        //{

        // string x = thisBug["BG_DETECTED_IN_REL"].Value;
        // }

        private void Main_Load(object sender, EventArgs e)
        {
            Export_Defects_Button.Enabled = false;
            rel = LoginForm.qctd.ReleaseFactory;
            listRel = (List)rel.NewList(rel.Filter.Text);
            Release.Items.Clear();
            foreach (Release rl in listRel)
            {
                Release.Items.Add(rl.Name);
            }
            // CyF = LoginForm.qctd.CycleFactory;
        }

        private void Release_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                string releasename = Release.Text;
                listRel = (List)rel.NewList(rel.Filter.Text);
                foreach (Release rl in listRel)
                {
                    CyF = rl.CycleFactory;
                    listcycle = (List)CyF.NewList("");
                    Defect_Cycle.Items.Clear();
                    foreach (TDAPIOLELib.Cycle Cyc in listcycle)
                    {
                        Defect_Cycle.Items.Add(Cyc.Name);
                    }
                }
                Export_Defects_Button.Enabled = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }
}

1 Ответов

Рейтинг:
1

Richard MacCutchan

Вы создаете два List объекты, локальные для двух методов в вашем классе, поэтому ни один из них не виден другому. Сделайте свой List в переменную класса, чтобы она существовала в течение всего срока службы программы.


SHASHANK Balaganchi

У меня есть обновление, но я все еще не могу получить необходимый вывод

SHASHANK Balaganchi

Пожалуйста, смотрите обновленный код выше прямо сейчас?

Richard MacCutchan

Я не понимаю, что должен делать этот код. Вам нужно использовать свой отладчик, чтобы отслеживать, что происходит на каждом этапе, особенно циклы, где вы копируете элементы между списками.