Jump to content

Erro ao listar uma classe, altera a ordem dos elementos inseridos


Recommended Posts

Posted (edited)

Boas caros amigos...

Hoje estou a ter um erro que me esta a deixar tolo...

Eu criei uma classe paciente, em qual adicionei ;

private int numero;
	private string nome;
	private string telefone;
	private string nbeneficiario;
	private string datanascimento;
	private string profissao;
	private string morada;
	private string observacoes;		
	private string email;
	private int consultas = 0;

... public void MostraPacientes()
	{
		Console.WriteLine(this.numero + " - " + this.nome + " Tel: " + this.telefone + "Dat.Nasc:"+ this.datanascimento + "NBenf:" + this.nbeneficiario + "Profissão" + this.profissao + "Morada" + this.morada + "Observações" + this.observacoes + "Email" + this.email);
	}
	public string GetPacienteInfo()
	{
		return (this.nome + " - Tel: " + this.telefone + "Dat.Nasc:" + this.datanascimento + "NBenf:" + this.nbeneficiario + "Profissão" + this.profissao + "Morada" + this.morada + "Observações" + this.observacoes + "Email" + this.email );
	}

na classe Inserir novo paciente fiz...

public class NovoPacientePanel : Panel
{

	private System.Windows.Forms.Label titulo;
	private System.Windows.Forms.TextBox nomeText;
	private System.Windows.Forms.Label nome;
	private System.Windows.Forms.TextBox telefoneText;
	private System.Windows.Forms.Label telefone;
	private System.Windows.Forms.TextBox datanascimentoText;
	private System.Windows.Forms.Label datanascimento;
	private System.Windows.Forms.TextBox nbeneficiarioText;
	private System.Windows.Forms.Label nbeneficiario;
	private System.Windows.Forms.TextBox profissaoText;
	private System.Windows.Forms.Label profissao;
	private System.Windows.Forms.TextBox moradaText;
	private System.Windows.Forms.Label morada;
	private System.Windows.Forms.TextBox observacoesText;
	private System.Windows.Forms.Label observacoes;
	private System.Windows.Forms.TextBox emailText;
	private System.Windows.Forms.Label email;
	private System.Windows.Forms.Button pacienteGuardar;
....

this.Controls.Add(this.titulo);
		this.Controls.Add(this.nomeText);
		this.Controls.Add(this.nome);
		this.Controls.Add(this.telefoneText);
		this.Controls.Add(this.telefone);
		this.Controls.Add(this.nbeneficiarioText);
		this.Controls.Add(this.nbeneficiario);
		this.Controls.Add(this.datanascimentoText);
		this.Controls.Add(this.datanascimento);
		this.Controls.Add(this.profissaoText);
		this.Controls.Add(this.profissao);
		this.Controls.Add(this.moradaText);
		this.Controls.Add(this.morada);
		this.Controls.Add(this.observacoesText);
		this.Controls.Add(this.observacoes);
		this.Controls.Add(this.emailText);
		this.Controls.Add(this.email);

		this.Controls.Add(this.pacienteGuardar);

		this.Dock = System.Windows.Forms.DockStyle.Fill;
		this.Location = new System.Drawing.Point(0, 0);
		this.Name = "panel1";
		this.Size = new System.Drawing.Size(402, 315);
		this.TabIndex = 0;
		//
		// titulo
		//
		this.titulo.AutoSize = true;
		this.titulo.Location = new System.Drawing.Point(184, 9);
		this.titulo.Name = "titulo";
		this.titulo.Size = new System.Drawing.Size(70, 13);
		this.titulo.TabIndex = 4;
		this.titulo.Text = "Novo Paciente";
		//
		// nomeText
		//
		this.nomeText.Location = new System.Drawing.Point(197, 65);
		this.nomeText.Name = "nomeText";
		this.nomeText.Size = new System.Drawing.Size(127, 20);
		this.nomeText.TabIndex = 1;
		//
		// nome
		//
		this.nome.AutoSize = true;
		this.nome.Location = new System.Drawing.Point(112, 65);
		this.nome.Name = "nome";
		this.nome.Size = new System.Drawing.Size(38, 13);
		this.nome.TabIndex = 0;
		this.nome.Text = "Nome:";

