Browse Source

Enregistrement de session, correction d'un bug sous win pour l'import.

Modification de la structure d'une rule de recherche et du GUI
master
Maxime Wack 11 years ago
parent
commit
339e09641d
13 changed files with 428 additions and 119 deletions
  1. +2
    -0
      CosMoS/CosMoS.project
  2. +26
    -34
      CosMoS/bdd.cpp
  3. +5
    -7
      CosMoS/bdd.h
  4. +18
    -17
      CosMoS/config.cpp
  5. +11
    -12
      CosMoS/config.h
  6. +1
    -1
      CosMoS/cosmosGUI.cpp
  7. +41
    -16
      CosMoS/optionsRche.cpp
  8. +186
    -4
      CosMoS/optionsRche.fbp
  9. +24
    -3
      CosMoS/optionsRcheGUI.cpp
  10. +5
    -2
      CosMoS/optionsRcheGUI.h
  11. +64
    -0
      CosMoS/recherche.cpp
  12. +28
    -0
      CosMoS/recherche.h
  13. +17
    -23
      Sante_Pub.workspace.session

+ 2
- 0
CosMoS/CosMoS.project View File

@@ -21,6 +21,7 @@
<File Name="options.cpp"/>
<File Name="correc.cpp"/>
<File Name="optionsRche.cpp"/>
<File Name="recherche.cpp"/>
</VirtualDirectory>
<VirtualDirectory Name="include">
<File Name="bdd.h"/>
@@ -35,6 +36,7 @@
<File Name="options.h"/>
<File Name="correc.h"/>
<File Name="optionsRche.h"/>
<File Name="recherche.h"/>
</VirtualDirectory>
<VirtualDirectory Name="resources">
<File Name="cosmos.fbp"/>


+ 26
- 34
CosMoS/bdd.cpp View File

@@ -1,8 +1,8 @@
#include "bdd.h"

