PROFESSIONAL NEWSGROUPS
WINDEV
,
WEBDEV
and
WINDEV Mobile
Home
|
Recent messages
|
Connect
|
Sign out
|
English
Home
→
WINDEV (earlier versions)
→
[WD28 ] RECHERCHE COMPLEXE DANS UN TABLEAU DE STRUCTURE
[WD28 ] RECHERCHE COMPLEXE DANS UN TABLEAU DE STRUCTURE
Started by Diamondsoftware, Feb., 22 2024 11:30 AM - 1 reply
Connect yourself…
Diamondsoftware
#1
Registered member
143 messages
Popularité : +6 (8 votes)
Posted on February, 22 2024 - 11:30 AM
Bonjour à tous.
Je seche sur un probleme de tableau.
Je fais une comparaison entre deux tables memoires contenant certaines informations communes.
Voila le code simplifie; j'ai enleve ce qui n'est pas necessaire a la comprehension.
J'ai un tableau dynamique de structure au format suivant:
AnalyticsRecordForCache est une Structure
DateEntry est une chaîne
Description est une chaîne
DocNumber est une chaîne
Value est un monétaire
Categorie1 est une chaîne
Categorie2 est une chaîne
FIN
Je rempli le tableau avec une boucle qui lit une table memoire, de ce coté la , pas de soucis, ce se rempli.
MyCacheOfAnalyticsRecords est un tableau AnalyticsRecordForCache dynamique
MyCacheOfAnalyticsOneRecord est un AnalyticsRecordForCache
ONeOperation est une Structure
IdREc est un entier sur 8 octets
Date est une chaîne
Description est une chaîne
IdRecAccountIn est un entier sur 8 octets
IdRecAccountOUT est un entier sur 8 octets
NameAccountIN est une chaîne
NameAccountOUT est une chaîne
CreditValueUSD est un monétaire
DebitValueUSD est un monétaire
DocNumber est une chaîne
FIN
OperationInuse est une ONeOperation
// remplissage du tableau a partir d'une table memoire
POUR i=1 À Localvar_nbLineTable
MyCacheOfAnalyticsOneRecord.Value=MYIMPORTScreen_TABLE_ENTRIESFORANALYTIC.COL_VALUE_USD[i]
MyCacheOfAnalyticsOneRecord.DateEntry=MYIMPORTScreen_TABLE_ENTRIESFORANALYTIC.COL_DATE[i]
MyCacheOfAnalyticsOneRecord.Description=MYIMPORTScreen_TABLE_ENTRIESFORANALYTIC.COL_DESCRIPTION[i]
MyCacheOfAnalyticsOneRecord.DocNumber=MYIMPORTScreen_TABLE_ENTRIESFORANALYTIC.COL_DOCNUMBER[i]
MyCacheOfAnalyticsOneRecord.Categorie1=MYIMPORTScreen_TABLE_ENTRIESFORANALYTIC.COL_CATEGORY1[i]
MyCacheOfAnalyticsOneRecord.Categorie2=MYIMPORTScreen_TABLE_ENTRIESFORANALYTIC.COL_CATEGORY2[i]
TableauAjoute(MyCacheOfAnalyticsRecords,MyCacheOfAnalyticsOneRecord)
FIN
// apres dans une autre boucle je fait une recherche dans le tableau a partir d'elements d'une autre table.
// A partir d'une autre table je fais une recherche de correspondance
Localvar_nbLineTable=TableOccurrence(MYIMPORTScreen_TABLE_ENTRIES)
POUR i=1 À Localvar_nbLineTable
OperationInuse.Date=MYIMPORTScreen_TABLE_ENTRIES.COL_DATE[i]
OperationInuse.Description=MYIMPORTScreen_TABLE_ENTRIES.COL_DESCRIPTION[i]
OperationInuse.IdREc=MYIMPORTScreen_TABLE_ENTRIES.COL_IDREC[i]
OperationInuse.IdRecAccountIn=MYIMPORTScreen_TABLE_ENTRIES.COL_IDREC_ACCOUNT_FROM[i]
OperationInuse.IdRecAccountOUT=MYIMPORTScreen_TABLE_ENTRIES.COL_IDREC_ACCOUNT_TO[i]
OperationInuse.NameAccountIN=MYIMPORTScreen_TABLE_ENTRIES.COL_ACCOUNT_FROM[i]
OperationInuse.NameAccountOUT=MYIMPORTScreen_TABLE_ENTRIES.COL_ACCOUNT_TO[i]
OperationInuse.CreditValueUSD=MYIMPORTScreen_TABLE_ENTRIES.COL_CREDIT_VALUE_USD[i]
OperationInuse.DebitValueUSD=MYIMPORTScreen_TABLE_ENTRIES.COL_DEBIT_VALUE_USD[i]
OperationInuse.DocNumber=MYIMPORTScreen_TABLE_ENTRIES.COL_DOCUMENTNR[i]
SI Abs(OperationInuse.CreditValueUSD)>0 ALORS
Localvar_ValeurUSD=Abs(OperationInuse.CreditValueUSD)
SINON
SI Abs(OperationInuse.DebitValueUSD)>0 ALORS
Localvar_ValeurUSD=Abs(OperationInuse.DebitValueUSD)
FIN
FIN
Localvar_LineNoINCache=TableauCherche(MyCacheOfAnalyticsRecords,tcLinéaire,"Value;DocNumber;Date;Description",Localva r_ValeurUSD,OperationInuse.DocNumber,OperationInuse.Date,OperationInuse.Description,1)
SI Localvar_LineNoINCache>0 ALORS
// Correspondance trouvee,
// TRAITEMENT...
stop
//
FIN
FIN
Mon probleme:
Le tableauCherche me donne toujours -1 , donc il ne trouve jamais, ce qui n'est pas possible au niveau des datas, puisque par une autre methode plus lente (usage de table memoire) ca marche , tres lent mais ca marche.
Merci d'avance pour vos reponses et aide.
Salutations
Stephane D.
--
Stephane Dujourdy
Softwares made on measure and computing advice since 1980
Softwares made on measure for Diamond and Luxe sector since 1999
info@diamondsoftware.net
http://www.diamondsoftware.net
Report
0
0
Diamondsoftware
#2
Registered member
143 messages
Popularité : +6 (8 votes)
Posted on February, 22 2024 - 12:02 PM
Petite correction grace a =JBO=
DateEnry a la place de Date dans les parametres de recherche
J'ai corrige dans le code, mais helas ca ne marche toujours pas.
S.
--
Stephane Dujourdy
Softwares made on measure and computing advice since 1980
Softwares made on measure for Diamond and Luxe sector since 1999
info@diamondsoftware.net
http://www.diamondsoftware.net
Report
0
0
→ Go back to WINDEV (earlier versions)
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (earlier versions)
WEBDEV (earlier versions)
WINDEV Mobile (earlier versions)
Reports & Queries
Off-topic
Tools
Français
English
Español
Portuguesa
Close this window
Search type
Only topics
All the messages
Search period
Any time
Past hour
Past 24 hours
Past week
Past month
Past year
Cancel
Preview of your message
Adding an image
Import an image from a URL
Send an image from a file of your disk
Drop a file or click "Browse..."
or
Cancel
0%
WLanguage
SQL
XML, HTML
JAVA, Javascript
Text