		//
		// telefoneText
		//
		this.telefoneText.Location = new System.Drawing.Point(197, 89);
		this.telefoneText.Name = "telefoneText";
		this.telefoneText.Size = new System.Drawing.Size(127, 20);
		this.telefoneText.TabIndex = 1;
		//
		// telefone
		//
		this.telefone.AutoSize = true;
		this.telefone.Location = new System.Drawing.Point(112, 91);
		this.telefone.Name = "telefone";
		this.telefone.Size = new System.Drawing.Size(38, 13);
		this.telefone.TabIndex = 0;
		this.telefone.Text = "Telefone:";
		//
		// numerobeneficiarioText
		//
		this.nbeneficiarioText.Location = new System.Drawing.Point(197, 112);
		this.nbeneficiarioText.Name = "nbeneficiarioText";
		this.nbeneficiarioText.Size = new System.Drawing.Size(127, 20);
		this.nbeneficiarioText.TabIndex = 1;
		//
		// nbeneficiario
		//
		this.nbeneficiario.AutoSize = true;
		this.nbeneficiario.Location = new System.Drawing.Point(112, 113);
		this.nbeneficiario.Name = "Nr.Beneficiario";
		this.nbeneficiario.Size = new System.Drawing.Size(38, 13);
		this.nbeneficiario.TabIndex = 0;
		this.nbeneficiario.Text = "Nr.Beneficiario:";
		//
		// datanascimentoText
		//
		this.datanascimentoText.Location = new System.Drawing.Point(197, 134);
		this.datanascimentoText.Name = "datanascimentoText";
		this.datanascimentoText.Size = new System.Drawing.Size(127, 20);
		this.datanascimentoText.TabIndex = 1;
		//
		// datanascimento ... para todos


private void pacienteGuardar_Click(object sender, EventArgs e)
	{
		Paciente p = new Paciente(nomeText.Text, telefoneText.Text, nbeneficiarioText.Text, datanascimentoText.Text, moradaText.Text, profissaoText.Text, moradaText.Text, observacoesText.Text, 0);
		gestaoDados.adicionaPaciente(p);
		mainPanel.listarPacientes_Click(sender, e);
	}

e depois na classe listar pacientes coloquei :