class_bdd::class_bdd(const wxString& path_in, wxGrid* gridptr)
class_bdd::class_bdd(const wxString& path_in, wxGrid* grid)
{
this->gridptr = gridptr;
this->grid = grid;
wxString path = path_in + slash + "cosmos.db";
if (!wxFileExists(path))
createEmpty(path);
@@ -40,20 +40,15 @@ void class_bdd::importer(const wxString& filename)
rc = 0;
int size = 0;
int progress = 0; //indicateurs de progression
//char c;
wxUniChar c;
wxString fichier;
bool inquote = false; //guillemets
bool firstline = true;
wxString item[23];
/*FILE * importfile = fopen(_C(filename), "r");
fseek(importfile, 0, SEEK_END);
size = ftell(importfile);
rewind(importfile);*/
wxFFile* importfile = new wxFFile();
importfile->Open(filename);
importfile->ReadAll(&fichier);
importfile->ReadAll(&fichier, wxConvAuto(wxFONTENCODING_SYSTEM));
size = fichier.length() + 1;
sqlite3_exec(db, "SAVEPOINT before_import;", NULL, NULL, NULL);
@@ -66,7 +61,6 @@ void class_bdd::importer(const wxString& filename)
item[i]="";
do
{
//c = fgetc(importfile);
c = fichier[progress];
progress++;
if (c == '"')
@@ -81,10 +75,9 @@ void class_bdd::importer(const wxString& filename)
item[22]="";
do
{
//c = fgetc(importfile);
c = fichier[progress];
progress++;
if ((c != '\n') && (c != '\0')) //EOF->\0
if ((c != '\n') && (c != '\0'))
item[22] << c;
}while ((c != '\n') && (c != '\0')); //dernier item de la ligne, se finit si retour ou EOF
@@ -131,7 +124,6 @@ void class_bdd::importer(const wxString& filename)
break;
}while (c != '\0');
//fclose(importfile);
importfile->Close();
progress_dialog.Update(size);
sqlite3_exec(db, "RELEASE before_import;", NULL, NULL, NULL);
@@ -151,8 +143,8 @@ void class_bdd::updategrid()
rc = 0;
int nligne = 0;
stmt = NULL;
if (gridptr->GetNumberRows() != 0)
gridptr->DeleteRows(0, gridptr->GetNumberRows()); //reset de la grille
if (grid->GetNumberRows() != 0)
grid->DeleteRows(0, grid->GetNumberRows()); //reset de la grille
rc = sqlite3_prepare_v2(db, "SELECT * FROM Consult;", -1, &stmt, NULL); //import depuis Consult
if (sqlite3_step(stmt) == SQLITE_DONE) //Si la bdd est vide
{
@@ -164,28 +156,28 @@ void class_bdd::updategrid()
sqlite3_reset(stmt); //retour à la première ligne, celle-ci étant lue juste avant pour vérifier la non vacuité
while (sqlite3_step(stmt) == SQLITE_ROW)
{
gridptr->AppendRows();
gridptr->SetCellValue(nligne, 4, _itoW(sqlite3_column_int(stmt, 1))); //n_dossier
grid->AppendRows();
grid->SetCellValue(nligne, 4, _itoW(sqlite3_column_int(stmt, 1))); //n_dossier
for (int i=2; i<10; i++) //nom, prénom, responsable, consultant, theme, etablissement, travail, date
{
wxString orig = _W(sqlite3_column_text(stmt, i));
// corrections
rc = sqlite3_prepare_v2(db, "SELECT dest FROM Correc WHERE orig=\"" + orig + "\";", -1, &stmt_correc, NULL);
if (sqlite3_step(stmt_correc) == SQLITE_DONE)
gridptr->SetCellValue(nligne, i+3, orig);
grid->SetCellValue(nligne, i+3, orig);
else
{
gridptr->SetCellValue(nligne, i+3, _W(sqlite3_column_text(stmt_correc, 0)));
//gridptr->SetCellBackgroundColour(nligne, i+3, *wxYELLOW);
grid->SetCellValue(nligne, i+3, _W(sqlite3_column_text(stmt_correc, 0)));
//grid->SetCellBackgroundColour(nligne, i+3, *wxYELLOW);
}
sqlite3_finalize(stmt_correc);
}
// autocorrection prenoms
wxString prenom = gridptr->GetCellValue(nligne, 6);
wxString prenom = grid->GetCellValue(nligne, 6);
if (prenom.IsSameAs("xxx", false) || prenom.IsSameAs("xx", false) || prenom.IsSameAs("zzz", false) || prenom.IsSameAs("zz", false) || prenom.IsSameAs("yy", false) || prenom.IsSameAs("xy", false))
gridptr->SetCellValue(nligne, 6, "");
grid->SetCellValue(nligne, 6, "");
// autocorrection responsables
wxString resp = gridptr->GetCellValue(nligne, 7);
wxString resp = grid->GetCellValue(nligne, 7);
resp.Replace("Mr. Le Pr. ", "", true);
resp.Replace("Mme Le Dr. ", "", true);
resp.Replace("Mme Le Pr. ", "", true);
@@ -196,13 +188,13 @@ void class_bdd::updategrid()
resp.Replace("Pr ", "", true);
resp.Replace("Mme ", "", true);
resp.Replace("Melle ", "", true);
gridptr->SetCellValue(nligne, 7, resp);
grid->SetCellValue(nligne, 7, resp);
gridptr->SetCellValue(nligne, 13, _itoW(sqlite3_column_int(stmt, 0))); //id, caché
grid->SetCellValue(nligne, 13, _itoW(sqlite3_column_int(stmt, 0))); //id, caché
/*wxColour lightgreen(230, 255, 230); //TODO: gestion des couleurs dans la config ?
if (sqlite3_column_int(stmt, 10))
for (int j=0; j<13; j++)
gridptr->SetCellBackgroundColour(nligne, j, lightgreen); //coloration des publis prévues*/
grid->SetCellBackgroundColour(nligne, j, lightgreen); //coloration des publis prévues*/
nligne++;
}
sqlite3_finalize(stmt);
@@ -211,19 +203,19 @@ void class_bdd::updategrid()
sqlite3_prepare_v2(db, "SELECT * FROM Result;", -1, &stmt, NULL); //import depuis Result
while (sqlite3_step(stmt) == SQLITE_ROW)
{
gridptr->SetCellValue(nligne, 0, _itoW(sqlite3_column_int(stmt, 4))); //nb_results
grid->SetCellValue(nligne, 0, _itoW(sqlite3_column_int(stmt, 4))); //nb_results
for (int i=1; i<4; i++)
gridptr->SetCellValue(nligne, i, _itoW(sqlite3_column_int(stmt, i))); //publi, publi_CHU, cs_associe
grid->SetCellValue(nligne, i, _itoW(sqlite3_column_int(stmt, i))); //publi, publi_CHU, cs_associe
if (sqlite3_column_int(stmt, 1))
for (int i=0; i<13; i++)
gridptr->SetCellBackgroundColour(nligne, i, *wxGREEN); //coloration des consults trouvées
grid->SetCellBackgroundColour(nligne, i, *wxGREEN); //coloration des consults trouvées
nligne++;
}
sqlite3_finalize(stmt);
gridptr->AutoSizeColumns(false);
gridptr->AutoSizeRows(false);
gridptr->HideCol(13);
grid->AutoSizeColumns(false);
grid->AutoSizeRows(false);
grid->HideCol(13);
wxEndBusyCursor();
}

@@ -292,16 +284,16 @@ void class_bdd::modcorrection(const wxString& orig, const wxString& dest)
sqlite3_exec(db, requete, NULL, NULL, NULL);
// Mise à jour de la grille
for (int i=0; i<gridptr->GetNumberRows(); i++)
for (int i=0; i<grid->GetNumberRows(); i++)
{
requete = "SELECT * FROM Consult WHERE id=" + gridptr->GetCellValue(i, 13) + ";";
requete = "SELECT * FROM Consult WHERE id=" + grid->GetCellValue(i, 13) + ";";
sqlite3_prepare_v2(db, requete, -1, &stmt, NULL);
sqlite3_step(stmt);
for (int j=5; j<11; j++)
{
wxString table_orig = _W(sqlite3_column_text(stmt, j - 3));
if (table_orig == orig)
gridptr->SetCellValue(i, j, dest);
grid->SetCellValue(i, j, dest);
}
sqlite3_finalize(stmt);
}


+ 5
- 7
CosMoS/bdd.h View File

@@ -2,7 +2,6 @@
#define __bdd__

#include <wx/filefn.h>
//#include <cstdio>
#include <wx/ffile.h>
#include <wx/msgdlg.h>
#include <wx/progdlg.h>
@@ -21,23 +20,24 @@
#endif
#define _itoW(integer) wxString::Format("%i",integer) // int -> wxString


class class_bdd
{
private:
sqlite3* db;
sqlite3_stmt* stmt, *stmt_correc;
int rc;
wxGrid* gridptr;
wxGrid* grid;
void createEmpty(const wxString& path);
public:
class_bdd(const wxString& path_in, wxGrid* gridptr);
class_bdd(const wxString& path_in, wxGrid* grid);
~class_bdd();
void importer(const wxString& filename);
void exporter(const wxString& filename);
void updategrid();
void modresultbool(const wxString& id, int col, const wxString& val);
int nbcorrections();
wxString* getcorrecorig();
wxString* getcorrecdest();
@@ -46,9 +46,6 @@ class class_bdd
void delcorrection(const wxString& orig);
};


#endif //__bdd__

/* CSV BDD GRID
id 0 0 13
n_dossier 1 1 4
@@ -69,3 +66,4 @@ publi_CHU 2 2
cs_associe 3 3
*/

#endif //__bdd__

+ 18
- 17
CosMoS/config.cpp View File

@@ -15,11 +15,9 @@ void config::createDefault()
proxyurl = "www-proxy.chu-nancy.fr";
proxyport = 8080;
rule defaultrule = {"defaut", true, AND, AND, AND, delai, true, true, 5, 2, true, "Nancy", false, "", 20};
rule rule2 = {"regle 2", false, OR, NOTd, OR, dates, true, true, 20110223, 20120910, false, "", false, "", 30};
rule defaultrule = {"defaut", true, true, true, true, AND, AND, AND, delai, true, true, 5, 2, true, "Nancy", false, "", 20};
ruleset.push_back(defaultrule);
ruleset.push_back(rule2);
first_time = true;
}

