creation et impression d un etat

cdsoftcdsoft Membre
décembre 2017 modifié dans Dev. iOS, watchOS, tvOS #1

bonjour,

 

est il possible de creer des models d etats qu imprimeraient les valeurs d une requette ou de parametres.

 

au fait je ne sais ni creer un etat en swift et encore moins lui passer des infos.

 

je viens d un environnement de dev totalement different qui est windev

 

merci

 


 


Modérateur: je déplace le sujet parce que cette question n'est pas en rapport avec Swift, mais avec Cocoa.


Réponses

  • Joanna CarterJoanna Carter Membre, Modérateur

    Qu'est-ce que tu veux dire en disant "etat" ?


  • un document comme une facture par exemple


    mais cela peut etre de toute autre nature


  • Joanna CarterJoanna Carter Membre, Modérateur

    Ah, tu parles d'un modèle.


     


    Mais ça existe également en WinDev avec l'UML ! Tu ne l'a jamais utilisé ?


     


    Et, en plus, en WinDev, tu as les base de données.


  • non


    je me suis mal fait comprendre, je parle d une impression avec un formatage des donnes (informations affichees et imprimees).


     


    effectivement cela existe sous windev voici un exemple. http://doc.pcsoft.fr/?1011023


     


    mais cela existe aussi sous delphi, c++....


  • Joanna CarterJoanna Carter Membre, Modérateur
    ça n'existe pas, ni en Cocoa, ni en UIKit.


    Il faut le "faire maison"
  • cdsoftcdsoft Membre
    décembre 2017 modifié #7

    c est a dire?


    il n est pas possible de formater un model via swift?


     


    comment procederiez vous pour creer un etat avec des valeurs dynamique svp.


     


    merci pour votre aide


  • Déjà  créé un .doc, ça risque d'être dur...


     


    PDF, c'est possible.


     


    Il faut définir ce que tu veux afficher, et comment l'afficher.


    Quelles sont les parties fixes, les parties variables, etc.


     


    NSAttributedString peut peut-être aider.


    Une page HTML peut peut-être aider...


  • je vais creuser ca


     


    merci


    a+


  • CéroceCéroce Membre, Modérateur

    Ce n'est pas particulièrement simple.


     


    Pour avoir un contrôle total de l'impression, on doit dessiner dans une UIView, ou un CGPDFContext.


    Peut-être que Text Kit peut aider, j'avoue mal connaà®tre.


     


    Générer du HTML et imprimer une WebView comme proposé par Larme serait sans doute plus facile.


  • merci a tous


  • DrakenDraken Membre
    décembre 2017 modifié #12


    non


    je me suis mal fait comprendre, je parle d une impression avec un formatage des donnes (informations affichees et imprimees).


     


    effectivement cela existe sous windev voici un exemple. http://doc.pcsoft.fr/?1011023


     


    mais cela existe aussi sous delphi, c++....




    a


    Non cela n'existe pas en Delphi, ni en C++. Tu confonds le langage et les frameworks associés, n'existant qu'avec une plate-forme. Par exemple Xcode peut compiler du code C++ (ou le pouvait à  une époque, je n'ai pas utilisé çà  depuis des années). Mais ne possède pas les frameworks spécifiques à  Windev.


     


    Tu peux aussi remarquer que Windev mobile iOS ne génère qu'un PDF, solution que t'avais déjà  proposé la fausse brune.


     


    Pour " formater " les données à  l'affichage on place des composants graphiques élémentaires sur l'écran (uilabels pour le texte et les chiffres, uiimageview pour les graphismes, etc..). Et on définit des liens (outlets) avec des variables pour que les composants graphiques sachent où piocher leurs données.


  • Joanna CarterJoanna Carter Membre, Modérateur

    Pour les rapports, j'utilise les méthodes comme UIGraphicsBeginPDFContextToFile pour créer les PDF - ce que l'on puisse afficher sur un écran, ou imprimer.


     


    Pour faire un rapport de deux pages, il m'a fallu à  peu près 1400 lignes de code, les données étant trouvés dans Core Data




  • Pour les rapports, j'utilise les méthodes comme UIGraphicsBeginPDFContextToFile pour créer les PDF - ce que l'on puisse afficher sur un écran, ou imprimer.


     


    Pour faire un rapport de deux pages, il m'a fallu à  peu près 1400 lignes de code, les données étant trouvés dans Core Data




    a


    1400 lignes ?  ???


     


    Personne n'a jamais pensé à  créer un framework pour faciliter la création de PDF ? Quelque chose de similaire à  l'utilisation d'une interface graphique, avec des composants à  " poser " sur la feuille blanche : bloc de textes formatés, images cadres, etc..

  • CéroceCéroce Membre, Modérateur


    a


    Personne n'a jamais pensé à  créer un framework pour faciliter la création de PDF ?




    Si.


    Par exemple https://pspdfkit.com


    Je ne sais pas combien ça coûte par contre.

  • Désolé un petit hors sujet rapide, vous parlez de pspdfkit qui est payant,


    il n'y aurait pas un Framework peut être moins poussé que pspdfkit mais qui serait gratuit.


    je souhaiterais générer des états dans le style de l'application Day One (qui utilise pspdfkit d'ailleurs)


    Merci.




  • Si.


    Par exemple https://pspdfkit.com


    Je ne sais pas combien ça coûte par contre.




    C'est toujours louche quand un site n'affiche pas le prix d'un produit, affichant juste un " contacter notre service commercial à  telle adresse mail pour négocier nos tarifs ".



  • a


    1400 lignes ?  ???


     


    Personne n'a jamais pensé à  créer un framework pour faciliter la création de PDF ? Quelque chose de similaire à  l'utilisation d'une interface graphique, avec des composants à  " poser " sur la feuille blanche : bloc de textes formatés, images cadres, etc..




    ça m'a l'air tellement complexe à  faire.


    Tous les cas, toutes les possibilités, toutes les envies diverses variées et loufoques sur lesquelles tu peux tomber...

  • CéroceCéroce Membre, Modérateur


    C'est toujours louche quand un site n'affiche pas le prix d'un produit, affichant juste un " contacter notre service commercial à  telle adresse mail pour négocier nos tarifs ".




    Je suis d'accord avec toi, ça semble une manière de faire d'une autre époque.


    Cela dit, PSPDFKit est une bibliothèque de grande qualité. Allez voir sur le blog, il y a régulièrement des articles intéressants.

  • Joanna CarterJoanna Carter Membre, Modérateur


    a


    1400 lignes ?  ???


     


    Personne n'a jamais pensé à  créer un framework pour faciliter la création de PDF ? Quelque chose de similaire à  l'utilisation d'une interface graphique, avec des composants à  " poser " sur la feuille blanche : bloc de textes formatés, images cadres, etc..




     


    Juste pour dire que, peut-être, il n'y a que 800 lignes ; j'ai l'habitude de séparer les lignes de code avec les lignes blanches pour les mieux lire.


     


    Voici un exemple du code requis ; c'est le code pour imprimer les en-têtes d'un tableau :



    - (NSAttributedString *)itemTitles
    {
    NSMutableParagraphStyle *paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];

    paragraphStyle.paragraphSpacing = 8.0;

    CGSize paperSize = [AFMAppPreferences sharedInstance].pdfPaperSize.dimensions;

    NSTextTab *firstTab = [[NSTextTab alloc] initWithTextAlignment:NSRightTextAlignment location:paperSize.width - 120.0f - 200.0f options:@{}];

    NSTextTab *secondTab = [[NSTextTab alloc] initWithTextAlignment:NSRightTextAlignment location:paperSize.width - 120.0f - 100.0f options:@{}];

    NSTextTab *thirdTab = [[NSTextTab alloc] initWithTextAlignment:NSRightTextAlignment location:paperSize.width - 120.0f options:@{}];

    paragraphStyle.tabStops = @[;firstTab, secondTab, thirdTab];

    NSDictionary *attributes = @{
    NSFontAttributeName : [UIFont fontWithName:@Menlo-Bold size:10.0],
    NSParagraphStyleAttributeName : paragraphStyle
    };

    NSString *weightUnitString = [[AFMAppPreferences sharedInstance].weightUnit.description lowercaseString];

    NSString *itemTitlesFormatString = @Item\tWeight(%@)\tArm(in)\tMoment(in-%@)\n";

    NSString *itemTitlesString = [NSString stringWithFormat:itemTitlesFormatString, weightUnitString, weightUnitString];

    return [[NSMutableAttributedString alloc] initWithString:itemTitlesString attributes:attributes];
    }
  • 800 lignes ?  ???


  • Joanna CarterJoanna Carter Membre, Modérateur
    décembre 2017 modifié #22


    800 lignes ?  ???




     


    Bah ouais ! C'est tout le formatage de texte pour les données, e.g.



    - (NSAttributedString *)aircraftLine
    {
    NSString *registration = self.aircraft.registration;

    NSString *serialNumber = self.aircraft.serialNumber;

    NSString *aircraftType = self.aircraft.aircraftType.description;

    NSString *aircraftFormatString = @%@ S/N %@ %@\n";

    NSString *aircraftString = [NSString stringWithFormat:aircraftFormatString, registration, serialNumber, aircraftType];

    NSDictionary *attributes = @{
    NSFontAttributeName : [UIFont fontWithName:@Menlo size:10.0],
    NSParagraphStyleAttributeName : [self standardParagraphStyle]
    };

    return [[NSAttributedString alloc] initWithString:aircraftString attributes:attributes];
    }

    - (NSAttributedString *)operatorLine
    {
    NSString *operatorFormatString = @Operated by : %@\n";

    NSString *operatorString = [NSString stringWithFormat:operatorFormatString, self.calculation.manifest.operator];

    NSMutableParagraphStyle *paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];

    paragraphStyle.paragraphSpacing = 12.0;

    NSDictionary *attributes = @{
    NSFontAttributeName : [UIFont fontWithName:@Menlo size:10.0],
    NSParagraphStyleAttributeName : paragraphStyle
    };

    return [[NSAttributedString alloc] initWithString:operatorString attributes:attributes];
    }

    ... juste pour formater deux lignes pour le description de l'avion et  son opérateur.


     


    Exemple de rapport :


     


  • C'etais une blague, nounours. Un comique de répétition ! Je sais bien que les attributs de formatage sont complexes à  définir.
  • Joanna CarterJoanna Carter Membre, Modérateur
    ;) j'eteindrai ton feu ;)
  • M'en fiche, je suis un dragon de glace .. 

Connectez-vous ou Inscrivez-vous pour répondre.