Ajouter une fenêtre ouverte après la sélectionJe cherchais une solution pour pouvoir ajouter une fenêtre ouverte après une sélection dans une boîte de calendrier.
Une fois que la date de début et la date de fin sont sélectionnées, j'aimerais ouvrir une autre boîte juste en dessous de la boîte contenant le calendrier.
Ci-dessous un exemple que j'essaie dans la version simplifiée. Dans mon application actuelle, j'aimerais ouvrir une liste de cases à cocher () basée sur les dates sélectionnées dans une base de données basée sur un script SQL.
Je vous remercie
<BR />nw = New Window( "Example",
V List Box(
pb = Panel Box( "Calendar",
V List Box(
H List Box(
Panel Box( "Select Start",
StartDate = Calendar Box(
<< Set Function(
Function(
{f1},
sqlstartA = StartDate << Get Date();
)
)
)
), // End StartDate Calendar Box
Panel Box( "Select End",
EndDate = Calendar Box(
<< Set Function(
Function(
{f2},
sqlendA = EndDate << Get Date();
)
)
)
) // End EndDate Calendar Box
),
H List Box(
bb1 = Button Box( "Set Dates",
sqlstart = format(sqlstartA, "yyyy-mm-dd");
sqlend = format(sqlendA, "yyyy-mm-dd");
show(sqlstart, sqlend);
),
bb2 = Button Box( "Cancel" )
),
Wait( 0.1 ),
pb << Append(
Text Box( "Why isn't this working" )
)
)
)
)
);
Re: Ajouter une fenêtre ouverte après la sélectionMerci beaucoup.. J'essayais un Wait () entre cette partie de la
code.. Quand je lisais les forums, j'ai vu quelque chose à propos de Pause avant
l'exécution d'un script et vu le bip () mais je n'ai même pas pensé à
mettre cela là-bas ..
Merci encore beaucoup ..
Re: Ajouter une fenêtre ouverte après la sélectionBien sûr que je n'ai pas votre base de données. Mais, en apportant les simplifications correspondantes à votre code, cela montre la mécanique de l'ajout de la case à cocher à l'interface utilisateur.
/* -----------------------------------------------------------*/
/* Calendar Box to Select Start and End Dates */
/* -----------------------------------------------------------*/
nw = New Window( "Example",
V List Box(
pb = Panel Box( "Calendar",
V List Box(
H List Box(
Panel Box( "Select Start", StartDate = Calendar Box( <<SET function=""></SET>
Re: Ajouter une fenêtre ouverte après la sélectionPermettez-moi d’expliquer cela si je le peux.
Maintenant que vous travaillez avec une zone de texte, la solution que je tente de résoudre consiste à placer une case à cocher qui est renseignée lorsque vous appuyez sur Définir les dates. J'ai essayé d'insérer LotListBox = Check Box (LotList, doListChoice); à la place de la zone de texte () et je ne reçois que la fenêtre du panneau.
D'après ce que je peux rassembler, les 4 derniers ensembles de scripts ne sont pas en train de s'exécuter, donc simplement en envoyant une fenêtre vide.
/* -----------------------------------------------------------*/
/* Calendar Box to Select Start and End Dates */
/* -----------------------------------------------------------*/
nw = New Window( "Example",
V List Box(
pb = Panel Box( "Calendar",
V List Box(
H List Box(
Panel Box( "Select Start",
StartDate = Calendar Box(
<<SET function="">= ' " || sqlstart || " '
AND t1.testdate <= ' " || sqlend || " '
AND (t1.wafer_number NOT RLIKE '-ATL' )
ORDER BY t1.testdate DESC
"
);
/*****************************************************************************/
/* */
/* Brings in the list of wafers from the SQL Query */
/* */
/*****************************************************************************/
/**************************************************************/
/* Opens Database based on Calendar Dates and Lists Lots */
/**************************************************************/
// Tried to put this in an expression to execute in the main window
dtLotList = Expr(
dt_LotList = Open Database( <DATABASE string="">, SQLcode, "LotList" );
Summarize( LotList = By( :wafer_number ) );
Close( dt_lotlist, No Save );
);
// Original script to bring in a list of wafers within the date range
dt_LotList = Open Database( <DATABASE string="">, SQLcode, "LotList" );
Summarize( LotList = By( :wafer_number ) );
Close( dt_lotlist, No Save );
/**************************************************************/
/* Lists Lot List in Check Box Format */
/**************************************************************/
// This is what i would like to be appended in the first window
LotListBox = Check Box( LotList, doListChoice );
/**************************************************************/
/* Allows for Multiple Lots to be Selected */
/**************************************************************/
doListChoice = Expr(
SelectedLot = LotListBox << get selected; //get the selected items
If( N Items( SelectedLot ) > 0, //run through each selected item if there are any
For( i = 1, i <= N Items( SelectedLot ), i++,
Print( SelectedLot[i] )
)
);
LotListSQLString = "";
For( i = 1, i <= N Items( SelectedLot ), i++,
LotListSQLString = LotListSQLString || "'" || Char( SelectedLot[i] );
If( i == N Items( SelectedLot ),
LotListSQLString = LotListSQLString || "'",
LotListSQLString = LotListSQLString || "',"
);
);
Show( SelectedLot );
);</DATABASE></DATABASE></SET>
Re: Ajouter une fenêtre ouverte après la sélectionC'est fou parce que ça ne marchait pas ... Merci d'avoir fait remarquer celaRe: Ajouter une fenêtre ouverte après la sélectionTravaillant très vite, je ne suis pas sûr de ce que j'ai fait à votre original. Mais le code ci-dessous fonctionne vraiment. En règle générale, je trouve plus utile la lisibilité et la maintenabilité de définir des actions en tant qu’expressions avec un nom, puis de les invoquer en utilisant ce nom.
nw = New Window( "Example",
V List Box(
pb = Panel Box( "Calendar",
V List Box(
H List Box(
Panel Box( "Select Start",
StartDate = Calendar Box(
<<SET function=""></SET>