Des lignes de couleurs alternées dans Crystal Reports

Lorsque les rapports Crystal Reports consistent en une longue liste de lignes, chacune contenant plusieurs colonnes, la présentation sera plus aisée si l’on grise une ligne sur deux.

Pour ce faire, la solution est très simple :

  1. Section Expert de la section considérée (details ou footer de groupe)
  2. Onglet Color + Bouton x-2 (formule)
  3. Mettre le code
WhilePrintingRecords;
Global NumberVar NumLigne ;
if not {@HideRow} then
NumLigne := NumLigne +1 ;

if (NumLigne mod 2) = 0 then Color(225,225,225)
else crNoColor

Où HideRow est une formule booléenne déterminant si la ligne est affichée ou masquée (true par défaut et dans 99% des cas). On peut supprimer cette ligne de code si on veut.

Le contenu reste austère certes mais c’est tout de suite plus lisible !

Cerclo, kesako ?

Cerclo est le nom de la société que j’ai eu l’honneur et le bonheur de diriger avec mes ex-associés pendant 7 ans.

Pour faire simple, la société, vendant initalement des produits maison liés à la vidéo numérique alors naissante,  est devenue un portail francophone à la fréquentation très importante. Le chat de Cerclo comptait au début des années 2000 plusieurs centaines d’utilisateurs connectés simultanément.

Notre chat et nos forums étaient ouverts à tous, même sans inscription. Nous demandions juste aux Cerclonautes de respecter la Netiquette.  Et ça débattait dur dans les forums tandis que sur le chat on oscillait entre bonnes blagues et drague douce.

Les événements « Live-Chats », réunissant la communauté et un invité de prestige, ont permis à nos utilisateurs de dialoguer avec des interlocuteurs aussi variés qu’André Santini, Dorothée, Michaël Youn, et bien d’autres.


Il n’a pas l’air heureux d’être avec nous ?

Bref ce furent 7 années intenses avec à la clef beaucoup de joie, de rencontres et de déceptions, et l’expérience irremplaçable de la direction d’une PME avec une croissance à deux chiffres et une décroissance à trois.

A suivre…

Les heures de la journée en MySQL

Petite application pratique de notre article Compter jusqu’à 100 avec MySQL, afficher les heures de la journée au format heure :

select Concat( Lpad((Unites.Nombre + (Dizaines.Nombre-1)*10 -1), 2, 0), ':00') as Heure
from ( 
Select 1 as Nombre Union All Select 2 Union All Select 3 Union All Select 4 Union All Select 5 Union All Select 6 Union All Select 7 Union All Select 8 Union All Select 9 Union All Select 10
) As Unites
inner join (
Select 1 as Nombre Union All Select 2 Union All Select 3 Union All Select 4 Union All Select 5 Union All Select 6 Union All Select 7 Union All Select 8 Union All Select 9 Union All Select 10
) As Dizaines on 1=1
where (Unites.Nombre + (Dizaines.Nombre-1)*10 -1) <= 23

Ce qui nous donne

+-------+
| Heure |
+-------+
| 00:00 |
| 01:00 |
| 02:00 |
| 03:00 |
| 04:00 |
| 05:00 |
| 06:00 |
| 07:00 |
| 08:00 |
| 09:00 |
| 10:00 |
| 11:00 |
| 12:00 |
| 13:00 |
| 14:00 |
| 15:00 |
| 16:00 |
| 17:00 |
| 18:00 |
| 19:00 |
| 20:00 |
| 21:00 |
| 22:00 |
| 23:00 |
+-------+

Et hop ! Il n’y a plus qu’à comparer avec les heures d’une autre table.

 

Le jour où j’ai écrit le Pipotron

Tant que durera la baisse de confiance actuelle, il faut de toute urgence imaginer chacune des issues envisageables.

En novembre 1997, notre société FDBD commençait à se faire un nom dans l’alors petit monde de l’Internet francophone, en grande partie grâce à News+, une plate-forme web de forums ergonomique, loin des surcouches de Usenet qui existaient alors majoritairement.

