Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
j'ai une table qui ressemble à ca (désolée pour la qualité de l'image) :
table
et je voudrais créer une datawindow qui ressemble à ca :
Est-ce que quelqu'un a une idée ?
Merci d'avance
Dernière modification par abdelta (08-08-2007 18:56:16)
Hors ligne
pourrais tu mettre un desc de la table ?
les crosstab ne marchent pas pour cela ?
Hors ligne
Ca peut marcher avec un crosstab en effet, je ne connaissais pas, je mets quoi en "rows", en "colums" et en "value" ?
J'aurais tendance à mettre Minerai et CDC en ligne, Date en colonne et quantité en valeur... ca a l'air d'être bon.
Merci
Hors ligne
abdelta a écrit:
Bonjour,
j'ai une table qui ressemble à ca (désolée pour la qualité de l'image) :
table
et je voudrais créer une datawindow qui ressemble à ca :
http://img407.imageshack.us/img407/4840/rsultatbt2.gif
Est-ce que quelqu'un a une idée ?
Merci d'avance
C'est marrant d'avoir stocké une date pour stocker le jour de la semaine. Pourquoi ne pas avoir utilisé un integer ?
Sinon, comme le dit JCZ (avant Thezerg cette fois) la crosstab est un solution avec code_minerai en ligne, DayNumber(date_prevision) en colonne et qte_potentiel en data.
Hors ligne
Chrnico a écrit:
C'est marrant d'avoir stocké une date pour stocker le jour de la semaine. Pourquoi ne pas avoir utilisé un integer ?
Tout simplement parce que je n'aurai pas qu'une semaine à mémoriser mais certainement plusieurs années...et il faut que je garde la trace de tous les enregistrements.
Dernière modification par abdelta (09-08-2007 07:59:16)
Hors ligne
abdelta a écrit:
Chrnico a écrit:
C'est marrant d'avoir stocké une date pour stocker le jour de la semaine. Pourquoi ne pas avoir utilisé un integer ?
Tout simplement parce que je n'aurai pas qu'une semaine à mémoriser mais certainement plusieurs années...et il faut que je garde la trace de tous les enregistrements.
Autant pour moi, je suis confu, c'est le xx/01/1900 qui m'a mis dedans, je pensais que tu ne gérais qu'un planning hebdo...
Du coup la crosstab n'est peut être pas la meilleur solution si tu dois afficher plusieurs semaines sur ton planning...
Hors ligne
si si
-> ajout d'une colonne dans le select en transformant la date en N° de semaine +année
-> ajout d'un groupe sur cette colonne
Hors ligne
Chrnico a écrit:
Du coup la crosstab n'est peut être pas la meilleur solution si tu dois afficher plusieurs semaines sur ton planning...
Le planning n'affiche qu'une semaine à la fois, mais la base en comprend beaucoup plus. Donc, avec des arguments de date de début et date de fin, j'arrive à afficher exactement la semaine que je veux.
Hors ligne
Par contre je n'arrive toujours pas à changer mes "xx/01/1900 00:00" en nom du jour.
Dans le champ Text de cette zone j'ai @date_prevision. J'ai essayé de remplacer par dayname(date_prevision) mais ca ne marche pas.
help me please !
Hors ligne
ajout d'un champs to_char('ta date', 'DAY')
exemple select to_char(SYSDATE, 'DAY') from dual
Hors ligne
JCZ a écrit:
ajout d'un champs to_char('ta date', 'DAY')
exemple select to_char(SYSDATE, 'DAY') from dual
tu peux être plus clair ? j'avoue que je ne comprends pas tout.
où est-ce que je rajoute un champ, et comment je fais pour que la date 01/01/1900 00:00 n'apparaisse plus ?
Hors ligne
Dans ton select à la place de ta colonne date_prevision
Dernière modification par JCZ (09-08-2007 09:15:15)
Hors ligne
ca me range les jours de la semaine par ordre alphabétique ...
Hors ligne
to_char('ta date', 'D') pour le tri ..
Dernière modification par JCZ (09-08-2007 09:36:10)
Hors ligne
du coup ca me mets 2, 3, 4, 5 et 6 au lieu de lundi, mardi, mercredi, jeudi et vendredi
Hors ligne
normal, utilise to_char('ta date', 'D') pour le tri et to_char('ta date', 'DAY') pour l'affichage
Hors ligne
rincevent merci ...
abdelta
Hors ligne
JCZ a écrit:
rincevent merci ...
abdelta
Je rentre de trois mois en angleterre où j'ai pas touché à PB, c'est dûr la reprise ...
Hors ligne
Encore une question, comment ca se fait que mes noms de jour sont en anglais ?
S'il y a quelque chose à modifier, devrais-je le modofier sur tous les postes qui utiliseront l'application ?
Hors ligne
abdelta a écrit:
Encore une question, comment ca se fait que mes noms de jour sont en anglais ?
Parce que ton client Oracle est configuré en anglais par défaut, et que si tu le bascule en français tu auras des p.t...s d'effets de bords
to_char('ta date', 'DAY', 'NLS_DATE_LANGUAGE=french')
abdelta a écrit:
S'il y a quelque chose à modifier, devrais-je le modifier sur tous les postes qui utiliseront l'application ?
Non
PS : just a shoot in the dark. Je suis passé à Sybase, et je ne peux pas tester mon code
Hors ligne
Remarque :
to_char('ta date', 'D') -> 1 = dimanche
Hors ligne
Bien vu JCZ. Le premier jour de la semaine n'est pas le même d'un coté à l'autre de l'atlantique.
Oracle s'adapte selon un paramêtre NLS_truc_muche à la con.
Hors ligne
bon, tant pis si vous me prenez pour un boulet , mais ca veut pas fonctionner !
j'ai codé ca :
SELECT "TABLE"."CODE_FOUR", "TABLE"."CODE_MINERAI", "TABLE"."COD_CDC", to_char("TABLE"."DATE_PREVISION", 'DAY', 'NLS_DATE_LANGUAGE=french'), "TABLE"."QTE_POTENTIELLE" FROM "TABLE" WHERE ( "TABLE"."DATE_PREVISION" >= :arg_date_deb ) AND ( "TABLE"."DATE_PREVISION" <= :arg_date_fin ) ORDER BY to_char("TABLE"."DATE_PREVISION",'D') ASC
j'ai essayé aussi de mettre ORDER BY "TABLE"."DATE_PREVISION" ASC
et ca m'affiche toujours les colonnes dans cet ordre : JEUDI, LUNDI, MARDI, MERCREDI, VENDREDI
qu'est-ce que j'ai fait de mal ?
Dernière modification par abdelta (09-08-2007 12:52:57)
Hors ligne
JCZ a écrit:
Remarque :
to_char('ta date', 'D') -> 1 = dimanche
Bon , ca c'est pas un gros problème, je ne vais que du lundi au vendredi (pour le moment en tout cas !) L'ordre des jours reste le même, lui en amérique, non ?
Hors ligne
peut-être en rajoutant le tri comme une colonne SQL et utilisant le Row, sort de PB sur cette colonne
SELECT "TABLE"."CODE_FOUR", "TABLE"."CODE_MINERAI", "TABLE"."COD_CDC", to_char("TABLE"."DATE_PREVISION", 'DAY', 'NLS_DATE_LANGUAGE=french'), "TABLE"."QTE_POTENTIELLE", to_char("TABLE"."DATE_PREVISION",'D') AS TRI FROM "TABLE" WHERE ( "TABLE"."DATE_PREVISION" >= :arg_date_deb ) AND ( "TABLE"."DATE_PREVISION" <= :arg_date_fin )
Hors ligne