Beispiel #1
0
        private void readReportImages(DataTable dstDT, DataTable dtReportInfo, string reportID, C1Report c1rpt, string domain)
        {
            List <string> listTmpFile = getFTPFiles(dtReportInfo, reportID, domain);

            int idx = 0;

            foreach (Field fld in c1rpt.Fields)
            {
                if (fld.Picture != null)
                {
                    C1.C1Report.Util.PictureHolder ph = fld.Picture as C1.C1Report.Util.PictureHolder;

                    if (ph != null && ph.IsBound)
                    {
                        if (string.Compare(ph.FieldName, ReportCommon.FIELDNAME_CREATORSIGNIMAGE, true) == 0)
                        {
                            string creater = ReportUtils.GetStringFromDataTable(dtReportInfo, ReportCommon.FIELDNAME_tbReport__Creater);
                            if (!string.IsNullOrEmpty(creater))
                            {
                                User user = _dbContext.Set <User>().Where(u => u.UniqueID == creater).FirstOrDefault();
                                if (user != null)
                                {
                                    dstDT.Rows[0][ph.FieldName] = user.SignImage;
                                }
                            }
                        }
                        else if (string.Compare(ph.FieldName, ReportCommon.FIELDNAME_FIRSTAPPROVERSIGNIMAGE, true) == 0)
                        {
                            string approver = ReportUtils.GetStringFromDataTable(dtReportInfo, ReportCommon.FIELDNAME_tbReport__FirstApprover);
                            if (!string.IsNullOrEmpty(approver))
                            {
                                User user = _dbContext.Set <User>().Where(u => u.UniqueID == approver).FirstOrDefault();
                                if (user != null)
                                {
                                    dstDT.Rows[0][ph.FieldName] = user.SignImage;
                                }
                            }
                        }
                        else if (string.Compare(ph.FieldName, ReportCommon.FIELDNAME_SUBMITTERSIGNIMAGE, true) == 0)
                        {
                            string submitter = ReportUtils.GetStringFromDataTable(dtReportInfo, ReportCommon.FIELDNAME_tbReport__Submitter);
                            if (!string.IsNullOrEmpty(submitter))
                            {
                                User user = _dbContext.Set <User>().Where(u => u.UniqueID == submitter).FirstOrDefault();
                                if (user != null)
                                {
                                    dstDT.Rows[0][ph.FieldName] = user.SignImage;
                                }
                            }
                        }
                        else if (dstDT.Columns.Contains(ph.FieldName) && idx < listTmpFile.Count)
                        {
                            dstDT.Rows[0][ph.FieldName] = File.ReadAllBytes(listTmpFile[idx]);

                            ++idx;
                        }
                    }
                }
            }
        }
Beispiel #2
0
        private DataTable GenerateDataTable4Printing(DataTable dtSrc, C1Report c1rpt)
        {
            DataTable dt = new DataTable();

            foreach (Field fld in c1rpt.Fields)
            {
                if (fld.Picture != null)
                {
                    C1.C1Report.Util.PictureHolder ph = fld.Picture as C1.C1Report.Util.PictureHolder;

                    if (ph != null && ph.IsBound && !dt.Columns.Contains(ph.FieldName))
                    {
                        dt.Columns.Add(ph.FieldName, System.Type.GetType("System.Byte[]"));
                    }
                }
                else if (fld.Calculated)
                {
                    if (!dt.Columns.Contains(fld.Text))
                    {
                        dt.Columns.Add(fld.Text);
                    }
                }
            }

            if (dtSrc.Rows.Count > 0)
            {
                DataRow dr = dt.NewRow();

                foreach (DataColumn fld in dt.Columns)
                {
                    if (dtSrc.Columns.Contains(fld.ColumnName))
                    {
                        if (fld.DataType == System.Type.GetType("System.Byte[]"))
                        {
                            dr[fld.ColumnName] = ReportUtils.GetBytesFromBase64(dtSrc, fld.ColumnName);
                        }
                        else
                        {
                            dr[fld.ColumnName] = GetStringForPrinting(dtSrc, fld.ColumnName);
                        }
                    }
                }

                dt.Rows.Add(dr);
            }

            return(dt);
        }
Beispiel #3
0
        private DataTable generateDataTable4Printing(DataTable dtSrc, C1Report c1rpt)
        {
            DataTable dt = ReportUtils.CreateDTBaseInfoTemplate();

            foreach (Field fld in c1rpt.Fields)
            {
                if (fld.Picture != null)
                {
                    C1.C1Report.Util.PictureHolder ph = fld.Picture as C1.C1Report.Util.PictureHolder;

                    if (ph != null && ph.IsBound && !dt.Columns.Contains(ph.FieldName))
                    {
                        dt.Columns.Add(ph.FieldName, System.Type.GetType("System.Byte[]"));
                    }
                }
                else if (fld.Calculated)
                {
                    if (!dt.Columns.Contains(fld.Text))
                    {
                        dt.Columns.Add(fld.Text);

                        if (fld.Text.ToLower() == "tbreport__wys")
                        {
                            fld.RTF  = false;
                            fld.Text = "tbReport__WYSTEXT";
                        }
                        else if (fld.Text.ToLower() == "tbreport__wyg")
                        {
                            fld.RTF  = false;
                            fld.Text = "tbReport__WYGTEXT";
                        }
                    }
                }
            }

            //c1rpt.Save(templateFile);

            if (dtSrc.Rows.Count > 0)
            {
                DataRow dr = dt.NewRow();

                foreach (DataColumn fld in dt.Columns)
                {
                    if (dtSrc.Columns.Contains(fld.ColumnName))
                    {
                        if (fld.ColumnName.ToLower().EndsWith("reportname"))
                        {
                            dr[fld.ColumnName] = GetStringForPrinting(dtSrc, "tbRegPatient__LocalName")
                                                 + GetStringForPrinting(dtSrc, fld.ColumnName);
                        }
                        else
                        {
                            dr[fld.ColumnName] = GetStringForPrinting(dtSrc, fld.ColumnName);
                        }
                    }
                }

                dt.Rows.Add(dr);
            }

            SetExamNumber(dt);

            //SetSignImage(dt, dtSrc);

            return(dt);
        }