Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :
Aggiunta TCalendar_mask in mrplib.
Aggiunta gestione parametri ditta per MRP.


git-svn-id: svn://10.65.10.50/trunk@7149 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1998-09-28 07:37:18 +00:00
parent d7bf7a33cb
commit 86da863222
9 changed files with 558 additions and 18 deletions

View File

@ -7,9 +7,12 @@ int main(int argc, char** argv)
int a = argc > 1 ? (argv[1][1] - '0') : 0;
switch (a)
{
case 3:
mr0400(argc,argv); break; // parametri ditta
case 0:
default:
mr0100(argc, argv);
}
exit(0);
return 0;
}
}

View File

@ -1,2 +1,8 @@
int mr0100(int argc, char* argv[]);
#ifndef __MR0_H
#define __MR0_H
int mr0100(int argc, char* argv[]);
int mr0400(int argc, char* argv[]);
#endif // __PR0_H

View File

@ -1 +1,14 @@
#include <default.url>
/* mr0 -0 Gestione tabelle */
MENU TASK_MENUBAR
SUBMENU MENU_FILE "~File"
/* mr0 -3 Parametri ditta */
MENUBAR MENU_BAR(1)
MENU MENU_BAR(1)
SUBMENU MENU_FILE "~File"

View File

@ -1,4 +1,3 @@
#include <automask.h>
#include <tabapp.h>
#include "mr0.h"
@ -6,18 +5,21 @@
#include "mrtblnp.h"
#ifndef TTable_application
#define TTable_application Tab_application
#endif
TTable_application& app() { return (TTable_application&)main_app(); }
///////////////////////////////////////////////////////////
// TMRP_mask
///////////////////////////////////////////////////////////
class TMRP_mask : public TAutomask
class TMRP_mask : public TCalendar_mask
{
TMRP_calendar* _calendar;
protected:
virtual TMask_field* parse_field(TScanner& scanner);
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public:
@ -25,14 +27,6 @@ public:
virtual ~TMRP_mask();
};
TMask_field* TMRP_mask::parse_field(TScanner& scanner)
{
const TString& k = scanner.key();
if (k == "CA")
return new TCalendar_field(this);
return TAutomask::parse_field(scanner);
}
bool TMRP_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
const TString16 tn = app().get_tabname();
@ -87,9 +81,8 @@ bool TMRP_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
}
TMRP_mask::TMRP_mask(const char* name, int num)
: _calendar(NULL)
: TCalendar_mask(name, num), _calendar(NULL)
{
read_mask(name, num, 0);
set_handlers();
}

136
mr/mr0400.cpp Executable file
View File

@ -0,0 +1,136 @@
// Gestione parametri ditta MRP
#ifndef __CONFAPP_H
#include <confapp.h>
#endif
#include "mrplib.h"
#include "mr0400.h"
#define NTURNI 8
class TConf_MRP_mask : public TCalendar_mask
{
protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public:
TConf_MRP_mask(const char* name, int num = 0);
virtual ~TConf_MRP_mask();
};
bool TConf_MRP_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
return TRUE;
}
TConf_MRP_mask::TConf_MRP_mask(const char* name, int num)
: TCalendar_mask(name, num)
{
set_handlers();
}
TConf_MRP_mask::~TConf_MRP_mask()
{
}
//////////////////////////////////////////////////
// TConf_MRP_application
//////////////////////////////////////////////////
class TConf_MRP_application : public TConfig_application
{
TMRP_calendar* _calendar;
TCalendar_mask *_mask;
protected:
virtual TMask* get_mask() { return _mask; }
virtual TMask* create_mask(const TFilename& f) { return new TConf_MRP_mask(f); }
virtual void destroy_mask() { delete _mask; }
virtual void save_mask(bool tosave);
public:
virtual bool preprocess_config (TMask& mask, TConfig& config);
virtual bool postprocess_config (TMask& mask, TConfig& config);
virtual bool user_create();
virtual bool user_destroy();
TConf_MRP_application() : TConfig_application(CONFIG_DITTA) { _mask = NULL; _calendar = NULL;}
virtual ~TConf_MRP_application() {}
};
void TConf_MRP_application::save_mask(bool tosave)
{
if (tosave)
_calendar->write();
TConfig_application::save_mask(tosave);
}
bool TConf_MRP_application::preprocess_config (TMask& mask, TConfig& config)
{
TToken_string ora_inizio("",':');
for (int i = 0; i < NTURNI; i++)
{
// Traduce le ore ed i minuti
const short h = F_T1HINIZIO+(i*4);
ora_inizio = config.get("TINIZIO","mr", i);
mask.set(h,ora_inizio.get(0)); // Hour...
mask.set(h+1,ora_inizio.get(1)); // Minutes...
const long tdurata = config.get_long("TDURATA", "mr", i);
const int hours = (int)tdurata / 60; // numero di ore
const int minutes = (int)tdurata % 60; // numero di minuti
mask.set(h+2, hours);
mask.set(h+3, minutes);
}
//mask.set(F_GESTIMPIANTI, config.get_bool("GESTIMPIANTI", "mr"));
//mask.set(F_NTURNI, config.get_int("NTURNI", "mr"));
// Carica il calendario
TCalendar_field& cf = (TCalendar_field&)mask.field(F_CALENDAR);
cf.set_calendar(_calendar, mask.get_int(F_YEAR));
cf.win().force_update();
return TRUE;
}
bool TConf_MRP_application::postprocess_config (TMask& mask, TConfig& config)
{
TToken_string ora_inizio("",':');
for (int i = 0; i < NTURNI; i++)
{
// Traduce le ore ed i minuti
const short h = F_T1HINIZIO+(i*4);
ora_inizio.add(mask.get(h),0); // Hour...
ora_inizio.add(mask.get(h+1),1); // Minutes
config.set("TINIZIO",ora_inizio,"mr", TRUE, i);
const int durata_h = mask.get_int(h+2);
const int durata_m = mask.get_int(h+3);
const long minutes = durata_h * 60 + durata_m;
config.set("TDURATA", minutes, "mr", TRUE, i);
}
config.set("GESTIMPIANTI", mask.get_bool(F_GESTIMPIANTI), "mr");
config.set("NTURNI", mask.get_int(F_NTURNI), "mr");
return TRUE;
}
bool TConf_MRP_application::user_create()
{
TConfig conf(CONFIG_DITTA);
conf.set( "EdMask", "mr0400a", "mr");
_calendar = new TMRP_calendar(); // Calendario standard
return TRUE;
}
bool TConf_MRP_application::user_destroy()
{
if (_calendar)
delete _calendar;
return TRUE;
}
int mr0400(int argc, char* argv[])
{
TConf_MRP_application app;
app.run(argc, argv, "Parametri gestione MRP");
return 0;
}

