[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[pmb.user] Re: Requêtes sur paniers
- To: <pmb.user@pizz.net>
- Subject: [pmb.user] Re: Requêtes sur paniers
- From: "Anne-Marie Cubat-Vandeputte" <amcubat@skynet.be>
- Date: Sat, 1 Apr 2006 15:45:11 +0200
- Delivered-To: "pizz.net:pmb.user"@ml.online.net
- Delivered-To: pizz.net-pmb.user@pizz.net
- References: <20060330134505.48786.qmail@web34104.mail.mud.yahoo.com>
- Reply-to: pmb.user@pizz.net
- Sender: pmb.user_owner@pizz.net
Bonjour,
Après la chouette parenthèse de jeudi à Bruxelles (la séance de formation -
et oui, il y a eu plusieurs moments de travail sérieux malgré les
apparences - la rencontre avec Eric et Florent, et la soirée au restaurant -
j'imagine que tous les lecteurs de la liste sont au courant ...), la petite
nuit de jeudi à vendredi et la dure journée de vendredi (dernier jour
d'école avant les vacances), revoici le moment de travailler - un peu .... -
n'exagérons pas.
Voici comment obtenir un inventaire des livres par statut (j'expliquerai
plus loin la raison de mon choix - par statut).
J'extrais les données suivantes et je prévois un titre pour les colonnes (as
Cote, as Auteur, as Titre ...)
- cote de rangement (e.expl_cote)
- code-barres (e.expl_cb)
- nom et prénom de l'auteur principal (a.author_name, a.author_rejete)
- titre (n.tit1)
- éditeur (p.ed_name)
- année de parution (n.year)
L'inventaire se présente en colonnes, chaque ligne correspond à un
exemplaire.
J'ai choisi un tri par cote de ranegment, titre et numéro de code-barres.
Si vous voulez réduire le nombre de colonnes et afficher moins d'éléments
(supprimer par exemple la cote de rangement), il vous suffit de supprimer
les références aux noms de champs repris ci-dessus entre parenthèses (par
exemples expl_cote)
Comme critère de sélection des notices à imprimer (livres à vendre), je vous
suggère de le faire sur base du statut.
Comme je l'expliquais dans mon mail précédent (3e partie, lien entre les
paniers et les états personnalisables), si vous voulez appliquer une requête
sql, un état personnalisable à l'ensemble des exemplaires contenus dans un
panier, il suffit d'employer le critère du statut.
Pourquoi une sélection par statut?
C'est la seule manière d'exécuter un état personnalisable à un ensemble
d'exemplaires qui n'ont a priori aucun autre point commun que (dans ce
cas-ci) le fait d'être à vendre.
C'est la même situation si vous décidez de réimprimer des étiquettes de
rangement pour 15 livres dont les étiquettes sont abîmées ou erronées,
Aucun critère "objectivable" ne permet à coup sûr d'identifier ces
exemplaires. On ne pourrait pas dire "codes-barres entre ... et ...", "cote
d'indexation = ...", "section = ..."
Donc, vous commencez par les mettre dans un panier. Ensuite, vous
changez globalement le statut des exemplaires de ce panier.
N'employez pas un statut "normal" de PMB, créez un autre statut, par
exemple "à vendre - sans étiquette", etc.
Après exécution de l'action personnalisable, il vous suffit de ramener
tous les exemplaires du panier à leur statut antérieur.
Dans le cas d'un inventaire de tous les exemplaires d'une section, il n'est
pas nécessaire de "transiter" par la constitution d'un panier et un
changement de statut.
La requête sql permet de dire qu'elle ne doit s'appliquer qu'aux exemplaires
contenus dans telle section ou telle section, compris entre tel et tel
numéro de code-barres. C'est un critère "objectivable".
C'est la raison pour laquelle je vous donne ci-dessous une 2e variante :
inventaire des livres - sélection par section.
J'ai mis sur le Wiki d'autres variantes d'inventaires et d'étiquette - avec
d'autres critères de sélection - à vous de voir si l'un d'entre eux peut
vous être utile.
Les 2 autres variantes proposées sont
- inventaire (ou étiquettes) des livres dont le code-barres est >=
..... et <= ....
fort utile pour imprimer les étiquettes des 30 derniers
livres encodés
- inventaire (ou étiquettes) des livres dont la cote de rangement
est >= ... et <= ....
cela pourrait vous permettre d'avoir des inventaires de
sous-sections, ex. >=810 et <=820
--> toute la littérature en anglais (anglais américain
ou britannique)
ou d'une seule cote
--> <=510 et <=510 vous donne tous les livres de
mathématiques, et seulement ceux-là.
sans devoir nécessairement créer toutes ces sous-sections.
Concrètement : liste des livres à vendre - comment y parvenir ?
Etapes à suivre
1) créer la requête sql "inventaire des livres" - voir code ci-dessous
(j'ai gardé le texte en continu pour la clarté)
dans administration - outils - états personnalisables
2) créer les procédures d'action dans les paniers (changer de statut,
de section, de localisation ..)
dans catalogue - panier - gestion des procédure
Si vous ne l'avez pas encore fait, récupérez sur le wiki les
procédures qui permettent de changer de statut, de section, de localisation
tous les exemplaires d'un panier - il vous faut en tout cas celle qui permet
de changer de statut
3) ajouter un type de statut à ceux déjà prédéfinis dans PMB (ex. en
cours d'import/saisie, document en bon état, consultation sur place ...)
dans administration - exemplaires - statut
Vous créez un nouveau statut (ex. à vendre)
4) mettre tous les exemplaires à vendre dans un panier que vous aurez
créé préalablement
dans catalogue - paniers - collecte
5) changer provisoirement le statut des exemplaires
dans catalogue - panier - actions - sélectionner le panier -
par requête - changer de statut
Vos exemplaires ont donc le statut "à vendre", et non plus
le statut "document en bon état"
6) exécuter l'action personnalisable - inventaire des livres
(si vous voulez la tester une 1e fois à l'écran, exécutez-la
dans l'onglet administration et non pas dans l'onglet éditions)
dans éditions - choisir l'action "inventaire des livres"
ensuite transférer le résultat (les infos extraites) vers
Excel afin de pouvoir éventuellement améliorer la mise en page, changer la
police de caractères ..
vous pouvez imprimer le tout en Excel ou transférer dans
Word
7) rechanger éventuellement le statut des exemplaires
Je dis "éventuellement", tout dépend de ce que vous voulez
Voulez-vous garder ces livres "à part", ou voulez-vous les
remettre dans le fonds propre avec le statut "document en bon état"?
Aussi longtemps que vous conservez le panier "à vendre",
vous pourrez de toute façon les identifier.
Si vous voulez les rechanger de statut, c'est la même chose
qu'au point 5 - mais dans l'autre sens
Bonne chance !
Anne-Marie Cubat
Ecole N.-D. de la Sagesse
Avenue Van Overbeke, 10
B-1083 Bruxelles
Belgique
Requêtes SQL
Inventaire des livres - sélection par statut
Code sql (attention si vous faites un copier-coller - effacer les ENTER dans
ce code, sinon il ne fonctionne pas)
SELECT e.expl_cote as Cote, e.expl_cb as Code_barres,
GROUP_CONCAT(REPEAT(CONCAT(a.author_name, ', ', a.author_rejete),
1/(r.responsability_type=0)) SEPARATOR ', ') as Auteur, n.tit1 as Titre,
p.ed_name as Editeur, n.year as Année FROM exemplaires e, notices n, authors
a, publishers p, responsability r WHERE e.expl_statut= !!param1!! and
e.expl_notice=n.notice_id and r.responsability_notice = n.notice_id AND
r.responsability_author = a.author_id and n.ed1_id = p.ed_id GROUP BY
e.expl_cb ORDER BY e.expl_cote, n.index_sew, e.expl_cb
Paramètres
Titre du paramètre : Statut
Mode de choix : sélection à partir d'un requête - obligatoire
Options (cocher liste multiple)
select idstatut,statut_libelle from docs_statut
N.B. Ne pas oublier de cliquer sur "enregistrer" avant de fermer la fenêtre
options
La requête "inventaire des livres par section" ressemble fort à la
précédente - les différences sont mineures
Inventaire des livres - sélection par section
Code sql (attention si vous faites un copier-coller - effacer les ENTER dans
ce code, sinon il ne fonctionne pas)
SELECT e.expl_cote as Cote, e.expl_cb as Code_barres,
GROUP_CONCAT(REPEAT(CONCAT(a.author_name, ', ', a.author_rejete),
1/(r.responsability_type=0)) SEPARATOR ', ') as Auteur, n.tit1 as Titre,
p.ed_name as Editeur, n.year as Année FROM exemplaires e, notices n, authors
a, publishers p, responsability r WHERE e.expl_section= !!param1!! and
e.expl_notice=n.notice_id and r.responsability_notice = n.notice_id AND
r.responsability_author = a.author_id and n.ed1_id = p.ed_id GROUP BY
e.expl_cb ORDER BY e.expl_cote, n.index_sew, e.expl_cb
Paramètres
Titre du paramètre : Section
Mode de choix : sélection à partir d'un requête - obligatoire
Options (cocher liste multiple)
select idsection, section_libelle from docs_section order by 2
N.B. Ne pas oublier de cliquer sur "enregistrer" avant de fermer la fenêtre
options
Je n'ai pas de champ personnalisable, je n'ai donc pas pu essayer chez moi
d'intégrer tout à fait votre requête à la mienne
SELECT notices_custom_small_text FROM notices_custom_values, notices_custom
WHERE notices_custom_champ=idchamp and (name='Vendeur' or
name='Adresse_vendeur' or name='Tel_vendeur' or name='Email_vendeur' or
name='Prix_achat')
Mais je suppose que si vous la scindez en 3 parties, et que vous intercalez
cela au bon endroit dans les parties SELECT - FROM et WHERE, cela devrait
fonctionner.
N.B. Employez d'abord les procédures telles quelles, supprimez
éventuellement un champ si vous n'en avez pas besoin. (ex. code-barres)
Vérifiez si tout est ok.
Si c'est le cas, essayez d'y intégrer votre champ personnalisable. Ne faites
pas le tout en une fois.
----- Original Message -----
From: "Gilles Clavel" <gilclavel@yahoo.com>
To: <pmb.user@pizz.net>
Sent: Thursday, March 30, 2006 3:45 PM
Subject: [pmb.user] Re: Requêtes sur paniers
Bonjour,
Merci pour vos réponses. Je suis heureux que ma
question ait permis de rendre service à d'autres
éventuellement.
Cependant, il demeure toujours et encore des zones
d'ombre.
En effet, lorsque j'évoque les différentes valeurs du
champ notices_custom_values_small_text, c'est pour la
raison suivante :
Notices_custom_values_small_text est le champ de la
table notices_custom_values qui contient la valeur
d'un champ personnalisable , soit :
Un champ personnalisable appelé 'Vendeur'. Pour sortir
la valeur de ce champ, il faut :
SELECT notices_custom_values_small_text FROM
notices_custom_values, notices_custom WHERE
notices_custom_champ=idchamp AND name='Vendeur'
Si je veux les valeurs des champs personnalisables
'Vendeur', 'Adresse_vendeur', 'Tel_vendeur',
'Email_vendeur', 'Prix_achat', je ferais :
SELECT notices_custom_small_text FROM
notices_custom_values, notices_custom WHERE
notices_custom_champ=idchamp and (name='Vendeur' or
name='Adresse_vendeur' or name='Tel_vendeur' or
name='Email_vendeur' or name='Prix_achat')
J'obtiens alors comme résultat une colonne
(notices_custom_small_text) avec les différentes
valeurs sorties dans les lignes. Jusqu'ici, tout va
bien.
Mais comme j'aimerais également faire apparaître, dans
mon inventaire, le titre, l'éditeur, l'auteur et
l'année d'édition, j'aimerais que toutes ces
informations apparaissent en ligne et non en colonne.
Ce qui m'intéresse, c'est de pouvoir appliquer cette
porcédure sur un panier contenant les notices des
livres à vendre.
Idem lorsque je fais un inventaire par section. J'ai
une procédure qui me met dans un panier les
exemplaires rattaché à une certaine section
(paramètre). Comment puis-je faire une procédure pour
afficher, de ce panier, seulement l'auteur, le titre,
l'éditeur et l'année d'édition ?
J'espère que je n'embête personne avec mes questions,
mais il est vrai que je ne trouve nullepart des pistes
pouvant m'aider (wiki ou autres sources).
Merci d'avance
Bonne journée
Gilles
___________________________________________________________________________
Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les tarifs
exceptionnels pour appeler la France et l'international.
Téléchargez sur http://fr.messenger.yahoo.com
Liste de diffusion pmb.user
Pour se désinscrire : mailto:pmb.user_request@sigb.net?subject=unsubscribe
Liste de diffusion pmb.user
Pour se désinscrire : mailto:pmb.user_request@sigb.net?subject=unsubscribe