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);
        }
Exemple #3
0
        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();
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #7
0
        /// //////////////////////////////////////////////
        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);
        }