44
mr/mr0400.h Executable file
View File

@ -0,0 +1,44 @@
#ifndef __MR0400_H
#define __MR0400_H
#define F_GESTIMPIANTI 101
#define F_NTURNI 102
#define F_T1HINIZIO 103
#define F_T1MINIZIO 104
#define F_T1HDURATA 105
#define F_T1MDURATA 106
#define F_T2HINIZIO 107
#define F_T2MINIZIO 108
#define F_T2HDURATA 109
#define F_T2MDURATA 110
#define F_T3HINIZIO 111
#define F_T3MINIZIO 112
#define F_T3HDURATA 113
#define F_T3MDURATA 114
#define F_T4HINIZIO 115
#define F_T4MINIZIO 116
#define F_T4HDURATA 117
#define F_T4MDURATA 118
#define F_T5HINIZIO 119
#define F_T5MINIZIO 120
#define F_T5HDURATA 121
#define F_T5MDURATA 122
#define F_T6HINIZIO 123
#define F_T6MINIZIO 124
#define F_T6HDURATA 125
#define F_T6MDURATA 126
#define F_T7HINIZIO 127
#define F_T7MINIZIO 128
#define F_T7HDURATA 129
#define F_T7MDURATA 130
#define F_T8HINIZIO 131
#define F_T8MINIZIO 132
#define F_T8HDURATA 133
#define F_T8MDURATA 134
#define F_YEAR 201
#define F_CALENDAR 202
#endif

319
mr/mr0400a.uml Executable file
View File

