Ejemplo n.º 1
0
        internal void Load()
        {
            ConfigData cd = K12.Data.School.Configuration[Global.ReportName];

            #region 讀取使用者的節權設定
            if (cd.Contains("節權設定") && !string.IsNullOrEmpty(cd["節權設定"]))
            {
                XmlElement config = K12.Data.XmlHelper.LoadXml(cd["節權設定"]);
                PrintPeriod = bool.Parse(config.SelectSingleNode("Period").InnerText);
                PrintCredit = bool.Parse(config.SelectSingleNode("Credit").InnerText);
            }
            else
            {
                PrintPeriod = false;
                PrintCredit = false;
            }
            #endregion

            #region 讀取使用者的假別設定
            if (cd.Contains("假別設定") && !string.IsNullOrEmpty(cd["假別設定"]))
            {
                XmlElement config = K12.Data.XmlHelper.LoadXml(cd["假別設定"]);
                foreach (XmlElement type in config.SelectNodes("Type"))
                {
                    string typeName = type.GetAttribute("Text");
                    if (!PrintTypes.ContainsKey(typeName))
                    {
                        PrintTypes.Add(typeName, new List <string>());
                    }

                    foreach (XmlElement absence in type.SelectNodes("Absence"))
                    {
                        string absenceName = absence.GetAttribute("Text");
                        if (!PrintTypes[typeName].Contains(absenceName))
                        {
                            PrintTypes[typeName].Add(absenceName);
                        }
                    }
                }
            }
            #endregion

            #region 讀取使用者的領域科目設定
            if (cd.Contains("領域科目設定") && !string.IsNullOrEmpty(cd["領域科目設定"]))
            {
                XmlElement xml        = K12.Data.XmlHelper.LoadXml(cd["領域科目設定"]);
                XmlElement staticNode = (XmlElement)xml.SelectSingleNode("Static");
                if (staticNode != null)
                {
                    try
                    {
                        DomainSubjectSetup = (DomainSubjectSetup)Enum.Parse(DomainSubjectSetup.GetType(), staticNode.InnerText, true);
                    }
                    catch (Exception)
                    {
                    }
                }
            }
            #endregion
        }
Ejemplo n.º 2
0
        internal AsyncPrimeFinder(PrintTypes printType, bool loadPrimes)
        {
            if (loadPrimes)
            {
                LoadPrimes();
            }

            switch (printType)
            {
            case PrintTypes.Normal:
                solver.TenThousandthPrime += PrintTenThousandth;
                solver.MillionthPrime     += PrintMillionth;
                break;

            case PrintTypes.Fast:
                solver.MillionthPrime += PrintMillionth;
                break;

            case PrintTypes.Fancy:
                solver.HundredThousandthPrime += (uint p, uint pCount) => Console.Write('*');
                solver.MillionthPrime         += PrintMillionthFancy;
                break;

            default:
                break;
            }

            solvingThread = new Thread(new ThreadStart(solver.Solve));
        }
Ejemplo n.º 3
0
        public void Load()
        {
            ConfigData cd = K12.Data.School.Configuration[_name];

            #region 假別設定
            if (cd.Contains("假別設定") && !string.IsNullOrEmpty(cd["假別設定"]))
            {
                XmlElement config = K12.Data.XmlHelper.LoadXml(cd["假別設定"]);
                foreach (XmlElement type in config.SelectNodes("Type"))
                {
                    string typeName = type.GetAttribute("Text");
                    if (!PrintTypes.ContainsKey(typeName))
                    {
                        PrintTypes.Add(typeName, new List <string>());
                    }

                    foreach (XmlElement absence in type.SelectNodes("Absence"))
                    {
                        string absenceName = absence.GetAttribute("Text");
                        if (!PrintTypes[typeName].Contains(absenceName))
                        {
                            PrintTypes[typeName].Add(absenceName);
                        }
                    }
                }
            }
            #endregion

            _asWithExam.Clear();
            foreach (JHAEIncludeRecord ae in JHAEInclude.SelectAll())
            {
                if (ae.RefExamID == Exam.ID)
                {
                    if (!_asWithExam.Contains(ae.RefAssessmentSetupID))
                    {
                        _asWithExam.Add(ae.RefAssessmentSetupID);
                    }
                }
            }


            // 評分樣板對照
            aeExamName.Clear();
            foreach (JHAEIncludeRecord ae in JHAEInclude.SelectAll())
            {
                if (aeExamName.ContainsKey(ae.RefAssessmentSetupID))
                {
                    if (!aeExamName[ae.RefAssessmentSetupID].Contains(ae.ExamName))
                    {
                        aeExamName[ae.RefAssessmentSetupID].Add(ae.ExamName);
                    }
                }
                else
                {
                    List <string> exList = new List <string>();
                    exList.Add(ae.ExamName);
                    aeExamName.Add(ae.RefAssessmentSetupID, exList);
                }
            }
        }
