Patch level : 10.0 856

Files correlati     : mr2.exe
Ricompilazione Demo : [ ]
Commento            :

Aggiunta funzionwe per spostare una cella o una colonna ad una certa data con F8 sulla cella


git-svn-id: svn://10.65.10.50/branches/R_10_00@21274 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2010-12-09 15:40:41 +00:00
parent b8aa565c09
commit 06c1fcbeae
4 changed files with 96 additions and 21 deletions

View File

@ -18,6 +18,8 @@
#include "mr2100a.h"
#include "mr2100c.h"
#define NODIST "NODIST"
///////////////////////////////////////////////////////////
// Utility
///////////////////////////////////////////////////////////
@ -1513,10 +1515,10 @@ int TMatResMask::add_order_line(long forn, const TMRP_line& line, int bucket)
} while (nref >= 0 /*&& q > ZERO*/);
if (line.final_product())
{
COLOR back;
COLOR fore;
COLOR back = NORMAL_BACK_COLOR;
COLOR fore = NORMAL_COLOR;
_sel_color.get_color("NODIST", back, fore);
_sel_color.get_color(NODIST, back, fore);
s.set_back_and_fore_color(back, fore, pos);
}
return pos;
@ -1681,7 +1683,7 @@ TMatResMask::TMatResMask() : TCalendar_mask("mr2100a"), _sel_color("mr2100a")
disable(F_NOIMP); // Forza l'ignoramento degli impianti
set(F_NOIMP, "X");
}
_sel_color.add_color_def("NODIST", TR("Art.pianificati senza distinta"), COLOR_YELLOW, COLOR_BLACK);
_sel_color.add_color_def(NODIST, TR("Art.pianificati senza distinta"), COLOR_YELLOW, COLOR_BLACK);
set_handler(F_DADATA, handle_interval);
set_handler(F_ADATA, handle_interval);

View File