@@ -43,7 +41,7 @@ void config::save()
rootnode->AddChild(proxynode);
wxXmlNode* rulesetnode = new wxXmlNode(NULL, wxXML_ELEMENT_NODE, "ruleset"); // ruleset
for (vector<rule>::iterator i = ruleset.begin(); i < ruleset.end(); i++)
addsettoxml(rulesetnode, *i);
addsettoxml(rulesetnode, *i); // rule(s)
rootnode->AddChild(rulesetnode);
fichier_config->SetRoot(rootnode);
@@ -57,10 +55,15 @@ void config::addsettoxml(wxXmlNode* setlistnode, rule toadd)
setnode->AddAttribute("name", toadd.name); // rule_name
setnode->AddAttribute("inuse", bool2W(toadd.inuse)); // rule_inuse
wxXmlNode* nomsnode = new wxXmlNode(NULL, wxXML_ELEMENT_NODE, "noms"); // noms
nomsnode->AddAttribute("demandeur", op2W(toadd.demandeur)); // noms_demandeur
nomsnode->AddAttribute("both", op2W(toadd.both)); // noms_both
nomsnode->AddAttribute("responsable", op2W(toadd.responsable)); // noms_responsable
nomsnode->AddAttribute("demandeur", bool2W(toadd.usedemandeur)); // noms_demandeur
nomsnode->AddAttribute("responsable", bool2W(toadd.useresponsable)); // noms_responsable
nomsnode->AddAttribute("consultant", bool2W(toadd.useconsultant)); // noms_consultant
setnode->AddChild(nomsnode);
wxXmlNode* opsnode = new wxXmlNode(NULL, wxXML_ELEMENT_NODE, "ops"); // ops
opsnode->AddAttribute("demandeur", op2W(toadd.opdemandeur)); // ops_demandeur
opsnode->AddAttribute("both", op2W(toadd.opboth)); // ops_both
opsnode->AddAttribute("responsable", op2W(toadd.opresponsable)); // ops_responsable
setnode->AddChild(opsnode);
wxXmlNode* datesnode = new wxXmlNode(NULL, wxXML_ELEMENT_NODE, "dates");// dates
datesnode->AddAttribute("type", type2W(toadd.type_date)); // dates_type
datesnode->AddAttribute("usedebut", bool2W(toadd.usedebut)); // dates_usedebut
@@ -101,9 +104,13 @@ void config::load()
currentrule.name = parcours->GetAttribute("name"); // rule_name
currentrule.inuse = W2bool(parcours->GetAttribute("inuse")); // rule_inuse
parcours = parcours->GetChildren(); // noms
currentrule.demandeur = W2op(parcours->GetAttribute("demandeur")); // noms_demandeur
currentrule.both = W2op(parcours->GetAttribute("both")); // noms_both
currentrule.responsable = W2op(parcours->GetAttribute("responsable")); // noms_responsable
currentrule.usedemandeur = W2bool(parcours->GetAttribute("demandeur")); // noms_demandeur
currentrule.useresponsable = W2bool(parcours->GetAttribute("responsable"));// noms_responsable
currentrule.useconsultant = W2bool(parcours->GetAttribute("consultant"));// noms_consultant
parcours = parcours->GetNext(); // ops
currentrule.opdemandeur = W2op(parcours->GetAttribute("demandeur")); // ops_demandeur
currentrule.opboth = W2op(parcours->GetAttribute("both")); // ops_both
currentrule.opresponsable = W2op(parcours->GetAttribute("responsable"));// ops_responsable
parcours = parcours->GetNext(); // dates
currentrule.type_date = W2type(parcours->GetAttribute("type")); // dates_type
currentrule.usedebut = W2bool(parcours->GetAttribute("usedebut")); // dates_usedebut
@@ -195,8 +202,6 @@ wxString config::op2W(int in)
{
case AND: return "AND"; break;
case OR: return "OR"; break;
case NOTd: return "NOTd"; break;
case NOTr: return "NOTr"; break;
default: return "AND";break;
};
}
@@ -207,10 +212,6 @@ int config::W2op(wxString in)
return AND;
else if (in == "OR")
return OR;
else if (in == "NOTd")
return NOTd;
else if (in == "NOTr")
return NOTr;
return AND;
}



