示例#1
0
 private void btnExcel_Click(object sender, EventArgs e)
 {
     if (MyDs.Tables.Count > 0)
     {
         if (MyDs.Tables[0].Rows.Count > 0)
         {
             PleaseWait frmPW = new PleaseWait();
             frmPW.Show();
             Application.DoEvents();
             FastExportingMethod.ExportToExcel(MyDs);//, sfd.FileName);
             frmPW.Close();
         }
     }
 }
示例#2
0
 private void miExportTable_Click(object sender, System.EventArgs e)
 {
     if (MyDs.Tables.Count > 0)
     {
         if (MyDs.Tables[0].Rows.Count > 0)
         {
             PleaseWait frmPW = new PleaseWait();
             frmPW.Show();
             Application.DoEvents();
             FastExportingMethod.ExportToExcel(MyDs);
             frmPW.Close();
         }
     }
 }
示例#3
0
        private void ExportSelected()
        {
            DataSet   SelectedDataSet = new DataSet();
            DataTable dt  = new DataTable();
            String    SQL = @"SELECT ProductGroup, Description, SerialNumber as [Serial Number], DMMPropertyNum as [DMM Property Number],
                           Status, AssignedToDep as [Assigned To Department], AssignedTo as [Assigned To], Quantity, IPAddress as [IP Address], '' as [Date of change], UserName as [Changed by], Serviser as [Supplier/Servicer], AssignementNumber as [Assignement Form], RelatedBDA as [Related BDA], Notes FROM Items i LEFT OUTER JOIN Assignement as a on a.AssignementId = i.AssignementID WHERE 1=2";

            dt = Vasko.ReturnDataTable(SQL);
            SelectedDataSet.Tables.Add(dt);

            foreach (DataGridViewRow dr in outlookGrid1.Rows)
            {
                if (dr.Selected)
                {
                    DataRow drNew = SelectedDataSet.Tables[0].NewRow();
                    drNew[0]  = dr.Cells[1].Value;
                    drNew[1]  = dr.Cells[2].Value;
                    drNew[2]  = dr.Cells[3].Value;
                    drNew[3]  = dr.Cells[4].Value;
                    drNew[4]  = dr.Cells[5].Value;
                    drNew[5]  = dr.Cells[6].Value;
                    drNew[6]  = dr.Cells[7].Value;
                    drNew[7]  = dr.Cells[8].Value;
                    drNew[8]  = dr.Cells[9].Value;
                    drNew[9]  = dr.Cells[10].Value.ToString();
                    drNew[10] = dr.Cells[11].Value;
                    drNew[11] = dr.Cells[12].Value;
                    drNew[12] = dr.Cells[13].Value;
                    drNew[13] = dr.Cells[15].Value;
                    drNew[14] = dr.Cells[16].Value;
                    //drNew[15] = dr.Cells[15].Value;

                    SelectedDataSet.Tables[0].Rows.Add(drNew);
                }
            }

            if (SelectedDataSet.Tables[0].Rows.Count > 0)
            {
                PleaseWait frmPW = new PleaseWait();
                frmPW.Show();
                Application.DoEvents();
                FastExportingMethod.ExportToExcel(SelectedDataSet);//, sfd.FileName);
                frmPW.Close();
            }
        }
示例#4
0
        public void SendReportExecutionRequest(ReportDefinition selectedReport, string path, UnitOfWork uow)
        {
            var reportServiceDestination = "";// ConfigurationStatic.GetParameterValue("ReportingServerAddress", uow);

            if (string.IsNullOrEmpty(reportServiceDestination))
            {
                throw new InvalidOperationException("Reporting Sevrer Address Not Found");
            }

            var def = new DataExportRequest()
            {
                ReportDefinitionID = selectedReport.ID, Parameters = new List <QueryParameterHelper>()
            };

            foreach (var parameter in selectedReport.QueryParametersCollection)
            {
                def.Parameters.Add(new QueryParameterHelper()
                {
                    ParameterName = parameter.ParameterName, ParameterValue = parameter.ParameterValue.ToString()
                });
            }

            var xml              = FastExportingMethod.Serialize(def);
            var xmlBytes         = Encoding.UTF8.GetBytes(xml);
            var base64Xml        = Convert.ToBase64String(xmlBytes);
            var encodedBase64Xml = WebUtility.UrlEncode(base64Xml);
            var request          = WebRequest.Create($"http://{reportServiceDestination}/?data={encodedBase64Xml}");

            request.Timeout = 600000;

            var response = request.GetResponse();

            using (var file = response.GetResponseStream())
                using (var fileStream = new FileStream(path, FileMode.Create))
                    file?.CopyTo(fileStream);
        }
