Ejemplo n.º 1
0
		private void MenuItemPrint_Click(object sender, System.EventArgs e)
		{
			try
			{
				// relatorios em que o contexto actual é importante
				if (sender == MenuItemPrintInventarioResumido || sender == MenuItemPrintInventarioDetalhado || sender == MenuItemPrintCatalogoResumido || sender == MenuItemPrintCatalogoDetalhado)
				{
					GISADataset.RelacaoHierarquicaRow rhRow = null;
                    if (this.nivelNavigator1.PanelToggleState == NivelNavigator.ToggleState.Estrutural && this.nivelNavigator1.SelectedNode != null)
                        rhRow = ((GISATreeNode)this.nivelNavigator1.SelectedNode).RelacaoHierarquicaRow;
                    else if (this.nivelNavigator1.PanelToggleState == NivelNavigator.ToggleState.Documental)
                        rhRow = ((GISADataset.NivelRow)(this.nivelNavigator1.SelectedNivel)).GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica()[0];

					bool IsTopDown = true;

					if (rhRow != null)
					{
                        ArrayList parameters = new ArrayList();
                        parameters.Add(rhRow.ID);
                        parameters.Add(
                            ((GISADataset.TipoNivelRelacionadoRow)
                                GisaDataSetHelper.GetInstance().TipoNivelRelacionado.Select("ID="+rhRow.IDTipoNivelRelacionado.ToString())[0]).Designacao
                            );

						if (sender == MenuItemPrintInventarioResumido)
						{							
							Reports.InventarioResumido report = new Reports.InventarioResumido(getFilename("InventarioResumido"), parameters, IsTopDown, SessionHelper.GetGisaPrincipal().TrusteeUserOperator.ID);
							object o = new Reports.BackgroundRunner(TopLevelControl, report, 1); // ToDo: obter estimativa de nós a serem apresentados no relatório e substituir '1'
						}
						else if (sender == MenuItemPrintCatalogoResumido)
						{
							Reports.CatalogoResumido report = new Reports.CatalogoResumido(getFilename("CatalogoResumido"), parameters, IsTopDown, SessionHelper.GetGisaPrincipal().TrusteeUserOperator.ID);
							object o = new Reports.BackgroundRunner(TopLevelControl, report, 1); // ToDo: obter estimativa de nós a serem apresentados no relatório e substituir '1'
						}
						else
						{
							FormCustomizableReports frm = new FormCustomizableReports();
                            frm.AddParameters(DBAbstractDataLayer.DataAccessRules.RelatorioRule.Current.BuildParamListInventCat(SessionHelper.AppConfiguration.GetCurrentAppconfiguration().IsLicObrEnable()));
							switch (frm.ShowDialog())
							{
								case DialogResult.OK:
								{
									ArrayList fields = new ArrayList();
									if (sender == MenuItemPrintInventarioDetalhado)
									{
										Reports.InventarioDetalhado report = new Reports.InventarioDetalhado(getFilename("InventarioDetalhado"), parameters, frm.GetSelectedParameters(), IsTopDown, SessionHelper.GetGisaPrincipal().TrusteeUserOperator.ID);
										object o = new Reports.BackgroundRunner(TopLevelControl, report, 1); // ToDo: obter estimativa de nós a serem apresentados no relatório e substituir '1'
									}
									else if (sender == MenuItemPrintCatalogoDetalhado)
									{
										Reports.CatalogoDetalhado report = new Reports.CatalogoDetalhado(getFilename("CatalogoDetalhado"), parameters, frm.GetSelectedParameters(), IsTopDown, SessionHelper.GetGisaPrincipal().TrusteeUserOperator.ID);
										object o = new Reports.BackgroundRunner(TopLevelControl, report, 1); // ToDo: obter estimativa de nós a serem apresentados no relatório e substituir '1'
									}
									break;
								}
								case DialogResult.Cancel:
								    break;
							}
						}
					}
				}
				else // relatorios em que o contexto actual não é importante
				{
                    if (sender == MenuItemPrintAutoEliminacao || sender == MenuItemPrintAutoEliminacaoPortaria)
					{
						if (((frmMain)TopLevelControl).SlavePanel is MultiPanelControl)
							((frmMain)TopLevelControl).SlavePanel.Recontextualize();
						else
							Debug.Assert(false, "Wrong slavepanel found");

						FormAutoEliminacaoPicker form = new FormAutoEliminacaoPicker();
						GISADataset.AutoEliminacaoRow aeRow = null;
						form.LoadData(true);
						form.lvwAutosEliminacao.MultiSelect = false;
						if (form.ShowDialog(this) == DialogResult.OK)
						{
                            object o;
                            aeRow = form.SelectedAutoEliminacao;
                            if (sender == MenuItemPrintAutoEliminacao)
							    o = new Reports.BackgroundRunner(TopLevelControl, new Reports.AutoEliminacao(getFilename("AutoEliminacao"), aeRow, SessionHelper.GetGisaPrincipal().TrusteeUserOperator.ID), 1);
                            else if (sender == MenuItemPrintAutoEliminacaoPortaria)
                                o = new Reports.BackgroundRunner(TopLevelControl, new Reports.AutoEliminacaoPortaria(getFilename("AutoEliminacaoPortaria"), aeRow, SessionHelper.GetGisaPrincipal().TrusteeUserOperator.ID), 1);
						}
					}
				}
			}
			catch (Reports.OperationAbortedException)
			{
				// User canceled
			}
			catch (Exception ex)
			{
				Trace.WriteLine(ex);
				throw;
			}
		}
		private void btnAdd_Click(object sender, System.EventArgs e)
		{
			FormAutoEliminacaoPicker form = new FormAutoEliminacaoPicker();
			form.LoadData();
			if (form.ShowDialog(this) == DialogResult.Cancel)
				return;

			GISADataset.AutoEliminacaoRow[] aeRows = null;
			aeRows = form.SelectedAutosEliminacao;

			GISADataset.FRDBaseRow frdBaseUFRow = null;
			ArrayList frdBaseUFRowsList = new ArrayList();
			GISADataset.NivelRow nivelUFRow = null;
			GISADataset.SFRDUFAutoEliminacaoRow[] sfrdaeRows = null;
			GISADataset.SFRDUFAutoEliminacaoRow sfrdaeRow = null;

			foreach (ListViewItem item in lvwSeleccaoUnidadesFisicas.SelectedItems)
			{
                NivelRule.UnidadeFisicaAssociada uf = (NivelRule.UnidadeFisicaAssociada)UnidadesFisicasAssociadas[(long)item.Tag];

                GISADataset.NivelRow[] nRows = (GISADataset.NivelRow[])GisaDataSetHelper.GetInstance().Nivel.Select("ID=" + uf.IDNivel);
                Debug.Assert(nRows.Length == 1);

                nivelUFRow = nRows[0];
				frdBaseUFRow = getFRDUnidadeFisica(nivelUFRow.GetFRDBaseRows());
				if (frdBaseUFRow == null)
				{
					frdBaseUFRow = GisaDataSetHelper.GetInstance().FRDBase.NewFRDBaseRow();
					frdBaseUFRow.NivelRow = nivelUFRow;
					frdBaseUFRow.TipoFRDBaseRow = (GISADataset.TipoFRDBaseRow)(GisaDataSetHelper.GetInstance().TipoFRDBase.Select(string.Format("ID={0:d}", TipoFRDBase.FRDUnidadeFisica))[0]);
					frdBaseUFRow.NotaDoArquivista = string.Empty;
					GisaDataSetHelper.GetInstance().FRDBase.AddFRDBaseRow(frdBaseUFRow);
				}
				foreach (GISADataset.AutoEliminacaoRow aeRow in aeRows)
				{
					// criar uma nova associação apenas caso ainda não exista
					if (GisaDataSetHelper.GetInstance().SFRDUFAutoEliminacao.Select(string.Format("IDFRDBase={0} AND IDAutoEliminacao={1}", frdBaseUFRow.ID, aeRow.ID)).Length == 0)
					{
						sfrdaeRows = (GISADataset.SFRDUFAutoEliminacaoRow[])(GisaDataSetHelper.GetInstance().SFRDUFAutoEliminacao.Select(string.Format("IDFRDBase={0} AND IDAutoEliminacao={1}", frdBaseUFRow.ID, aeRow.ID), string.Empty, DataViewRowState.Deleted));
						if (sfrdaeRows.Length > 0)
						{
							sfrdaeRow = sfrdaeRows[0];
							sfrdaeRow.RejectChanges();
						}
						else
						{
							sfrdaeRow = GisaDataSetHelper.GetInstance().SFRDUFAutoEliminacao.NewSFRDUFAutoEliminacaoRow();
							sfrdaeRow.FRDBaseRow = frdBaseUFRow;
							sfrdaeRow.AutoEliminacaoRow = aeRow;
							GisaDataSetHelper.GetInstance().SFRDUFAutoEliminacao.AddSFRDUFAutoEliminacaoRow(sfrdaeRow);
						}
					}
				}
                item.SubItems[chSelUFAutosEliminacaoRestantes.Index].Text = CollectTextAutosEliminacaoRestantes(uf);
				refreshSelUFItem(item, chSelUFAutosEliminacaoRestantes.Index);
			}
		}