+ 11
- 12
CosMoS/config.h View File

@@ -3,10 +3,11 @@

#include <wx/xml/xml.h>
#include <wx/window.h>
#include <wx/msgdlg.h>
#include <wx/filefn.h>
#include <vector>

using namespace std;

#ifdef __WXGTK__
#define slash "/"
#define _C(string) string.fn_str() // wxString -> char*
@@ -18,13 +19,12 @@
#endif
#define _itoW(integer) wxString::Format("%i",integer) // int -> wxString

using namespace std;

typedef struct trule
{
wxString name;
bool inuse;
int demandeur, both, responsable;
bool usedemandeur, useresponsable, useconsultant;
int opdemandeur, opboth, opresponsable;
int type_date;
bool usedebut, usefin;
int debut, fin;
@@ -39,8 +39,6 @@ enum
{
AND=0,
OR=1,
NOTd=2,
NOTr=3
};

enum
@@ -63,12 +61,6 @@ protected:
void createDefault();
void load();
void addsettoxml(wxXmlNode* xmldoc, rule toadd);
wxString bool2W(bool in);
bool W2bool(wxString in);
wxString op2W(int in);
int W2op(wxString in);
wxString type2W(int in);
int W2type(wxString in);
public:
config();
@@ -82,6 +74,12 @@ public:
void modrule(int index, rule temp);
void uprule(int index);
void downrule(int index);
wxString bool2W(bool in);
bool W2bool(wxString in);
wxString op2W(int in);
int W2op(wxString in);
wxString type2W(int in);
int W2type(wxString in);
// GETters et SETters
void SetDbpath(const wxString& dbpath) {this->dbpath = dbpath;}
@@ -95,4 +93,5 @@ public:
bool IsFirstTime() const {return first_time;}
};


#endif // __config__

+ 1
- 1
CosMoS/cosmosGUI.cpp View File