 public void DataSource(ArrayList p)
	{
		this.pacientes = p;
		intRows = pacientes.Count + 1; // Obter o número de linhas na matriz bidimensional.
		intColumns = 11;  ...


blData = new Control[totalDataCells];
		lblData[tag] = new Label();
		lblData[tag].BackColor = System.Drawing.Color.Gray;
		lblData[tag].Text = "Número";
		lblData[tag].Dock = DockStyle.Fill;
		lblData[tag].Width = cellWidth;
		lblData[tag].Height = cellHeight;
		lblData[tag].Tag = "R0";
		tlp.Controls.Add(lblData[tag], 0, 0);
		tag++;
		lblData[tag] = new Label();
		lblData[tag].BackColor = System.Drawing.Color.Gray;
		lblData[tag].Text = "Nome";
		lblData[tag].Dock = DockStyle.Fill;
		lblData[tag].Width = cellWidth;
		lblData[tag].Height = cellHeight;
		lblData[tag].Tag = "R1";
		tlp.Controls.Add(lblData[tag], 1, 0);
		tag++;
		lblData[tag] = new Label();
		lblData[tag].BackColor = System.Drawing.Color.Gray;
		lblData[tag].Text = "Telefone";
		lblData[tag].Dock = DockStyle.Fill;
		lblData[tag].Width = cellWidth;
		lblData[tag].Height = cellHeight;
		lblData[tag].Tag = "R2";
		tlp.Controls.Add(lblData[tag], 2, 0);
		tag++;
		lblData[tag] = new Label();
		lblData[tag].BackColor = System.Drawing.Color.Gray;
		lblData[tag].Text = "Nr.Beneficiario";
		lblData[tag].Dock = DockStyle.Fill;
		lblData[tag].Width = cellWidth;
		lblData[tag].Height = cellHeight;
		lblData[tag].Tag = "R4";
		tlp.Controls.Add(lblData[tag], 3, 0);
		tag++;
		lblData[tag] = new Label();
		lblData[tag].BackColor = System.Drawing.Color.Gray;
		lblData[tag].Text = "DataNascimento";
		lblData[tag].Dock = DockStyle.Fill;
		lblData[tag].Width = cellWidth;
		lblData[tag].Height = cellHeight;
		lblData[tag].Tag = "R5";
		tlp.Controls.Add(lblData[tag], 4, 0);
		tag++;
		lblData[tag] = new Label();
		lblData[tag].BackColor = System.Drawing.Color.Gray;
		lblData[tag].Text = "Profissão";
		lblData[tag].Dock = DockStyle.Fill;
		lblData[tag].Width = cellWidth;
		lblData[tag].Height = cellHeight;
		lblData[tag].Tag = "R3";
		tlp.Controls.Add(lblData[tag], 5, 0);
		tag++;
		lblData[tag] = new Label();
		lblData[tag].BackColor = System.Drawing.Color.Gray;
		lblData[tag].Text = "Morada";
		lblData[tag].Dock = DockStyle.Fill;
		lblData[tag].Width = cellWidth;
		lblData[tag].Height = cellHeight;
		lblData[tag].Tag = "R7";
		tlp.Controls.Add(lblData[tag], 6, 0);
		tag++;
		lblData[tag] = new Label();
		lblData[tag].BackColor = System.Drawing.Color.Gray;
		lblData[tag].Text = "Observações";
		lblData[tag].Dock = DockStyle.Fill;
		lblData[tag].Width = cellWidth;
		lblData[tag].Height = cellHeight;
		lblData[tag].Tag = "R6";
		tlp.Controls.Add(lblData[tag], 7, 0);
		tag++;
		lblData[tag] = new Label();
		lblData[tag].BackColor = System.Drawing.Color.Gray;
		lblData[tag].Text = "Email";
		lblData[tag].Dock = DockStyle.Fill;
		lblData[tag].Width = cellWidth;
		lblData[tag].Height = cellHeight;
		lblData[tag].Tag = "R8";
		tlp.Controls.Add(lblData[tag], 8, 0);
		tag++;
		lblData[tag] = new Label();
		lblData[tag].BackColor = System.Drawing.Color.Gray;
		lblData[tag].Text = "Consultas";
		lblData[tag].Dock = DockStyle.Fill;
		lblData[tag].Width = cellWidth;
		lblData[tag].Height = cellHeight;
		lblData[tag].Tag = "R9";
		tlp.Controls.Add(lblData[tag], 9, 0);
		tag++;
		lblData[tag] = new Label();
		lblData[tag].BackColor = System.Drawing.Color.Gray;
		lblData[tag].Text = "Apagar";
		lblData[tag].Dock = DockStyle.Fill;
		lblData[tag].Width = cellWidth;
		lblData[tag].Height = cellHeight;
		lblData[tag].Tag = "R10";
		tlp.Controls.Add(lblData[tag], 10, 0);
		tag++;

		for (int r = 1; r < intRows; r++)
		{
			Paciente p1 = (Paciente)pacientes[r - 1];

			lblData[tag] = new Label();
			lblData[tag].Text = p1.Numero.ToString();
			lblData[tag].Dock = DockStyle.Fill;
			lblData[tag].Width = cellWidth;
			lblData[tag].Height = cellHeight;
			lblData[tag].Tag = "R" + r;
			tlp.Controls.Add(lblData[tag], 0, r);
			tag++;

			lblData[tag] = new Label();
			lblData[tag].Text = p1.Nome.ToString();
			lblData[tag].Dock = DockStyle.Fill;
			lblData[tag].Width = cellWidth;
			lblData[tag].Height = cellHeight;
			lblData[tag].Tag = "R" + r;
			tlp.Controls.Add(lblData[tag], 1, r);
			tag++;

			lblData[tag] = new Label();
			lblData[tag].Text = p1.Telefone.ToString();
			lblData[tag].Dock = DockStyle.Fill;
			lblData[tag].Width = cellWidth;
			lblData[tag].Height = cellHeight;
			lblData[tag].Tag = "R" + r;
			tlp.Controls.Add(lblData[tag], 2, r);
			tag++;

			lblData[tag] = new Label();
			lblData[tag].Text = p1.Nbeneficiario.ToString();
			lblData[tag].Dock = DockStyle.Fill;
			lblData[tag].Width = cellWidth;
			lblData[tag].Height = cellHeight;
			lblData[tag].Tag = "R" + r;
			tlp.Controls.Add(lblData[tag], 3, r);
			tag++;

			lblData[tag] = new Label();
			lblData[tag].Text = p1.Datanascimento.ToString();
			lblData[tag].Dock = DockStyle.Fill;
			lblData[tag].Width = cellWidth;
			lblData[tag].Height = cellHeight;
			lblData[tag].Tag = "R" + r;
			tlp.Controls.Add(lblData[tag], 4, r);
			tag++;

			lblData[tag] = new Label();
			lblData[tag].Text = p1.Profissao.ToString();
			lblData[tag].Dock = DockStyle.Fill;
			lblData[tag].Width = cellWidth;
			lblData[tag].Height = cellHeight;
			lblData[tag].Tag = "R" + r;
			tlp.Controls.Add(lblData[tag], 5, r);
			tag++;

			lblData[tag] = new Label();
			lblData[tag].Text = p1.Morada.ToString();
			lblData[tag].Dock = DockStyle.Fill;
			lblData[tag].Width = cellWidth;
			lblData[tag].Height = cellHeight;
			lblData[tag].Tag = "R" + r;
			tlp.Controls.Add(lblData[tag], 6, r);
			tag++;

			lblData[tag] = new Label();
			lblData[tag].Text = p1.Observacoes.ToString();
			lblData[tag].Dock = DockStyle.Fill;
			lblData[tag].Width = cellWidth;
			lblData[tag].Height = cellHeight;
			lblData[tag].Tag = "R" + r;
			tlp.Controls.Add(lblData[tag], 7, r);
			tag++;


			lblData[tag] = new Label();
			lblData[tag].Text = p1.Email.ToString();
			lblData[tag].Dock = DockStyle.Fill;
			lblData[tag].Width = cellWidth;
			lblData[tag].Height = cellHeight;
			lblData[tag].Tag = "R" + r;
			tlp.Controls.Add(lblData[tag], 8, r);
			tag++;

			lblData[tag] = new Label();
			lblData[tag].Text = p1.Consultas.ToString();
			lblData[tag].Dock = DockStyle.Fill;
			lblData[tag].Width = cellWidth;
			lblData[tag].Height = cellHeight;
			lblData[tag].Tag = "R" + r;
			tlp.Controls.Add(lblData[tag], 9, r);
			tag++;

			lblData[tag] = new Button();
			lblData[tag].Text = "X";
			lblData[tag].Dock = DockStyle.Fill;
			lblData[tag].Width = cellHeight;
			lblData[tag].Height = cellHeight;
			lblData[tag].Tag = p1.Numero;
			lblData[tag].Click += new System.EventHandler(this.pacienteApagar_Click);
			tlp.Controls.Add(lblData[tag], 10, r);
			tag++;
		}
	}

