sqlite (resolu)

Programmation d'applications complexes
nash
Messages : 42
Inscription : ven. 07/nov./2008 18:02

sqlite (resolu)

Message par nash »

y-a-il la possibilité avec sqlite de retrouver cette fonctionnalité très interessant (requete access) ? (ou de la contourner)

Set resh = CurrentDb.CreateQueryDef("tr1", "TRANSFORM Sum(Val(resultat.[" & x1 & "]))& '' SELECT resultat.[" & x2 & "], Count(resultat.[" & x1 & "])& '' AS 0nombre0, Sum(Val(resultat.[" & x1 & "])) & '' AS 0total0 FROM resultat WHERE (((resultat.[" & x1 & "]) is not null)) GROUP BY resultat.[" & x2 & "] PIVOT resultat.[" & x3 & "];")

(transform et pivot)


---------------------
Modérateur : Sujet déplacé de "astuces" à "applications", Le forum "Astuces" est réservé au partage des astuces trouvés par les membres. Merci. LSI
Dernière modification par nash le sam. 20/juin/2009 17:48, modifié 1 fois.
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

Re: sqlite

Message par Le psychopathe »

nash a écrit :y-a-il la possibilité avec sqlite de retrouver cette fonctionnalité très interessant (requete access) ? (ou de la contourner)

Set resh = CurrentDb.CreateQueryDef("tr1", "TRANSFORM Sum(Val(resultat.[" & x1 & "]))& '' SELECT resultat.[" & x2 & "], Count(resultat.[" & x1 & "])& '' AS 0nombre0, Sum(Val(resultat.[" & x1 & "])) & '' AS 0total0 FROM resultat WHERE (((resultat.[" & x1 & "]) is not null)) GROUP BY resultat.[" & x2 & "] PIVOT resultat.[" & x3 & "];")

(transform et pivot)


---------------------
Modérateur : Sujet déplacé de "astuces" à "applications", Le forum "Astuces" est réservé au partage des astuces trouvés par les membres. Merci. LSI
En mysql ... lis la doc
nash
Messages : 42
Inscription : ven. 07/nov./2008 18:02

Message par nash »

en sqlite! (je n'ai pas trouvé pour le moment trouvé de solution direct)
en creant une table temporaire intermediaire,je pense que c'est faisable
merçi
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

Message par Le psychopathe »

nash a écrit :en sqlite! (je n'ai pas trouvé pour le moment trouvé de solution direct)
en creant une table temporaire intermediaire,je pense que c'est faisable
merçi
Il me semble que le sqlite, c'est des requêtes mysql alors sachant que PB gère le mysql ...
A vérifier mes dires ;)
nash
Messages : 42
Inscription : ven. 07/nov./2008 18:02

Message par nash »

c'est fort possible
mais malheureusement cette requete ne tourne pas en sqlite
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

Message par Le psychopathe »

nash a écrit :c'est fort possible
mais malheureusement cette requete ne tourne pas en sqlite
Normal c'est du acces, apprends le sql ;)
nash
Messages : 42
Inscription : ven. 07/nov./2008 18:02

Message par nash »

access je connais et le sql aussi
merçi
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Message par gnozal »

Voici la liste des mots clés (SQL) supportés par SQLite : http://www.sqlite.org/lang.html (je vais encore me faire allumer, c'est en anglais :lol:).
Il n'y a pas de TRANSFORM ni PIVOT.
Il faut adapter les requêtes ; exemple : http://softwaresalariman.blogspot.com/2 ... mysql.html
Dernière modification par gnozal le ven. 05/juin/2009 16:10, modifié 1 fois.
nash
Messages : 42
Inscription : ven. 07/nov./2008 18:02

Message par nash »

merçi a gnozal, pour une reponse plus preçise
le lien fourni et interessant, je pense y trouver
une solution a mon problème, et la mettre a la disposition
de la communauté
nash
Messages : 42
Inscription : ven. 07/nov./2008 18:02

Message par nash »

la solution a mon probleme:
non terminé ( mais dans l'immediat ça tourne)
1)procedure pg2229v
creation d'une table intermediaire aprés creation
d'une requête avec ou sans jointures de table dans une listicon
avec analyse de données et de 1 à 3 ordonnés et une abscisse
our le moment avec un simple comptage et a l'avenir (je pense que
c'est réalisable, une somme par element en plus)

2)procedure pg2255b, realise le resultat statistique basé sur les données
(utilisation de combobox(5), listicon(1) et button(8))

_je base mes objets et procedures sur une definition pratiquement identique

_j'apurerais mon code plus tard, je n'ai actuellement pas trop temps disponible

3)question
je recherche une possibilité de redimensionner mon texte en largeur en fonction
la largeur d'un editor gadget
auriez vous une idée?