@@ -78,7 +78,7 @@ cosmosGUI::cosmosGUI( wxWindow* parent, wxWindowID id, const wxString& title, co
grid_Consults = new wxGrid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
// Grid
grid_Consults->CreateGrid( 0, 14);
grid_Consults->CreateGrid( 0, 14, wxGrid::wxGridSelectRowsOrColumns);
grid_Consults->EnableEditing( true );
grid_Consults->EnableGridLines( true );
grid_Consults->EnableDragGridSize( true );


+ 41
- 16
CosMoS/optionsRche.cpp View File

@@ -20,9 +20,13 @@ void optionsRche::OnChecklistSelect( wxCommandEvent& event )
textctrl_nomset->SetValue(currentrule.name);
radio_demandeur->SetSelection(currentrule.demandeur);
radio_both->SetSelection(currentrule.both);
radio_responsable->SetSelection(currentrule.responsable);
checkbox_demandeur->SetValue(currentrule.usedemandeur);
checkbox_responsable->SetValue(currentrule.useresponsable);
checkbox_consultant->SetValue(currentrule.useconsultant);
radio_demandeur->SetSelection(currentrule.opdemandeur);
radio_both->SetSelection(currentrule.opboth);
radio_responsable->SetSelection(currentrule.opresponsable);
radio_delai->SetValue(!currentrule.type_date);
radio_dates->SetValue(currentrule.type_date);
@@ -57,9 +61,12 @@ void optionsRche::OnAdd( wxCommandEvent& event )
{
rule toadd;
toadd.name = textctrl_nomset->GetValue();
toadd.demandeur = radio_demandeur->GetSelection();
toadd.both = radio_both->GetSelection();
toadd.responsable = radio_responsable->GetSelection();
toadd.usedemandeur = checkbox_demandeur->GetValue();
toadd.useresponsable = checkbox_responsable->GetValue();
toadd.useconsultant = checkbox_consultant->GetValue();
toadd.opdemandeur = radio_demandeur->GetSelection();
toadd.opboth = radio_both->GetSelection();
toadd.opresponsable = radio_responsable->GetSelection();
toadd.type_date = radio_dates->GetValue();
toadd.usedebut = checkbox_debut->GetValue();
toadd.usefin = checkbox_fin->GetValue();
@@ -119,9 +126,12 @@ void optionsRche::OnUpdate( wxCommandEvent& event )
{
rule tomod;
tomod.name = textctrl_nomset->GetValue();
tomod.demandeur = radio_demandeur->GetSelection();
tomod.both = radio_both->GetSelection();
tomod.responsable = radio_responsable->GetSelection();
tomod.usedemandeur = checkbox_demandeur->GetValue();
tomod.useresponsable = checkbox_responsable->GetValue();
tomod.useconsultant = checkbox_consultant->GetValue();
tomod.opdemandeur = radio_demandeur->GetSelection();
tomod.opboth = radio_both->GetSelection();
tomod.opresponsable = radio_responsable->GetSelection();
tomod.type_date = radio_dates->GetValue();
tomod.usedebut = checkbox_debut->GetValue();
tomod.usefin = checkbox_fin->GetValue();
@@ -163,15 +173,20 @@ void optionsRche::OnOk( wxCommandEvent& event )

void optionsRche::updateGUI( wxCommandEvent& event )
{
if (checkbox_suppl->IsChecked())
textctrl_suppl->Enable();
if (checkbox_demandeur->IsChecked())
radio_demandeur->Enable();
else
textctrl_suppl->Disable();
if (checkbox_ville->IsChecked())
textctrl_ville->Enable();
radio_demandeur->Disable();
if (checkbox_responsable->IsChecked())
radio_responsable->Enable();
else
textctrl_ville->Disable();
radio_responsable->Disable();
if (checkbox_demandeur->IsChecked() && checkbox_responsable->IsChecked())
radio_both->Enable();
else
radio_both->Disable();
if (radio_delai->GetValue())
{
@@ -199,6 +214,16 @@ void optionsRche::updateGUI( wxCommandEvent& event )
else
datepicker_fin->Disable();
}
if (checkbox_suppl->IsChecked())
textctrl_suppl->Enable();
else
textctrl_suppl->Disable();
if (checkbox_ville->IsChecked())
textctrl_ville->Enable();
else
textctrl_ville->Disable();
}

wxDateTime optionsRche::int2date(int in)


+ 186
- 4
CosMoS/optionsRche.fbp View File

@@ -34,7 +34,7 @@
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="maximum_size"></property>
<property name="minimum_size">650,500</property>
<property name="minimum_size">665,500</property>
<property name="name">dialog_optionsRche</property>
<property name="pos"></property>
<property name="size">-1,-1</property>
@@ -406,7 +406,7 @@
<property name="border">5</property>
<property name="flag">wxEXPAND|wxALIGN_CENTER_HORIZONTAL</property>
<property name="proportion">0</property>
<object class="wxBoxSizer" expanded="1">
<object class="wxBoxSizer" expanded="0">
<property name="minimum_size"></property>
<property name="name">sizer_nomset</property>
<property name="orient">wxHORIZONTAL</property>
@@ -583,6 +583,131 @@
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">sizer_checknoms</property>
<property name="orient">wxHORIZONTAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
<property name="proportion">1</property>
<object class="wxCheckBox" expanded="1">
<property name="bg"></property>
<property name="checked">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="font"></property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Demandeur</property>
<property name="maximum_size"></property>
<property name="minimum_size"></property>
<property name="name">checkbox_demandeur</property>
<property name="permission">protected</property>
<property name="pos"></property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnCheckBox">updateGUI</event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
<property name="proportion">1</property>
<object class="wxCheckBox" expanded="1">
<property name="bg"></property>
<property name="checked">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="font"></property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Responsable</property>
<property name="maximum_size"></property>
<property name="minimum_size"></property>
<property name="name">checkbox_responsable</property>
<property name="permission">protected</property>
<property name="pos"></property>
<property name="size"></property>
<property name="style">wxALIGN_RIGHT</property>
<property name="subclass"></property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnCheckBox">updateGUI</event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxALIGN_CENTER_HORIZONTAL</property>
@@ -613,7 +738,7 @@
<property name="name">radio_demandeur</property>
<property name="permission">protected</property>
<property name="pos"></property>
<property name="selection">0</property>
<property name="selection">1</property>
<property name="size"></property>
<property name="style">wxRA_SPECIFY_COLS</property>
<property name="subclass"></property>
@@ -657,7 +782,7 @@
<property name="proportion">0</property>
<object class="wxRadioBox" expanded="0">
<property name="bg"></property>
<property name="choices">&quot;AND&quot; &quot;OR&quot; &quot;NOT demandeur&quot; &quot;NOT responsable&quot;</property>
<property name="choices">&quot;AND&quot; &quot;OR&quot;</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="enabled">1</property>
@@ -771,6 +896,63 @@
</object>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALL</property>
<property name="proportion">0</property>
<object class="wxCheckBox" expanded="1">
<property name="bg"></property>
<property name="checked">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="font"></property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Consultant</property>
<property name="maximum_size"></property>
<property name="minimum_size"></property>
<property name="name">checkbox_consultant</property>
<property name="permission">protected</property>
<property name="pos"></property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnCheckBox"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxTOP|wxBOTTOM</property>


+ 24
- 3
CosMoS/optionsRcheGUI.cpp View File

@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Sep 15 2010)
// C++ code generated with wxFormBuilder (version Sep 8 2010)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
@@ -11,7 +11,7 @@

dialog_optionsRche::dialog_optionsRche( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
this->SetSizeHints( wxSize( 650,500 ), wxDefaultSize );
this->SetSizeHints( wxSize( 665,500 ), wxDefaultSize );
wxBoxSizer* verticalsizer;
verticalsizer = new wxBoxSizer( wxVERTICAL );
@@ -58,6 +58,19 @@ dialog_optionsRche::dialog_optionsRche( wxWindow* parent, wxWindowID id, const w
staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
sizer_set->Add( staticline1, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
wxBoxSizer* sizer_checknoms;
sizer_checknoms = new wxBoxSizer( wxHORIZONTAL );
checkbox_demandeur = new wxCheckBox( this, wxID_ANY, wxT("Demandeur"), wxDefaultPosition, wxDefaultSize, 0 );
checkbox_demandeur->SetValue(true);
sizer_checknoms->Add( checkbox_demandeur, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
checkbox_responsable = new wxCheckBox( this, wxID_ANY, wxT("Responsable"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );
checkbox_responsable->SetValue(true);
sizer_checknoms->Add( checkbox_responsable, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
sizer_set->Add( sizer_checknoms, 1, wxEXPAND, 5 );
wxBoxSizer* sizer_noms;
sizer_noms = new wxBoxSizer( wxHORIZONTAL );
@@ -67,7 +80,7 @@ dialog_optionsRche::dialog_optionsRche( wxWindow* parent, wxWindowID id, const w
radio_demandeur->SetSelection( 0 );
sizer_noms->Add( radio_demandeur, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
wxString radio_bothChoices[] = { wxT("AND"), wxT("OR"), wxT("NOT demandeur"), wxT("NOT responsable") };
wxString radio_bothChoices[] = { wxT("AND"), wxT("OR") };
int radio_bothNChoices = sizeof( radio_bothChoices ) / sizeof( wxString );
radio_both = new wxRadioBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, radio_bothNChoices, radio_bothChoices, 1, wxRA_SPECIFY_COLS );
radio_both->SetSelection( 0 );
@@ -81,6 +94,10 @@ dialog_optionsRche::dialog_optionsRche( wxWindow* parent, wxWindowID id, const w
sizer_set->Add( sizer_noms, 0, wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 );
checkbox_consultant = new wxCheckBox( this, wxID_ANY, wxT("Consultant"), wxDefaultPosition, wxDefaultSize, 0 );
checkbox_consultant->SetValue(true);
sizer_set->Add( checkbox_consultant, 0, wxALL, 5 );
staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
sizer_set->Add( staticline2, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
@@ -198,6 +215,8 @@ dialog_optionsRche::dialog_optionsRche( wxWindow* parent, wxWindowID id, const w
bouton_up->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( dialog_optionsRche::OnUp ), NULL, this );
bouton_down->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( dialog_optionsRche::OnDown ), NULL, this );
bouton_del->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( dialog_optionsRche::OnDel ), NULL, this );
checkbox_demandeur->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( dialog_optionsRche::updateGUI ), NULL, this );
checkbox_responsable->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( dialog_optionsRche::updateGUI ), NULL, this );
radio_delai->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( dialog_optionsRche::updateGUI ), NULL, this );
radio_dates->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( dialog_optionsRche::updateGUI ), NULL, this );
checkbox_debut->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( dialog_optionsRche::updateGUI ), NULL, this );
@@ -216,6 +235,8 @@ dialog_optionsRche::~dialog_optionsRche()
bouton_up->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( dialog_optionsRche::OnUp ), NULL, this );
bouton_down->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( dialog_optionsRche::OnDown ), NULL, this );
bouton_del->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( dialog_optionsRche::OnDel ), NULL, this );
checkbox_demandeur->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( dialog_optionsRche::updateGUI ), NULL, this );
checkbox_responsable->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( dialog_optionsRche::updateGUI ), NULL, this );
radio_delai->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( dialog_optionsRche::updateGUI ), NULL, this );
radio_dates->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( dialog_optionsRche::updateGUI ), NULL, this );
checkbox_debut->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( dialog_optionsRche::updateGUI ), NULL, this );


