|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Inscription : avril 2003 Messages : 123 ![]() |
Slt,
Je suis nv sur le forum. Je débute en XMLRAD afin de compter des bananes ( et en plus c'est pas des conneries)! 1 / J'ai commencé mon premier projet par un onglet avec ma liste de client ; je clique sur un client et hop le second onglet 2 / Celui-ci présente toute la production (de bananes ), bateau par bateau ; je clique sur un bateau et hop mon troisième onglet 3 / Celui-ci présente le détail d'un bateau container par container. Là qd je suis sur le détail du bateau X, j'aimerais avec un bouton qui fasse un lien sur le bateau suivant X+1 et un autre sur le bateau X-1, sans à avoir à repasser par l'onglet n°2. Comme je suis sur l'onglet n°3, j'ai bien la valeur de X (générateur d'entiers sur 9 positions), mais celle de X-1 et X+1 sont dans le Dbextract de l'onglet N°2 et les valeurs du générateurs ne se suivent pas donc je ne peux pas faire : ListCTNR?NUMBATEAU={X+1} Existe-t'il un moyen de récupérer les valeurs d'un DbExtract d'un onglet précédent et de faire un next ou un previous ? Merci |
|
|
00
|
|
|
#2 | ||
|
Membre régulier
![]() Inscription : janvier 2003 Messages : 85 ![]() |
Salut,
J'ai une solution... Je ne sais pas trop si elle est optimisée mais bon Code :
__________________
Julien C. |
||
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Inscription : avril 2003 Messages : 123 ![]() |
Merci pour ces réponses, pour celle du previous et du next c'est un peu la sol à laquelle j'avais pensé mais étant novice, je ne savais pas trop si c'était le genre de voie à suivre.
Mais rassures-moi pour les query des Dbextract, est-ce à cela que tu penses : Ma table "bateau" comporte deux champs : Boat_ID mon générateur sur 9 positions ; Boat_Name le mon du bateau, un entier sur 7 positions du style AnneeSemaineInc, ainsi le bateau de cette semaine est le 2003151. Qry du previous : Select Min(Boat_ID) , Min(Boat_Name) From Bateau where Bateau.Boat_Name > :NUMBOAT Qry du next : Select Max(Boat_ID) , Max(Boat_Name) From Bateau where Bateau.Boat_Name < :NUMBOAT hein ? |
|
|
00
|
|
|
#4 |
|
Membre régulier
![]() Inscription : janvier 2003 Messages : 85 ![]() |
Ca me semble correct si tu dis que BOAT_NAME est un INTEGER, car tu effectues le WHERE avec ce champ là...
__________________
Julien C. |
|
|
00
|
|
|
#5 |
|
Membre à l'essai
![]() Inscription : avril 2003 Messages : 123 ![]() |
Et si mon champ est un Varchar, existe t'il une solution car si je teste sur l'ID, le précédent ou le suivant ne sont peut être pas ceux que je veux. C'est le cas des containers dont le numéro est de la Forme CGMU 488512/6 que je classe par ordre alpha ; si je veux le suivant je ne peux tester leur ID car l'ID dépend de l'ordre d'enregistrement comme c'est un générateur et les containers sont enregistrés au fur et à mesure qu'ils arrivent.
Merci ! |
|
|
00
|
|
|
#6 |
|
Membre à l'essai
![]() Inscription : avril 2003 Messages : 123 ![]() |
ça l'air de marcher aussi, j'ai testé mais je suis preuneur d'une meilleur sol si tu as !
|
|
|
00
|
|
|
#7 |
|
Membre régulier
![]() Inscription : janvier 2003 Messages : 85 ![]() |
Dans ce cas, je pense que ta solution est la bonne
__________________
Julien C. |
|
|
00
|
|
|
#8 |
|
Membre à l'essai
![]() Inscription : avril 2003 Messages : 123 ![]() |
En fait dans l'absolu, je peux avoir un bateau avec un Nom supérieur à un autre alors que pour leur ID ça soit l'inverse. En effet, le bateau 1 de la semaine 15 de l'année 2003 nommé 2003151 peut être créée après le bateau 2003152, aussi le qry suivant :
Select Max(Boat_ID) , Max(Boat_Name) From Bateau where Bateau.Boat_Name < 2003161 nous donne l'ID du 2003151 et le Boat_Name = 2003152 ! CQFD ... Aussi il faut faire un premier qry ds un dbextract pour récupérer le boat_name et un second pour avoir l'ID du boat_name MAIS allons plus loin ! J'ai fais des dbextract count avant le next et le prev afin de voir si il y a aviait des enreg, s'il en existe pas ds mon XSL je l'affiche pas de lien avec une close xsl:if ; ça marche c'est joli ! Mais comment cela se passe dans le Xlmgram ? en effet pour le next j'ai 3 Dbextract (count, min, boat_id) or si le count = 0 ça ne sert à rien de faire le reste, c'est ce que l'on fait dans le Xsl, mais les dbextract sont quand exécutés (enfin je suppose) ; comment l'éviter ? Existe t'il un moyen de faire le test ds le xmlgram ? En extrapolant, si on a 4 buttons (first, prev, next, last), on aura 12 dbextract qui s'exécuteront alors que 8 suffisent si on est positionné sur le premier enreg. Je suis sûr que tu as une sol ! Merci |
|
|
00
|
|
|
#9 | ||
|
Membre régulier
![]() Inscription : janvier 2003 Messages : 85 ![]() |
Il te faudra taper un tout petit peu de code pour cela... Tu dis que tu as 3 DBExtracts... Nommons les par exemple : GetCount, GetMin, puis GetBoatId. Tu veux que GetMin et GetBoatId soit éxécutés que si GetCount ne renvoie pas 0...
Pour cela, tu vas taper ces lignes de code au niveau de l'évènement BeforeXMLInstruction, et tu vas mettre : Code :
Voilà ! J'espère t'avoir aidé.
__________________
Julien C. |
||
|
|
00
|
|
|
#10 |
|
Membre à l'essai
![]() Inscription : avril 2003 Messages : 123 ![]() |
Thanks
|
|
|
00
|
|
|
#11 |
|
Membre à l'essai
![]() Inscription : avril 2003 Messages : 123 ![]() |
C'est koi ta synthaxe, du Jsript ou du VBscript ? J'ai essayé et à la compiler on me demande des "(" ou des ";"
Il y a pas un moyen de faire ça avec Delphi ? Si oui, comment ? Merci § |
|
|
00
|
|
|
#12 |
|
Membre éprouvé
![]() ![]() |
C'est du Delphi, cf opérateur d'affectation :=
Pour ouvrir le projet dans delphi, tu disposes d'un icône dédié dans l'environnement XMLRAD. Ensuite dans un datamodule XMLRAD, tu as des composants qui correspondent aux XMLServices. Mais tu peux faire la même chose en JScript ou VBScript en restant dans l'environnement XMLRAD ce qui t'éviterai de recompiler la dll (cas de delphi, il faut recompiler). Sylvain
__________________
.NET / ASP.NET MVC / Delphi / XMLRAD / XSL / Technos Web Mon Blog : http://blog.developpez.com/index.php?blog=89 Mes Articles : http://sjames.developpez.com/ Rubrique XMLRAD: http://xmlrad.developpez.com |
|
|
00
|
|
|
#13 |
|
Membre à l'essai
![]() Inscription : avril 2003 Messages : 123 ![]() |
Je me disais bien ke ce genre de code me disais kelke chose ! et j'avais pas vu l'icone ds le projet Xlmrad !
J'ai bien cliquer sur l'icone mais rien ne se passe. Alors j'ai ouvrais le projet Delphi (*.dpr) à partir du répertoire racine du projet. C'est bien une librairie avec des units mais les unités sont vides, il n'y a pas de composants dedans. Faut-il que je les ajoute à la mains où ils devraient être là déjà ? Je crois que lors d'une installation précédente de XmlRad sur une version 4 de Delphi j'avais un onglet "Xmlrad" dans la palette de composants. Cette fois-ci, il n'y a rien sauf peut être un onglet "XML" qui vient du paquet XMLCLX de e-delos. Me manque t'il kelke chose ? où le trouver ? Dernière kestion à la con : le Jscript c'est du code JavaScript ? Merci Voici le code de mon unité compta : unit COMPTA_unit; interface uses Windows, SysUtils, Classes, Forms, DAC, StdXMLC, StdXML_TLB, XMLApp, XMLModule, XMLComponent; type TCOMPTA = class(TXMLModule) private protected public end; var COMPTA: TCOMPTA; implementation {$R *.DFM} uses {$ifdef VER130} WebBroker, {$endif} {$ifdef VER140} WebBroker, {$endif} XMLUtils, XMLCursor; initialization XMLApplication.AddModuleClass(TCOMPTA); end. |
|
|
00
|
|
|
#14 |
|
Membre habitué
![]() Inscription : novembre 2002 Messages : 243 ![]() |
Si tu utilises la version 7RC2 ou 7RC3 de XMLRAD, tu dois avoir 5 composants dans la palette XML sous delphi. Il faut poser manuellement les composants sous delphi. Il n'y a pas d'interaction dans la mesure ou cela necessiterait une recompilation pour les prendre en compte. Hors, la dll livrée permet de travailler hors delphi, avec du scripting.
Enfin, oui JScript est du javascript |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com