Sorry, there are no translations available at the moment.
Requêtes
Description
Dans ce tutoriel, nous allons améliorer l'interface usager de l'application en ajoutant la possibilité de faire une recherche de produit.
Solution de départ
La solution de départ est disponible ici
Démonstration
http://tjtechno.com/demo/query/Solution finale
Disponible iciExercices
Formulaire de clients
- Créer le formulaire "CustomerForm.cs". Le formulaire doit avoir les mêmes fonctionnalités que le formulaire de produits :
- Doit avoir une grille avec tous les clients
- Doit avoir un formulaire avec tous les champs du client courant
- Doit avoir un "Binding Navigator" pour se déplacer d'un client à l'autre
- Doit avoir la fonction de recherche qui permet de filter la grille en fonction du nom du client
- Doit permettre de supprimer un client et d'ajouter un client à partir des boutons du "Binding Navigator" ET à partir de la grille (bien entendu, si l'usager tente de supprimer un client associé à une commande, un message doit l'aviser qu'il est impossible de faire suite à sa requête)
- Ajouter l'item de menu qui permet d'ouvrir le formulaire "CustomerForm.cs" à partir du formulaire principal ("MainForm.cs")
Notes sur l'exercice
Fonction de création de l'objet "Customer"
#region Create Method
public static Customer Create(EntityManager manager, string companyName)
{
Customer anCustomer = manager.CreateEntity<Customer>();
anCustomer.CompanyName = companyName;
anCustomer.CustomerID = Guid.NewGuid();
anCustomer.EntityAspect.AddToManager();
return anCustomer;
}
public static Customer Create(EntityManager manager)
{
return Customer.Create(manager, "[COMPANY]");
}
#endregion Create Method
Requête avec OU (pour chercher dans plusieurs champs)
private void LoadData(bool pRefresh)
{
var _searchKeyword = _filterTextBox.Text;
IEntityQuery<Customer> query;
if (string.IsNullOrEmpty(_searchKeyword))
{
query = _manager.Customers;
}
else
{
// a ?? b : if a is null, returns b, otherwise returns a
query = _manager.Customers.Where(p =>
(p.CompanyName ?? "").Contains(_searchKeyword)
||
(p.ContactName ?? "").Contains(_searchKeyword)
||
(p.ContactTitle ?? "").Contains(_searchKeyword)
||
(p.City ?? "").Contains(_searchKeyword)
||
(p.Country ?? "").Contains(_searchKeyword)
||
(p.Region ?? "").Contains(_searchKeyword)
||
(p.Phone ?? "").Contains(_searchKeyword)
||
(p.Fax ?? "").Contains(_searchKeyword)
)
;
}
if (pRefresh)
{
query.QueryStrategy =
new QueryStrategy
(FetchStrategy.DataSourceOnly,
MergeStrategy.PreserveChanges);
}
_customers.ReplaceRange(query);
}
Solution finale - réponse à l'exercice
Disponible iciLiens
GUID
http://fr.wikipedia.org/wiki/Globally_Unique_Identifier