+ 5
- 2
CosMoS/optionsRcheGUI.h View File

@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Sep 15 2010)
// C++ code generated with wxFormBuilder (version Sep 8 2010)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
@@ -19,9 +19,9 @@
#include <wx/stattext.h>
#include <wx/textctrl.h>
#include <wx/statline.h>
#include <wx/checkbox.h>
#include <wx/radiobox.h>
#include <wx/radiobut.h>
#include <wx/checkbox.h>
#include <wx/spinctrl.h>
#include <wx/datectrl.h>
#include <wx/dateevt.h>
@@ -47,9 +47,12 @@ class dialog_optionsRche : public wxDialog
wxStaticText* statictext_nomset;
wxTextCtrl* textctrl_nomset;
wxStaticLine* staticline1;
wxCheckBox* checkbox_demandeur;
wxCheckBox* checkbox_responsable;
wxRadioBox* radio_demandeur;
wxRadioBox* radio_both;
wxRadioBox* radio_responsable;
wxCheckBox* checkbox_consultant;
wxStaticLine* staticline2;
wxRadioButton* radio_delai;


+ 64
- 0
CosMoS/recherche.cpp View File

@@ -0,0 +1,64 @@
#include "recherche.h"

class_recherche::class_recherche(config* configuration, class_bdd* bdd, wxGrid* grid)
{
this->configuration = configuration;
this->bdd = bdd;
this->grid = grid;
}