Nous décidons alors de lancer un portail étudiant, Cybercampus. Nous étions encore proches du monde étudiant que nous avions quitté il y a peu et nous savions que le taux d’accès à Internet de cette population était très supérieur à la moyenne (moins de 2 millions d’abonnements alors, très majoritairement à bas débit).

Et bien évidemment nous avons embarqué notre régie publicitaire dans l’affaire. Il s’agissait de Régie On Line (ROL), filiale d’Imaginet qui était alors le géant français de l’Internet. Notre contact chez ROL est très enthousiaste et nous lui proposons une démonstration sous peu.

Mais voilà… Le temps passe et le site ne bouge pas d’un iota. Le logo et le canevas de page sont prêts depuis longtemps, Benoît étant passionné de Photoshop, mais l’activité d’une société naissante laisse peu de temps à ses créateurs et faire du contenu n’est pas forcément le fort des ingénieurs.
Enfin, une semaine avant la date de rendez-vous fixé chez la régie, nous nous décidons. Nous coupons les téléphones (fixes bien sûr, nous sommes en 1997) et nous nous attelons au site.

Les différentes rubriques sont réparties entre nous trois et nous nous mettons au travail. Eric a une technique très efficace (et qui fera ses preuves) de listes de liens thématiques dont les internautes étaient très friands à l’époque. Yahoo! existait à peine et Altavista avait une image technique qui rebutait les utilisateurs.
De mon côté je fais du rédactionnel pur et dur pour l’espace pratique : rédiger un CV, conseils pour le service militaire (il était sur la fin mais existait encore), etc…

Pour la partie qui me revient dans la section Loisirs , c’est un peu la page blanche.
Jusqu’à ce que je me souvienne avoir vu une matrice de mots pipeaux, issue de l’ENA selon la légende, et publiée quelques années plus tôt dans le Piston Information, le journal de l’école Centrale. Mélangée au principe des cadavres exquis, on arrive à un résultat assez sympathique.
Certains de nos anciens professeurs d’humanités à Centrale ont été alors une source d’inspiration insondable pour écrire les 8×10 bouts de phrases tirés de leurs longues lithanies.

Le langage javascript édité par Netscape était sorti peu avant. Souvenez-vous ; c’était en 1996 et le navigateur populaire de l’époque s’appelait Netscape 2.0. Et soudain les pages web statiques, grises et laides sont devenues dynamiques, et toujours grises et laides bien sûr.
On pouvait faire des contrôles sur les formulaires, économisant bande passante (notre ligne faisait 128 kbits/s) et ressources serveur (notre unique serveur était un Pentium 133, il fallait le ménager !), changer les images lorque la souris passait dessus (nous appelions cela l’effet David Bowie, le 1er site où nous l’avons vu à l’oeuvre devant nos yeux ébahis), et plein d’autres choses encore.

Et parmi ces autres choses, on pouvait surtout reconstituer les bouts de phrase du Pipotron.
La page était prête et depuis le Pipotron a eu un succès d’estime que je n’aurais pas imaginé.
En période de campagne électorale, le site fait parfois plus de 1 000 visites par jour !

Et n’oublions pas,
Vu la crise qui est la nôtre, il serait intéressant de se remémorer la somme des problématiques déjà en notre possession.

Visiter le pipotron

Compter jusqu’à 100 avec MySQL

Il est parfois utile de compter simplement pour ensuite faire une jointure sur cette liste.

Pour MySQL, il faut utiliser une méthode un peu brute et sans table temporaire.

select Unites.Nombre + (Dizaines.Nombre-1)*10 as Nombre
 from ( 
 Select 1 as Nombre Union All Select 2 Union All Select 3 Union All Select 4 Union All Select 5 Union All Select 6 Union All Select 7 Union All Select 8 Union All Select 9 Union All Select 10
 ) As Unites
 inner join (
 Select 1 as Nombre Union All Select 2 Union All Select 3 Union All Select 4 Union All Select 5 Union All Select 6 Union All Select 7 Union All Select 8 Union All Select 9 Union All Select 10
 ) As Dizaines on 1=1