@ -9,6 +9,9 @@
#include <urldefid.h>
#include <utility.h>
#define PROP "PROP"
#define CONST "CONST"
#include "../ve/veconf.h"
class TMSPCheck_mask : public TAutomask
@ -940,6 +943,7 @@ int TPlanning_mask::find_constr_row(TMSP_constraint& cons)
sf.disable_cell(sf.items()-1, -1);
//linea articolo (vuota)
TMSP_line line(cons);
line.fill_sheet_row(sf.row(-1), *this, "");
highlight_row(sf.items() - 1, special);
r = sf.items()-3+2; // vacca
@ -1182,7 +1186,7 @@ void TPlanning_mask::highlight_row(int row, bool on)
COLOR fore = NORMAL_COLOR;
if (on)
_sel_color.get_color("CONST", back, fore);
_sel_color.get_color(CONST, back, fore);
sfield(F_ARTICOLI).set_back_and_fore_color(back, fore, row);
}
@ -1193,10 +1197,10 @@ void TPlanning_mask::highlight(int row, int col, bool on, bool special)
COLOR fore = NORMAL_COLOR;
if (on)
_sel_color.get_color("PROP", back, fore);
_sel_color.get_color(PROP, back, fore);
else
if (special)
_sel_color.get_color("CONST", back, fore);
_sel_color.get_color(CONST, back, fore);
sfield(F_ARTICOLI).set_back_and_fore_color(back, fore, row, col);
}
@ -2116,7 +2120,7 @@ bool TPlanning_mask::load_MRP_lines(TMSP_mode mode, int level, int numriga)
is_second_level=(atoi(row->get(F_PRIORITA-FIRST_FIELD))>=prior);
else
is_second_level=(row->get_char(F_MASTERCODE-FIRST_FIELD)==MASTERCODE_CHAR);
skip = (level == 1 && !is_second_level) || (level == 2 && is_second_level);
skip = (level == 1 && !is_second_level) || (level == 2 && is_second_level );
}
if (!skip)
{
@ -3404,7 +3408,7 @@ bool TPlanning_mask::on_field_event(TOperable_field& o, TField_event e, long jol
case F_BUCKET28:
case F_BUCKET29:
case F_BUCKET30:
if (e == fe_magic)
if (e == fe_magic)
{
TMask m("mr2200g");
@ -3415,25 +3419,82 @@ bool TPlanning_mask::on_field_event(TOperable_field& o, TField_event e, long jol
TSheet_field& s = sfield(F_ARTICOLI);
const bool all = m.get_bool(F_ALL);
const short from_bucket = o.dlg();
const short to_bucket = (bucket(m.get_date(F_TODATE)) + 1) * 2 + F_BUCKET0;
const bool vincoli = m.get_bool(F_VINCOLI);
const bool pian = m.get_bool(F_PIAN);
const short from_id = o.dlg();
const short from_bucket = (from_id - F_BUCKET0) / 2;
const short from_col = s.cid2index(from_id);
const TDate to(m.get_date(F_TODATE));
const short to_bucket = bucket(to) + 1;
const short to_id = (to_bucket) * 2 + F_BUCKET0;
const short to_col = s.cid2index(to_id);
const int from_row = all ? 0 : s.selected();
const int to_row = all ? s.items() - 1 : s.selected();
for (int r = from_row; r <= to_row; r++)
{
TToken_string & row = s.row(r);
const real qtafrom(row.get(s.cid2index(from_bucket)));
real qtato(row.get(s.cid2index(to_bucket)));
if (!s.cell_disabled(r,F_BUCKET1-FIRST_FIELD))
{
if (pian)
{
const real qtafrom(row.get(from_col));
real qtato(row.get(to_col));
qtato += qtafrom;
row.add("", s.cid2index(from_bucket));
row.add(qtato.string(), s.cid2index(to_bucket));
row.add("", from_col);
row.add(qtato.string(), to_col);
s.update_mask(r);
}
if (vincoli)
{
real qta_vincoli;
TMSP_constraint *c = _constraints.find(s.row(r - 1));
if (c != NULL)
{
int items = c->rigarefs(from_bucket);
for (int rc = 0; rc < items; rc++)
{
TMRP_docref * rdr= c->rigaref(from_bucket,(int)rc);
if (rdr)
{
TDocumento doc('D', rdr->annodoc(), rdr->codnumdoc(), rdr->numdoc());
const int numrig = rdr->numrig();
qta_vincoli += rdr->qta_residua();
if (numrig > 0)
{
TRiga_documento & row = doc[rdr->numrig()];
row.put(RDOC_DATACONS, to);
}
else
doc.put(DOC_DATACONS, to);
doc.rewrite();
}
}
if (r > 1)
{
TToken_string & row_vincoli = s.row(r - 2);
real qtato(row_vincoli.get(to_col));
real qtafrom(row_vincoli.get(from_col));
qtafrom -= qta_vincoli;
qtato += qta_vincoli;
row_vincoli.add(qtafrom.string(), from_col);
row_vincoli.add(qtato.string(), to_col);
// s.update_mask(r - 2);
}
}
}
}
}
s.force_update();
}
else
else
if (e == fe_modify)
{
const TSheet_field& s = sfield(F_ARTICOLI);
@ -4054,8 +4115,8 @@ void TPlanning_mask::init()
// sfield(F_TESTE).disable();
load_profile();
_sel_color.add_color_def("PROP", TR("Nuove proposte"), COLOR_YELLOW, COLOR_BLACK);
_sel_color.add_color_def("CONST", TR("Vincoli speciali"), blend_colors(COLOR_WHITE, COLOR_YELLOW, 0.60), COLOR_BLACK);
_sel_color.add_color_def(PROP, TR("Nuove proposte"), COLOR_YELLOW, COLOR_BLACK);
_sel_color.add_color_def(CONST, TR("Vincoli speciali"), blend_colors(COLOR_WHITE, COLOR_YELLOW, 0.60), COLOR_BLACK);
TCalendar_field & cf = (TCalendar_field &) field(F_CALENDAR);

View File

@ -2,7 +2,9 @@
#define __MR2100G_H
#define F_TODATE 201
#define F_ALL 202
#define F_VINCOLI 202
#define F_PIAN 203
#define F_ALL 204
#endif

View File

@ -1,15 +1,25 @@
#include "mr2200g.h"
PAGE "Spostamento quantita'" -1 -1 76 8
PAGE "Spostamento quantita'" -1 -1 76 10
DATA F_TODATE
BEGIN
PROMPT 2 2 "Sposta al "
END
BOOLEAN F_VINCOLI
BEGIN
PROMPT 2 4 "Sposta i vincoli"
END
BOOLEAN F_PIAN
BEGIN
PROMPT 33 4 "Sposta il pianificato"
END
BOOLEAN F_ALL
BEGIN
PROMPT 2 4 "Sposta tutta la la colonna"
PROMPT 2 6 "Sposta tutta la la colonna"
END
BUTTON DLG_OK 10 2