class_recherche::~class_recherche()
{
}

void class_recherche::recherche(int row, rule regle)
{
}
wxString class_recherche::parsedemandeur(wxString nom, wxString prenom, int op)
{
wxString out, nom1, nom2, prenom1, prenom2;
bool mult = false;
if (nom.Find('/') != wxNOT_FOUND)
{
mult = true;
nom1 = nom.BeforeFirst('/');
nom2 = nom.AfterFirst('/');
}
if (prenom.Find('/') == wxNOT_FOUND)
prenom1 = prenom;
else
{
prenom1 = prenom.BeforeFirst('/');
prenom2 = prenom.AfterFirst('/');
}
if (prenom1.Find('-') != wxNOT_FOUND)
prenom1 = prenom1.BeforeFirst('-').Left(1) + prenom1.AfterFirst('-').Left(1);
if (prenom2.Find('-') != wxNOT_FOUND)
prenom2 = prenom2.BeforeFirst('-').Left(1) + prenom2.AfterFirst('-').Left(1);
if (mult)
{
out << "(" << nom1 << " " << prenom1 << "[Author]";
//out << " " << op2W(op) << " ";
out << nom2 << " " << prenom2 << "[Author])";
}
else
out << nom << " " << prenom1 << "[Author]";
return out;
}

wxString class_recherche::parseresponsable(wxString responsable, int op)
{
}