Ejemplo n.º 4
0
        public bool SetupThePrinting(PrintDocument MyPrintDocument, SYSPrintsettings theSysPrintsetting, PrintInfo thePrintInfo)
        {
            PrintDialog MyPrintDialog = new PrintDialog();

            MyPrintDialog.AllowCurrentPage = false;
            MyPrintDialog.AllowPrintToFile = false;
            MyPrintDialog.AllowSelection   = false;
            MyPrintDialog.AllowSomePages   = false;
            MyPrintDialog.PrintToFile      = false;
            MyPrintDialog.ShowHelp         = false;
            MyPrintDialog.ShowNetwork      = false;
            MyPrintDialog.PrinterSettings.DefaultPageSettings.Landscape = false;

            MyPrintDocument.DocumentName = thePrintInfo.CustomerName + "标签";

            MyPrintDocument.PrinterSettings     = MyPrintDialog.PrinterSettings;
            MyPrintDocument.DefaultPageSettings = MyPrintDialog.PrinterSettings.DefaultPageSettings;

            foreach (PrinterResolution item in MyPrintDocument.PrinterSettings.PrinterResolutions)
            {
                if (item.X > 100 && item.Y > 100)
                {
                    MyPrintDocument.DefaultPageSettings.PrinterResolution = item;
                }
            }

            MyPrintDocument.DefaultPageSettings.Margins = new Margins(0, 0, 0, 0);
            Invoice.Titel.Clear();
            Invoice.Details.Clear();
            Invoice.Floot.Clear();

            PrintSettings printSettings = PrintSettings.GetSettings();
            PrintTypes    printTypes    = new PrintTypes();

            //循环printSetting表内的设置项
            foreach (PrintSetting printSetting in printSettings)
            {
                foreach (PrintType printType in printTypes)
                {
                    //获取属性描述对应的属性名称
                    if (printType.TypeText == printSetting.PrintText)
                    {
                        Type type = thePrintInfo.GetType();                                                 //获取类型
                        System.Reflection.PropertyInfo propertyInfo = type.GetProperty(printType.TypeName); //获取指定名称的属性
                        string value_Old = propertyInfo.GetValue(thePrintInfo, null).ToString();            //获取属性值
                        Invoice.Details.Add(new InvoiceDetail(printSetting.PrintLable + value_Old, printSetting.X, printSetting.Y, printSetting.Font, printSetting.FontSize));
                    }
                }
            }
            print = new LPTPrinter(MyPrintDocument, Color.Black);

            Invoice.IsPageturn    = theSysPrintsetting.IsPageturn;
            Invoice.ItemHeight_M  = 40;
            Invoice.BlankHeight_M = 0;
            return(true);
        }