@ -0,0 +1,319 @@
#include "mr0400.h"
TOOLBAR "" 0 20 0 2
BUTTON DLG_OK 10 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
PAGE "Parametri ditta" -1 -1 65 15
BOOLEAN F_GESTIMPIANTI
BEGIN
PROMPT 2 2 "Gestione impianti "
FIELD GESTIMPIANTI
END
LISTBOX F_NTURNI 3
BEGIN
PROMPT 2 4 "Numero turni "
ITEM "1|1"
MESSAGE CLEAR, 28@
ITEM "2|2"
MESSAGE CLEAR, 38@|ENABLE,12@
ITEM "3|3"
MESSAGE CLEAR, 48@|ENABLE,13@
ITEM "4|4"
MESSAGE CLEAR, 58@|ENABLE,14@
ITEM "5|5"
MESSAGE CLEAR, 68@|ENABLE,15@
ITEM "6|6"
MESSAGE CLEAR, 78@|ENABLE,16@
ITEM "7|7"
MESSAGE CLEAR, 8@|ENABLE,17@
ITEM "8|8"
MESSAGE ENABLE,18@
FIELD NTURNI
END
NUMBER F_T1HINIZIO 2
BEGIN
PROMPT 2 5 "Ora inizio primo turno "
NUM_EXPR {(#THIS_FIELD <= 23)}
WARNING "Ora non valida"
END
NUMBER F_T1MINIZIO 2
BEGIN
PROMPT 30 5 ""
NUM_EXPR {(#THIS_FIELD <= 59)}
WARNING "Ora non valida"
END
NUMBER F_T1HDURATA 2
BEGIN
PROMPT 36 5 "Durata "
NUM_EXPR {(#THIS_FIELD <= 23)}
WARNING "Ora non valida"
END
NUMBER F_T1MDURATA 2
BEGIN
PROMPT 47 5 ""
NUM_EXPR {(#THIS_FIELD <= 59)}
WARNING "Ora non valida"
END
NUMBER F_T2HINIZIO 2
BEGIN
PROMPT 2 6 "Ora inizio secondo turno "
GROUP 2 12 13 14 15 16 17 18 28
NUM_EXPR {(#THIS_FIELD <= 23)}
WARNING "Ora non valida"
END
NUMBER F_T2MINIZIO 2
BEGIN
PROMPT 30 6 ""
GROUP 2 12 13 14 15 16 17 18 28
NUM_EXPR {(#THIS_FIELD <= 59)}
WARNING "Ora non valida"
END
NUMBER F_T2HDURATA 2
BEGIN
PROMPT 36 6 "Durata "
GROUP 2 12 13 14 15 16 17 18 28
NUM_EXPR {(#THIS_FIELD <= 23)}
WARNING "Ora non valida"
END
NUMBER F_T2MDURATA 2
BEGIN
PROMPT 47 6 ""
GROUP 2 12 13 14 15 16 17 18 28
NUM_EXPR {(#THIS_FIELD <= 59)}
WARNING "Ora non valida"
END
NUMBER F_T3HINIZIO 2
BEGIN
PROMPT 2 7 "Ora inizio terzo turno "
GROUP 3 13 14 15 16 17 18 28 38
NUM_EXPR {(#THIS_FIELD <= 23)}
WARNING "Ora non valida"
END
NUMBER F_T3MINIZIO 2
BEGIN
PROMPT 30 7 ""
GROUP 3 13 14 15 16 17 18 28 38
NUM_EXPR {(#THIS_FIELD <= 59)}
WARNING "Ora non valida"
END
NUMBER F_T3HDURATA 2
BEGIN
PROMPT 36 7 "Durata "
GROUP 3 13 14 15 16 17 18 28 38
NUM_EXPR {(#THIS_FIELD <= 23)}
WARNING "Ora non valida"
END
NUMBER F_T3MDURATA 2
BEGIN
PROMPT 47 7 ""
GROUP 3 13 14 15 16 17 18 28 38
NUM_EXPR {(#THIS_FIELD <= 59)}
WARNING "Ora non valida"
END
NUMBER F_T4HINIZIO 2
BEGIN
PROMPT 2 8 "Ora inizio quarto turno "
GROUP 4 14 15 16 17 18 28 38 48
NUM_EXPR {(#THIS_FIELD <= 23)}
WARNING "Ora non valida"
END
NUMBER F_T4MINIZIO 2
BEGIN
PROMPT 30 8 ""
GROUP 4 14 15 16 17 18 28 38 48
NUM_EXPR {(#THIS_FIELD <= 59)}
WARNING "Ora non valida"
END
NUMBER F_T4HDURATA 2
BEGIN
PROMPT 36 8 "Durata "
GROUP 4 14 15 16 17 18 28 38 48
NUM_EXPR {(#THIS_FIELD <= 23)}
WARNING "Ora non valida"
END
NUMBER F_T4MDURATA 2
BEGIN
PROMPT 47 8 ""
GROUP 4 14 15 16 17 18 28 38 48
NUM_EXPR {(#THIS_FIELD <= 59)}
WARNING "Ora non valida"
END
NUMBER F_T5HINIZIO 2
BEGIN
PROMPT 2 9 "Ora inizio quinto turno "
GROUP 5 15 16 17 18 28 38 48 58
NUM_EXPR {(#THIS_FIELD <= 23)}
WARNING "Ora non valida"
END
NUMBER F_T5MINIZIO 2
BEGIN
PROMPT 30 9 ""
GROUP 5 15 16 17 18 28 38 48 58
NUM_EXPR {(#THIS_FIELD <= 59)}
WARNING "Ora non valida"
END
NUMBER F_T5HDURATA 2
BEGIN
PROMPT 36 9 "Durata "
GROUP 5 15 16 17 18 28 38 48 58
NUM_EXPR {(#THIS_FIELD <= 23)}
WARNING "Ora non valida"
END
NUMBER F_T5MDURATA 2
BEGIN
PROMPT 47 9 ""
GROUP 5 15 16 17 18 28 38 48 58
NUM_EXPR {(#THIS_FIELD <= 59)}
WARNING "Ora non valida"
END
NUMBER F_T6HINIZIO 2
BEGIN
PROMPT 2 10 "Ora inizio sesto turno "
GROUP 6 16 17 18 28 38 48 58 68
NUM_EXPR {(#THIS_FIELD <= 23)}
WARNING "Ora non valida"
END
NUMBER F_T6MINIZIO 2
BEGIN
PROMPT 30 10 ""
GROUP 6 16 17 18 28 38 48 58 68
NUM_EXPR {(#THIS_FIELD <= 59)}
WARNING "Ora non valida"
END
NUMBER F_T6HDURATA 2
BEGIN
PROMPT 36 10 "Durata "
GROUP 6 16 17 18 28 38 48 58 68
NUM_EXPR {(#THIS_FIELD <= 23)}
WARNING "Ora non valida"
END
NUMBER F_T6MDURATA 2
BEGIN
PROMPT 47 10 ""
GROUP 6 16 17 18 28 38 48 58 68
NUM_EXPR {(#THIS_FIELD <= 59)}
WARNING "Ora non valida"
END
NUMBER F_T7HINIZIO 2
BEGIN
PROMPT 2 11 "Ora inizio settimo turno "
GROUP 7 17 18 28 38 48 58 68 78
NUM_EXPR {(#THIS_FIELD <= 23)}
WARNING "Ora non valida"
END
NUMBER F_T7MINIZIO 2
BEGIN
PROMPT 30 11 ""
GROUP 7 17 18 28 38 48 58 68 78
NUM_EXPR {(#THIS_FIELD <= 59)}
WARNING "Ora non valida"
END
NUMBER F_T7HDURATA 2
BEGIN
PROMPT 36 11 "Durata "
GROUP 7 17 18 28 38 48 58 68 78
NUM_EXPR {(#THIS_FIELD <= 23)}
WARNING "Ora non valida"
END
NUMBER F_T7MDURATA 2
BEGIN
PROMPT 47 11 ""
GROUP 7 17 18 28 38 48 58 68 78
NUM_EXPR {(#THIS_FIELD <= 59)}
WARNING "Ora non valida"
END
NUMBER F_T8HINIZIO 2
BEGIN
PROMPT 2 12 "Ora inizio ottavo turno "
GROUP 8 18 28 38 48 58 68 78
NUM_EXPR {(#THIS_FIELD <= 23)}
WARNING "Ora non valida"
END
NUMBER F_T8MINIZIO 2
BEGIN
PROMPT 30 12 ""
GROUP 8 18 28 38 48 58 68 78
NUM_EXPR {(#THIS_FIELD <= 59)}
WARNING "Ora non valida"
END
NUMBER F_T8HDURATA 2
BEGIN
PROMPT 36 12 "Durata "
GROUP 8 18 28 38 48 58 68 78
NUM_EXPR {(#THIS_FIELD <= 23)}
WARNING "Ora non valida"
END
NUMBER F_T8MDURATA 2
BEGIN
PROMPT 47 12 ""
GROUP 8 18 28 38 48 58 68 78
NUM_EXPR {(#THIS_FIELD <= 59)}
WARNING "Ora non valida"
END
ENDPAGE
PAGE "Calendario" -1 -1 65 15
NUMBER F_YEAR 4
BEGIN
PROMPT 1 1 "Anno "
FLAGS "AD"
END
CALENDAR F_CALENDAR -3 -1
BEGIN
PROMPT 0 2 ""
END
ENDPAGE
ENDMASK

View File

@ -475,4 +475,22 @@ void TCalendar_field::set_calendar(TMRP_calendar* cal, int year)
{
TCalendar_win& cw = (TCalendar_win&)win();
cw.set_calendar(cal, year);
}
}
///////////////////////////////////////////////////////////
// TCalendar_mask
///////////////////////////////////////////////////////////
TMask_field* TCalendar_mask::parse_field(TScanner& scanner)
{
const TString& k = scanner.key();
if (k == "CA")
return new TCalendar_field(this);
return TAutomask::parse_field(scanner);
}
TCalendar_mask::TCalendar_mask(const char* name, int num)
{
read_mask(name, num, 0);
}

View File

@ -1,8 +1,8 @@
#ifndef __MRPLIB_H
#define __MRPLIB_H
#ifndef __MASK_H
#include <mask.h>
#ifndef __AUTOMASK_H
#include <automask.h>
#endif
class TMRP_calendar : public TObject
@ -54,5 +54,13 @@ public:
virtual ~TCalendar_field() { }
};
class TCalendar_mask : public TAutomask
{
protected:
virtual TMask_field* parse_field(TScanner& scanner);
public:
TCalendar_mask(const char* name, int num = 0);
virtual ~TCalendar_mask() {};
};
#endif