Procedure pg2229v();valide requete interro
ng=CountGadgetItems(#g2216)
While GetGadgetItemText(#g2231,-1,0)<>""
RemoveGadgetColumn(#g2231,0)
Wend
ClearGadgetItems(#g2231)
While GetGadgetItemText(#g2232,-1,0)<>""
RemoveGadgetColumn(#g2232,0)
Wend
ClearGadgetItems(#g2232)
For j=0 To ng-1
nj$=GetGadgetItemText(#g2216,j,0)
pr=FindString(nu$,nj$,1)
If pr=0:pt=pt+1:EndIf
nu$=nu$+nj$;boucle doublons table
Next
For i=0 To ng-1
nt$=GetGadgetItemText(#g2216,i,0)
ps=FindString(nn$,nt$,1):ns$=Trim(nt$);ps=recherche doublons table
If ps=0:nk$=nk$+nt$+", ":EndIf;nk$=nom table
nc$=GetGadgetItemText(#g2216,i,1)
OpenDatabase(0,"Base_nash.db","","")
DatabaseQuery(0,"select tb_interne.genre from tb_interne where tb_interne.nom='"+ns$+"' and

tb_interne.champs='"+nc$+"'")
While NextDatabaseRow(0)
td$=GetDatabaseString(0,0)
AddGadgetItem(#g2227,-1,nd$)
Wend
FinishDatabaseQuery(0)
CloseDatabase(0)
If td$<>"image" And td$<>"memo"
If i=0:nx$=ns$+"."+nc$:EndIf
nn$=nn$+nt$+"."+nc$+", ";select
ncc=ncc+1
If pt=1
AddGadgetColumn(#g2231,i,nc$,200)
AddGadgetColumn(#g2232,i,nc$,200)
nw$=nw$+nc$+", ";create
Else
AddGadgetColumn(#g2231,i,ns$+"."+nc$,200)
AddGadgetColumn(#g2232,i,ns$+"."+nc$,200)
nw$=nw$+ns$+"."+nc$+", ";create
EndIf
EndIf
hv$=hv$+nt$+Chr(59)+nc$+";";requete g2216
Next
nn=Len(nn$):nn$=Left(nn$,nn-2);select
nw=Len(nw$):nw$=Left(nw$,nw-2);create
nk=Len(nk$):nk$=Left(nk$,nk-2);from
nh=CountGadgetItems(#g22182)
If nh<>0
For i=0 To nh-1
na$=GetGadgetItemText(#g22182,i,0)
nb$=GetGadgetItemText(#g22182,i,1)
nhh$=nhh$+na$+"="+nb$+" and ";where jointure
pg$=pg$+na$+Chr(59)+nb$+";";requete where jointure
Next
nhh=Len(nhh$):nhh$=Left(nhh$,nhh-5);where
EndIf
a=GetGadgetState(#g2224a);unique
edsql$=GetGadgetText(#g2223):nm=Len(edsql$);where editor
edsql$=ReplaceString(edsql$," et "," and ")
edsql$=ReplaceString(edsql$," ou "," or ")
edsql$=ReplaceString(edsql$," sauf "," <> ")
edsql$=ReplaceString(edsql$," contient "," like ")
edsql$=ReplaceString(edsql$," ne like pas "," not like ")
If nh=0 And a=0 And nm=0
nsql$="select "+nn$+" from "+nk$+" order by "+nx$
csql$="create table stat as select "+nw$+" from "+nk$+"";distinct
ElseIf nh=0 And a=0 And nm<>0
nsql$="select "+nn$+" from "+nk$+" where "+edsql$+" order by "+nx$
csql$="create table stat as select "+nw$+" from "+nk$+" where "+edsql$;distinct
ElseIf nh=0 And a=1 And nm=0
nsql$="select "+nn$+" from "+nk$+" group by "+nn$+" order by "+nx$
csql$="create table stat as select distinct "+nw$+" from "+nk$;+" group by "+nw$;distinct
ElseIf nh=0 And a=1 And nm<>0
nsql$="select "+nn$+" from "+nk$+" where "+edsql$+" group by "+nn$+" order by "+nx$
csql$="create table stat as select distinct "+nw$+" from "+nk$+" where "+edsql$;+" group by

"+nw$;distinct
ElseIf nh=1 And a=0 And nm=0
nsql$="select "+nn$+" from "+nk$+" where "+nhh$+" order by "+nx$
csql$="create table stat as select "+nw$+" from "+nk$+" where "+nhh$;distinct
ElseIf nh=1 And a=0 And nm<>0
nsql$="select "+nn$+" from "+nk$+" where "+nhh$+" and "+edsql$+" order by "+nx$
csql$="create table stat as select "+nw$+" from "+nk$+" where "+nhh$+" and "+edsql$;distinct
ElseIf nh=1 And a=1 And nm=0
nsql$="select "+nn$+" from "+nk$+" where "+nhh$+" group by "+nn$+" order by "+nx$
csql$="create table stat as select distinct "+nw$+" from "+nk$+" where "+nhh$;+" group by

"+nw$;distinct
ElseIf nh=1 And a=1 And nm<>0
nsql$="Select "+nn$+" from "+nk$+" where "+nhh$+" and "+edsql$+" group by "+nn$+" order by

"+nx$
csql$="create table stat as select distinct "+nw$+" from "+nk$+" where "+nhh$+" and

"+edsql$;+" group by "+nw$;distinct
EndIf
SetGadgetText(#g2228b,edsql$)
SetGadgetText(#g2228c,hv$);g2216
SetGadgetText(#g2228d,pg$);g22182
SetGadgetText(#g2228e,Str(GetGadgetState(#g2224a)));g2224a
OpenDatabase(0,"Base_nash.db","","")
DatabaseUpdate(0,"drop table stat")
DatabaseUpdate(0,csql$)
DatabaseQuery(0,nsql$)
While NextDatabaseRow(0)
For i=0 To ncc-1;ng
nd$=GetDatabaseString(0,i)
nv$=nv$+nd$+Chr(10)
Next
AddGadgetItem(#g2231,-1,nv$)
nv$=""
Wend
FinishDatabaseQuery(0)
CloseDatabase(0)
For i=0 To ng-1
nt$=GetGadgetItemText(#g2216,i,0):ns$=Trim(nt$)
nc$=GetGadgetItemText(#g2216,i,1)
OpenDatabase(0,"Base_nash.db","","")
DatabaseQuery(0,"select tb_interne.type from tb_interne where tb_interne.nom='"+ns$+"' and

tb_interne.champs='"+nc$+"'")
While NextDatabaseRow(0)
td$=GetDatabaseString(0,0)
Wend
FinishDatabaseQuery(0)
CloseDatabase(0)
If td$<>"blob"
If nh=0 And a=0 And nm=0
psql$="select count("+ns$+"."+nc$+") from "+nk$+" where "+ns$+"."+nc$+"<>''"
ElseIf nh=0 And a=0 And nm<>0
psql$="select count("+ns$+"."+nc$+") from "+nk$+" where "+edsql$+" And "+ns$+"."+nc$+"<>''"
ElseIf nh=0 And a=1 And nm=0
psql$="select count("+ns$+"."+nc$+") from "+nk$+" where "+ns$+"."+nc$+"<>''"; group by

"+ns$+"."+nc$+""
ElseIf nh=0 And a=1 And nm<>0
psql$="select count("+ns$+"."+nc$+") from "+nk$+" where "+edsql$+" and "+ns$+"."+nc$+"<>''";

group by "+ns$+"."+nc$+""
ElseIf nh=1 And a=0 And nm=0
psql$="select count("+ns$+"."+nc$+") from "+nk$+" where "+nhh$+" and "+ns$+"."+nc$+"<>''"
ElseIf nh=1 And a=0 And nm<>0
psql$="select count("+ns$+"."+nc$+") from "+nk$+" where "+nhh$+" and "+edsql$+" and

"+ns$+"."+nc$+"<>''"
ElseIf nh=1 And a=1 And nm=0
psql$="select count("+ns$+"."+nc$+") from "+nk$+" where "+nhh$+" and "+ns$+"."+nc$+"<>''";

group by "+ns$+"."+nc$+""
ElseIf nh=1 And a=1 And nm<>0
psql$="Select count("+ns$+"."+nc$+") from "+nk$+" where "+nhh$+" and "+edsql$+" and

"+ns$+"."+nc$+"<>''"; group by "+ns$+"."+nc$+""
EndIf
OpenDatabase(0,"Base_nash.db","","")
DatabaseQuery(0,psql$)
While NextDatabaseRow(0)
tx$=GetDatabaseString(0,0)
Wend
FinishDatabaseQuery(0)
CloseDatabase(0)
ty$=ty$+tx$+Chr(10)
EndIf
Next
AddGadgetItem(#g2232,-1,ty$)
DisableGadget(#g2233,0):DisableGadget(#g2234,0)
;If ncc>2:DisableGadget(#g2235,0):Else:DisableGadget(#g2235,1):EndIf
SetGadgetState(#g2210,2)
EndProcedure


Procedure pg2255b();button valide stat
c2251$=GetGadgetText(#g2251);:c2251$=ReplaceString(c2251$,".","

.",#PB_String_NoCase,1);analyse
c2252a$=GetGadgetText(#g2252a);:c2252a$=ReplaceString(c2252a$,"

.",".",#PB_String_NoCase,1);ordonnée1
c2252b$=GetGadgetText(#g2252b);:c2252b$=ReplaceString(c2252b$,"

.",".",#PB_String_NoCase,1);ordonnée2
c2252c$=GetGadgetText(#g2252c);:c2252c$=ReplaceString(c2252c$,"

.",".",#PB_String_NoCase,1);ordonnée3
c2253$=GetGadgetText(#g2253);:c2253$=ReplaceString(c2253$,"

.",".",#PB_String_NoCase,1);abscisse
n=1
If c2252b$<>"":n=n+1:EndIf
If c2252c$<>"":n=n+1:EndIf
If c2253$<>"":m=m+1:EndIf
DisableGadget(#g2251,1):DisableGadget(#g2252a,1):DisableGadget(#g2252b,1):DisableGadget

(#g2252c,1):DisableGadget(#g2253,1)
Select n

Case 1
If m=0
OpenDatabase(0,"Base_nash.db","","")
DatabaseQuery(0,"select "+Chr(34)+c2252a$+Chr(34)+", count("+Chr(34)+c2252a$+Chr(34)+") from

stat group by "+Chr(34)+c2252a$+Chr(34)+" order by "+Chr(34)+c2252a$+Chr(34)+"")
DisableGadget(#g2258,0)
AddGadgetColumn(#g2258,0,c2252a$,120)
AddGadgetColumn(#g2258,1,"nombre",120)
While NextDatabaseRow(0)
nb$=GetDatabaseString(0,0)
nb=GetDatabaseLong(0,1)
nt=nt+nb
AddGadgetItem(#g2258,-1,nb$+Chr(10)+Str(nb))
Wend
AddGadgetItem(#g2258,-1,"total"+Chr(10)+Str(nt))
FinishDatabaseQuery(0)
CloseDatabase(0)
Else

OpenDatabase(0,"Base_nash.db","","")
DatabaseQuery(0,"select "+Chr(34)+c2252a$+Chr(34)+", count("+Chr(34)+c2252a$+Chr(34)+") from

stat group by "+Chr(34)+c2252a$+Chr(34)+" order by "+Chr(34)+c2252a$+Chr(34)+"")
DisableGadget(#g2258,0)
AddGadgetColumn(#g2258,0,c2252a$,120)
AddGadgetColumn(#g2258,1,"nombre",120)
While NextDatabaseRow(0)
nb$=GetDatabaseString(0,0)
nb=GetDatabaseLong(0,1)
nt=nt+nb
AddGadgetItem(#g2258,-1,nb$+Chr(10)+Str(nb))
Wend
AddGadgetItem(#g2258,-1,"total"+Chr(10)+Str(nt))
FinishDatabaseQuery(0)
CloseDatabase(0)
OpenDatabase(10,"Base_nash.db","","")
DatabaseQuery(10,"select ("+Chr(34)+c2253$+Chr(34)+") from stat group by "+Chr(34)+c2253

$+Chr(34)+"")
While NextDatabaseRow(10)
nu$=GetDatabaseString(10,0)
AddGadgetColumn(#g2258,a+2,nu$,120)
a=a+1
;OpenDatabase(11,"Base_nash.db","","")
;DatabaseQuery(11,"select count("+Chr(34)+c2253$+Chr(34)+") from stat where a voir group by

"+Chr(34)+c2253$+Chr(34)+"")

Wend
FinishDatabaseQuery(10)
CloseDatabase(10)
EndIf

Case 2
If m=0
OpenDatabase(0,"Base_nash.db","","")
DatabaseQuery(0,"select "+Chr(34)+c2252a$+Chr(34)+", count("+Chr(34)+c2252a$+Chr(34)+"),

"+Chr(34)+c2252b$+Chr(34)+", count("+Chr(34)+c2252b$+Chr(34)+") from stat group by "+Chr(34)

+c2252a$+Chr(34)+", "+Chr(34)+c2252b$+Chr(34)+" order by "+Chr(34)+c2252a$+Chr(34)+", "+Chr

(34)+c2252b$+Chr(34)+"")
DisableGadget(#g2258,0)
AddGadgetColumn(#g2258,0,c2252a$,120)
AddGadgetColumn(#g2258,1,"nombre",120)
AddGadgetColumn(#g2258,2,c2252b$,120)
AddGadgetColumn(#g2258,3,"nombre",120)
While NextDatabaseRow(0)
nb$=GetDatabaseString(0,0)
If nb$<>nba$
OpenDatabase(1,"Base_nash.db","","")
DatabaseQuery(1,"select count("+Chr(34)+c2252a$+Chr(34)+") from stat where "+Chr(34)

+c2252a$+Chr(34)+"='"+nb$+"' group by "+Chr(34)+c2252a$+Chr(34)+"")
While NextDatabaseRow(1)
nb=GetDatabaseLong(1,0)
Wend
FinishDatabaseQuery(1)
CloseDatabase(1)
Else
nb=0
EndIf
nc$=GetDatabaseString(0,2)
nc=GetDatabaseLong(0,3)
nt=nt+nb
ns=ns+nc
If nb=0
AddGadgetItem(#g2258,-1,nb$+Chr(10)+""+Chr(10)+nc$+Chr(10)+Str(nc))
Else
AddGadgetItem(#g2258,-1,nb$+Chr(10)+Str(nb)+Chr(10)+nc$+Chr(10)+Str(nc))
EndIf
nba$=nb$
Wend
AddGadgetItem(#g2258,-1,"total"+Chr(10)+Str(nt)+Chr(10)+"total"+Chr(10)+Str(ns))
FinishDatabaseQuery(0)
CloseDatabase(0)
Else
OpenDatabase(0,"Base_nash.db","","")
DatabaseQuery(0,"select "+Chr(34)+c2252a$+Chr(34)+", count("+Chr(34)+c2252a$+Chr(34)+"),

"+Chr(34)+c2252b$+Chr(34)+", count("+Chr(34)+c2252b$+Chr(34)+") from stat group by "+Chr(34)

+c2252a$+Chr(34)+", "+Chr(34)+c2252b$+Chr(34)+" order by "+Chr(34)+c2252a$+Chr(34)+", "+Chr

(34)+c2252b$+Chr(34)+"")
DisableGadget(#g2258,0)
AddGadgetColumn(#g2258,0,c2252a$,120)
AddGadgetColumn(#g2258,1,"nombre",120)
AddGadgetColumn(#g2258,2,c2252b$,120)
AddGadgetColumn(#g2258,3,"nombre",120)
While NextDatabaseRow(0)
nb$=GetDatabaseString(0,0)
If nb$<>nba$
OpenDatabase(1,"Base_nash.db","","")
DatabaseQuery(1,"select count("+Chr(34)+c2252a$+Chr(34)+") from stat where "+Chr(34)

+c2252a$+Chr(34)+"='"+nb$+"' group by "+Chr(34)+c2252a$+Chr(34)+"")
While NextDatabaseRow(1)
nb=GetDatabaseLong(1,0)
Wend
FinishDatabaseQuery(1)
CloseDatabase(1)
Else
nb=0
EndIf
nc$=GetDatabaseString(0,2)
nc=GetDatabaseLong(0,3)
nt=nt+nb
ns=ns+nc
If nb=0
AddGadgetItem(#g2258,-1,nb$+Chr(10)+""+Chr(10)+nc$+Chr(10)+Str(nc))
Else
AddGadgetItem(#g2258,-1,nb$+Chr(10)+Str(nb)+Chr(10)+nc$+Chr(10)+Str(nc))
EndIf
nba$=nb$
Wend
AddGadgetItem(#g2258,-1,"total"+Chr(10)+Str(nt)+Chr(10)+"total"+Chr(10)+Str(ns))
FinishDatabaseQuery(0)
CloseDatabase(0)
OpenDatabase(10,"Base_nash.db","","")
DatabaseQuery(10,"select ("+Chr(34)+c2253$+Chr(34)+") from stat group by "+Chr(34)+c2253

$+Chr(34)+"")
While NextDatabaseRow(10)
nu$=GetDatabaseString(10,0)
AddGadgetColumn(#g2258,a+4,nu$,120)
a=a+1
Wend
FinishDatabaseQuery(10)
CloseDatabase(10)
EndIf

Case 3
If m=0
OpenDatabase(0,"Base_nash.db","","")
DatabaseQuery(0,"select "+Chr(34)+c2252a$+Chr(34)+", count("+Chr(34)+c2252a$+Chr(34)+"),

"+Chr(34)+c2252b$+Chr(34)+", count("+Chr(34)+c2252b$+Chr(34)+"), "+Chr(34)+c2252c$+Chr(34)+",

count("+Chr(34)+c2252c$+Chr(34)+") from stat group by "+Chr(34)+c2252a$+Chr(34)+", "+Chr(34)

+c2252b$+Chr(34)+", "+Chr(34)+c2252c$+Chr(34)+" order by "+Chr(34)+c2252a$+Chr(34)+", "+Chr

(34)+c2252b$+Chr(34)+", "+Chr(34)+c2252c$+Chr(34)+"")
DisableGadget(#g2258,0)
AddGadgetColumn(#g2258,0,c2252a$,120)
AddGadgetColumn(#g2258,1,"nombre",120)
AddGadgetColumn(#g2258,2,c2252b$,120)
AddGadgetColumn(#g2258,3,"nombre",120)
AddGadgetColumn(#g2258,4,c2252c$,120)
AddGadgetColumn(#g2258,5,"nombre",120)
While NextDatabaseRow(0)
nb$=GetDatabaseString(0,0)
If nb$<>nba$
OpenDatabase(1,"Base_nash.db","","")
DatabaseQuery(1,"select count("+Chr(34)+c2252a$+Chr(34)+") from stat where "+Chr(34)

+c2252a$+Chr(34)+"='"+nb$+"' group by "+Chr(34)+c2252a$+Chr(34)+"")
While NextDatabaseRow(1)
nb=GetDatabaseLong(1,0)
Wend
FinishDatabaseQuery(1)
CloseDatabase(1)
Else
nb=0
EndIf
nc$=GetDatabaseString(0,2)
If nc$<>nca$
OpenDatabase(2,"Base_nash.db","","")
DatabaseQuery(2,"select count("+Chr(34)+c2252a$+Chr(34)+"), count("+Chr(34)+c2252b$+Chr(34)

+") from stat where "+Chr(34)+c2252a$+Chr(34)+"='"+nb$+"' and "+Chr(34)+c2252b$+Chr(34)

+"='"+nc$+"' group by "+Chr(34)+c2252a$+Chr(34)+", "+Chr(34)+c2252b$+Chr(34)+"")
While NextDatabaseRow(2)
nc=GetDatabaseLong(2,0)
Wend
FinishDatabaseQuery(2)
CloseDatabase(2)
Else
nc=0
EndIf
nd$=GetDatabaseString(0,4)
nd=GetDatabaseLong(0,5)
nt=nt+nb
ns=ns+nc
nr=nr+nd
If nb=0 And nc<>0
AddGadgetItem(#g2258,-1,nb$+Chr(10)+""+Chr(10)+nc$+Chr(10)+Str(nc)+Chr(10)+nd$+Chr(10)+Str

(nd))
ElseIf nb=0 And nc=0
AddGadgetItem(#g2258,-1,nb$+Chr(10)+""+Chr(10)+nc$+Chr(10)+""+Chr(10)+nd$+Chr(10)+Str(nd))
ElseIf nb<>0 And nc=0
AddGadgetItem(#g2258,-1,nb$+Chr(10)+Str(nb)+Chr(10)+nc$+Chr(10)+""+Chr(10)+nd$+Chr(10)+Str

(nd))
ElseIf nb<>0 And nc<>0
AddGadgetItem(#g2258,-1,nb$+Chr(10)+Str(nb)+Chr(10)+nc$+Chr(10)+Str(nc)+Chr(10)+nd$+Chr(10)

+Str(nd))
EndIf
nba$=nb$:nca$=nc$
Wend
AddGadgetItem(#g2258,-1,"total"+Chr(10)+Str(nt)+Chr(10)+"total"+Chr(10)+Str(ns)+Chr(10)

+"total"+Chr(10)+Str(nr))
FinishDatabaseQuery(0)
CloseDatabase(0)
Else
OpenDatabase(0,"Base_nash.db","","")
DatabaseQuery(0,"select "+Chr(34)+c2252a$+Chr(34)+", count("+Chr(34)+c2252a$+Chr(34)+"),

"+Chr(34)+c2252b$+Chr(34)+", count("+Chr(34)+c2252b$+Chr(34)+"), "+Chr(34)+c2252c$+Chr(34)+",

count("+Chr(34)+c2252c$+Chr(34)+") from stat group by "+Chr(34)+c2252a$+Chr(34)+", "+Chr(34)

+c2252b$+Chr(34)+", "+Chr(34)+c2252c$+Chr(34)+" order by "+Chr(34)+c2252a$+Chr(34)+"");,

"+Chr(34)+2252b$+Chr(34)+", "+Chr(34)+c2252c$+Chr(34)+"")
DisableGadget(#g2258,0)
AddGadgetColumn(#g2258,0,c2252a$,120)
AddGadgetColumn(#g2258,1,"nombre",120)
AddGadgetColumn(#g2258,2,c2252b$,120)
AddGadgetColumn(#g2258,3,"nombre",120)
AddGadgetColumn(#g2258,4,c2252c$,120)
AddGadgetColumn(#g2258,5,"nombre",120)
While NextDatabaseRow(0)
nb$=GetDatabaseString(0,0)
If nb$<>nba$
OpenDatabase(1,"Base_nash.db","","")
DatabaseQuery(1,"select count("+Chr(34)+c2252a$+Chr(34)+") from stat where "+Chr(34)

+c2252a$+Chr(34)+"='"+nb$+"' group by "+Chr(34)+c2252a$+Chr(34)+"")
While NextDatabaseRow(1)
nb=GetDatabaseLong(1,0)
Wend
FinishDatabaseQuery(1)
CloseDatabase(1)
Else
nb=0
EndIf
nc$=GetDatabaseString(0,2)
If nc$<>nca$
OpenDatabase(2,"Base_nash.db","","")
DatabaseQuery(2,"select count("+Chr(34)+c2252a$+Chr(34)+"), count("+Chr(34)+c2252b$+Chr(34)

+") from stat where "+Chr(34)+c2252a$+Chr(34)+"='"+nb$+"' and "+Chr(34)+c2252b$+Chr(34)

+"='"+nc$+"' group by "+Chr(34)+c2252a$+Chr(34)+", "+Chr(34)+c2252b$+Chr(34)+"")
While NextDatabaseRow(2)
nc=GetDatabaseLong(2,0)
Wend
FinishDatabaseQuery(2)
CloseDatabase(2)
Else
nc=0
EndIf
nd$=GetDatabaseString(0,4)
nd=GetDatabaseLong(0,5)
nt=nt+nb
ns=ns+nc
nr=nr+nd
If nb=0 And nc<>0
AddGadgetItem(#g2258,-1,nb$+Chr(10)+""+Chr(10)+nc$+Chr(10)+Str(nc)+Chr(10)+nd$+Chr(10)+Str

(nd))
ElseIf nb=0 And nc=0
AddGadgetItem(#g2258,-1,nb$+Chr(10)+""+Chr(10)+nc$+Chr(10)+""+Chr(10)+nd$+Chr(10)+Str(nd))
ElseIf nb<>0 And nc=0
AddGadgetItem(#g2258,-1,nb$+Chr(10)+Str(nb)+Chr(10)+nc$+Chr(10)+""+Chr(10)+nd$+Chr(10)+Str

(nd))
ElseIf nb<>0 And nc<>0
AddGadgetItem(#g2258,-1,nb$+Chr(10)+Str(nb)+Chr(10)+nc$+Chr(10)+Str(nc)+Chr(10)+nd$+Chr(10)

+Str(nd))
EndIf
nba$=nb$:nca$=nc$
Wend
AddGadgetItem(#g2258,-1,"total"+Chr(10)+Str(nt)+Chr(10)+"total"+Chr(10)+Str(ns)+Chr(10)

+"total"+Chr(10)+Str(nr))
FinishDatabaseQuery(0)
CloseDatabase(0)
OpenDatabase(10,"Base_nash.db","","")
DatabaseQuery(10,"select ("+Chr(34)+c2253$+Chr(34)+") from stat group by "+Chr(34)+c2253

$+Chr(34)+"")
While NextDatabaseRow(10)
nu$=GetDatabaseString(10,0)
AddGadgetColumn(#g2258,a+6,nu$,120)
a=a+1
Wend
FinishDatabaseQuery(10)
CloseDatabase(10)
EndIf
EndSelect
DisableGadget(#g2255b,1)
EndProcedure
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

Message par Le psychopathe »

j'ai mis les balises, car ton code est ilisible

3)question
je recherche une possibilité de redimensionner mon texte en largeur en fonction
la largeur d'un editor gadget
auriez vous une idée?

Je comprends pas ta question.

Code : Tout sélectionner

Procedure pg2229v();valide requete interro
ng=CountGadgetItems(#g2216)
While GetGadgetItemText(#g2231,-1,0)<>""
RemoveGadgetColumn(#g2231,0)
Wend
ClearGadgetItems(#g2231)
While GetGadgetItemText(#g2232,-1,0)<>""
RemoveGadgetColumn(#g2232,0)
Wend
ClearGadgetItems(#g2232)
For j=0 To ng-1
nj$=GetGadgetItemText(#g2216,j,0)
pr=FindString(nu$,nj$,1)
If pr=0:pt=pt+1:EndIf
nu$=nu$+nj$;boucle doublons table
Next
For i=0 To ng-1
nt$=GetGadgetItemText(#g2216,i,0)
ps=FindString(nn$,nt$,1):ns$=Trim(nt$);ps=recherche doublons table
If ps=0:nk$=nk$+nt$+", ":EndIf;nk$=nom table
nc$=GetGadgetItemText(#g2216,i,1)
OpenDatabase(0,"Base_nash.db","","")
DatabaseQuery(0,"select tb_interne.genre from tb_interne where tb_interne.nom='"+ns$+"' and 

tb_interne.champs='"+nc$+"'")
While NextDatabaseRow(0)
td$=GetDatabaseString(0,0)
AddGadgetItem(#g2227,-1,nd$)
Wend
FinishDatabaseQuery(0)
CloseDatabase(0)
If td$<>"image" And td$<>"memo"
If i=0:nx$=ns$+"."+nc$:EndIf
nn$=nn$+nt$+"."+nc$+", ";select
ncc=ncc+1
If pt=1
AddGadgetColumn(#g2231,i,nc$,200)
AddGadgetColumn(#g2232,i,nc$,200)
nw$=nw$+nc$+", ";create
Else
AddGadgetColumn(#g2231,i,ns$+"."+nc$,200)
AddGadgetColumn(#g2232,i,ns$+"."+nc$,200)
nw$=nw$+ns$+"."+nc$+", ";create
EndIf
EndIf
hv$=hv$+nt$+Chr(59)+nc$+";";requete g2216
Next
nn=Len(nn$):nn$=Left(nn$,nn-2);select
nw=Len(nw$):nw$=Left(nw$,nw-2);create
nk=Len(nk$):nk$=Left(nk$,nk-2);from
nh=CountGadgetItems(#g22182)
If nh<>0
For i=0 To nh-1
na$=GetGadgetItemText(#g22182,i,0)
nb$=GetGadgetItemText(#g22182,i,1)
nhh$=nhh$+na$+"="+nb$+" and ";where jointure
pg$=pg$+na$+Chr(59)+nb$+";";requete where jointure
Next
nhh=Len(nhh$):nhh$=Left(nhh$,nhh-5);where
EndIf
a=GetGadgetState(#g2224a);unique
edsql$=GetGadgetText(#g2223):nm=Len(edsql$);where editor
edsql$=ReplaceString(edsql$," et "," and ")
edsql$=ReplaceString(edsql$," ou "," or ")
edsql$=ReplaceString(edsql$," sauf "," <> ")
edsql$=ReplaceString(edsql$," contient "," like ")
edsql$=ReplaceString(edsql$," ne like pas "," not like ")
If nh=0 And a=0 And nm=0
nsql$="select "+nn$+" from "+nk$+" order by "+nx$
csql$="create table stat as select "+nw$+" from "+nk$+"";distinct
ElseIf nh=0 And a=0 And nm<>0
nsql$="select "+nn$+" from "+nk$+" where "+edsql$+" order by "+nx$
csql$="create table stat as select "+nw$+" from "+nk$+" where "+edsql$;distinct
ElseIf nh=0 And a=1 And nm=0
nsql$="select "+nn$+" from "+nk$+" group by "+nn$+" order by "+nx$
csql$="create table stat as select distinct "+nw$+" from "+nk$;+" group by "+nw$;distinct
ElseIf nh=0 And a=1 And nm<>0
nsql$="select "+nn$+" from "+nk$+" where "+edsql$+" group by "+nn$+" order by "+nx$
csql$="create table stat as select distinct "+nw$+" from "+nk$+" where "+edsql$;+" group by 

"+nw$;distinct
ElseIf nh=1 And a=0 And nm=0
nsql$="select "+nn$+" from "+nk$+" where "+nhh$+" order by "+nx$
csql$="create table stat as select "+nw$+" from "+nk$+" where "+nhh$;distinct
ElseIf nh=1 And a=0 And nm<>0
nsql$="select "+nn$+" from "+nk$+" where "+nhh$+" and "+edsql$+" order by "+nx$
csql$="create table stat as select "+nw$+" from "+nk$+" where "+nhh$+" and "+edsql$;distinct
ElseIf nh=1 And a=1 And nm=0
nsql$="select "+nn$+" from "+nk$+" where "+nhh$+" group by "+nn$+" order by "+nx$
csql$="create table stat as select distinct "+nw$+" from "+nk$+" where "+nhh$;+" group by 

"+nw$;distinct
ElseIf nh=1 And a=1 And nm<>0
nsql$="Select "+nn$+" from "+nk$+" where "+nhh$+" and "+edsql$+" group by "+nn$+" order by 

"+nx$
csql$="create table stat as select distinct "+nw$+" from "+nk$+" where "+nhh$+" and 

"+edsql$;+" group by "+nw$;distinct
EndIf
SetGadgetText(#g2228b,edsql$)
SetGadgetText(#g2228c,hv$);g2216
SetGadgetText(#g2228d,pg$);g22182
SetGadgetText(#g2228e,Str(GetGadgetState(#g2224a)));g2224a
OpenDatabase(0,"Base_nash.db","","")
DatabaseUpdate(0,"drop table stat")
DatabaseUpdate(0,csql$)
DatabaseQuery(0,nsql$)
While NextDatabaseRow(0)
For i=0 To ncc-1;ng
nd$=GetDatabaseString(0,i)
nv$=nv$+nd$+Chr(10)
Next
AddGadgetItem(#g2231,-1,nv$)
nv$=""
Wend
FinishDatabaseQuery(0)
CloseDatabase(0)
For i=0 To ng-1
nt$=GetGadgetItemText(#g2216,i,0):ns$=Trim(nt$)
nc$=GetGadgetItemText(#g2216,i,1)
OpenDatabase(0,"Base_nash.db","","")
DatabaseQuery(0,"select tb_interne.type from tb_interne where tb_interne.nom='"+ns$+"' and 

tb_interne.champs='"+nc$+"'")
While NextDatabaseRow(0)
td$=GetDatabaseString(0,0)
Wend
FinishDatabaseQuery(0)
CloseDatabase(0)
If td$<>"blob"
If nh=0 And a=0 And nm=0
psql$="select count("+ns$+"."+nc$+") from "+nk$+" where "+ns$+"."+nc$+"<>''"
ElseIf nh=0 And a=0 And nm<>0
psql$="select count("+ns$+"."+nc$+") from "+nk$+" where "+edsql$+" And "+ns$+"."+nc$+"<>''"
ElseIf nh=0 And a=1 And nm=0
psql$="select count("+ns$+"."+nc$+") from "+nk$+" where "+ns$+"."+nc$+"<>''"; group by 

"+ns$+"."+nc$+""
ElseIf nh=0 And a=1 And nm<>0
psql$="select count("+ns$+"."+nc$+") from "+nk$+" where "+edsql$+" and "+ns$+"."+nc$+"<>''"; 

group by "+ns$+"."+nc$+""
ElseIf nh=1 And a=0 And nm=0
psql$="select count("+ns$+"."+nc$+") from "+nk$+" where "+nhh$+" and "+ns$+"."+nc$+"<>''"
ElseIf nh=1 And a=0 And nm<>0
psql$="select count("+ns$+"."+nc$+") from "+nk$+" where "+nhh$+" and "+edsql$+" and 

"+ns$+"."+nc$+"<>''"
ElseIf nh=1 And a=1 And nm=0
psql$="select count("+ns$+"."+nc$+") from "+nk$+" where "+nhh$+" and "+ns$+"."+nc$+"<>''"; 

group by "+ns$+"."+nc$+""
ElseIf nh=1 And a=1 And nm<>0
psql$="Select count("+ns$+"."+nc$+") from "+nk$+" where "+nhh$+" and "+edsql$+" and 

"+ns$+"."+nc$+"<>''"; group by "+ns$+"."+nc$+""
EndIf
OpenDatabase(0,"Base_nash.db","","")
DatabaseQuery(0,psql$)
While NextDatabaseRow(0)
tx$=GetDatabaseString(0,0)
Wend
FinishDatabaseQuery(0)
CloseDatabase(0)
ty$=ty$+tx$+Chr(10)
EndIf
Next
AddGadgetItem(#g2232,-1,ty$)
DisableGadget(#g2233,0):DisableGadget(#g2234,0)
;If ncc>2:DisableGadget(#g2235,0):Else:DisableGadget(#g2235,1):EndIf
SetGadgetState(#g2210,2)
EndProcedure


Procedure pg2255b();button valide stat
c2251$=GetGadgetText(#g2251);:c2251$=ReplaceString(c2251$,"."," 

.",#PB_String_NoCase,1);analyse
c2252a$=GetGadgetText(#g2252a);:c2252a$=ReplaceString(c2252a$," 

.",".",#PB_String_NoCase,1);ordonnée1
c2252b$=GetGadgetText(#g2252b);:c2252b$=ReplaceString(c2252b$," 

.",".",#PB_String_NoCase,1);ordonnée2
c2252c$=GetGadgetText(#g2252c);:c2252c$=ReplaceString(c2252c$," 

.",".",#PB_String_NoCase,1);ordonnée3
c2253$=GetGadgetText(#g2253);:c2253$=ReplaceString(c2253$," 

.",".",#PB_String_NoCase,1);abscisse
n=1
If c2252b$<>"":n=n+1:EndIf
If c2252c$<>"":n=n+1:EndIf
If c2253$<>"":m=m+1:EndIf
DisableGadget(#g2251,1):DisableGadget(#g2252a,1):DisableGadget(#g2252b,1):DisableGadget

(#g2252c,1):DisableGadget(#g2253,1)
Select n

Case 1
If m=0
OpenDatabase(0,"Base_nash.db","","")
DatabaseQuery(0,"select "+Chr(34)+c2252a$+Chr(34)+", count("+Chr(34)+c2252a$+Chr(34)+") from 

stat group by "+Chr(34)+c2252a$+Chr(34)+" order by "+Chr(34)+c2252a$+Chr(34)+"")
DisableGadget(#g2258,0)
AddGadgetColumn(#g2258,0,c2252a$,120)
AddGadgetColumn(#g2258,1,"nombre",120)
While  NextDatabaseRow(0)
nb$=GetDatabaseString(0,0)
nb=GetDatabaseLong(0,1)
nt=nt+nb
AddGadgetItem(#g2258,-1,nb$+Chr(10)+Str(nb))
Wend
AddGadgetItem(#g2258,-1,"total"+Chr(10)+Str(nt))
FinishDatabaseQuery(0)
CloseDatabase(0)
Else

OpenDatabase(0,"Base_nash.db","","")
DatabaseQuery(0,"select "+Chr(34)+c2252a$+Chr(34)+", count("+Chr(34)+c2252a$+Chr(34)+") from 

stat group by "+Chr(34)+c2252a$+Chr(34)+" order by "+Chr(34)+c2252a$+Chr(34)+"")
DisableGadget(#g2258,0)
AddGadgetColumn(#g2258,0,c2252a$,120)
AddGadgetColumn(#g2258,1,"nombre",120)
While  NextDatabaseRow(0)
nb$=GetDatabaseString(0,0)
nb=GetDatabaseLong(0,1)
nt=nt+nb
AddGadgetItem(#g2258,-1,nb$+Chr(10)+Str(nb))
Wend
AddGadgetItem(#g2258,-1,"total"+Chr(10)+Str(nt))
FinishDatabaseQuery(0)
CloseDatabase(0)
OpenDatabase(10,"Base_nash.db","","")
DatabaseQuery(10,"select ("+Chr(34)+c2253$+Chr(34)+") from stat group by "+Chr(34)+c2253

$+Chr(34)+"")
While NextDatabaseRow(10)
nu$=GetDatabaseString(10,0)
AddGadgetColumn(#g2258,a+2,nu$,120)
a=a+1
;OpenDatabase(11,"Base_nash.db","","")
;DatabaseQuery(11,"select count("+Chr(34)+c2253$+Chr(34)+") from stat where  a voir group by 

"+Chr(34)+c2253$+Chr(34)+"")

Wend
FinishDatabaseQuery(10)
CloseDatabase(10)
EndIf

Case 2
If m=0
OpenDatabase(0,"Base_nash.db","","")
DatabaseQuery(0,"select "+Chr(34)+c2252a$+Chr(34)+", count("+Chr(34)+c2252a$+Chr(34)+"), 

"+Chr(34)+c2252b$+Chr(34)+", count("+Chr(34)+c2252b$+Chr(34)+") from stat group by "+Chr(34)

+c2252a$+Chr(34)+", "+Chr(34)+c2252b$+Chr(34)+" order by "+Chr(34)+c2252a$+Chr(34)+", "+Chr

(34)+c2252b$+Chr(34)+"")
DisableGadget(#g2258,0)
AddGadgetColumn(#g2258,0,c2252a$,120)
AddGadgetColumn(#g2258,1,"nombre",120)
AddGadgetColumn(#g2258,2,c2252b$,120)
AddGadgetColumn(#g2258,3,"nombre",120)
While  NextDatabaseRow(0)
nb$=GetDatabaseString(0,0)
If nb$<>nba$
OpenDatabase(1,"Base_nash.db","","")
DatabaseQuery(1,"select count("+Chr(34)+c2252a$+Chr(34)+") from stat where "+Chr(34)

+c2252a$+Chr(34)+"='"+nb$+"' group by "+Chr(34)+c2252a$+Chr(34)+"")
While NextDatabaseRow(1)
nb=GetDatabaseLong(1,0)
Wend
FinishDatabaseQuery(1)
CloseDatabase(1)
Else
nb=0
EndIf
nc$=GetDatabaseString(0,2)
nc=GetDatabaseLong(0,3)
nt=nt+nb
ns=ns+nc
If nb=0
AddGadgetItem(#g2258,-1,nb$+Chr(10)+""+Chr(10)+nc$+Chr(10)+Str(nc))
Else
AddGadgetItem(#g2258,-1,nb$+Chr(10)+Str(nb)+Chr(10)+nc$+Chr(10)+Str(nc))
EndIf
nba$=nb$
Wend
AddGadgetItem(#g2258,-1,"total"+Chr(10)+Str(nt)+Chr(10)+"total"+Chr(10)+Str(ns))
FinishDatabaseQuery(0)
CloseDatabase(0)
Else
OpenDatabase(0,"Base_nash.db","","")
DatabaseQuery(0,"select "+Chr(34)+c2252a$+Chr(34)+", count("+Chr(34)+c2252a$+Chr(34)+"), 

"+Chr(34)+c2252b$+Chr(34)+", count("+Chr(34)+c2252b$+Chr(34)+") from stat group by "+Chr(34)

+c2252a$+Chr(34)+", "+Chr(34)+c2252b$+Chr(34)+" order by "+Chr(34)+c2252a$+Chr(34)+", "+Chr

(34)+c2252b$+Chr(34)+"")
DisableGadget(#g2258,0)
AddGadgetColumn(#g2258,0,c2252a$,120)
AddGadgetColumn(#g2258,1,"nombre",120)
AddGadgetColumn(#g2258,2,c2252b$,120)
AddGadgetColumn(#g2258,3,"nombre",120)
While  NextDatabaseRow(0)
nb$=GetDatabaseString(0,0)
If nb$<>nba$
OpenDatabase(1,"Base_nash.db","","")
DatabaseQuery(1,"select count("+Chr(34)+c2252a$+Chr(34)+") from stat where "+Chr(34)

+c2252a$+Chr(34)+"='"+nb$+"' group by "+Chr(34)+c2252a$+Chr(34)+"")
While NextDatabaseRow(1)
nb=GetDatabaseLong(1,0)
Wend
FinishDatabaseQuery(1)
CloseDatabase(1)
Else
nb=0
EndIf
nc$=GetDatabaseString(0,2)
nc=GetDatabaseLong(0,3)
nt=nt+nb
ns=ns+nc
If nb=0
AddGadgetItem(#g2258,-1,nb$+Chr(10)+""+Chr(10)+nc$+Chr(10)+Str(nc))
Else
AddGadgetItem(#g2258,-1,nb$+Chr(10)+Str(nb)+Chr(10)+nc$+Chr(10)+Str(nc))
EndIf
nba$=nb$
Wend
AddGadgetItem(#g2258,-1,"total"+Chr(10)+Str(nt)+Chr(10)+"total"+Chr(10)+Str(ns))
FinishDatabaseQuery(0)
CloseDatabase(0)
OpenDatabase(10,"Base_nash.db","","")
DatabaseQuery(10,"select ("+Chr(34)+c2253$+Chr(34)+") from stat group by "+Chr(34)+c2253

$+Chr(34)+"")
While NextDatabaseRow(10)
nu$=GetDatabaseString(10,0)
AddGadgetColumn(#g2258,a+4,nu$,120)
a=a+1
Wend
FinishDatabaseQuery(10)
CloseDatabase(10)
EndIf

Case 3
If m=0
OpenDatabase(0,"Base_nash.db","","")
DatabaseQuery(0,"select "+Chr(34)+c2252a$+Chr(34)+", count("+Chr(34)+c2252a$+Chr(34)+"), 

"+Chr(34)+c2252b$+Chr(34)+", count("+Chr(34)+c2252b$+Chr(34)+"), "+Chr(34)+c2252c$+Chr(34)+", 

count("+Chr(34)+c2252c$+Chr(34)+") from stat group by "+Chr(34)+c2252a$+Chr(34)+", "+Chr(34)

+c2252b$+Chr(34)+", "+Chr(34)+c2252c$+Chr(34)+" order by "+Chr(34)+c2252a$+Chr(34)+", "+Chr

(34)+c2252b$+Chr(34)+", "+Chr(34)+c2252c$+Chr(34)+"")
DisableGadget(#g2258,0)
AddGadgetColumn(#g2258,0,c2252a$,120)
AddGadgetColumn(#g2258,1,"nombre",120)
AddGadgetColumn(#g2258,2,c2252b$,120)
AddGadgetColumn(#g2258,3,"nombre",120)
AddGadgetColumn(#g2258,4,c2252c$,120)
AddGadgetColumn(#g2258,5,"nombre",120)
While  NextDatabaseRow(0)
nb$=GetDatabaseString(0,0)
If nb$<>nba$
OpenDatabase(1,"Base_nash.db","","")
DatabaseQuery(1,"select count("+Chr(34)+c2252a$+Chr(34)+") from stat where "+Chr(34)

+c2252a$+Chr(34)+"='"+nb$+"' group by "+Chr(34)+c2252a$+Chr(34)+"")
While NextDatabaseRow(1)
nb=GetDatabaseLong(1,0)
Wend
FinishDatabaseQuery(1)
CloseDatabase(1)
Else
nb=0
EndIf
nc$=GetDatabaseString(0,2)
If nc$<>nca$
OpenDatabase(2,"Base_nash.db","","")
DatabaseQuery(2,"select count("+Chr(34)+c2252a$+Chr(34)+"), count("+Chr(34)+c2252b$+Chr(34)

+") from stat where "+Chr(34)+c2252a$+Chr(34)+"='"+nb$+"' and "+Chr(34)+c2252b$+Chr(34)

+"='"+nc$+"' group by "+Chr(34)+c2252a$+Chr(34)+", "+Chr(34)+c2252b$+Chr(34)+"")
While NextDatabaseRow(2)
nc=GetDatabaseLong(2,0)
Wend
FinishDatabaseQuery(2)
CloseDatabase(2)
Else
nc=0
EndIf
nd$=GetDatabaseString(0,4)
nd=GetDatabaseLong(0,5)
nt=nt+nb
ns=ns+nc
nr=nr+nd
If nb=0 And nc<>0
AddGadgetItem(#g2258,-1,nb$+Chr(10)+""+Chr(10)+nc$+Chr(10)+Str(nc)+Chr(10)+nd$+Chr(10)+Str

(nd))
ElseIf nb=0 And nc=0
AddGadgetItem(#g2258,-1,nb$+Chr(10)+""+Chr(10)+nc$+Chr(10)+""+Chr(10)+nd$+Chr(10)+Str(nd))
ElseIf nb<>0 And nc=0
AddGadgetItem(#g2258,-1,nb$+Chr(10)+Str(nb)+Chr(10)+nc$+Chr(10)+""+Chr(10)+nd$+Chr(10)+Str

(nd))
ElseIf nb<>0 And nc<>0
AddGadgetItem(#g2258,-1,nb$+Chr(10)+Str(nb)+Chr(10)+nc$+Chr(10)+Str(nc)+Chr(10)+nd$+Chr(10)

+Str(nd))
EndIf
nba$=nb$:nca$=nc$
Wend
AddGadgetItem(#g2258,-1,"total"+Chr(10)+Str(nt)+Chr(10)+"total"+Chr(10)+Str(ns)+Chr(10)

+"total"+Chr(10)+Str(nr))
FinishDatabaseQuery(0)
CloseDatabase(0)
Else
OpenDatabase(0,"Base_nash.db","","")
DatabaseQuery(0,"select "+Chr(34)+c2252a$+Chr(34)+", count("+Chr(34)+c2252a$+Chr(34)+"), 

"+Chr(34)+c2252b$+Chr(34)+", count("+Chr(34)+c2252b$+Chr(34)+"), "+Chr(34)+c2252c$+Chr(34)+", 

count("+Chr(34)+c2252c$+Chr(34)+") from stat group by "+Chr(34)+c2252a$+Chr(34)+", "+Chr(34)

+c2252b$+Chr(34)+", "+Chr(34)+c2252c$+Chr(34)+" order by "+Chr(34)+c2252a$+Chr(34)+"");, 

"+Chr(34)+2252b$+Chr(34)+", "+Chr(34)+c2252c$+Chr(34)+"")
DisableGadget(#g2258,0)
AddGadgetColumn(#g2258,0,c2252a$,120)
AddGadgetColumn(#g2258,1,"nombre",120)
AddGadgetColumn(#g2258,2,c2252b$,120)
AddGadgetColumn(#g2258,3,"nombre",120)
AddGadgetColumn(#g2258,4,c2252c$,120)
AddGadgetColumn(#g2258,5,"nombre",120)
While  NextDatabaseRow(0)
nb$=GetDatabaseString(0,0)
If nb$<>nba$
OpenDatabase(1,"Base_nash.db","","")
DatabaseQuery(1,"select count("+Chr(34)+c2252a$+Chr(34)+") from stat where "+Chr(34)

+c2252a$+Chr(34)+"='"+nb$+"' group by "+Chr(34)+c2252a$+Chr(34)+"")
While NextDatabaseRow(1)
nb=GetDatabaseLong(1,0)
Wend
FinishDatabaseQuery(1)
CloseDatabase(1)
Else
nb=0
EndIf
nc$=GetDatabaseString(0,2)
If nc$<>nca$
OpenDatabase(2,"Base_nash.db","","")
DatabaseQuery(2,"select count("+Chr(34)+c2252a$+Chr(34)+"), count("+Chr(34)+c2252b$+Chr(34)

+") from stat where "+Chr(34)+c2252a$+Chr(34)+"='"+nb$+"' and "+Chr(34)+c2252b$+Chr(34)

+"='"+nc$+"' group by "+Chr(34)+c2252a$+Chr(34)+", "+Chr(34)+c2252b$+Chr(34)+"")
While NextDatabaseRow(2)
nc=GetDatabaseLong(2,0)
Wend
FinishDatabaseQuery(2)
CloseDatabase(2)
Else
nc=0
EndIf
nd$=GetDatabaseString(0,4)
nd=GetDatabaseLong(0,5)
nt=nt+nb
ns=ns+nc
nr=nr+nd
If nb=0 And nc<>0
AddGadgetItem(#g2258,-1,nb$+Chr(10)+""+Chr(10)+nc$+Chr(10)+Str(nc)+Chr(10)+nd$+Chr(10)+Str

(nd))
ElseIf nb=0 And nc=0
AddGadgetItem(#g2258,-1,nb$+Chr(10)+""+Chr(10)+nc$+Chr(10)+""+Chr(10)+nd$+Chr(10)+Str(nd))
ElseIf nb<>0 And nc=0
AddGadgetItem(#g2258,-1,nb$+Chr(10)+Str(nb)+Chr(10)+nc$+Chr(10)+""+Chr(10)+nd$+Chr(10)+Str

(nd))
ElseIf nb<>0 And nc<>0
AddGadgetItem(#g2258,-1,nb$+Chr(10)+Str(nb)+Chr(10)+nc$+Chr(10)+Str(nc)+Chr(10)+nd$+Chr(10)

+Str(nd))
EndIf
nba$=nb$:nca$=nc$
Wend
AddGadgetItem(#g2258,-1,"total"+Chr(10)+Str(nt)+Chr(10)+"total"+Chr(10)+Str(ns)+Chr(10)

+"total"+Chr(10)+Str(nr))
FinishDatabaseQuery(0)
CloseDatabase(0)
OpenDatabase(10,"Base_nash.db","","")
DatabaseQuery(10,"select ("+Chr(34)+c2253$+Chr(34)+") from stat group by "+Chr(34)+c2253

$+Chr(34)+"")
While NextDatabaseRow(10)
nu$=GetDatabaseString(10,0)
AddGadgetColumn(#g2258,a+6,nu$,120)
a=a+1
Wend
FinishDatabaseQuery(10)
CloseDatabase(10)
EndIf
EndSelect
DisableGadget(#g2255b,1)
EndProcedure
nash
Messages : 42
Inscription : ven. 07/nov./2008 18:02

Message par nash »

1) merçi pour avoir mis en forme mon texte
2)dans la procedure 2255b:
remplacer nb=1 par nb<>0 (sinon la jointure ne peut comprendre qu'un maximun de deux tables au lieu de plusieurs tables)
remplacer If nc$<>nca$ par If nc$<>nca$ Or nb$<>nba$
_en fait des sous totaux sont calculés(je travaille encore sur les abscisses)
3)en fabriquant des requetes automatiques les chr() sont importants
on peut utiliser cette astuce (il en existe certainement d'autres, mais celle-là
marche trés bien:
btext$=ReplaceString(btext$," ",Chr(160),#PB_String_NoCase,1);espace ou chr(32)
btext$=ReplaceString(btext$,"'",Chr(180),#PB_String_NoCase,1);cote ou chr(39)
le nom de table et de colonne avec espace ne pose plus de problémes
de simples cotes(') suffisent pour le montage de requêtes
4)le dimensionnement automatique des gadgets et de la police utilisée en fonction de l'écran
n_bureau=ExamineDesktops()
ecran_height=DesktopHeight(0)
ecran_width=DesktopWidth(0)
coefficient_width.f=ecran_width/600
coefficient_height.f=ecran_height/300
If OpenWindow(#Nash,0,0,coefficient_width*600,coefficient_height*300,"",#PB_Window_BorderLess)
ffont = LoadFont(#PB_Any, "comic sans ms",8*coefficient_width);choix de l'utilisateur(parametres)police uniquement
SetWindowState(#Nash,#PB_Window_Minimize);preparation des gadgets,puis maximize(scintillement evité)
EditorGadget(#g2138,coefficient_width*280,coefficient_height*107,coefficient_width*250,coefficient_height*53)
SetGadgetFont(#g2138,FontID(ffont))
_d'autres methodes fonctionnent aussi (mais j'aime bien utiliser une methode que je comprends)
5) j'en viens maintenant à mon problème:
mon editor gadget change de taille avec la police en fonction de la taille écran de l'utilisateur
donc quand j'importe du texte formaté avec un editeur(et sans changer le texte original
un scrollbar horizontal apparait (taille plus reduite de l'editor que l'editeur)et le texte situé a droite, il faut aller le chercher
et ça c'est pas terrible pour l'utilisateur qui prefére un scrollbar vertical uniquement
pour lire le texte)
le problème vient des chr(10) et chr(13) (et plus peut-être)
je voudrais donc un retour à la ligne en fonction de la largeur de mon gadgeteditor de manière a ce que le texte sois lisible (sans scrollbar horizontal), mais conserver les chr(10)et(13) pour reenregistrer ailleurs le texte dans sa forme originale.
en fait des solutions existent mais lourdes a manipuler(string)
je suis donc preneur d'une solution
merçi
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

@nash

Ce que tu souhaites c'est activer le << WordWrap >>.

Ci dessous un exemple :

Code : Tout sélectionner

Macro EditorGadget_EnableWordWrap(gadget) 
  SendMessage_(GadgetID(gadget), #EM_SETTARGETDEVICE, 0, 0)
EndMacro

Macro EditorGadget_DisableWordWrap(gadget) 
  SendMessage_(GadgetID(gadget), #EM_SETTARGETDEVICE, 0, -1)
EndMacro

If OpenWindow(0, 50, 50, 100, 100, "test", #PB_Window_SystemMenu)
  
  EditorGadget(0, 0, 0, 106, 100)
  EditorGadget_EnableWordWrap(0) 
  
  SetGadgetText(0, "Exemple de WordWrap avec EditorGadget. Ce code utilise les API Win32 et n'est donc pas compatible Linux/MacOS mais ce devrait faire l'affaire.")
  
  Repeat
  Until WaitWindowEvent()=#PB_Event_CloseWindow
  
EndIf
Image
nash
Messages : 42
Inscription : ven. 07/nov./2008 18:02

Message par nash »

merçi flype
c'est exactement ce que je recherche
existe t-il une documentation sur les "wrap"ou un lien
ce sont des (fonctions)? que je ne connais pas
et qui sont interessantes
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Oui, sur MSDN :
http://msdn.microsoft.com/en-us/library/cc656557.aspx

PureBasic permet (en plus des fonctions de base) d'utiliser les couches système ou API (Win32 pour Windows, GTK pour Linux, etc...).

Va voir dans l'IDE PureBasic -> Menu -> Fichier -> Préférences -> Auto Complétion -> Éléments affichés -> Coche Fonctions API

La bible absolue des API Win32 c'est MSDN :
http://msdn.microsoft.com/en-us/library/aa139672.aspx
Image
Répondre