Tableau?
Manu
-
Manu -
Manu -
Bonjour à tous,
J'ai un petit problème que je vais tenter d'expliquer :
J'ai une table dans laquelle il y a un numéro de compte et un libellé pour ce compte. J'ai fais afficher dans un objet select tous les numéros de comptes afin que l'utilisateur puisse choisir: j'utilisais donc un Recordset contenant tous les numéros de compte et leur libellé et j'ai fais une boucle côté serveur (ASP) pour afficher tous les numéros de comptes. Maintenant, je me demande s'il serait possible de faire afficher le libellé en fonction du numéro de compte. J'ai donc pensé à stocker tout mon recordset dans un tableau mais je me heurte à plusieurs difficultés:
Le tableau que j'ai relève du VBScript, or je pense que l'outil dont j'ai besoin serait plutôt du JavaScript. Y aurait-il moyen de transformer un tableau VBScript en un tableau JavaScript?
En plus, je ne sais pas comment récupérer une valeur dans un tableau: plus clairement, j'ai un tableau à deux colonnes et n lignes, avec dans la première colonne le numéro de compte et dans la deuxième le libellé. Pour un compte donnée, comment fait on pour récupérer le libellé associé. Si vous avez des réponses à mes questions…
Je mets aussi le code, au cas où :
Fragment du HTML :
<%
' Ouverture de la connexion bd
Dim objCommand, objRS
Set objCommand = Server.CreateObject("ADODB.Command")
objCommand.ActiveConnection = strConnexion
objCommand.CommandType = adCmdStoredProc
objCommand.CommandText = "reqnumerocompte"
Set objRS = objCommand.Execute
Set objCommand = Nothing
'Je mets tout le recordset dans un tableau
Dim arrLibelle, intDerLigne, intDerColonne, intLigne
objRS.MoveFirst
arrLibelle = objRS.GetRows
intDerColonne = UBound(arrLibelle, 1) 'donne le nbr de colonnes en commençant à 0
intDerLigne = UBound(arrLibelle, 2) 'donne le nbr de lignes en commençant à 0
'fonction pour mettre les numéro de cptes dans la liste déroulante
Function listecompte()
objRS.MoveFirst
Do While not objRS.EOF
baspiece = baspiece & _
"<option value=" & objRS("NumeroCompte_com") & ">" & objRS("NumeroCompte_com") & "</option>"
objRS.MoveNext
Loop
baspiece = baspiece & "</select>"
End Function
Dim baspiece, intCompteur, intNumeroLigne, intCompteurJava
baspiece = "<table width=""70%"">" & _
"<tr>" & _
"<th width=""5%""> </th>" & _
"<th width=""20%"">Compte Débit</th>" & _
"<th width=""10%"">Activité</th>" & _
"<th width=""20%"">Compte Crédit</th>" & _
"<th width=""10%"">Activité</th>" & _
"<th width=""5%"">+/-</th>" & _
"</tr>"
intCompteur = 1
intNumeroLigne = 1
'On a besoin d une variable afin d'identifier les zones textes selon la notation javascript
Do While intCompteur <= 5
intCompteurJava = intNumeroLigne - 1
baspiece = baspiece & _
"<tr>" & _
"<td>" & intNumeroLigne & "</td>" & _
"<td>" & _
"<select name=CompteDebit size=1 tabindex=" & intCompteur+intValeur1 & " onchange=""libelle(lib);"">"
listecompte()
baspiece = baspiece & "</td>" 'et ça continue pour les 4 autres colonnes de mon tableau (Activité, compte crédit, activité et signe) que je ne mets pas pour pas surcharger
%>
Voilà voilà… après si j'arrive à passer le bon argument à ma fonction libelle, c'est du tout cuit, mais là, c'est pas encore gagné.
Voilà ma futur fonction libelle !
<script language=javascript>
function libelle(lib){
document.LibelleDebit.value = lib;
}
</script>
Merci d'avance et have a good day
M.
J'ai un petit problème que je vais tenter d'expliquer :
J'ai une table dans laquelle il y a un numéro de compte et un libellé pour ce compte. J'ai fais afficher dans un objet select tous les numéros de comptes afin que l'utilisateur puisse choisir: j'utilisais donc un Recordset contenant tous les numéros de compte et leur libellé et j'ai fais une boucle côté serveur (ASP) pour afficher tous les numéros de comptes. Maintenant, je me demande s'il serait possible de faire afficher le libellé en fonction du numéro de compte. J'ai donc pensé à stocker tout mon recordset dans un tableau mais je me heurte à plusieurs difficultés:
Le tableau que j'ai relève du VBScript, or je pense que l'outil dont j'ai besoin serait plutôt du JavaScript. Y aurait-il moyen de transformer un tableau VBScript en un tableau JavaScript?
En plus, je ne sais pas comment récupérer une valeur dans un tableau: plus clairement, j'ai un tableau à deux colonnes et n lignes, avec dans la première colonne le numéro de compte et dans la deuxième le libellé. Pour un compte donnée, comment fait on pour récupérer le libellé associé. Si vous avez des réponses à mes questions…
Je mets aussi le code, au cas où :
Fragment du HTML :
<%
' Ouverture de la connexion bd
Dim objCommand, objRS
Set objCommand = Server.CreateObject("ADODB.Command")
objCommand.ActiveConnection = strConnexion
objCommand.CommandType = adCmdStoredProc
objCommand.CommandText = "reqnumerocompte"
Set objRS = objCommand.Execute
Set objCommand = Nothing
'Je mets tout le recordset dans un tableau
Dim arrLibelle, intDerLigne, intDerColonne, intLigne
objRS.MoveFirst
arrLibelle = objRS.GetRows
intDerColonne = UBound(arrLibelle, 1) 'donne le nbr de colonnes en commençant à 0
intDerLigne = UBound(arrLibelle, 2) 'donne le nbr de lignes en commençant à 0
'fonction pour mettre les numéro de cptes dans la liste déroulante
Function listecompte()
objRS.MoveFirst
Do While not objRS.EOF
baspiece = baspiece & _
"<option value=" & objRS("NumeroCompte_com") & ">" & objRS("NumeroCompte_com") & "</option>"
objRS.MoveNext
Loop
baspiece = baspiece & "</select>"
End Function
Dim baspiece, intCompteur, intNumeroLigne, intCompteurJava
baspiece = "<table width=""70%"">" & _
"<tr>" & _
"<th width=""5%""> </th>" & _
"<th width=""20%"">Compte Débit</th>" & _
"<th width=""10%"">Activité</th>" & _
"<th width=""20%"">Compte Crédit</th>" & _
"<th width=""10%"">Activité</th>" & _
"<th width=""5%"">+/-</th>" & _
"</tr>"
intCompteur = 1
intNumeroLigne = 1
'On a besoin d une variable afin d'identifier les zones textes selon la notation javascript
Do While intCompteur <= 5
intCompteurJava = intNumeroLigne - 1
baspiece = baspiece & _
"<tr>" & _
"<td>" & intNumeroLigne & "</td>" & _
"<td>" & _
"<select name=CompteDebit size=1 tabindex=" & intCompteur+intValeur1 & " onchange=""libelle(lib);"">"
listecompte()
baspiece = baspiece & "</td>" 'et ça continue pour les 4 autres colonnes de mon tableau (Activité, compte crédit, activité et signe) que je ne mets pas pour pas surcharger
%>
Voilà voilà… après si j'arrive à passer le bon argument à ma fonction libelle, c'est du tout cuit, mais là, c'est pas encore gagné.
Voilà ma futur fonction libelle !
<script language=javascript>
function libelle(lib){
document.LibelleDebit.value = lib;
}
</script>
Merci d'avance et have a good day
M.
A voir également:
- Tableau?
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Imprimer un tableau excel - Guide
- Tableau croisé dynamique - Guide
1 réponse
Pour ceux que ça interesse, j'ai trouvé une solution: je fais générer un script javascript sur mesure par de l'asp, ce qui donne:
<head>
<%
' Ouverture de la connexion bd
Dim objCommand, objRS
Set objCommand = Server.CreateObject("ADODB.Command")
objCommand.ActiveConnection = strConnexion
objCommand.CommandType = adCmdStoredProc
objCommand.CommandText = "reqnumerocompte"
Set objRS = objCommand.Execute
Set objCommand = Nothing
objRS.MoveFirst
Dim script
script = "<script language=""JavaScript1.2"">" & _
"function libelle(compte, dc){" & _
"if (dc == ""CompteDebit"") {" & _
" switch (compte) {"
Do While not objRS.EOF
script = script & _
"case """ & objRS("NumeroCompte_com") & """: document.forIndic.LibelleDebit.value = """ & objRS("Libelle_com") & """; break; "
objRS.MoveNext
Loop
script = script & "default: break;" & _
"}" & _
"}" & _
"if (dc == ""CompteCredit"") {" & _
" switch (compte) {"
objRS.MoveFirst
Do While not objRS.EOF
script = script & _
"case """ & objRS("NumeroCompte_com") & """: document.forIndic.LibelleCredit.value = """ & objRS("Libelle_com") & """; break; "
objRS.MoveNext
Loop
script = script & "default: break;" & _
"}" & _
"}" & _
"}" & _
"</script>"
Response.Write script
objRS.MoveFirst
%>
</head>
Et voilà! ça me donne un script illisible dans ma page, mais le navigateur s'en débrouille!
<head>
<%
' Ouverture de la connexion bd
Dim objCommand, objRS
Set objCommand = Server.CreateObject("ADODB.Command")
objCommand.ActiveConnection = strConnexion
objCommand.CommandType = adCmdStoredProc
objCommand.CommandText = "reqnumerocompte"
Set objRS = objCommand.Execute
Set objCommand = Nothing
objRS.MoveFirst
Dim script
script = "<script language=""JavaScript1.2"">" & _
"function libelle(compte, dc){" & _
"if (dc == ""CompteDebit"") {" & _
" switch (compte) {"
Do While not objRS.EOF
script = script & _
"case """ & objRS("NumeroCompte_com") & """: document.forIndic.LibelleDebit.value = """ & objRS("Libelle_com") & """; break; "
objRS.MoveNext
Loop
script = script & "default: break;" & _
"}" & _
"}" & _
"if (dc == ""CompteCredit"") {" & _
" switch (compte) {"
objRS.MoveFirst
Do While not objRS.EOF
script = script & _
"case """ & objRS("NumeroCompte_com") & """: document.forIndic.LibelleCredit.value = """ & objRS("Libelle_com") & """; break; "
objRS.MoveNext
Loop
script = script & "default: break;" & _
"}" & _
"}" & _
"}" & _
"</script>"
Response.Write script
objRS.MoveFirst
%>
</head>
Et voilà! ça me donne un script illisible dans ma page, mais le navigateur s'en débrouille!