wxString class_recherche::parseconsultant(wxString consultant)
{
}


+ 28
- 0
CosMoS/recherche.h View File

@@ -0,0 +1,28 @@
#ifndef __recherche__
#define __recherche__

#include <wx/grid.h>
#include <curl/curl.h>
#include "config.h"
#include "bdd.h"
//#include "tinyxml2.h"

class class_recherche
{
private:
config* configuration;
class_bdd* bdd;
wxGrid* grid;
void recherche(int row, rule regle);
wxString parsedemandeur(wxString nom, wxString prenom, int op);
wxString parseresponsable(wxString responsable, int op);
wxString parseconsultant(wxString consultant);
public:
class_recherche(config* configuration, class_bdd* bdd, wxGrid* grid);
~class_recherche();
};

#endif //__recherche__

+ 17
- 23
Sante_Pub.workspace.session View File

@@ -1,42 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<Session Name="/home/satamaxx/Programmes/Sante_Pub/Sante_Pub.workspace">
<int Value="3" Name="m_selectedTab"/>
<wxString Value="/home/satamaxx/Programmes/Sante_Pub/Sante_Pub.workspace" Name="m_workspaceName"/>
<?xml version="1.0" encoding="UTF-8"?>
<Session Name="G:\Commun\Etudiants\Maxime W\Projets\Sante_Pub.workspace">
<int Value="4" Name="m_selectedTab"/>
<wxString Value="G:\Commun\Etudiants\Maxime W\Projets\Sante_Pub.workspace" Name="m_workspaceName"/>
<TabInfoArray Name="TabInfoArray">
<TabInfo>
<wxString Value="/home/satamaxx/Programmes/Sante_Pub/CosMoS/bdd.h" Name="FileName"/>
<wxString Value="G:\Commun\Etudiants\Maxime W\Projets\CosMoS\cosmos.h" Name="FileName"/>
<int Value="0" Name="FirstVisibleLine"/>
<int Value="19" Name="CurrentLine"/>
<int Value="0" Name="CurrentLine"/>
<wxArrayString Name="Bookmarks"/>
</TabInfo>
<TabInfo>
<wxString Value="/home/satamaxx/Programmes/Sante_Pub/CosMoS/bdd.cpp" Name="FileName"/>
<wxString Value="G:\Commun\Etudiants\Maxime W\Projets\CosMoS\cosmos.cpp" Name="FileName"/>
<int Value="0" Name="FirstVisibleLine"/>
<int Value="133" Name="CurrentLine"/>
<int Value="0" Name="CurrentLine"/>
<wxArrayString Name="Bookmarks"/>
</TabInfo>
<TabInfo>
<wxString Value="/home/satamaxx/Programmes/Sante_Pub/CosMoS/cosmosGUI.h" Name="FileName"/>
<int Value="29" Name="FirstVisibleLine"/>
<int Value="42" Name="CurrentLine"/>
<wxArrayString Name="Bookmarks"/>
</TabInfo>
<TabInfo>
<wxString Value="/home/satamaxx/Programmes/Sante_Pub/CosMoS/cosmosGUI.cpp" Name="FileName"/>
<int Value="150" Name="FirstVisibleLine"/>
<int Value="155" Name="CurrentLine"/>
<wxString Value="G:\Commun\Etudiants\Maxime W\Projets\CosMoS\config.cpp" Name="FileName"/>
<int Value="0" Name="FirstVisibleLine"/>
<int Value="14" Name="CurrentLine"/>
<wxArrayString Name="Bookmarks"/>
</TabInfo>
<TabInfo>
<wxString Value="/home/satamaxx/Programmes/Sante_Pub/CosMoS/cosmos.cpp" Name="FileName"/>
<int Value="4" Name="FirstVisibleLine"/>
<int Value="4" Name="CurrentLine"/>
<wxString Value="G:\Commun\Etudiants\Maxime W\Projets\CosMoS\config.h" Name="FileName"/>
<int Value="0" Name="FirstVisibleLine"/>
<int Value="0" Name="CurrentLine"/>
<wxArrayString Name="Bookmarks"/>
</TabInfo>
<TabInfo>
<wxString Value="/home/satamaxx/Programmes/Sante_Pub/CosMoS/cosmos.h" Name="FileName"/>
<int Value="0" Name="FirstVisibleLine"/>
<int Value="14" Name="CurrentLine"/>
<wxString Value="G:\Commun\Etudiants\Maxime W\Projets\CosMoS\cosmosGUI.cpp" Name="FileName"/>
<int Value="150" Name="FirstVisibleLine"/>
<int Value="7" Name="CurrentLine"/>
<wxArrayString Name="Bookmarks"/>
</TabInfo>
</TabInfoArray>


Loading…
Cancel
Save