/// //////////////////////////////////////////////////////////////////// public CResultAErreur SerializeFiltre(C2iSerializer serializer) { InitCombos(); int nVersion = GetNumVersion(); CResultAErreur result = serializer.TraiteVersion(ref nVersion); if (!result) { return(result); } int nIdCategorie = -1; if (serializer.Mode == ModeSerialisation.Ecriture && m_cmbCategorie.ElementSelectionne is CCategorieGED) { nIdCategorie = ((CCategorieGED)m_cmbCategorie.ElementSelectionne).Id; } serializer.TraiteInt(ref nIdCategorie); if (serializer.Mode == ModeSerialisation.Lecture && nIdCategorie != -1) { CCategorieGED cat = new CCategorieGED(CSc2iWin32DataClient.ContexteCourant); if (cat.ReadIfExists(nIdCategorie)) { m_cmbCategorie.ElementSelectionne = cat; } } return(result); }
//------------------------------------------------------------------------- private void m_arbreCategories_DragDrop(object sender, DragEventArgs e) { if (DragDataHasDocGed(e.Data)) { using (CContexteDonnee ctx = CSc2iWin32DataClient.ContexteCourant.GetContexteEdition()) { bool bAddCategorie = (e.KeyState & 8) == 8; TreeViewHitTestInfo info = m_arbreCategories.HitTest(m_arbreCategories.PointToClient(new Point(e.X, e.Y))); TreeNode node = info.Node; if (info != null && info.Node != null && m_arbreCategories.GetObjetInNode(info.Node) is CCategorieGED) { CCategorieGED categorie = m_arbreCategories.GetObjetInNode(info.Node) as CCategorieGED; foreach (CReferenceObjetDonnee refDoc in (CReferenceObjetDonnee[])e.Data.GetData(typeof(CReferenceObjetDonnee[]))) { CDocumentGED doc = refDoc.GetObjet(ctx) as CDocumentGED; if (doc != null) { if (!bAddCategorie)//Supprime les anciennes catégories { CListeObjetsDonnees lst = doc.RelationsCategories; CObjetDonneeAIdNumerique.Delete(lst, true); } bool bDedans = false; foreach (CRelationDocumentGED_Categorie rel in doc.RelationsCategories) { if (rel.Categorie.Id == categorie.Id) { bDedans = true; break; } } if (!bDedans) { CRelationDocumentGED_Categorie newRel = new CRelationDocumentGED_Categorie(ctx); newRel.CreateNewInCurrentContexte(); newRel.Categorie = categorie; newRel.Document = doc; } } } } CResultAErreur result = ctx.CommitEdit(); if (!result) { CFormAfficheErreur.Show(result.Erreur); } else { InitPanelList(m_elementSelectionne); } } } HightlightCategorie(null); }
public void Init(CCategorieGED categorie, int nNiveau) { m_categorie = categorie; CalculeLabel(); if (nNiveau == 0) { m_panelMarge.Visible = false; } else { m_panelMarge.Visible = true; m_panelMarge.Width = 22 * nNiveau; } }
//------------------------------------------------- public CCategorieGED GetCatégorie(CContexteDonnee ctx) { if (m_nIdCategorieGed == null) { return(null); } CCategorieGED cat = new CCategorieGED(ctx); if (!cat.ReadIfExists(m_nIdCategorieGed.Value)) { return(null); } return(cat); }
//-------------------------------------------------------------------------------- private void AddMenuCategorie(CCategorieGED cat, ToolStripItemCollection items) { ToolStripMenuItem menuCategorie = new ToolStripMenuItem(cat.Libelle); menuCategorie.Tag = cat; menuCategorie.MouseDown += new MouseEventHandler(menuCategorie_MouseDown); items.Add(menuCategorie); if (cat.CategoriesFilles.Count > 0) { menuCategorie.ToolTipText = I.T("Right clic to affect to @1|20870", cat.Libelle); } foreach (CCategorieGED subCat in cat.CategoriesFilles) { AddMenuCategorie(subCat, menuCategorie.DropDownItems); } }
/// ////////////////////////////////////////// protected override void InitChamps() { base.InitChamps(); m_wndAideFormule.FournisseurProprietes = ObjetEdite.Process; m_wndAideFormule.ObjetInterroge = typeof(CProcess); m_txtFormuleCle.Init(m_wndAideFormule.FournisseurProprietes, m_wndAideFormule.ObjetInterroge); m_txtFormuleDescriptif.Init(m_wndAideFormule.FournisseurProprietes, m_wndAideFormule.ObjetInterroge); m_txtFormuleLibelle.Init(m_wndAideFormule.FournisseurProprietes, m_wndAideFormule.ObjetInterroge); m_txtFormuleStructure.Init(m_wndAideFormule.FournisseurProprietes, m_wndAideFormule.ObjetInterroge); CListeObjetsDonnees liste = new CListeObjetsDonnees(CSc2iWin32DataClient.ContexteCourant, typeof(CCategorieGED)); m_wndListeCategories.Remplir(liste, false); foreach (ListViewItem item in m_wndListeCategories.Items) { CCategorieGED cat = (CCategorieGED)item.Tag; if (ActionExporterDonnees.ListeIdsCategoriesStockage.Contains(cat.Id)) { item.Checked = true; } else { item.Checked = false; } } liste = new CListeObjetsDonnees(CSc2iWin32DataClient.ContexteCourant, typeof(sc2i.documents.C2iRapportCrystal)); m_txtFormuleCle.Text = ActionExporterDonnees.ExpressionCle.GetString(); m_txtFormuleDescriptif.Text = ActionExporterDonnees.ExpressionDescriptif.GetString(); m_txtFormuleLibelle.Text = ActionExporterDonnees.ExpressionLibelle.GetString(); m_radStructureParFormule.Checked = ActionExporterDonnees.UtiliserFormule; m_radStructurePropre.Checked = !ActionExporterDonnees.UtiliserFormule; if (ActionExporterDonnees.ExpressionStructure != null) { m_txtFormuleStructure.Text = ActionExporterDonnees.ExpressionStructure.GetString(); } m_panelStructure.Init(ActionExporterDonnees.StructureExport); m_panelExporteur.Exporteur = ActionExporterDonnees.Exporteur; UpdateDispoControles(); }
public CDocumentAttendu(DataSet ds, CCaracteristiqueEntite carac) { DataTable dt = ds.Tables[c_nomTable]; if (dt == null) { return; } DataRow row = dt.NewRow(); int nIdCarac = -1; string strLibelle = ""; int nIdCategorie = -1; int nbMin = 0; DateTime?dateLastUpload = null; if (carac != null) { m_caracteristic = carac; row[c_champId] = carac.Id; CCategorieGED categorie = CategorieGED; if (categorie != null) { row[c_champLibelle] = carac.Libelle == "" ? categorie.Libelle : carac.Libelle; row[c_champIdCategorie] = categorie.Id; } else { row[c_champLibelle] = carac.Libelle; row[c_champIdCategorie] = -1; } row[c_champNombreMin] = nbMin; if (dateLastUpload == null) { row[c_champDateLastUpload] = DBNull.Value; } else { row[c_champDateLastUpload] = dateLastUpload.Value; } } m_row = row; dt.Rows.Add(row); }
//------------------------------------------------------------------------------ void menuCategorie_MouseDown(object sender, MouseEventArgs e) { ToolStripMenuItem item = sender as ToolStripMenuItem; CCategorieGED cat = item != null ? item.Tag as CCategorieGED : null; if (cat != null) { if (item.DropDownItems.Count == 0 || (e.Button & MouseButtons.Right) == MouseButtons.Right) { if (item.DropDown != null) { item.DropDown.Close(); } AddDoc(m_strFileToAdd, new CCategorieGED[] { cat }); } } }
//------------------------------------------- private void UpdateLabelDragDrop() { string strCategorie = I.T("None|20247"); string strElement = I.T("None|20248"); if (m_elementSelectionne != null) { strElement = m_elementSelectionne.DescriptionElement; } CCategorieGED categorie = m_arbreCategories.ElementSelectionne as CCategorieGED; if (categorie != null) { strCategorie = categorie.Libelle; } m_lblInfoDragDrop.Text = I.T("Documents will be associated to element '@1' in category '@2'|20249", strElement, strCategorie); }
//----------------------------------------------------------------- public void AppliquerFiltre() { CFiltreData filtre = null; if (m_cmbCategorie.ElementSelectionne is CCategorieGED) { CCategorieGED cat = (CCategorieGED)m_cmbCategorie.ElementSelectionne; filtre = new CFiltreDataAvance(CDocumentGED.c_nomTable, CRelationDocumentGED_Categorie.c_nomTable + "." + CCategorieGED.c_nomTable + "." + CCategorieGED.c_champCodeSystemeComplet + " LIKE @1", cat.CodeSystemeComplet + "%"); } if (m_dateDebutCreation.Value != null) { filtre = CFiltreData.GetAndFiltre(filtre, new CFiltreData(CDocumentGED.c_champDateCreation + ">=@1", m_dateDebutCreation.Value.DateTimeValue)); } if (m_dateFinCreation.Value != null) { filtre = CFiltreData.GetAndFiltre(filtre, new CFiltreData(CDocumentGED.c_champDateCreation + "<@1", CUtilDate.SetTime0(m_dateFinCreation.Value.DateTimeValue.AddDays(1)))); } if (m_dateDebutModification.Value != null) { filtre = CFiltreData.GetAndFiltre(filtre, new CFiltreData(CDocumentGED.c_champDateMAJ + ">=@1", m_dateDebutModification.Value.DateTimeValue)); } if (m_dateFinModification.Value != null) { filtre = CFiltreData.GetAndFiltre(filtre, new CFiltreData(CDocumentGED.c_champDateMAJ + "<@1", CUtilDate.SetTime0(m_dateFinModification.Value.DateTimeValue.AddDays(1)))); } Filtre = filtre; OnAppliqueFiltre(new object(), null); }
public static IEnumerable <CActionCopierMultiLocalDansGed.CInfoFichierToGed> GetInfosToAdd( IEnumerable <int> lstIdsCategories) { using (CFormAddMultipleToGed frm = new CFormAddMultipleToGed()) { List <CCategorieGED> lstCats = new List <CCategorieGED>(); StringBuilder blKeyMultiEDM = new StringBuilder(); if (lstIdsCategories != null) { foreach (int nId in lstIdsCategories) { CCategorieGED categorie = new CCategorieGED(CSc2iWin32DataClient.ContexteCourant); if (categorie.ReadIfExists(nId)) { lstCats.Add(categorie); blKeyMultiEDM.Append(nId); blKeyMultiEDM.Append("_"); } } } frm.m_strKeyRepertoire = "MEDOC_" + blKeyMultiEDM.ToString(); string strRep = C2iRegistre.GetValueInRegistreApplication("Preferences", frm.m_strKeyRepertoire, ""); if (strRep != "") { frm.m_browser.StartUpDirectory = sc2i.win32.common.folderbrowser.SpecialFolders.Other; frm.m_browser.StartUpDirectoryOther = strRep; } frm.Init(lstCats); if (frm.ShowDialog() == DialogResult.OK) { strRep = frm.m_browser.CurrentFolderKey; if (strRep != null) { C2iRegistre.SetValueInRegistreApplication("Preferences", frm.m_strKeyRepertoire, strRep); } return(frm.GetInfosToAdd()); } } return(null); }
/// ////////////////////////////////////////// protected override void InitChamps() { base.InitChamps(); m_wndAideFormule.FournisseurProprietes = ObjetEdite.Process; m_wndAideFormule.ObjetInterroge = typeof(CProcess); m_txtFormuleCle.Init(m_wndAideFormule.FournisseurProprietes, m_wndAideFormule.ObjetInterroge); m_txtFormuleDescriptif.Init(m_wndAideFormule.FournisseurProprietes, m_wndAideFormule.ObjetInterroge); m_txtFormuleLibelle.Init(m_wndAideFormule.FournisseurProprietes, m_wndAideFormule.ObjetInterroge); m_txtFormuleFichier.Init(m_wndAideFormule.FournisseurProprietes, m_wndAideFormule.ObjetInterroge); m_txtFormuleUser.Init(m_wndAideFormule.FournisseurProprietes, m_wndAideFormule.ObjetInterroge); m_txtFormulePassword.Init(m_wndAideFormule.FournisseurProprietes, m_wndAideFormule.ObjetInterroge); CListeObjetsDonnees liste = new CListeObjetsDonnees(CSc2iWin32DataClient.ContexteCourant, typeof(CCategorieGED)); m_wndListeCategories.Remplir(liste, false); List <CDbKey> listeDbKeysCategorie = new List <CDbKey>(CopierLocalDansGed.ListeDbKeysCategoriesStockage); foreach (ListViewItem item in m_wndListeCategories.Items) { CCategorieGED cat = (CCategorieGED)item.Tag; if (listeDbKeysCategorie.Contains(cat.DbKey)) { item.Checked = true; } else { item.Checked = false; } } m_txtFormuleFichier.Formule = CopierLocalDansGed.ExpressionContenu; m_txtFormuleCle.Text = CopierLocalDansGed.ExpressionCle.GetString(); m_txtFormuleDescriptif.Text = CopierLocalDansGed.ExpressionDescriptif.GetString(); m_txtFormuleLibelle.Text = CopierLocalDansGed.ExpressionLibelle.GetString(); m_txtFormuleUser.Formule = CopierLocalDansGed.ExpressionUser; m_txtFormulePassword.Formule = CopierLocalDansGed.ExpressionPassword; m_rbtnFichier.Checked = !CopierLocalDansGed.LeContenuEstUnTexte; m_rbtnText.Checked = CopierLocalDansGed.LeContenuEstUnTexte; }
//------------------------------------------------------------------- public void InitFromContexte(CContexteFormNavigable ctx) { if (ctx == null) { return; } int nIdCategorie = (int)ctx["ID_CATEGORIE"]; if (nIdCategorie != -1) { CCategorieGED cat = new CCategorieGED(CSc2iWin32DataClient.ContexteCourant); if (cat.ReadIfExists(nIdCategorie)) { m_cmbCategorie.ElementSelectionne = cat; } } m_dateDebutCreation.Value = (CDateTimeEx)ctx["DATE_DEBUT_CREATION"]; m_dateDebutModification.Value = (CDateTimeEx)ctx["DATE_DEBUT_MODIF"]; m_dateFinCreation.Value = (CDateTimeEx)ctx["DATE_FIN_CREATION"]; m_dateFinModification.Value = (CDateTimeEx)ctx["DATE_FIN_MODIF"]; }
private void m_arbreCategories_AfterSelect(object sender, TreeViewEventArgs e) { // Quand on selectionne une catégorie de GED il faut filtrer la liste de documents sur la Categorie CCategorieGED categorieSelectionnee = m_arbreCategories.GetObjetInNode(e.Node) as CCategorieGED; if (categorieSelectionnee != null) { CFiltreData filtreSurCategorie = new CFiltreDataAvance(CDocumentGED.c_nomTable, CRelationDocumentGED_Categorie.c_nomTable + "." + CCategorieGED.c_nomTable + "." + CCategorieGED.c_champCodeSystemeComplet + " LIKE @1", categorieSelectionnee.CodeSystemeComplet + "%"); m_filtreCategories = filtreSurCategorie; InitPanelList(m_elementSelectionne); } else { m_filtreCategories = null; InitPanelList(m_elementSelectionne); } }
private void AddCat(CCategorieGED cat, HashSet <CCategorieGED> setFaites, List <CCategorieGED> lstToAdd, int nNiveau) { if (setFaites.Contains(cat)) { return; } setFaites.Add(cat); CControlGedCategoryForDragFile ctrl = new CControlGedCategoryForDragFile(); m_panelCategories.Controls.Add(ctrl); ctrl.BringToFront(); ctrl.Dock = DockStyle.Top; ctrl.Init(cat, nNiveau); ctrl.OnClickAddButton += new EventHandler(ctrlCat_OnClickAddButton); int nIndex = lstToAdd.IndexOf(cat) + 1; while (nIndex < lstToAdd.Count && lstToAdd[nIndex].CodeSystemeComplet.StartsWith(cat.CodeSystemeComplet)) { AddCat(cat, setFaites, lstToAdd, nNiveau + 1); nIndex++; } }
/// ////////////////////////////////////////// protected override void InitChamps() { base.InitChamps(); m_wndAideFormule.FournisseurProprietes = ObjetEdite.Process; m_wndAideFormule.ObjetInterroge = typeof(CProcess); m_txtFormuleCle.Init(m_wndAideFormule.FournisseurProprietes, m_wndAideFormule.ObjetInterroge); m_txtFormuleDescriptif.Init(m_wndAideFormule.FournisseurProprietes, m_wndAideFormule.ObjetInterroge); m_txtFormuleLibelle.Init(m_wndAideFormule.FournisseurProprietes, m_wndAideFormule.ObjetInterroge); m_txtFormuleListeDocuments.Init(m_wndAideFormule.FournisseurProprietes, m_wndAideFormule.ObjetInterroge); m_txtFormuleNomFichier.Init(m_wndAideFormule.FournisseurProprietes, typeof(CDocumentGED)); CListeObjetsDonnees liste = new CListeObjetsDonnees(CSc2iWin32DataClient.ContexteCourant, typeof(CCategorieGED)); m_wndListeCategories.Remplir(liste, false); List <CDbKey> listeDbKeysCategorie = new List <CDbKey>(ZipGedDansGed.ListeDbKeysCategoriesStockage); foreach (ListViewItem item in m_wndListeCategories.Items) { CCategorieGED cat = (CCategorieGED)item.Tag; if (listeDbKeysCategorie.Contains(cat.DbKey)) { item.Checked = true; } else { item.Checked = false; } } m_txtFormuleListeDocuments.Formule = ZipGedDansGed.ExpressionListeDocuments; m_txtFormuleCle.Text = ZipGedDansGed.ExpressionCle.GetString(); m_txtFormuleDescriptif.Text = ZipGedDansGed.ExpressionDescriptif.GetString(); m_txtFormuleLibelle.Text = ZipGedDansGed.ExpressionLibelle.GetString(); m_txtFormuleNomFichier.Text = ZipGedDansGed.ExpressionNomsFichiers.GetString(); }
//------------------------------------------------------------------- public override CResultAErreur VerifieDonnees(CObjetDonnee objet) { CResultAErreur result = CResultAErreur.True; try { CCategorieGED cat = (CCategorieGED)objet; if (cat.Libelle == "") { result.EmpileErreur(I.T("The category label cannot be empty|105")); } if (!CObjetDonneeAIdNumerique.IsUnique(cat, CCategorieGED.c_champLibelle, cat.Libelle)) { result.EmpileErreur(I.T("Another category with this label already exists|106")); } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); } return(result); }
/// //////////////////////////////////////////////////////// protected override CResultAErreur MyExecute(CContexteExecutionAction contexte) { CResultAErreur result = CResultAErreur.True; //Préparation du filtre C2iRapportCrystal rapport = new C2iRapportCrystal(contexte.ContexteDonnee); if (!rapport.ReadIfExists(IdEtatCrystal)) { result.EmpileErreur(I.T("The report @1 does not exist|30046", IdEtatCrystal.ToString())); return(result); } CContexteEvaluationExpression contexteEvaluation = new CContexteEvaluationExpression(Process); CMultiStructureExport multiStructure = rapport.MultiStructure; if (multiStructure == null) { result.EmpileErreur(I.T("The report does not have a data structure|30044")); return(result); } foreach (IVariableDynamique variable in multiStructure.ListeVariables) { if (variable.IsChoixUtilisateur()) { C2iExpression expressionVariable = GetExpressionForVariableFiltre(variable.IdVariable); if (expressionVariable != null) { result = expressionVariable.Eval(contexteEvaluation); if (!result) { result.EmpileErreur(I.T("Error in variable '@1' assignment|30047", variable.Nom)); return(result); } multiStructure.SetValeurChamp(variable, result.Data); } } } ReportDocument report = null; try { result = rapport.CreateFichierExport(multiStructure, m_formatExport, ref report); if (!result) { result.EmpileErreur(I.T("Error while creating the report|30048")); return(result); } CFichierLocalTemporaire fichierPDF = (CFichierLocalTemporaire)result.Data; #region Impression de l'état if (m_bImprimerEtat) { CSessionClient sessionClient = CSessionClient.GetSessionForIdSession(contexte.IdSession); CConfigurationsImpression configuration = sessionClient.ConfigurationsImpression; if (configuration.NomImprimanteSurServeur != "") { report.PrintOptions.PrinterName = configuration.NomImprimanteSurServeur; } try { report.PrintToPrinter(1, false, 0, 0); } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); result.EmpileErreur(I.T("Printing error|30049")); return(result); } /*if ( sessionClient != null ) * { * if ( sessionClient.GetInfoUtilisateur().IdUtilisateur == contexte.Branche.IdUtilisateur ) * { * if ( sessionClient.ConfigurationsImpression.NomImprimanteSurClient != "" ) * report.PrintOptions.PrinterName = sessionClient.ConfigurationsImpression.NomImprimanteSurClient; * CServiceSurClient service = sessionClient.GetServiceSurClient ( CActionImprimerEtat.c_idServiceClientImprimerEtat ); * if ( service != null ) * { * result = service.RunService ( report ); * } * } * }*/ /* * using ( CFichierLocalTemporaire fichierRpt = new CFichierLocalTemporaire("rpt") ) * { * fichierRpt.CreateNewFichier(); * try * { * report.Refresh(); * report.SaveAs (fichierRpt.NomFichier, ReportFileFormat.VSNetFileFormat ); * } * catch ( Exception e ) * { * result.EmpileErreur ( new CErreurException ( e ) ); * } * if ( result ) * { * //Stocke le fichier dans la ged pour pouvoir l'envoyer sur le client * using ( CProxyGED proxy = new CProxyGED ( Process.IdSession, null ) ) * { * proxy.CreateNewFichier(); * proxy.AttacheToLocal ( fichierRpt.NomFichier ); * * proxy.UpdateGed(); * * CReferenceDocument refDoc = proxy.ReferenceAttachee; * result = service.RunService ( refDoc ); * if ( !result ) * { * result.EmpileErreur("Erreur à l'impression du document"); * return result; * } * } * } * } * } * } * }*/ } #endregion #region Stockage dans la ged if (m_bStockerGed) { //On a notre fichier PDF, création du document string strCle = ""; string strDescriptif = ""; string strLibelle = ""; result = ExpressionCle.Eval(contexteEvaluation); if (result) { strCle = result.Data.ToString(); } else { result.EmpileErreur(I.T("Document key could not be evaluated|30050")); return(result); } result = ExpressionLibelle.Eval(contexteEvaluation); if (result) { strLibelle = result.Data.ToString(); } else { result.EmpileErreur(I.T("Document label could not be evaluated|30051")); return(result); } result = ExpressionDescriptif.Eval(contexteEvaluation); if (result) { strDescriptif = result.Data.ToString(); } else { result.EmpileErreur(I.T("Document description could not be evaluated|30052")); return(result); } CDocumentGED doc = new CDocumentGED(contexte.ContexteDonnee); //Si la clé n'est pas nulle, cherche un document avec cette clé if (strCle.Trim() != "") { CFiltreData filtre = new CFiltreData(CDocumentGED.c_champCle + "=@1", strCle); if (!doc.ReadIfExists(filtre)) { doc.CreateNew(); } else { doc.BeginEdit(); } } else { doc.CreateNew(); } doc.Libelle = strLibelle; doc.Descriptif = strDescriptif; doc.Cle = strCle; ArrayList lstToCreate = (ArrayList)ListeIdsCategoriesStockage.Clone(); ArrayList lstToDelete = new ArrayList(); //Affecte les catégories CListeObjetsDonnees listeCategoriesExistantes = CRelationDocumentGED_Categorie.GetRelationsCategoriesForDocument(doc); foreach (CRelationDocumentGED_Categorie rel in listeCategoriesExistantes) { if (!lstToCreate.Contains(rel.Categorie.Id)) { lstToDelete.Add(rel); } lstToCreate.Remove(rel.Categorie.Id); } foreach (CRelationDocumentGED_Categorie rel in lstToDelete) { rel.Delete(); } foreach (int nId in lstToCreate) { CCategorieGED cat = new CCategorieGED(doc.ContexteDonnee); if (cat.ReadIfExists(nId)) { CRelationDocumentGED_Categorie rel = new CRelationDocumentGED_Categorie(doc.ContexteDonnee); rel.CreateNewInCurrentContexte(); rel.Categorie = cat; rel.Document = doc; } } CProxyGED proxy = new CProxyGED(Process.IdSession, doc.IsNew()?null:doc.ReferenceDoc); proxy.AttacheToLocal(fichierPDF.NomFichier); result = proxy.UpdateGed(); if (!result) { return(result); } doc.ReferenceDoc = (CReferenceDocument)result.Data; result = doc.CommitEdit(); fichierPDF.Dispose(); if (VariableResultat != null) { Process.SetValeurChamp(VariableResultat, doc); } } #endregion } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); } finally { if (report != null) { report.Close(); } } return(result); }
private CResultAErreur ImportRep(CProjet projetNominal, CProjet projetCandidat, CRepertoire rep, string strPathGed) { CResultAErreur result = CResultAErreur.True; rep.ImportDone = true; strPathGed += "\\" + rep.Nom; CMappingRepToDocSetup map = CMappingRepToDocSetup.GetMapping(rep.Nom); foreach (CFichier fichier in rep.GetChilds <CFichier>()) { if (map == null) { fichier.InfoImport = "No mapping for this directory"; } else { CObjetDonneeAIdNumerique objet = map.GetObjet(projetNominal, projetCandidat, fichier.Nom); if (objet == null) { fichier.InfoImport = "Can not find associated objet for this file"; } else { CCategorieGED cat = map.GetCatégorie(projetNominal.ContexteDonnee); if (cat == null) { fichier.InfoImport = "Can not find EDM category for this file"; } else { string strCode = objet.IdUniversel + "/" + fichier.Nom; CDocumentGED doc = new CDocumentGED(projetNominal.ContexteDonnee); if (!doc.ReadIfExists(new CFiltreData(CDocumentGED.c_champCle + "=@1", strCode))) { doc.CreateNewInCurrentContexte(); } doc.Libelle = fichier.Nom; doc.Cle = strCode; CReferenceDocument refDoc = new CReferenceDocument(); refDoc.TypeReference = new CTypeReferenceDocument(CTypeReferenceDocument.TypesReference.Fichier); refDoc.NomFichier = strPathGed + "\\" + fichier.Nom; doc.ReferenceDoc = refDoc; doc.AddCategory(cat); doc.AssocieA(objet); fichier.SetObjetAssocie(objet); } } } } foreach (CRepertoire child in rep.GetChilds <CRepertoire>()) { result = ImportRep(projetNominal, projetCandidat, child, strPathGed); if (!result) { return(result); } } return(result); }
/// ////////////////////////////////////////// protected override void InitChamps() { base.InitChamps(); m_wndAideFormule.FournisseurProprietes = ObjetEdite.Process; m_wndAideFormule.ObjetInterroge = typeof(CProcess); m_txtFormuleCle.Init(m_wndAideFormule.FournisseurProprietes, m_wndAideFormule.ObjetInterroge); m_txtFormuleDescriptif.Init(m_wndAideFormule.FournisseurProprietes, m_wndAideFormule.ObjetInterroge); m_txtFormuleLibelle.Init(m_wndAideFormule.FournisseurProprietes, m_wndAideFormule.ObjetInterroge); m_txtFormuleVariable.Init(m_wndAideFormule.FournisseurProprietes, m_wndAideFormule.ObjetInterroge); CListeObjetsDonnees liste = new CListeObjetsDonnees(CSc2iWin32DataClient.ContexteCourant, typeof(CCategorieGED)); m_wndListeCategories.Remplir(liste, false); foreach (ListViewItem item in m_wndListeCategories.Items) { CCategorieGED cat = (CCategorieGED)item.Tag; if (ActionGenererEtat.ListeIdsCategoriesStockage.Contains(cat.Id)) { item.Checked = true; } else { item.Checked = false; } } liste = new CListeObjetsDonnees(CSc2iWin32DataClient.ContexteCourant, typeof(sc2i.documents.C2iRapportCrystal)); m_comboModeleEtat.ListDonnees = liste; C2iRapportCrystal rapport = new C2iRapportCrystal(CSc2iWin32DataClient.ContexteCourant); m_tableIdVariableToFormule.Clear(); if (rapport.ReadIfExists(ActionGenererEtat.IdEtatCrystal)) { m_comboModeleEtat.SelectedValue = rapport; CMultiStructureExport multiStructure = rapport.MultiStructure; if (multiStructure != null) { foreach (IVariableDynamique variable in multiStructure.ListeVariables) { m_tableIdVariableToFormule[variable.IdVariable] = ActionGenererEtat.GetExpressionForVariableFiltre(variable.IdVariable); } } } else { m_comboModeleEtat.SelectedValue = null; } UpdateListeVariables(); m_txtFormuleCle.Text = ActionGenererEtat.ExpressionCle.GetString(); m_txtFormuleDescriptif.Text = ActionGenererEtat.ExpressionDescriptif.GetString(); m_txtFormuleLibelle.Text = ActionGenererEtat.ExpressionLibelle.GetString(); m_cmbFormat.DisplayMember = "Libelle"; m_cmbFormat.ValueMember = "Valeur"; m_cmbFormat.DataSource = CUtilSurEnum.GetCouplesFromEnum(typeof(TypeFormatExportCrystal)); m_cmbFormat.SelectedValue = (int)ActionGenererEtat.FormatExport; m_chkStocker.Checked = ActionGenererEtat.StockerDansLaGed; m_chkImprimer.Checked = ActionGenererEtat.ImprimerSurClient; }
/// //////////////////////////////////////////////////////// protected override CResultAErreur MyExecute(CContexteExecutionAction contexte) { CResultAErreur result = CResultAErreur.True; if (ExpressionListeDocuments == null) { result.EmpileErreur(I.T("Document list formula is null|20051")); return(result); } CContexteEvaluationExpression contexteEval = new CContexteEvaluationExpression(contexte.Branche.Process); result = ExpressionListeDocuments.Eval(contexteEval); if (!result) { return(result); } IEnumerable enDocs = result.Data as IEnumerable; string strCle = ""; string strDescriptif = ""; string strLibelle = ""; result = ExpressionCle.Eval(contexteEval); if (result) { strCle = result.Data.ToString(); } else { result.EmpileErreur(I.T("Document key could not be computed|30050")); return(result); } if (enDocs == null) { result.EmpileErreur(I.T("Document list formul returns an incorrect value|20052")); return(result); } List <CDocumentGED> lstDocs = new List <CDocumentGED>(); try { foreach (CDocumentGED doc in enDocs) { if (doc.Cle != strCle) { lstDocs.Add(doc); } } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); result.EmpileErreur(I.T("Error in document list|20053")); } MemoryStream stream = new MemoryStream(); ZipOutputStream zipStream = new ZipOutputStream(stream); zipStream.SetLevel(9); HashSet <string> lstNomsDocuments = new HashSet <string>(); foreach (CDocumentGED doc in lstDocs) { CContexteEvaluationExpression ctxDoc = new CContexteEvaluationExpression(doc); string strNomFichier = ""; if (ExpressionNomsFichiers != null) { result = ExpressionNomsFichiers.Eval(ctxDoc); if (result && result.Data != null) { strNomFichier = result.Data.ToString(); } } if (strNomFichier == "") { strNomFichier = I.T("File|20054"); } foreach (char c in "\"/\\*?<>|:") { if (strNomFichier.Contains(c.ToString())) { strNomFichier = strNomFichier.Replace(c, '_'); } } if (lstNomsDocuments.Contains(strNomFichier.ToUpper())) { int nIndex = 1; string strTmp = strNomFichier + "_" + nIndex; while (lstNomsDocuments.Contains(strTmp.ToUpper())) { nIndex++; strTmp = strNomFichier + "_" + nIndex; } strNomFichier = strTmp.ToUpper(); } lstNomsDocuments.Add(strNomFichier.ToUpper()); strNomFichier += "." + doc.ReferenceDoc.GetExtension(); using (CProxyGED proxy = new CProxyGED(contexte.IdSession, doc.ReferenceDoc)) { result = proxy.CopieFichierEnLocal(); if (result) { ZipEntry entry = new ZipEntry(ZipEntry.CleanName(strNomFichier)); try { FileStream fstream = new FileStream(proxy.NomFichierLocal, FileMode.Open, FileAccess.Read); entry.DateTime = DateTime.Now; entry.Size = fstream.Length; int nBufLength = 1024 * 1024; byte[] buffer = new byte[nBufLength]; int nRead = 0; zipStream.PutNextEntry(entry); while ((nRead = fstream.Read(buffer, 0, nBufLength)) != 0) { zipStream.Write(buffer, 0, nRead); } fstream.Close(); zipStream.CloseEntry(); } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); return(result); } } } } zipStream.Finish(); stream.Seek(0, SeekOrigin.Begin); CSourceDocumentStream sourceDoc = new CSourceDocumentStream(stream, "zip"); //On a notre stream zippé, création du document result = ExpressionLibelle.Eval(contexteEval); if (result) { strLibelle = result.Data.ToString(); } else { result.EmpileErreur(I.T("Document label could not be computed|30051")); return(result); } result = ExpressionDescriptif.Eval(contexteEval); if (result) { strDescriptif = result.Data.ToString(); } else { result.EmpileErreur(I.T("Document description could not be computed|30052")); return(result); } CDocumentGED docZip = new CDocumentGED(contexte.ContexteDonnee); //Si la clé n'est pas nulle, cherche un document avec cette clé if (strCle.Trim() != "") { CFiltreData filtre = new CFiltreData(CDocumentGED.c_champCle + "=@1", strCle); if (!docZip.ReadIfExists(filtre)) { docZip.CreateNew(); } else { docZip.BeginEdit(); } } else { docZip.CreateNew(); } docZip.Libelle = strLibelle; docZip.Descriptif = strDescriptif; docZip.Cle = strCle; List <CDbKey> lstToCreate = new List <CDbKey>(ListeDbKeysCategoriesStockage); List <CRelationDocumentGED_Categorie> lstToDelete = new List <CRelationDocumentGED_Categorie>(); //Affecte les catégories CListeObjetsDonnees listeCategoriesExistantes = CRelationDocumentGED_Categorie.GetRelationsCategoriesForDocument(docZip); foreach (CRelationDocumentGED_Categorie rel in listeCategoriesExistantes) { if (!lstToCreate.Contains(rel.Categorie.DbKey)) { lstToDelete.Add(rel); } lstToCreate.Remove(rel.Categorie.DbKey); } foreach (CRelationDocumentGED_Categorie rel in lstToDelete) { rel.Delete(); } foreach (CDbKey dbKey in lstToCreate) { CCategorieGED cat = new CCategorieGED(docZip.ContexteDonnee); if (cat.ReadIfExists(dbKey)) { CRelationDocumentGED_Categorie rel = new CRelationDocumentGED_Categorie(docZip.ContexteDonnee); rel.CreateNewInCurrentContexte(); rel.Categorie = cat; rel.Document = docZip; } } result = CDocumentGED.SaveDocument(contexte.IdSession, sourceDoc, sourceDoc.TypeReference, docZip.ReferenceDoc, true); if (sourceDoc != null) { sourceDoc.Dispose(); } zipStream.Close(); zipStream.Dispose(); stream.Dispose(); if (!result) { return(result); } CReferenceDocument refDoc = result.Data as CReferenceDocument; docZip.ReferenceDoc = refDoc; result = docZip.CommitEdit(); if (!result) { return(result); } if (VariableResultat != null) { Process.SetValeurChamp(VariableResultat, docZip); } return(result); }
/// //////////////////////////////////////////////////////// protected override CResultAErreur MyExecute(CContexteExecutionAction contexte) { CResultAErreur result = CResultAErreur.True; CSessionClient sessionClient = CSessionClient.GetSessionForIdSession(contexte.IdSession); if (sessionClient != null) { if (sessionClient.GetInfoUtilisateur().KeyUtilisateur == contexte.Branche.KeyUtilisateur) { using (C2iSponsor sponsor = new C2iSponsor()) { CServiceSurClient service = sessionClient.GetServiceSurClient(c_idServiceSelectMultiForGed); CServiceSurClient serviceGetFile = sessionClient.GetServiceSurClient(CActionCopierLocalDansGed.c_idServiceClientGetFichier); if (service != null && serviceGetFile != null) { sponsor.Register(service); sponsor.Register(serviceGetFile); //Calcule la liste des ids de catégories à gérer List <int> lstIds = new List <int>(); if (FormuleListeCategories != null) { CContexteEvaluationExpression contexteEval = new CContexteEvaluationExpression(contexte.Branche.Process); contexteEval.AttacheObjet(typeof(CContexteDonnee), contexte.ContexteDonnee); result = FormuleListeCategories.Eval(contexteEval); if (!result) { return(result); } IEnumerable lst = result.Data as IEnumerable; if (lst != null) { foreach (object obj in lst) { if (obj is int) { lstIds.Add((int)obj); } if (obj is CCategorieGED) { lstIds.Add(((CCategorieGED)obj).Id); } } } } result = service.RunService(lstIds); if (result && result.Data is IEnumerable) { List <CDocumentGED> lstDocs = new List <CDocumentGED>(); foreach (object obj in (IEnumerable)result.Data) { CInfoFichierToGed info = obj as CInfoFichierToGed; if (info != null) { string strContenu = info.FileFullName; CSourceDocument sourceDoc = null; result = serviceGetFile.RunService(strContenu); if (!result) { return(result); } sourceDoc = result.Data as CSourceDocument; if (sourceDoc == null) { result.EmpileErreur(I.T("Error while retrieving file @1|20020", strContenu)); return(result); } //On a notre fichier en local, création du document string strCle = ""; string strLibelle = ""; info.ActiveProcess = contexte.Branche.Process; CContexteEvaluationExpression ctxEval = new CContexteEvaluationExpression(info); if (FormuleCle != null) { result = FormuleCle.Eval(ctxEval); if (result && result.Data != null) { strCle = result.Data.ToString(); } else { result.EmpileErreur(I.T("Document key could not be computed|30050")); return(result); } } if (FormuleLibelleDocument != null) { result = FormuleLibelleDocument.Eval(ctxEval); if (result && result.Data != null) { strLibelle = result.Data.ToString(); } else { result.EmpileErreur(I.T("Document label could not be computed|30051")); return(result); } } if (strLibelle.Length == 0) { strLibelle = info.FileName; } CObjetDonneeAIdNumerique associeA = null; if (FormuleElementAssocie != null) { result = FormuleElementAssocie.Eval(ctxEval); if (result) { associeA = result.Data as CObjetDonneeAIdNumerique; } } CDocumentGED doc = new CDocumentGED(contexte.ContexteDonnee); //Si la clé n'est pas nulle, cherche un document avec cette clé if (strCle.Trim() != "") { CFiltreData filtre = new CFiltreData(CDocumentGED.c_champCle + "=@1", strCle); if (!doc.ReadIfExists(filtre)) { doc.CreateNew(); } else { doc.BeginEdit(); } } else { doc.CreateNew(); } doc.Libelle = strLibelle; doc.Cle = strCle; ArrayList lstToCreate = new ArrayList(); lstToCreate.Add(info.EDMCategoryId); ArrayList lstToDelete = new ArrayList(); //Affecte les catégories CListeObjetsDonnees listeCategoriesExistantes = CRelationDocumentGED_Categorie.GetRelationsCategoriesForDocument(doc); foreach (CRelationDocumentGED_Categorie rel in listeCategoriesExistantes) { if (!lstToCreate.Contains(rel.Categorie.Id)) { lstToDelete.Add(rel); } lstToCreate.Remove(rel.Categorie.Id); } foreach (CRelationDocumentGED_Categorie rel in lstToDelete) { rel.Delete(); } foreach (int nId in lstToCreate) { CCategorieGED cat = new CCategorieGED(doc.ContexteDonnee); if (cat.ReadIfExists(nId)) { CRelationDocumentGED_Categorie rel = new CRelationDocumentGED_Categorie(doc.ContexteDonnee); rel.CreateNewInCurrentContexte(); rel.Categorie = cat; rel.Document = doc; } } result = CDocumentGED.SaveDocument(contexte.IdSession, sourceDoc, sourceDoc.TypeReference, doc.ReferenceDoc, true); if (!result) { return(result); } CReferenceDocument refDoc = result.Data as CReferenceDocument; doc.ReferenceDoc = refDoc; if (associeA != null) { doc.AssocieA(associeA); } result = doc.CommitEdit(); if (!result) { return(result); } lstDocs.Add(doc); } } if (VariableResultat != null) { Process.SetValeurChamp(VariableResultat, lstDocs.ToArray()); } return(result); } } } } } //Utilisateur pas accessible foreach (CLienAction lien in GetLiensSortantHorsErreur()) { if (lien is CLienUtilisateurAbsent) { result.Data = lien; return(result); } } return(result); }
//------------------------------------------------------------------------- public CFormEditionCategorieGED(CCategorieGED CategorieGED, CListeObjetsDonnees liste) : base(CategorieGED, liste) { // Cet appel est requis par le Concepteur Windows Form. InitializeComponent(); }
/// //////////////////////////////////////////////////////// protected override CResultAErreur MyExecute(CContexteExecutionAction contexte) { CResultAErreur result = CResultAErreur.True; CSessionClient sessionClient = CSessionClient.GetSessionForIdSession(contexte.IdSession); if (sessionClient != null) { //TESTDBKEYOK if (sessionClient.GetInfoUtilisateur().KeyUtilisateur == contexte.Branche.KeyUtilisateur) { using (C2iSponsor sponsor = new C2iSponsor()) { CServiceSurClient service = sessionClient.GetServiceSurClient(c_idServiceClientGetFichier); CParametresCopierLocalDansGed parametreService = new CParametresCopierLocalDansGed(); CFichierLocalTemporaire fichierLocal = null; FileStream localStream = null; if (service != null) { sponsor.Register(service); //Calcule le contenu CContexteEvaluationExpression contexteEval = new CContexteEvaluationExpression(contexte.Branche.Process); contexteEval.AttacheObjet(typeof(CContexteDonnee), contexte.ContexteDonnee); result = ExpressionContenu.Eval(contexteEval); if (!result) { return(result); } parametreService.NomFichierLocal = result.Data as string; if (ExpressionUser != null && (result = ExpressionUser.Eval(contexteEval))) { if (result.Data != null) { parametreService.User = result.Data.ToString(); } } if (ExpressionPassword != null && (result = ExpressionPassword.Eval(contexteEval))) { if (result.Data != null) { parametreService.Password = result.Data.ToString(); } } CSourceDocument sourceDoc = null; if (parametreService.NomFichierLocal.ToUpper().StartsWith("FTP://")) { CResultAErreurType <CFichierLocalTemporaire> resFic = GetFileFromFtp( parametreService); if (!resFic) { result.EmpileErreur(resFic.Erreur); return(result); } fichierLocal = resFic.DataType; localStream = new FileStream(fichierLocal.NomFichier, FileMode.Open, FileAccess.Read); sourceDoc = new CSourceDocumentStream(localStream, "txt"); } else if (!m_bCreerFichierTexteAPartirDeLaFormuleContenu) { result = service.RunService(parametreService); if (!result) { return(result); } sourceDoc = result.Data as CSourceDocument; if (sourceDoc == null) { result.EmpileErreur(I.T("Error while retrieving file @1|20020", parametreService.NomFichierLocal)); return(result); } } else { fichierLocal = new CFichierLocalTemporaire("txt"); localStream = new FileStream(fichierLocal.NomFichier, FileMode.CreateNew, FileAccess.Write); StreamWriter writer = new StreamWriter(localStream); writer.Write(parametreService.NomFichierLocal); writer.Close(); localStream.Close(); localStream = new FileStream(fichierLocal.NomFichier, FileMode.Open, FileAccess.Read); sourceDoc = new CSourceDocumentStream(localStream, "txt"); } //On a notre fichier en local, création du document string strCle = ""; string strDescriptif = ""; string strLibelle = ""; result = ExpressionCle.Eval(contexteEval); if (result) { strCle = result.Data.ToString(); } else { result.EmpileErreur(I.T("Document key could not be computed|30050")); return(result); } result = ExpressionLibelle.Eval(contexteEval); if (result) { strLibelle = result.Data.ToString(); } else { result.EmpileErreur(I.T("Document label could not be computed|30051")); return(result); } result = ExpressionDescriptif.Eval(contexteEval); if (result) { strDescriptif = result.Data.ToString(); } else { result.EmpileErreur(I.T("Document description could not be computed|30052")); return(result); } CDocumentGED doc = new CDocumentGED(contexte.ContexteDonnee); //Si la clé n'est pas nulle, cherche un document avec cette clé if (strCle.Trim() != "") { CFiltreData filtre = new CFiltreData(CDocumentGED.c_champCle + "=@1", strCle); if (!doc.ReadIfExists(filtre)) { doc.CreateNew(); } else { doc.BeginEdit(); } } else { doc.CreateNew(); } doc.Libelle = strLibelle; doc.Descriptif = strDescriptif; doc.Cle = strCle; List <CDbKey> lstToCreate = new List <CDbKey>(ListeDbKeysCategoriesStockage); List <CRelationDocumentGED_Categorie> lstToDelete = new List <CRelationDocumentGED_Categorie>(); //Affecte les catégories CListeObjetsDonnees listeCategoriesExistantes = CRelationDocumentGED_Categorie.GetRelationsCategoriesForDocument(doc); foreach (CRelationDocumentGED_Categorie rel in listeCategoriesExistantes) { if (!lstToCreate.Contains(rel.Categorie.DbKey)) { lstToDelete.Add(rel); } lstToCreate.Remove(rel.Categorie.DbKey); } foreach (CRelationDocumentGED_Categorie rel in lstToDelete) { rel.Delete(); } foreach (CDbKey dbKey in lstToCreate) { CCategorieGED cat = new CCategorieGED(doc.ContexteDonnee); if (cat.ReadIfExists(dbKey)) { CRelationDocumentGED_Categorie rel = new CRelationDocumentGED_Categorie(doc.ContexteDonnee); rel.CreateNewInCurrentContexte(); rel.Categorie = cat; rel.Document = doc; } } result = CDocumentGED.SaveDocument(contexte.IdSession, sourceDoc, sourceDoc.TypeReference, doc.ReferenceDoc, true); if (sourceDoc != null) { sourceDoc.Dispose(); } if (localStream != null) { localStream.Dispose(); } if (fichierLocal != null) { fichierLocal.Dispose(); } if (!result) { return(result); } CReferenceDocument refDoc = result.Data as CReferenceDocument; doc.ReferenceDoc = refDoc; result = doc.CommitEdit(); if (!result) { return(result); } if (VariableResultat != null) { Process.SetValeurChamp(VariableResultat, doc); } return(result); } } } } //Utilisateur pas accessible foreach (CLienAction lien in GetLiensSortantHorsErreur()) { if (lien is CLienUtilisateurAbsent) { result.Data = lien; return(result); } } return(result); }
//------------------------------------------------------------------------- public CFormEditionCategorieGED(CCategorieGED CategorieGED) : base(CategorieGED) { // Cet appel est requis par le Concepteur Windows Form. InitializeComponent(); }
private void DragDropFiles(string[] strFichiers, CObjetDonneeAIdNumerique objet, CCategorieGED categorie) { CContexteDonnee ctxAppli = CSc2iWin32DataClient.ContexteCourant; using (CContexteDonnee contexte = ctxAppli.GetContexteEdition()) { if (MessageBox.Show(m_lblInfoDragDrop.Text, "", MessageBoxButtons.YesNo) == DialogResult.Yes) { foreach (string strFichier in strFichiers) { if (File.Exists(strFichier)) { string strTitre = Path.GetFileName(strFichier); string strExt = Path.GetExtension(strFichier); if (strExt.Length > 0) { strTitre = strTitre.Remove(strTitre.Length - strExt.Length); } CDocumentGED document = new CDocumentGED(contexte); document.CreateNewInCurrentContexte(); document.Libelle = strTitre; if (objet != null) { document.AssocieA(objet); } if (categorie != null) { CRelationDocumentGED_Categorie rel = new CRelationDocumentGED_Categorie(contexte); rel.CreateNewInCurrentContexte(); rel.Categorie = categorie; rel.Document = document; } CTypeReferenceDocument typeRef = m_cmbModeStockage.SelectedValue as CTypeReferenceDocument; if (typeRef == null) { typeRef = new CTypeReferenceDocument(CTypeReferenceDocument.TypesReference.Fichier); } CProxyGED proxy = new CProxyGED(contexte.IdSession, typeRef.Code); proxy.AttacheToLocal(strFichier); CResultAErreur result = proxy.UpdateGed(); document.ReferenceDoc = result.Data as CReferenceDocument; } } contexte.CommitEdit(); Init(m_elementEdite); } } m_lblInfoDragDrop.Visible = false; }
/// //////////////////////////////////////////////////////// protected override CResultAErreur ExecuteAction(CContexteExecutionAction contexte) { CResultAErreur result = CResultAErreur.True; try { // Récupère la structure par formule ou structure propore m_structureUtiliseeAExecution = StructureExport; IVariableDynamique variableProcess = AssureVariableProcessDansStructure(); m_structureUtiliseeAExecution.SetValeurChamp(variableProcess.IdVariable, Process); m_structureUtiliseeAExecution.ContexteDonnee = contexte.ContexteDonnee; // Si la structure possede un formulaire il faut lancer le service sur le poste client if (m_structureUtiliseeAExecution != null && m_structureUtiliseeAExecution.Formulaire != null && m_structureUtiliseeAExecution.Formulaire.Childs.Length > 0) { CSessionClient sessionClient = CSessionClient.GetSessionForIdSession(contexte.IdSession); if (sessionClient != null) { //TESTDBKEYOK if (sessionClient.GetInfoUtilisateur().KeyUtilisateur == contexte.Branche.KeyUtilisateur) { using (C2iSponsor sponsor = new C2iSponsor()) { CServiceSurClient service = sessionClient.GetServiceSurClient(c_idServiceClientExporterDonnees); if (service != null) { sponsor.Register(service); result = service.RunService(this); E2iDialogResult dResult = (E2iDialogResult)result.Data; if (dResult == E2iDialogResult.Cancel) { foreach (CLienAction lien in GetLiensSortantHorsErreur()) { if (lien is CLienFromDialog && ((CLienFromDialog)lien).ResultAssocie == dResult) { result.Data = lien; return(result); } } } } else { //Utilisateur pas accessible foreach (CLienAction lien in GetLiensSortantHorsErreur()) { if (lien is CLienUtilisateurAbsent) { result.Data = lien; return(result); } } } } } } else { //Utilisateur pas accessible foreach (CLienAction lien in GetLiensSortantHorsErreur()) { if (lien is CLienUtilisateurAbsent) { result.Data = lien; return(result); } } } } result = m_structureUtiliseeAExecution.GetDataSet(Exporteur.ExporteStructureOnly); if (!result) { result.EmpileErreur(I.T("Error while exporting data|405")); return(result); } DataSet ds = (DataSet)result.Data; // Fichier d'export retourné CFichierLocalTemporaire fichierExport = new CFichierLocalTemporaire(Exporteur.ExtensionParDefaut); fichierExport.CreateNewFichier(); CDestinationExportFile dest = new CDestinationExportFile(fichierExport.NomFichier); result = Exporteur.Export(ds, dest); if (!result) { result.EmpileErreur(I.T("Error while creating export file|406")); return(result); } #region Stockage dans la ged CContexteEvaluationExpression contexteEvaluation = new CContexteEvaluationExpression(Process); //On a notre fichier export, création du document string strCle = ""; string strDescriptif = ""; string strLibelle = ""; result = ExpressionCle.Eval(contexteEvaluation); if (result) { strCle = result.Data.ToString(); } else { result.EmpileErreur(I.T("The document key could not be calculated|407")); return(result); } result = ExpressionLibelle.Eval(contexteEvaluation); if (result) { strLibelle = result.Data.ToString(); } else { result.EmpileErreur(I.T("The document label could not be calculated|408")); return(result); } result = ExpressionDescriptif.Eval(contexteEvaluation); if (result) { strDescriptif = result.Data.ToString(); } else { result.EmpileErreur(I.T("The document description could not be calculated|409")); return(result); } CDocumentGED doc = new CDocumentGED(contexte.ContexteDonnee); //Si la clé n'est pas nulle, cherche un document avec cette clé if (strCle.Trim() != "") { CFiltreData filtre = new CFiltreData(CDocumentGED.c_champCle + "=@1", strCle); if (!doc.ReadIfExists(filtre)) { doc.CreateNew(); } else { doc.BeginEdit(); } } else { doc.CreateNew(); } doc.Libelle = strLibelle; doc.Descriptif = strDescriptif; doc.Cle = strCle; ArrayList lstToCreate = (ArrayList)ListeIdsCategoriesStockage.Clone(); ArrayList lstToDelete = new ArrayList(); //Affecte les catégories CListeObjetsDonnees listeCategoriesExistantes = CRelationDocumentGED_Categorie.GetRelationsCategoriesForDocument(doc); foreach (CRelationDocumentGED_Categorie rel in listeCategoriesExistantes) { if (!lstToCreate.Contains(rel.Categorie.Id)) { lstToDelete.Add(rel); } lstToCreate.Remove(rel.Categorie.Id); } foreach (CRelationDocumentGED_Categorie rel in lstToDelete) { rel.Delete(); } foreach (int nId in lstToCreate) { CCategorieGED cat = new CCategorieGED(doc.ContexteDonnee); if (cat.ReadIfExists(nId)) { CRelationDocumentGED_Categorie rel = new CRelationDocumentGED_Categorie(doc.ContexteDonnee); rel.CreateNewInCurrentContexte(); rel.Categorie = cat; rel.Document = doc; } } CProxyGED proxy = new CProxyGED(Process.IdSession, doc.IsNew() ? null : doc.ReferenceDoc); proxy.AttacheToLocal(fichierExport.NomFichier); result = proxy.UpdateGed(); if (!result) { return(result); } doc.ReferenceDoc = (CReferenceDocument)result.Data; result = doc.CommitEdit(); fichierExport.Dispose(); if (VariableResultat != null) { Process.SetValeurChamp(VariableResultat, doc); } #endregion foreach (CLienAction lien in GetLiensSortantHorsErreur()) { if (lien is CLienFromDialog && ((CLienFromDialog)lien).ResultAssocie != E2iDialogResult.Cancel) { result.Data = lien; return(result); } } result.Data = null; return(result); } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); } finally { } return(result); }
//--------------------------------------------------------------------------------- public static void Autoexec() { CDocumentGED.SetRelationsEOProvider(new CProviderRelationsEO()); CCategorieGED.SetRelationsEOProvider(new CProviderRelationsEO()); }