	private void pacienteApagar_Click(object sender, EventArgs e)
	{
		ButtonBase b = (ButtonBase)sender;
		gestaoDados.apagarPaciente(Convert.ToInt32(b.Tag));
		mainPanel.listarPacientes_Click(sender, e);
	}


	// Seguindo método, define o tamanho de cada célula
	public void CellSize(int CellWidth, int CellHeight)
	{
		this.cellWidth = CellHeight;
		this.cellWidth = CellWidth;
	}

	// Obter o número total de linhas.
	public int RowCount()
	{
		return this.pacientes.Count;
	}

	// Obter os dados armazenados na matriz objecto. Esse método leva dois argumentos, o de linha e coluna como inteiros.
	public object GetObject(int row)
	{
		return this.pacientes[row];
	}

  }
}

mas quando vejo o que inseri nos pacientes, na parte de listar... os elementos aparecem me trocados...

somente o numero, nome e telefone estao direitos...o resto esta tudo trocado...

tem alguma solucao para este problema???

Edited by softklin
Adicionado GeSHi para blocos de código
  • 2 weeks later...
Posted (edited)

Olá,

Não sei se já terás o problema resolvido, mas verifica o teu construtor:

Paciente p = new Paciente(nomeText.Text, telefoneText.Text, nbeneficiarioText.Text, datanascimentoText.Text, moradaText.Text, profissaoText.Text, moradaText.Text, observacoesText.Text, 0);

Verifica se a ordem dos parâmetros está correcta.

Edited by Rechousa

Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.