Boîte de dialogue contextuelle sélectionnant le nom de la colonne<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Bonjour, j'essaie de créer un script dans lequel l'utilisateur saisit le nom de la colonne dans la boîte de dialogue contextuelle et le script.
1. sous-ensembles les lignes avec des données sous le nom de la colonne et
2. crée une nouvelle colonne qui exécute une formule simple avec le nom de colonne saisi.
Je ne sais pas comment faire, j'ai donc codé en dur le nom de la colonne ci-dessous. Comment puis-je remplacer le :XX01 de telle sorte que peu importe ce que l'utilisateur entre dans la boîte de dialogue contextuelle, cela fonctionnera. J'ai les colonnes XX01, XX02, XX03, et ainsi de suite...
popup = Boîte de dialogue (
Titre( "Tableau récapitulatif" ),
" ",
" Entrez dans Softbin XX :",
Programmation( 6,
"ID Softbin",
Soft_Bin = numéro d'édition (01)
),
Bouton( "Ok" ),
Bouton( "Annuler")
);
masterdt << sélectionner où (est manquant (: XX01));
masterdt << Inverser la sélection de ligne ;
sbdt = masterdt << Sous-ensemble (( Lignes sélectionnées ), Nom de la table de sortie ("Données Softbin sélectionnées"));
sbdt << Nouvelle colonne( "Bin%", Numérique, Continu, Format("Pourcentage",12,2), Formule( :XX01 / :LOT_SORTED_DIES ) );
Re : Boîte de dialogue contextuelle sélectionnant le nom de la colonneC'est vrai, vous êtes MS. Merci pour la correction.
Re : Boîte de dialogue contextuelle sélectionnant le nom de la colonneMerci MS! Ça marche maintenant 
Re : Boîte de dialogue contextuelle sélectionnant le nom de la colonneJe pense que l'expression fonctionnera si elle est analysée avant d'être évaluée :
Évaluer ( Analyser ( expression_formule ) );
Re : Boîte de dialogue contextuelle sélectionnant le nom de la colonneMerci PMroz, la fenêtre est effectivement utile. Tout est fluide, à l'exception de la partie Nouvelle colonne.
Je ne suis pas sûr de ce que j'ai mal fait, mais la phrase d'insertion eval ne fonctionne toujours pas bien que l'expression dans le journal me semble correcte 
masterdt = Nouvelle table ( "Master DT", Ajouter des lignes ( 5 ),
Nouvelle colonne( "XX01", Numérique, Continu, Format( "Meilleur", 12 ),
Définir les valeurs ([1, 2, ., 3, 4])
),
Nouvelle colonne( "XX02", Numérique, Continu, Format( "Meilleur", 12 ),
Définir les valeurs ([., 1, 2, ., .] )
),
Nouvelle colonne( "XX03", Numérique, Continu, Format( "Meilleur", 12 ),
Définir les valeurs ([., ., 1, 2, 3])
),
Nouvelle colonne( "LOT_SORTED_DIES", Numérique, Continue, Format( "Meilleur", 12 ),
Définir les valeurs ([10, 10, 10, 20, 30])
)
);
popup = Nouvelle fenêtre( "Tableau récapitulatif", <
Zone de texte ("Entrez Softbin XX :"),
Zone de liste H (
Zone de texte( "ID Softbin : " ),
Soft_Bin = Zone d'édition de numéro (01),
),
hlistbox(
Boîte à boutons ("Ok",
ok_flag = 1 ;
ncol = soft_bin << obtenir ;
si (ncol < 9,
col_sélectionné = "XX0" || char(ncol);
,
col_sélectionné = "XX" || char(ncol);
)
),
Boîte de boutons( "Annuler", ok_flag = 0 ),
)
);
Si( ok_flag,
manquant_rows = masterdt << obtenir les lignes où ( ! Is Missing ( as Column ( masterdt, selected_col ) ) );
Si (N lignes (manquant_rows) > 0,
masterdt << sélectionner les lignes (manquant_rows);
sbdt = masterdt << Sous-ensemble ((Lignes sélectionnées), Nom de la table de sortie ("Données Softbin sélectionnées" ) );
formula_expr = Eval Insert (
"\[sbdt << Nouvelle colonne ( "Bin%", Numérique, Continu, Format ( "Pourcentage", 12, 2 ), Formule ( :^selected_col^ / :LOT_SORTED_DIES ) )]\"
);
Parse( Eval( formule_expr ) );
);
);
Re : Boîte de dialogue contextuelle sélectionnant le nom de la colonneCela fera ce que vous voulez.J'ai converti votre code pour utiliser une nouvelle fenêtre au lieu d'une boîte de dialogue.J'ai dû faire une analyse (eval()) pour la formule de colonne.
maître = Nouveau tableau ( "Maître DT" , Ajouter des lignes ( 5 ) ,
Nouvelle colonne ( "XX01" , Numérique , Continu , Format ( "Meilleur" , 12 ) ,
Définir les valeurs ( [ 1 , 2 , . , 3 , 4 ] )
) ,
Nouvelle colonne ( "XX02" , Numérique , Continu , Format ( "Meilleur" , 12 ) ,
Définir les valeurs ( [ . , 1 , 2 , . , . ] )
) ,
Nouvelle colonne ( "XX03" , Numérique , Continu , Format ( "Meilleur" , 12 ) ,
Définir les valeurs ( [ . , . , 1 , 2 , 3 ] )
)
) ;
surgir = Nouvelle fenetre ( "Sommaire" , << modal () ,
Zone de texte ( "Entrez dans Softbin XX :" ) ,
Zone de liste H (
Zone de texte ( "ID de la corbeille logicielle : " ) ,
Soft_Bin = Zone d'édition de numéro ( 01 ) ,
) ,
hlistbox (
Boîte à boutons ( "D'accord" ,
ok_flag = 1 ;
ncol = soft_bin << obtenir ;
si ( ncol < 9 ,
col_sélectionné = "XX0" || carboniser ( ncol ) ;
,
col_sélectionné = "XX" || carboniser ( ncol ) ;
)
) ,
Boîte à boutons ( "Annuler" , ok_flag = 0 ) ,
)
) ;
Si ( ok_flag ,
lignes_manquantes = maître << obtenir des lignes où ( ! Est manquant ( comme colonne ( maître , col_sélectionné ) ) ) ;
Si ( N lignes ( lignes_manquantes ) > 0 ,
maître << sélectionner des lignes ( lignes_manquantes ) ;
sbdt = maître << Sous-ensemble ( ( Lignes sélectionnées ) , Nom de la table de sortie ( "Données Softbin sélectionnées" ) ) ;
formule_expr = Insertion d'évaluation (
"\[sbdt << Nouvelle colonne ( "Bin%", Numérique, Continu, Format ( "Pourcentage", 12, 2 ), Formule ( :^selected_col^ / :LOT_SORTED_DIES ) )]\"
) ;
Analyser ( Évaluer ( formule_expr ) ) ;
) ;
) ;