示例#5
0
        public static void ExportToExcel()
        {
            DataTable       table           = new DataTable();
            TransactionWork transactionWork = null;

            SqlParameter[] parameters = new SqlParameter[3];

            SqlParameter parameter = new SqlParameter();

            parameter.DbType        = DbType.String;
            parameter.Size          = 100;
            parameter.ParameterName = "@whereClasure";
            parameter.Value         = whereClasure;
            parameters[0]           = parameter;

            parameter               = new SqlParameter();
            parameter.DbType        = DbType.String;
            parameter.ParameterName = "@Param";
            parameter.Size          = 100;
            if (value == null)
            {
                parameter.Value = string.Empty;
            }
            else
            {
                parameter.Value = value;
            }
            parameter.IsNullable = true;
            parameters[1]        = parameter;

            parameter               = new SqlParameter();
            parameter.DbType        = DbType.String;
            parameter.Size          = 30;
            parameter.ParameterName = "@ParamType";
            parameter.Value         = dbType;
            parameter.IsNullable    = true;
            parameters[2]           = parameter;

            try
            {
                using (transactionWork = (TransactionWork)TransactionFactory.Create())
                {
                    transactionWork.Execute(table, "uspDynamicQuery", parameters);
                    transactionWork.Commit();
                }
            }
            catch (Exception)
            {
                transactionWork?.Rollback();
                throw;
            }

            FastExportingMethod.ExportToExcel(table,
                                              Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "List"));
            FastExportingMethod.GemExportToExcel(table,
                                                 Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "List2.xls"));
            table.Dispose();
            table = null;
            GC.Collect();
            GC.WaitForPendingFinalizers();
        }
示例#6
0
        public string GenerateEmailFromSchedule(DoSoReportSchedule schedule, UnitOfWork unitOfWork)
        {
            string exception = string.Empty;

            var objects = SenderHelper.GetMyObjects(schedule.ObjectsCriteria, unitOfWork, schedule.BusinessObjectFullName, true, 500);

            foreach (var item in objects)
            {
                try
                {
                    var classInfo  = unitOfWork.GetClassInfo(item);
                    var properties = unitOfWork.GetProperties(classInfo);
                    var mailTo     = new ExpressionEvaluator(properties, schedule.MessageTo).Evaluate(item).With(x => x.ToString());

                    if (string.IsNullOrEmpty(mailTo))
                    {
                        continue;
                    }

                    var subject = new ExpressionEvaluator(properties, schedule.MessageSubject).Evaluate(item).ToString();
                    var body    = new ExpressionEvaluator(properties, schedule.MessageBody).Evaluate(item).ToString();

                    var key = classInfo.KeyProperty.GetValue(item).ToString();

                    var sameMailFromDb = unitOfWork.Query <DoSoEmail>().Where(x =>
                                                                              x.ExpiredOn == null &&
                                                                              x.EmailTo == mailTo &&
                                                                              x.ObjectKey == key &&
                                                                              x.ObjectTypeName == item.GetType().FullName&&
                                                                              x.ReportSchedule == schedule);
                    var oldNotSentMail = sameMailFromDb.Where(x => !x.IsSent && !x.IsCanceled && x.SendingDate < DateTime.Now);
                    foreach (var oldMail in oldNotSentMail)
                    {
                        oldMail.IsCanceled    = true;
                        oldMail.StatusComment = "Created New Email";
                    }

                    //var alredySentMails = sameMailFromDb.FirstOrDefault(x =>
                    //                                        x.IsSent &&
                    //                                        !x.IsCanceled &&
                    //                                        x.SentDate.AddDays(schedule.SkipExecutionDate) > DateTime.Now);

                    var email = new DoSoEmail(unitOfWork)
                    {
                        EmailTo        = mailTo,
                        EmailSubject   = subject,
                        EmailBody      = body,
                        SendingDate    = DateTime.Now,
                        ObjectKey      = key,
                        ObjectTypeName = item.GetType().FullName,
                        //SourceFilePath = path + fullName,
                        ReportSchedule = schedule
                    };

                    if (schedule.ReportDefinition != null)
                    {
                        var path     = System.IO.Path.GetTempPath();
                        var name     = DateTime.Now.ToString("MMMddHHmmssfff");
                        var fullName = name + ".xlsx";

                        SetParameteValues(schedule, item, unitOfWork);
                        var exported = FastExportingMethod.ExportData2Excel(schedule.ReportDefinition, unitOfWork.Connection as SqlConnection, path, name);
                        if (exported)
                        {
                            email.SourceFilePath = path + fullName;
                        }
                        else
                        {
                            email.EmailBody += string.Format("{0}{0}{1}", Environment.NewLine, schedule.AlternativeText);
                        }
                    }

                    schedule.GetNextExecutionDate();
                    unitOfWork.CommitChanges();
                }
                catch (Exception ex)
                {
                    exception += ex + Environment.NewLine;
                    continue;
                }
            }
            return(exception);
        }