private void m_lnkExporter_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e) { if (!(m_dataGrid.DataSource is DataSet)) { CFormAlerte.Afficher(I.T("This function cannot be used with this data set|30036"), EFormAlerteType.Erreur); return; } IExporteurDataset exporteur = null; IDestinationExport destination = null; if (CFormOptionsExport.EditeOptions(ref destination, ref exporteur)) { if (exporteur != null) { CResultAErreur result = exporteur.Export((DataSet)m_dataGrid.DataSource, destination); if (!result) { CFormAlerte.Afficher(result); return; } else { CFormAlerte.Afficher(I.T("Export finished|30037")); } } } }
//------------------------------------------------------------------------ public CResultAErreur Export(DataSet ds, IDestinationExport dest) { CResultAErreur result = CResultAErreur.True; if (!(dest is CDestinationExportFile)) { result.EmpileErreur(I.T("Destination file is not of the right format|30003")); return(result); } try { if (ExporteStructureOnly) { ds.WriteXmlSchema(((CDestinationExportFile)dest).FileName); } else #if PDA { ds.WriteXml(((CDestinationExportFile)dest).FileName); } #else { ds.WriteXml(((CDestinationExportFile)dest).FileName, XmlWriteMode.WriteSchema); } #endif } catch { result.EmpileErreur(I.T("Error while writing the file @1|30004", ((CDestinationExportFile)dest).FileName)); } return(result); }
private void m_btnOK_Click(object sender, System.EventArgs e) { CResultAErreur result = CResultAErreur.True; IDestinationExport destination = m_panelOptionsExport.DestinationExport; if (destination == null || !destination.EstValidePourExport()) { result.EmpileErreur(I.T("Export destination is not valid|227")); CFormAlerte.Afficher(result); return; } m_destinationExport = destination; m_exporteur = Exporteur; //C2iStructureExportInDB structure = (C2iStructureExportInDB)m_cmbStructures.SelectedValue; m_multistructure = m_panelMultiStructure.MultiStructure; if (m_multistructure == null) { result.EmpileErreur(I.T("Invalid structure|228")); CFormAlerte.Afficher(result); return; } m_multistructure.ContexteDonnee = CSc2iWin32DataClient.ContexteCourant; CFormProgression.StartThreadWithProgress(I.T("Exporting data|229"), new System.Threading.ThreadStart(StartExport)); /* * * result = structure.GetDataSet ( false, m_listeObjets, null ); * * //result = structure.Export(m_listeObjets.ContexteDonnee.IdSession, m_listeObjets, ref ds, null); * * if (!result) * { * CFormAlerte.Afficher(result); * return; * } * * DataSet ds = (DataSet)result.Data; * * CDestinationExportFile dest = new CDestinationExportFile(m_panelOptions.FileName); * * result = Exporteur.Export(ds, dest); * if (!result) * CFormAlerte.Afficher(result); * else * CFormAlerte.Afficher("Exportation des données réussie"); * * ds.Dispose();*/ Close(); }
public static bool EditeOptions(ref IDestinationExport destination, ref IExporteurDataset exporteur) { CFormOptionsExport form = new CFormOptionsExport(); bool bOk = form.ShowDialog() == DialogResult.OK; form.Exporteur = exporteur; if (bOk) { //destination = new CDestinationExportFile(form.m_panelOptions.FileName); destination = form.m_panelFormatExport.DestinationExport; exporteur = form.Exporteur; } form.Dispose(); return(bOk); }
private void m_lnkExport_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { IExporteurDataset exporteur = null; IDestinationExport destination = null; if (CFormOptionsExport.EditeOptions(ref destination, ref exporteur)) { if (exporteur != null) { DataSet dsExport = new DataSet(); DataTable tableExport = new DataTable("EXPORT"); foreach (DataGridViewColumn colView in m_grid.Columns) { if (!tableExport.Columns.Contains(colView.HeaderText)) { tableExport.Columns.Add(colView.HeaderText); } } int rowIndex = 0; foreach (DataGridViewRow rowView in m_grid.Rows) { tableExport.Rows.Add(tableExport.NewRow()); foreach (DataGridViewColumn colView in m_grid.Columns) { int colIndex = colView.Index; tableExport.Rows[rowIndex][colIndex] = rowView.Cells[colIndex].Value; } rowIndex++; } dsExport.Tables.Add(tableExport); CResultAErreur result = exporteur.Export(dsExport, destination); if (!result) { CFormAlerte.Afficher(result); return; } else { CFormAlerte.Afficher(I.T("Export completed|30037")); } } } }
/// ////////////////////////////////////////////// public CResultAErreur Export(DataSet ds, IDestinationExport destination) { CResultAErreur result = CResultAErreur.True; if (!(destination is CDestinationExportFile)) { result.EmpileErreur(I.T("An Excel export can be done only in a file|171")); return(result); } string strNomFichier = ((CDestinationExportFile)destination).FileName; try { ds.EnforceConstraints = false; if (File.Exists(strNomFichier)) { File.Delete(strNomFichier); } Workbook book = new Workbook(); WorksheetStyle style = book.Styles.Add("SC2I_DATE"); style.NumberFormat = I.T("Short DATE|170"); //Nom de table->true : pour éviter 2 fois le même nom de table Hashtable tableTablesCrees = new Hashtable(); Hashtable tableColumnsToHide = new Hashtable(); Regex colKeyAuto = new Regex("^Key_"); if (m_bMasquerIdsAuto) { foreach (DataTable table in ds.Tables) { foreach (DataColumn col in table.PrimaryKey) { if (col.AutoIncrement || colKeyAuto.IsMatch(col.ColumnName)) { tableColumnsToHide[col] = true; } } } foreach (DataRelation rel in ds.Relations) { if (rel.ParentColumns.Length == 1 && tableColumnsToHide.Contains(rel.ParentColumns[0]) && rel.ChildColumns.Length == 1) { tableColumnsToHide[rel.ChildColumns[0]] = true; } } } foreach (DataTable table in ds.Tables) { Worksheet sheet = book.Worksheets.Add(table.TableName); //Création des colonnes WorksheetRow row = sheet.Table.Rows.Add( ); DataType[] typeCol = new DataType[table.Columns.Count]; int nCol = 0; foreach (DataColumn col in table.Columns) { if (!tableColumnsToHide.Contains(col)) { WorksheetColumn colSheet = sheet.Table.Columns.Add( ); DataType tp = GetExcelType(col.DataType); typeCol[nCol] = tp; nCol++; row.Cells.Add(ConvertName(col.ColumnName)); if (tp == DataType.DateTime) { colSheet.StyleID = "SC2I_DATE"; } } } if (!m_bOnlyStructure) { //Insertion des données foreach (DataRow rowNet in table.Rows) { row = sheet.Table.Rows.Add(); nCol = 0; foreach (DataColumn col in table.Columns) { if (!tableColumnsToHide.Contains(col)) { object val = rowNet[col]; if (val == DBNull.Value) { row.Cells.Add(); } else { string strVal = ""; if (typeCol[nCol] == DataType.DateTime) { if (val is CDateTimeEx) { val = ((CDateTimeEx)val).DateTimeValue; } strVal = ((DateTime)val).ToString("yyyy-MM-ddTHH:mm:ss"); } else { strVal = val.ToString(); } row.Cells.Add(strVal, typeCol[nCol], null); } nCol++; } } } } } book.Save(strNomFichier); } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); return(result); } finally { ds.EnforceConstraints = true; } return(result); }
/// ////////////////////////////////////////////// public CResultAErreur Export(DataSet ds, IDestinationExport destination) { CResultAErreur result = CResultAErreur.True; if (!(destination is CDestinationExportFile)) { result.EmpileErreur(I.T("An Access export can be done only in a file|168")); return(result); } string strNomFichier = ((CDestinationExportFile)destination).FileName; try { CalculeLongueurMaxChampsTexte(ds); ds.EnforceConstraints = false; System.Reflection.Assembly thisExe; thisExe = System.Reflection.Assembly.GetExecutingAssembly(); Stream source = thisExe.GetManifestResourceStream(GetNomRessourceForVersion()); if (File.Exists(strNomFichier)) { File.Delete(strNomFichier); } Stream dest = new FileStream(strNomFichier, FileMode.CreateNew); result = CStreamCopieur.CopyStream(source, dest, 2048); dest.Close(); if (!result) { return(result); } m_connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" + strNomFichier + ";Mode=Share Deny None;Extended Properties=\"\";" + "Jet OLEDB:System database=\"\";Jet OLEDB:Registry Path=\"\";" + "Jet OLEDB:Engine Type=4;Jet OLEDB:Database Locking Mode=0;" + "Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;" + "Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;" + "Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False"); m_connection.Open(); m_transaction = m_connection.BeginTransaction(); //Nom de table->true : pour éviter 2 fois le même nom de table Hashtable tableTablesCrees = new Hashtable(); foreach (DataTable table in ds.Tables) { result = CreateTable(table, tableTablesCrees); if (!result) { break; } } if (result) { if (!m_bOnlyStructure) { foreach (DataTable table in ds.Tables) { result = CreateData(table); if (!result) { break; } } } if (result) { m_transaction.Commit(); m_transaction = m_connection.BeginTransaction(); int nNumRelation = 0; foreach (DataRelation relation in ds.Relations) { result = CreateForeignKeys(relation, nNumRelation++); if (!result) { break; } } } } if (result) { m_transaction.Commit(); } else { m_transaction.Rollback(); } m_connection.Close(); } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); return(result); } finally { ds.EnforceConstraints = true; } return(result); }
//------------------------------------------------------------------------ public CResultAErreur Export(DataSet ds, IDestinationExport dest) { CResultAErreur result = CResultAErreur.True; if (!(dest is CDestinationExportFile)) { result.EmpileErreur(I.T("Destination file is not of the right format|30003")); return(result); } StreamWriter writer = null; if (m_bMultiFile && ds.Tables.Count > 1) { foreach (DataTable table in ds.Tables) { string strSubFileName = ""; string[] strVals = ((CDestinationExportFile)dest).FileName.Split('.'); int nLen = strVals.Length; for (int i = 0; i < nLen - 1; i++) { strSubFileName += strVals[i]; } strSubFileName += "_" + table.TableName; strSubFileName += "." + strVals[nLen - 1]; try { writer = new StreamWriter(strSubFileName, false, Encodage); if (m_bLigneEntete) { result = WriteColumns(table, writer); } if (!result) { return(result); } result = WriteRows(table, writer); if (!result) { return(result); } writer.WriteLine(""); writer.Close(); } catch { result.EmpileErreur(I.T("Error while writing the file @1|30004", ((CDestinationExportFile)dest).FileName)); return(result); } } } else { try { writer = new StreamWriter(((CDestinationExportFile)dest).FileName, false, Encodage); foreach (DataTable table in ds.Tables) { if (ds.Tables.Count > 1) { writer.WriteLine(ValeurCompatible("[TABLE : " + table.TableName + "]")); } if (m_bLigneEntete) { result = WriteColumns(table, writer); } if (!result) { return(result); } result = WriteRows(table, writer); if (!result) { return(result); } writer.WriteLine(""); } writer.Close(); } catch { result.EmpileErreur(I.T("Erreur while writing the file @1|30004", ((CDestinationExportFile)dest).FileName)); return(result); } } return(result); }