Ejemplo n.º 5
0
 public IPrint PrintModeSelector(PrintTypes printType)
 {
     if (printType == PrintTypes.TextFile)
     {
         return(new PrintTextFile());
     }
     else if (printType == PrintTypes.PrintToFile)
     {
         return(new PrintToPaper());
     }
     return(null);
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Metodo de Renderização padrão
 /// </summary>
 /// <param name="e"></param>
 protected override void OnPaint(PaintEventArgs e)
 {
     base.OnPaint(e);
     PrintType = PrintTypes.Image;
     try
     {
         Print(e.Graphics);
     }
     catch (Exception ex)
     {
         e.Graphics.DrawString(ex.Message + "\r\n" + ex.StackTrace, new Font("Arial", 12), Brushes.Black, new RectangleF(0, 0, 640, 670));
     }
 }
Ejemplo n.º 7
0
        static void PrintXml(String filePath, PrintTypes printType)
        {
            String format = String.Empty;

            switch (printType)
            {
            case PrintTypes.PrintOriginal:
                format = "■ Original file:/n{0}";
                break;

            case PrintTypes.PrintEncrypt:
                format = "■ Encryptd file:/n{0}";
                break;

            case PrintTypes.PrintDecrypt:
                format = "■ Decrypted file:/n{0}";
                break;
            }
            XmlDocument doc = new XmlDocument();

            //doc.PreserveWhitespace = true;
            doc.Load(filePath);
            XmlWriterSettings xmlSetting = new XmlWriterSettings();

            xmlSetting.Indent      = true;
            xmlSetting.IndentChars = "/t";
            xmlSetting.Encoding    = Encoding.UTF8;

            MemoryStream stream = new MemoryStream();
            XmlWriter    writer = XmlWriter.Create(stream, xmlSetting);

            doc.Save(writer);
            doc.Save(filePath);
            // Reload the file and update the doc.InnerXml property.
            doc.PreserveWhitespace = true;
            doc.Load(filePath);

            Console.WriteLine(format, doc.InnerXml);
        }
Ejemplo n.º 8
0
 public PrintTypeAttribute(PrintTypes pt)
 {
     this.PrintType = pt;
 }
Ejemplo n.º 9
0
        private string ReplaceBaseInvoiceFields(Invoices invoice, string xmlMainXMLDoc, PrintTypes printType)
        {
            var order = invoice.Orders;

            if (printType == PrintTypes.InvoiceStorno)
            {
                xmlMainXMLDoc = xmlMainXMLDoc.Replace("#InvoiceType", "Gutschrift");
            }
            else
            {
                xmlMainXMLDoc = xmlMainXMLDoc.Replace("#InvoiceType", "Rechnung");
            }

            xmlMainXMLDoc = xmlMainXMLDoc.Replace("#InvoiceNumber", invoice.InvoiceNumber);
            xmlMainXMLDoc = xmlMainXMLDoc.Replace("#InvoiceDate", invoice.CreateDate.ToShortDateString());
            
            xmlMainXMLDoc = xmlMainXMLDoc.Replace("#OrderNumber", order.OrderNumber);

            xmlMainXMLDoc = ReplaceUstId(xmlMainXMLDoc, order);
            
            xmlMainXMLDoc = ReplaceFooterTexts(xmlMainXMLDoc, order, invoice);

            return xmlMainXMLDoc;
        }               
Ejemplo n.º 10
0
        private string ReplaceFields(IOrdersManager ordersManager, int id, PrintTypes printType, string xmlMainXMLDoc,
            IInvoicesManager invoicesManager, ITaxesManager taxesManager, Invoices invoice = null,
            IInvoiceStornosManager invoiceStornosManager = null,
            ITransportOrdersManager transportOrdersManager = null,
            ITermsManager termsManager = null, 
            IEnumerable<Image> images = null)
        {
            string result = xmlMainXMLDoc;

            switch (printType)
            {
                case PrintTypes.Order:
                    var order = ordersManager.GetById(id);
                    result = ReplaceCommonFields(order, result);
                    result = ReplaceBaseOrderFields(order, result);

                    result = result.Replace("#SignatureDate", order.CreateDate.AddDays(2).ToShortDateString());

                    result = ReplaceRentPositions(order, result, taxesManager);
                    result = ReplaceTotalPrice(order, result, taxesManager);
                    result = ReplaceRentAdditionalCostPositions(order, result);
                    break;
                case PrintTypes.Offer:
                    order = ordersManager.GetById(id);
                    result = ReplaceCommonFields(order, result);
                    result = ReplaceBaseOfferFields(order, result);
                    result = ReplaceBaseOrderFields(order, result);
                    result = ReplaceRentPositions(order, result, taxesManager);
                    result = ReplaceRentAdditionalCostPositions(order, result);
                    break;
                case PrintTypes.Invoice:

                    if (invoice == null)
                    {
                        invoice = invoicesManager.GetById(id);
                    }

                    order = invoice.Orders;

                    result = ReplaceCommonFields(order, result);
                    result = ReplaceBaseOrderFields(order, result);
                    result = ReplaceBaseInvoiceFields(invoice, result, printType);

                    bool manualPricePrinted = false;
                    result = ReplaceInvoicePositions(invoice, invoice.InvoicePositions.ToList(), result,
                        "#PositionDescription", "#PositionPrice", "Leistungen: ", ref manualPricePrinted);

                    result = ReplaceInvoicePrices(invoice, result);
                    break;
                case PrintTypes.InvoiceStorno:

                    var invoiceStorno = invoiceStornosManager.GetById(id);
                    invoice = invoiceStorno.Invoices;
                    order = invoice.Orders;

                    result = ReplaceCommonFields(order, result);
                    result = ReplaceBaseOrderFields(order, result);
                    result = ReplaceBaseInvoiceFields(invoice, result, printType);
                    result = ReplaceInvoiceStornoPrices(invoiceStorno, result);

                    result = ReplaceFieldValue(result, "#FreeText", invoiceStorno.FreeText);

                    break;
                case PrintTypes.ReminderMail:

                    invoice = invoicesManager.GetById(id);
                    order = invoice.Orders;

                    result = ReplaceCommonFields(order, result);
                    result = ReplaceReminderPositions(invoice.InvoicePositions.ToList(), result);
                    result = ReplaceReminderTotalPrice(invoice, result, taxesManager);

                    break;
                case PrintTypes.DeliveryNote:

                    var term = termsManager.GetById(id);
                    result = ReplaceCommonFields(term.Orders, result);
                    result = ReplaceBaseOrderFields(term.Orders, result);

                    result = result.Replace("#DeliveryNoteType", "Lieferschein");
                    result = result.Replace("#DateType", "Liefertermin");
                    result = result.Replace("#AdressType", "Lieferanschrift");
                    result = result.Replace("#OrderNumber", term.Orders.OrderNumber);
                    
                    result = ReplacePositionWithDescription(term, result);


                    if (term.DeliveryNoteSignatures.Count != 0)
                    {
                        var doc = XDocument.Parse(result);
                        var signatureElement = doc.Descendants().FirstOrDefault(o => o.Value.Equals("#Signature",
                            StringComparison.InvariantCultureIgnoreCase));

                        if (signatureElement != null && images != null && images.Count() != 0)
                        {
                            var currentElement = signatureElement;
                            for (var i = 0; i < images.Count(); i++)
                            {
                                var image = images.ElementAt(images.Count() - i - 1);
                                //TODO doesnt work ((
                                //pkg.CreateRelationship(uri, TargetMode.Internal,
                                //    "Http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
                                //    "barcodeImageId");
                                
                                //insert image
                                XmlElement tagDrawing = GetImageTag(image.Width, image.Height,
                                    term.DeliveryNoteSignatures.Count - i);

                                signatureElement.AddAfterSelf(XDocument.Parse(tagDrawing.InnerXml).Root);
                            }

                            signatureElement.Remove();
                            result = doc.Root.ToString();
                        }
                        else
                        {
                            result = result.Replace("#Signature", String.Empty);
                        }
                    }
                    else
                    {
                        result = result.Replace("#Signature", String.Empty);
                    }

                    break;
                default:
                    throw new NotImplementedException();
            }

            return result;
        }
Ejemplo n.º 11
0
        private MemoryStream PrepareCommonOrderPrintData(IOrdersManager ordersManager, int id, string path, PrintTypes type,
            IInvoicesManager invoicesManager, ITaxesManager taxesManager, IInvoiceStornosManager invoiceStornosManager = null,
            ITransportOrdersManager transportOrdersManager = null,
            ITermsManager termsManager = null)
        {
            var result = new MemoryStream();
            try
            {
                Package pkg;
                PackagePart part;
                XmlReader xmlReader;
                XDocument xmlMainXMLDoc;
                GetXmlDoc(path, result, out pkg, out part, out xmlReader, out xmlMainXMLDoc);


                var images = new List<Image>();

                if (type == PrintTypes.DeliveryNote)
                {
                    var term = termsManager.GetById(id);
                    for (var i = 0; i < term.DeliveryNoteSignatures.Count; i++)
                    {
                        var deliveryNoteSignature = term.DeliveryNoteSignatures.ElementAt(term.DeliveryNoteSignatures.Count - i - 1);
                        //TODO doesnt work ((
                        //pkg.CreateRelationship(uri, TargetMode.Internal,
                        //    "Http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
                        //    "barcodeImageId");


                        byte[] bytes = Convert.FromBase64String(deliveryNoteSignature.Signature.Replace("data:image/png;base64,", ""));

                        Image image;
                        using (MemoryStream ms = new MemoryStream(bytes))
                        {
                            image = Image.FromStream(ms);
                        }

                        images.Add(image);
                    }
                }

                //replace fields
                var templateBody = ReplaceFields(ordersManager, id, type, xmlMainXMLDoc.Root.ToString(),
                    invoicesManager, taxesManager, null, invoiceStornosManager, transportOrdersManager, termsManager, images);

                xmlMainXMLDoc = SaveDoc(result, pkg, part, xmlReader, xmlMainXMLDoc, templateBody);

                InsertImages(result, images);

                var doc = new Spire.Doc.Document();
                doc.LoadFromStream(result, Spire.Doc.FileFormat.Docx);
                doc.JPEGQuality = 100;

                result = new MemoryStream();
                doc.SaveToStream(result, Spire.Doc.FileFormat.PDF);
            }
            catch
            {
            }

            return result;
        }
Ejemplo n.º 12
0
 public MultithreadedPrimeFinder(PrintTypes printType, uint upperBound, uint batchSize = 1_000_000, byte maxBatches = 8) : this()