示例#1
0
        public void CreateModel()
        {
            if (string.IsNullOrWhiteSpace(CurrentText))
            {
                DataHelpers.ShowMessage(_("Saisir nom template"));
                return;
            }


            ovExport = new PdfModelExport(type, CurrentText, Item, DataHelpers.GetTypesModule);
            ovExport.EditTemplate();
        }
示例#2
0
        private void GetModels()
        {
            var temp      = (Item as IDocument).DefaultTemplate;
            var ModelName = type.Name;

            if (DefaultTemplate)
            {
                // use default
                Model = ModelName;
                Create();
            }



            if (string.IsNullOrWhiteSpace(ModelName))
            {
                return;
            }

            var folder = $"templates/{ModelName }";

            if (!Directory.Exists(folder))
            {
                DataHelpers.ShowMessage(_("Modéle introuvable!, Créer nouveau"));
                PdfModelExport ov = new PdfModelExport(type, DataHelpers.GetTypesModule);
                ov.EditTemplate(ModelName);
                return;
            }

            var models = Directory.EnumerateFiles(folder);

            foreach (var item in models)
            {
                var file = Path.GetFileNameWithoutExtension(item);
                Models.Add(file);
            }
            //  Models = new HashSet<string>(models.Select();
            NotifyOfPropertyChange("Models");
        }
示例#3
0
        public void OpenModel()
        {
            if (string.IsNullOrWhiteSpace(Model))
            {
                DataHelpers.ShowMessage(_("Selectionner template!"));
                return;
            }

            ovExport = new PdfModelExport(type, Model, Item, DataHelpers.GetTypesModule);

            // Find related properties
            var ed    = (Item as IDocument);
            var props = ed.GetType().GetProperties();

            var liens = new List <ArrayList>();

            foreach (var item in props)
            {
                var lienAttrib = item.GetCustomAttribute(typeof(ColumnAttribute)) as ColumnAttribute;
                if (lienAttrib != null && lienAttrib.FieldType == ModelFieldType.Lien)
                {
                    var ChildClass = lienAttrib.Options;

                    try
                    {
                        Type type = DataHelpers.GetTypesModule.Resolve(ChildClass);
                        if (type == null)
                        {
                            continue;
                        }

                        // Type.GetType($"Ovresko.Generix.Core.Modules.{ChildClass}");
                        var typeProps = type.GetProperties();
                        foreach (var p in typeProps)
                        {
                            var hasDisplay = p.GetAttribute <DisplayNameAttribute>(false);
                            var used       = p.GetCustomAttribute(typeof(ColumnAttribute)) as ColumnAttribute;

                            if (used != null && used.FieldType != ModelFieldType.Separation &&
                                used.FieldType != ModelFieldType.Separation &&
                                used.FieldType != ModelFieldType.Button &&
                                used.FieldType != ModelFieldType.OpsButton &&
                                used.FieldType != ModelFieldType.OpsButton && used.FieldType != ModelFieldType.Table &&
                                used.FieldType != ModelFieldType.WeakTable &&
                                used.FieldType != ModelFieldType.BaseButton

                                && hasDisplay != null && !string.IsNullOrEmpty(hasDisplay.DisplayName))
                            {
                                liens.Add(new ArrayList {
                                    ChildClass, p, item
                                });                                               // Tier / atier / Tel /
                            }
                        }
                    }
                    catch (Exception s)
                    {
                        DataHelpers.ShowMessageError(s);
                    }
                }
            }

            ovExport.EditTemplate(liens);
        }
示例#4
0
        public string Create()
        {
            if (string.IsNullOrWhiteSpace(Model))
            {
                DataHelpers.ShowMessage(_("Choisir un modéle"));
                return("");
            }

            if (DefaultTemplate)
            {
                var module = (Item).MyModule();
                module.DefaultTemplateName = Model;
                if (Item.DefaultTemplate != module.DefaultTemplateName)
                {
                    //Item.DefaultTemplate = module.DefaultTemplateName;
                    //Item.Save();
                }

                module.Save();
            }


            if (!string.IsNullOrWhiteSpace(aType))
            {
                TYPE = aType;
            }

            ovExport           = new PdfModelExport(type, Model, Item, DataHelpers.GetTypesModule);
            ovExport.UseHeader = this.UseHeader;
            string file = "";

            if (TYPE == "PDF")
            {
                file = ovExport.GeneratePdf();
            }

            if (TYPE == "WORD")
            {
                file = ovExport.GenerateOffice();
            }


            if (!string.IsNullOrWhiteSpace(file) && open)
            {
                for (int i = 0; i < 10; i++)
                {
                    Thread.Sleep(500);
                    if (File.Exists(file))
                    {
                        try
                        {
                            Process.Start(file);
                        }
                        catch (Exception s)
                        {
                            DataHelpers.ShowMessage(s.Message);
                            throw;
                        }

                        break;
                    }
                }

                try { this.RequestClose(); } catch { }
            }

            return(file);
        }