2009-08-16 13 views
0

Je Chaîne jetons séparés par $$ qui sont liste des données qui sont en outre séparés par une virgule (par exemple Peter Adams,255 Jhonson Street, NY,74322 $$ Mary Luther,54 Eglinton Ave.,Mississauga,ON L5A1W6)Chaîne d'affichage jetons

Je veux afficher ci-dessus en suivant façon

Name : Peter Adams 
Addr :255 Jhonson Street 
City : NY 
Pincode :74322 

Name : Mary Luther 
Addr :54 Eglinton Ave. 
City :Mississauga 
Pincode :ON L5A1W6 

en sortie BIRT

J'ai essayé en utilisant le code suivant

var myexp =/[$$]/; 
var match = myexp.exec(dataSetRow["SDR"]); 
if(match !=null) 
{ 
array=dataSetRow["SDR"].split("$$"); 
//dataSetRow["SDR"] ="x"; 
var string=null; 
for(var i=0; i<array.length; i++) 
{ 
string+=array[i]+"\n\n"; 

} 
dataSetRow["SDR"]=string.substring(4,string.length); 
} 
else 
{ 
dataSetRow["SDR"]=dataSetRow["SDR"]; 
} 

qui affichent des jetons de chaîne comme suit

Peter Adams,255 Jhonson Street, NY,74322 

Mary Luther,54 Eglinton Ave.,Mississauga,ON L5A1W6 

Quelqu'un peut-il donner quelques suggestions?

Répondre

0

Vous avez donc un "tableau" rempli de jetons. Bien! Faites une autre division par une virgule (array [index] .split (",")) dans un autre tableau (disons array1) et utilisez des éléments individuels de array1 pour afficher les valeurs au format souhaité.

0

Avez-vous envisagé d'utiliser un contrôle de texte plutôt que d'écraser réellement la liaison de données elle-même? À l'intérieur du contrôle de texte, vous pouvez faire tout votre mise en forme et obtenir la sortie en regardant comme vous le souhaitez tout en conservant l'intégrité de votre liaison de données intacte. Pour ce faire, faites simplement glisser un champ de texte sur votre table (plutôt que sur l'élément de données lui-même). Votre élément de texte aura accès aux données de chaque ligne à mesure que la table est construite. Configurez ensuite l'élément de texte pour la sortie HTML avec un type de "texte dynamique" (les deux sont définis via des listes déroulantes dans la boîte de dialogue Texte). Ajoutez-le ensuite comme expression pour générer l'élément de texte:

var myexp =/[$$]/; 
var match = myexp.exec(dataSetRow["SDR"]); 
var outString = ""; 

if(match != null) { 
    var splitResult = dataSetRow["SDR"].split(" $$ "); 
    for(i = 0; i < splitResult.length; i++){ 
     outString = outString + splitResult[i].replace(",", ":");   
    } 
} 
else 
    outString = dataSetRow["SDR"]; 

"Name: " + outString;