CoreData : créer une joint table avec remplissage "automatique" (many-to-many)

cargocargo Membre
mars 2006 modifié dans API AppKit #1
Bonjour,

Est-il possible avec Coredata de faire la chose suivante :

Soit une relation many-to-many avec une joint table (même si ce n'est pas indispensable cette joint table est utile dans mon appli).
ex: Departements>>Joint<<Employés où un employé peut être dans différents départements à  la fois (directeur marketing ET technicien de surface ;-)...)

Dans l'interface de Departements : soit des fields qui correspondent aux attributs de l'employé (âge sexe etc) et des fields qui correspondent aux attributs du departement (nom bâtiment etc).
Soit un search field qui recherche les employés dans la base employés en tapant leur id (donc les fields "employé" doivent être populés automatiquement si l'id match avec un record employé existant, ces fields sont donc logiquement? bindés au controlleur employés). Les fields "département" sont remplis à  la main.
Quand je clicke sur "Add" il faut que tous les fields "employés + département" constituent et créent un nouveau record dans la table Joint (qui pour chaque record associe un employé avec un département) et que les fields "département" créent un nouveau record dans la table Departement. La table employés reste inchangée dans l'histoire.

De plus après avoir fait le search sur employés et rapatrié un employé en particulier je souhaiterais modifier un de ses attributs avant de l'enregistrer dans le Joint. Par exemple cet employé a un salaire moyen dans la table employé, je le modifie pour lui mettre son salaire qui correspond au departement avec lequel je l'associe.

Est-ce que tout cela est possible uniquement en jouant avec les bindings dans IB ? Ou alors il faut se taper des kilomètres de code ?

Le but très simple de la manoeuvre est en fait de ne pas avoir à  ressaisir de l'info qui existe déjà  quelque part.

Réponses

  • cargocargo Membre
    07:36 modifié #2
    Personne ne répond... Ma question n'est pas claire ?  :why?:
  • cargocargo Membre
    07:36 modifié #3
    Bon j'ai pigé : oui c'est simple, les bindings+KVC+coredata c'est très puissant.
    Dans IB, ne pas oublier que l'on peux parcourir les relationships avec le Model Key Path pour aller chercher un attribut.
    Par exemple, dans une tableview Departement où l'on veux une colonne avec le nom du manager qui se remplisse automatiquement :
    Bind to : departement
    Controller Key : arrangedObjects
    Model Key Path : departement_to_manager_relationship.manager_name

    Si on ajoute une autre colonne avec menu déroulant qui permet de choisir parmi les manager_id : après sélection d'une id dans le menu, le manager_name est rapatrié fissa automatiquement dans sa colonne.

    Plus dur maintenant je veux faire (dans Departements tableview) un search field qui cherche un manager_id, un add qui ajoute ce manager_id à  la tableview et qui de ce fait remplit les autres colonnes de la tableview avec les autres attributs du manager.
    Je vous tiens au courant  8)...

    PS: je n'ai pas de leçons à  donner ici, je débute totalement mais si mes erreurs de navigation peuvent aider ceux qui, comme moi, rament sur un ocean de cocoa...
  • 07:36 modifié #4
    dans 1141297925:

    PS: je n'ai pas de leçons à  donner ici, je débute totalement mais si mes erreurs de navigation peuvent aider ceux qui, comme moi, rament sur un ocean de cocoa...


    C'est très apprécié que ceux qui trouvent solution à  leur problème l'indiquent sur le forum. Ne t'inquiète pas pour ça. Sans compter que c'est assez rare en fait.
Connectez-vous ou Inscrivez-vous pour répondre.