private void btnEditLista_Click(object sender, System.EventArgs e)
		{
			ListViewItem item = LstVwListaModelos.SelectedItems[0];
			GISADataset.ListaModelosAvaliacaoRow lstModAvRow = (GISADataset.ListaModelosAvaliacaoRow)item.Tag;
			FormListaModelosAvaliacao frm = new FormListaModelosAvaliacao();
			frm.Text = "Editar " + frm.Text;
			frm.txtDesignacaoListaModelos.Text = lstModAvRow.Designacao;
            GUIHelper.GUIHelper.populateData(frm.PxDateBox1, lstModAvRow);
			switch (frm.ShowDialog())
			{
				case DialogResult.OK:
					if (! (lstModAvRow.RowState == DataRowState.Added))
					{
						int dResult = (int)DialogResult.OK;
						if (LstVwListaModelos.Items.Count > 0)
						{
							GISADataset.ListaModelosAvaliacaoRow mostRecentLstModAvRow = GetMostRecentList();
                            if (mostRecentLstModAvRow.DataInicio < GUIHelper.GUIHelper.GetData(frm.PxDateBox1))
							{
                                dResult = Convert.ToInt32(MessageBox.Show("Está prestes a alterar a data de início de uma nova lista de modelos de avaliação. Todos as séries e sub-séries avaliadas perderão a avaliacão segundo modelos de avaliação da lista antiga. Pretende continuar?", "Nova Lista de Modelos", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning));
							}
						}
						GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection());
						try
						{
							bool result = false;
                            result = DBAbstractDataLayer.DataAccessRules.NivelRule.Current.ManageListasModelosAvaliacao(false, lstModAvRow.ID, frm.txtDesignacaoListaModelos.Text, GUIHelper.GUIHelper.GetData(frm.PxDateBox1), ho.Connection);
							if (result)
							{
								lstModAvRow.Designacao = frm.txtDesignacaoListaModelos.Text;
                                GUIHelper.GUIHelper.storeData(frm.PxDateBox1, lstModAvRow);
								UpdateListaModeloItem(item, lstModAvRow);
								lstModAvRow.AcceptChanges();
							}
							else
							{
								MessageBox.Show("A lista de modelos de avaliação selecionada não pode ser alterada uma vez que já está a ser utilizada na avaliação de níveis documentais.", "Editar Lista de Avaliações", MessageBoxButtons.OK, MessageBoxIcon.Warning);
							}
						}
						catch (Exception ex)
						{
							Trace.WriteLine(ex);
							MessageBox.Show("Não foi possível completar a operação. Tente novamente.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
						}
						finally
						{
							ho.Dispose();
						}
					}
					else
					{
						lstModAvRow.Designacao = frm.txtDesignacaoListaModelos.Text;
                        GUIHelper.GUIHelper.storeData(frm.PxDateBox1, lstModAvRow);
						UpdateListaModeloItem(item, lstModAvRow);
					}
					break;
				case DialogResult.Cancel:
					return;
			}
		}
		private void btnAddLista_Click(object sender, System.EventArgs e)
		{
			FormListaModelosAvaliacao frm = new FormListaModelosAvaliacao();
			frm.Text = "Criar " + frm.Text;
			switch (frm.ShowDialog())
			{
				case DialogResult.OK:
				{
					int dResult = (int)DialogResult.OK;
					if (LstVwListaModelos.Items.Count > 0)
					{
						GISADataset.ListaModelosAvaliacaoRow lstModAvRow = GetMostRecentList();
                        if (lstModAvRow.DataInicio < GUIHelper.GUIHelper.GetData(frm.PxDateBox1))
						{
							dResult = Convert.ToInt32(MessageBox.Show("Está prestes a criar uma nova lista de modelos de avaliação. Todos as séries e sub-séries avaliadas perderão a avaliacão segundo modelos de avaliação da lista antiga. Pretende continuar?", "Nova Lista de Modelos", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning));
						}
					}
					if (dResult == (int)DialogResult.OK)
					{
						GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection());
						try
						{
                            DBAbstractDataLayer.DataAccessRules.NivelRule.Current.ClearAvaliacaoTabelaSeries(GUIHelper.GUIHelper.GetData(frm.PxDateBox1), ho.Connection);
							GISADataset.ListaModelosAvaliacaoRow lstModAvRow = null;
							lstModAvRow = GisaDataSetHelper.GetInstance().ListaModelosAvaliacao.NewListaModelosAvaliacaoRow();
							lstModAvRow.Designacao = frm.txtDesignacaoListaModelos.Text;
                            GUIHelper.GUIHelper.storeData(frm.PxDateBox1, lstModAvRow);
							lstModAvRow.Versao = new byte[]{};
							GisaDataSetHelper.GetInstance().ListaModelosAvaliacao.AddListaModelosAvaliacaoRow(lstModAvRow);

							ListViewItem item = NewListaModeloItem(lstModAvRow);
							LstVwListaModelos.Items.Add(item);
							item.Selected = true;
						}
						catch (Exception ex)
						{
							Trace.WriteLine(ex);
							MessageBox.Show("Não foi possível completar a operação. Tente novamente.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
						}
						finally
						{
							ho.Dispose();
						}
					}
					break;
				}
				case DialogResult.Cancel:
				{
					return;
				}
			}
		}