public static object GetValeur( DataRow row, string strChampString, string strChampBlob, string strChampType, CContexteDonnee ctx) { Type t = CActivatorSurChaine.GetType((string)row[strChampType]); if (t == typeof(IDifferencesBlob)) { CDonneeBinaireInRow blob = GetBlob(row, strChampBlob, ctx); MemoryStream stream = new MemoryStream(blob.Donnees); BinaryReader reader = new BinaryReader(stream); CSerializerReadBinaire serializer = new CSerializerReadBinaire(reader); I2iSerializable objet = null; CResultAErreur result = serializer.TraiteObject(ref objet); reader.Close(); stream.Close(); if (result) { return(objet); } System.Console.WriteLine(I.T("Error while deserializing blob diffs|30000")); return(null); } else if (t == typeof(byte[])) { CDonneeBinaireInRow blob = GetBlob(row, strChampBlob, ctx); if (blob != null) { return(blob.Donnees); } else { return(null); } } else if (typeof(CObjetDonneeAIdNumerique).IsAssignableFrom(t)) { int nId = Int32.Parse((string)row[strChampString]); CObjetDonneeAIdNumerique obj = (CObjetDonneeAIdNumerique)Activator.CreateInstance(t, new object[] { ctx }); if (obj.ReadIfExists(nId)) { return(obj); } return(null); } else if (t != null && row[strChampString] != DBNull.Value) { return(CUtilTexte.FromUniversalString((string)row[strChampString], t)); } return(null); }
public static void StockValeur( DataRow row, int idSession, string strChampType, string strChampBlob, string strChampString, object val) { if (val is IDifferencesBlob) { MemoryStream stream = new MemoryStream(); BinaryWriter writer = new BinaryWriter(stream); CSerializerSaveBinaire serializer = new CSerializerSaveBinaire(writer); I2iSerializable serTmp = (I2iSerializable)val; CResultAErreur result = serializer.TraiteObject(ref serTmp); if (!result) { throw new Exception(I.T("Can not serialize blob differences|192")); } row[strChampType] = typeof(IDifferencesBlob).ToString(); CDonneeBinaireInRow donnee = new CDonneeBinaireInRow(idSession, row, strChampBlob); donnee.Donnees = stream.GetBuffer(); row[strChampBlob] = donnee; writer.Close(); stream.Close(); } else if (val is byte[]) { CDonneeBinaireInRow donnee = new CDonneeBinaireInRow(idSession, row, strChampBlob); donnee.Donnees = (byte[])val; row[strChampBlob] = donnee; row[strChampType] = typeof(byte[]).ToString(); } else if (val != null && val.GetType() == typeof(CDonneeBinaireInRow)) { row[strChampBlob] = val; row[strChampType] = typeof(byte[]).ToString(); } else if (val is CObjetDonneeAIdNumerique) { row[strChampString] = ((CObjetDonneeAIdNumerique)val).Id; row[strChampString] = val.GetType().ToString(); } else { row[strChampString] = CUtilTexte.ToUniversalString(val); if (val != null) { row[strChampType] = val.GetType().ToString(); } //else // row[strChampType] = ""; } }
public CChampPourVersionLigneDeTable(DataRow row) { StringBuilder sb = new StringBuilder(); m_strFieldKey = ""; bool bDeleted = row.RowState == DataRowState.Deleted; if (bDeleted) { row.RejectChanges(); } foreach (DataColumn dc in row.Table.PrimaryKey) { sb.Append(CUtilTexte.ToUniversalString(row[dc]).Replace("|", "\\|") + "|"); } if (sb.Length == 0) { //A VOIR SI CE CAS PEUT EXISTER ETANT DONNER //QUE LE CDIFFERENCETABLE NE CONSIDERE PAS //LES MAPPAGES SUR DES TABLES SANS CLE foreach (DataColumn dc in row.Table.Columns) { sb.Append(CUtilTexte.ToUniversalString(row[dc]).Replace("|", "\\|") + "|"); } if (sb.Length > 0) { m_strFieldKey = sb.ToString(0, sb.Length - 1); } m_strNomConvivial = I.TT(GetType(), "Row without identification|553"); } else { //m_strFieldKey = m_strFieldKey.Substring(0, m_strFieldKey.Length - 1); if (sb.Length > 0) { m_strFieldKey = sb.ToString(0, sb.Length - 1); } //Ne pas traduire, Row key doit rester fixe (test en dur chez Audilog) m_strNomConvivial = "Row key " + m_strFieldKey; } if (m_strFieldKey == "") { throw new Exception(I.TT(GetType(), "CANNOT IDENTIFY ROW (empty key)|555")); } if (bDeleted) { row.Delete(); } }
void m_dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if (m_origine == EOrigineVersion.Cible) { //AJOUT if (m_strLigneOrigine == "@NULL") { e.CellStyle.BackColor = Color.GreenYellow; e.CellStyle.SelectionBackColor = Color.GreenYellow; } //MODIFICATION ? else { string[] dataOriginales = m_strLigneOrigine.Split('|'); bool bModifie = false; string strVal = ""; if (e.ColumnIndex - 1 < dataOriginales.Length && e.ColumnIndex - 1 >= 0) { strVal = dataOriginales[e.ColumnIndex - 1]; } if (strVal == "@NULL") { bModifie = (e.Value != DBNull.Value); } else { bModifie = CUtilTexte.ToUniversalString(e.Value) != strVal; } if (bModifie) { e.CellStyle.SelectionBackColor = Color.PaleGoldenrod; e.CellStyle.BackColor = Color.PaleGoldenrod; } else { e.CellStyle.SelectionBackColor = Color.Transparent; } } } else { e.CellStyle.SelectionBackColor = Color.White; } e.CellStyle.SelectionForeColor = Color.Black; }
//------------------------------------------------------------------ private void m_menuLoadFile_Opening(object sender, CancelEventArgs e) { foreach (ToolStripItem item in new ArrayList(m_menuLoadFile.Items)) { if (item != m_menuOpenConfig) { m_menuLoadFile.Items.Remove(item); } } string[] strRecents = CTimosAppRegistre.GetRecentsConfigPlanning(); if (strRecents.Length > 0) { m_menuLoadFile.Items.Add(new ToolStripSeparator()); foreach (string strRecent in strRecents) { ToolStripMenuItem itemOpenFile = new ToolStripMenuItem(CUtilTexte.TronqueLeMilieu(strRecent, 40)); itemOpenFile.Tag = strRecent; m_menuLoadFile.Items.Add(itemOpenFile); itemOpenFile.Click += new EventHandler(itemOpenFile_Click); } } }
public string GetStringSerialisation() { StringBuilder sb = new StringBuilder(); string strResult = ""; if (m_row != null) { foreach (DataColumn c in m_row.Table.Columns) { if (c.ColumnName == "ID" || c.ColumnName == CTableParametrable.c_strColTimeStamp) { continue; } object val = null; if (m_row.RowState == DataRowState.Deleted) { val = m_row[c, DataRowVersion.Original]; } else { val = m_row[c]; } sb.Append(CUtilTexte.ToUniversalString(val).Replace("|", "\\|") + "|"); //strResult += CUtilTexte.ToUniversalString(val).Replace("|", "\\|") + "|"; } } if (sb.Length > 0) { strResult = sb.ToString(0, sb.Length - 1); } else { strResult = I.T("No Value|556"); } return(strResult); }
private string RemoveAccents(string strLibelle) { return(CUtilTexte.RemplaceAccentsParEquivalent(strLibelle)); }
private void m_btnPaste_Click(object sender, EventArgs e) { if (!Clipboard.ContainsText()) { MessageBox.Show("Nothing to paste"); } m_bIsConverted = false; m_btnOk.Enabled = false; string strPaste = Clipboard.GetText(); DataTable table = null; try { table = CUtilTexte.GetDataTableFromExcelPaste(strPaste, m_chkUseFirstRowANames.Checked); } catch (Exception ex) { CResultAErreur result = CResultAErreur.True; result.EmpileErreur(new CErreurException(ex)); CFormAlerte.Afficher(result.Erreur); } /* * * string[] strLignes = strPaste.Split('\n'); * DataTable table = new DataTable(); * table.BeginLoadData(); * int nLigne = 0; * foreach (string strLaLigne in strLignes) * { * string strLigne = strLaLigne; * if ( strLigne.Length > 0 && strLigne[strLigne.Length-1] == '\r') * strLigne = strLigne.Substring(0, strLigne.Length-1); * if (strLigne.Length > 0 && strLigne[0] == '\r') * strLigne = strLigne.Substring(1, strLigne.Length - 1); * string[] strCols = strLigne.Split('\t'); * if (nLigne == 0 && m_chkUseFirstRowANames.Checked) * { * foreach (string strCol in strCols) * { * try * { * table.Columns.Add(strCol, typeof(string)); * } * catch * { * try * { * table.Columns.Add("Column " + table.Columns.Count + 1, typeof(string)); * } * catch * { * table.Columns.Add(Guid.NewGuid().ToString(), typeof(string)); * } * } * } * nLigne++; * continue; * } * nLigne++; * while (table.Columns.Count < strCols.Length) * { * table.Columns.Add("Col " + table.Columns.Count + 1, typeof(string)); * } * DataRow row = table.NewRow(); * int nCol = 0; * foreach (string strVal in strCols) * { * row[nCol++] = strVal; * } * table.Rows.Add(row); * } * table.EndLoadData();*/ if (table != null) { m_grid.DataSource = table; UpdatePanelMappage(); } }
//---------------------------------------------------------------- private void m_menuSaveConfig_Opening(object sender, CancelEventArgs e) { m_menuSaveConfigDirect.Text = I.T("Save|20668") + " " + CUtilTexte.TronqueLeMilieu(m_strNomFichierEnCours, 40); }
public void Init(CControlListeOperationsSurCAVO.CValeurCAVOO valeurCAVOO) { m_origine = valeurCAVOO.Origine; m_strLigneCible = valeurCAVOO.CAVOO.ValChampCibleString; m_strLigneOrigine = valeurCAVOO.CAVOO.ValChampSourceString; byte[] byteOfTb = null; if (valeurCAVOO.CAVOO.ValChampCibleBlob.Donnees != null && valeurCAVOO.CAVOO.ValChampCibleBlob.Donnees.Length > 0) { byteOfTb = valeurCAVOO.CAVOO.ValChampCibleBlob.Donnees; } else { byteOfTb = valeurCAVOO.CAVOO.ValChampSourceBlob.Donnees; } m_dt = CUtilADataTable.UnserializeDataTable(byteOfTb); string strLigneConcernee = m_origine == EOrigineVersion.Cible ? m_strLigneCible: m_strLigneOrigine; bool bNull = strLigneConcernee == "@NULL"; if (bNull) { m_dgv.DataSource = null; m_dgv.ContextMenuStrip = null; return; } string[] datas = null; if (!bNull) { datas = strLigneConcernee.Split('|'); } DataRow dr = m_dt.NewRow(); int nCpt = 0; foreach (DataColumn dc in m_dt.Columns) { if (nCpt >= datas.Length) { break; } if (dc.ColumnName == "ID") { dr[dc] = 0; continue; } if (!bNull) { if (datas[nCpt] == "@NULL") { dr[dc] = DBNull.Value; } else { if (dc.DataType == typeof(DateTime)) { dr[dc] = (DateTime)CUtilTexte.FromUniversalString((string)datas[nCpt], typeof(DateTime)); } else if (dc.DataType == typeof(int)) { dr[dc] = (int)CUtilTexte.FromUniversalString((string)datas[nCpt], typeof(int)); } else if (dc.DataType == typeof(bool)) { dr[dc] = (bool)CUtilTexte.FromUniversalString((string)datas[nCpt], typeof(bool)); } else if (dc.DataType == typeof(double)) { dr[dc] = (double)CUtilTexte.FromUniversalString((string)datas[nCpt], typeof(double)); } else { dr[dc] = datas[nCpt]; } } } else { dc.AllowDBNull = true; dr[dc] = DBNull.Value; } nCpt++; } m_dt.Rows.Add(dr); m_dgv.DataSource = m_dt; m_dgv.Columns[0].Visible = false; m_dgv.CellFormatting += new DataGridViewCellFormattingEventHandler(m_dgv_CellFormatting); m_dgv.ColumnWidthChanged += new DataGridViewColumnEventHandler(m_dgv_ColumnWidthChanged); m_dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; m_dgv.AllowUserToAddRows = false; m_dgv.ColumnHeadersVisible = false; m_dgv.RowHeadersVisible = true; m_dgv.RowHeadersWidth = 10; m_dgv.ReadOnly = true; ActualiserTextMenu(); //m_dgv.ColumnHeadersVisible = false; //if (diffTable.CreationTable) //{ //} //else if (diffTable.ChangementStructureTable) //{ //} //else if (diffTable.ChangementClePrimaire) //{ //} //else //{ // //Récupération de la ligne concernée //} }
//----------------------------------------------------------- public static CResultAErreur RunProcess(int nIdProcess, Dictionary <string, string> valeursParametres) { AssureTimerNettoyage(); CResultAErreur result = GetSession(); if (!result) { return(result); } CDonneeSessionProcess donneeSession = result.Data as CDonneeSessionProcess; result = CResultAErreur.True; try { CSessionClient session = donneeSession.SessionClient; using (CContexteDonnee contexte = new CContexteDonnee(session.IdSession, true, false)) { CProcessInDb processInDb = new CProcessInDb(contexte); if (!processInDb.ReadIfExists(nIdProcess)) { result.EmpileErreur(I.T("The process @1 doesn't exist|30008", nIdProcess.ToString())); result.Data = (int)EErreurs.ProcessDoesntExists; return(result); } CProcess process = processInDb.Process; foreach (KeyValuePair <string, string> parametre in valeursParametres) { string strParametre = parametre.Key; string strValeur = parametre.Value; bool bTrouvee = false; foreach (IVariableDynamique variable in process.ListeVariables) { if (strParametre.ToUpper() == variable.Nom.ToUpper()) { if (!variable.TypeDonnee.TypeDotNetNatif.IsValueType && variable.TypeDonnee.TypeDotNetNatif != typeof(string)) { result.EmpileErreur(I.T("Variable @1 cannot be set by TimosProcess. Only simple values can be used|30009", variable.Nom)); result.Data = (int)EErreurs.InvalidVariableValueOnlySimpleValuesAreAccepted; return(result); } try { object valeur = CUtilTexte.FromUniversalString(strValeur, variable.TypeDonnee.TypeDotNetNatif); } catch { } process.SetValeurChamp(variable.IdVariable, strValeur); bTrouvee = true; break; } } if (!bTrouvee) { result = ShowHelp(process); result.EmpileErreur(I.T("Unknown variable @1|30010", strParametre)); result.Data = (int)EErreurs.UnknownVariable; return(result); } } result = CProcessEnExecutionInDb.StartProcess(process, new CInfoDeclencheurProcess(TypeEvenement.Manuel), session.IdSession, null, null); if (!result) { result.Data = (int)EErreurs.ErrorWhileRunningProcess; return(result); } if (result.Data != null) { try { result.Data = Convert.ToInt32(result.Data); } catch { } return(result); } else { result.Data = 0; } } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); result.Data = (int)EErreurs.ErrorWhileRunningProcess; return(result); } finally { lock (typeof(CLanceurProcessCommandLine)) { donneeSession.EndUsing(); } } return(result); }