Patch level : 10.0 652
Files correlati : cg0.exe ve0. exe ve2.exe Ricompilazione Demo : [ ] Commento : Bug 0001567: Gruppi codice articoli avanzato 1)Nella codifica della composizione delle parti aggiungere la possibilità di variare le etichette a seconda della tipologia di materiale. 2) Rendere inoltre opzionale l'utilizzo o meno della descrizione del gruppo, nella costruzione automatica della descrizione dell'articolo(creazione codice guidato). Gli oggetti legati alle angarafiche non vengono salvati correttamente se vengono acquisti (copiati) Modifica a livello di liberia git-svn-id: svn://10.65.10.50/trunk@20161 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									94591f4f83
								
							
						
					
					
						commit
						0b4de4f0f5
					
				@ -419,6 +419,7 @@ bool TGolem_field::autosave(TRelation& r)
 | 
			
		||||
          {                
 | 
			
		||||
            char ext[_MAX_EXT];
 | 
			
		||||
            xvt_fsys_parse_pathname(new_file, NULL, NULL, NULL, ext, NULL);
 | 
			
		||||
			      golem_path << SLASH;
 | 
			
		||||
            old_file.temp(golem_path, ext);
 | 
			
		||||
 | 
			
		||||
            fcopy(new_file, old_file);
 | 
			
		||||
 | 
			
		||||
@ -1378,6 +1378,12 @@ const TFilename& TFilename::temp(
 | 
			
		||||
    mask.tempdir();
 | 
			
		||||
    if (prefix && *prefix)
 | 
			
		||||
    {
 | 
			
		||||
			bool has_path = false;
 | 
			
		||||
			for (const char *s = prefix; !has_path && *s; s++)
 | 
			
		||||
				has_path = *s ==':' || is_slash(*s);
 | 
			
		||||
			if (has_path)
 | 
			
		||||
				mask = prefix;
 | 
			
		||||
			else
 | 
			
		||||
      mask.add(prefix);
 | 
			
		||||
      mask << '*';
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -4,6 +4,7 @@
 | 
			
		||||
#define F_FORMLIV     103
 | 
			
		||||
#define F_CODGROUP    104
 | 
			
		||||
#define F_DESGROUP    105
 | 
			
		||||
#define F_ADDDESCR    106
 | 
			
		||||
#define F_ROOT        197
 | 
			
		||||
#define F_FORMAT      198
 | 
			
		||||
#define F_FORMATLEN   199
 | 
			
		||||
 | 
			
		||||
@ -91,6 +91,12 @@ BEGIN
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_ADDDESCR
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 65 5 "In descrizione"
 | 
			
		||||
  FIELD B0
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 75 10
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 6 "@bSottolivelli"
 | 
			
		||||
@ -155,8 +161,8 @@ BEGIN
 | 
			
		||||
  CHECKTYPE NORMAL
 | 
			
		||||
  GROUP 3
 | 
			
		||||
  FLAGS "GU"
 | 
			
		||||
  MESSAGE EMPTY CLEAR,F_CHILD3|CLEAR,F_SEPDES2|CLEAR,F_ORD2
 | 
			
		||||
  MESSAGE ENABLE,F_CHILD3|ENABLE,F_SEPDES2|ENABLE,F_ORD2
 | 
			
		||||
  MESSAGE EMPTY CLEAR,F_CHILD3|CLEAR,F_SEPDES2|CLEAR,F_ORD2|CLEAR,F_DESCR2
 | 
			
		||||
  MESSAGE ENABLE,F_CHILD3|ENABLE,F_SEPDES2|ENABLE,F_ORD2|ENABLE,F_DESCR2
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_FORMAT2 20 10
 | 
			
		||||
@ -169,7 +175,7 @@ END
 | 
			
		||||
STRING F_DESCR2 50 33
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 28 8 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
  FIELD S3[1,10]
 | 
			
		||||
  GROUP 3
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
@ -201,8 +207,8 @@ BEGIN
 | 
			
		||||
  CHECKTYPE NORMAL
 | 
			
		||||
  GROUP 3
 | 
			
		||||
  FLAGS "GU"
 | 
			
		||||
  MESSAGE EMPTY CLEAR,F_CHILD4|CLEAR,F_SEPDES3|CLEAR,F_ORD3
 | 
			
		||||
  MESSAGE ENABLE,F_CHILD4|ENABLE,F_SEPDES3|ENABLE,F_ORD3
 | 
			
		||||
  MESSAGE EMPTY CLEAR,F_CHILD4|CLEAR,F_SEPDES3|CLEAR,F_ORD3|CLEAR,F_DESCR3
 | 
			
		||||
  MESSAGE ENABLE,F_CHILD4|ENABLE,F_SEPDES3|ENABLE,F_ORD3|ENABLE,F_DESCR3
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_FORMAT3 20 10
 | 
			
		||||
@ -215,7 +221,7 @@ END
 | 
			
		||||
STRING F_DESCR3 50 33
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 28 9 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
  FIELD S3[11,20]
 | 
			
		||||
  GROUP 3
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
@ -247,22 +253,21 @@ BEGIN
 | 
			
		||||
  CHECKTYPE NORMAL
 | 
			
		||||
  GROUP 3
 | 
			
		||||
  FLAGS "GU"
 | 
			
		||||
  MESSAGE EMPTY CLEAR,F_CHILD5|CLEAR,F_SEPDES4|CLEAR,F_ORD4
 | 
			
		||||
  MESSAGE ENABLE,F_CHILD5|ENABLE,F_SEPDES4|ENABLE,F_ORD4
 | 
			
		||||
  MESSAGE EMPTY CLEAR,F_CHILD5|CLEAR,F_SEPDES4|CLEAR,F_ORD4|CLEAR,F_DESCR4
 | 
			
		||||
  MESSAGE ENABLE,F_CHILD5|ENABLE,F_SEPDES4|ENABLE,F_ORD4|ENABLE,F_DESCR4
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_FORMAT4 20 10
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 16 10 ""
 | 
			
		||||
  GROUP 319,2
 | 
			
		||||
  
 | 
			
		||||
  GROUP 3
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_DESCR4 50 33
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 28 10 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
  FIELD S3[21,30]
 | 
			
		||||
  GROUP 3
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
@ -270,7 +275,6 @@ STRING F_SEPDES4 6
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 62 10 "S."
 | 
			
		||||
  GROUP 3
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
  FIELD S2[19,24]
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
@ -294,8 +298,8 @@ BEGIN
 | 
			
		||||
  CHECKTYPE NORMAL
 | 
			
		||||
  GROUP 3
 | 
			
		||||
  FLAGS "GU"
 | 
			
		||||
  MESSAGE EMPTY CLEAR,F_CHILD6|CLEAR,F_SEPDES5|CLEAR,F_ORD5
 | 
			
		||||
  MESSAGE ENABLE,F_CHILD6|ENABLE,F_SEPDES5|ENABLE,F_ORD5
 | 
			
		||||
  MESSAGE EMPTY CLEAR,F_CHILD6|CLEAR,F_SEPDES5|CLEAR,F_ORD5|CLEAR,F_DESCR5
 | 
			
		||||
  MESSAGE ENABLE,F_CHILD6|ENABLE,F_SEPDES5|ENABLE,F_ORD5|ENABLE,F_DESCR5
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_FORMAT5 20 10
 | 
			
		||||
@ -308,7 +312,7 @@ END
 | 
			
		||||
STRING F_DESCR5 50 33
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 28 11 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
  FIELD S3[31,40]
 | 
			
		||||
  GROUP 3
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
@ -340,8 +344,8 @@ BEGIN
 | 
			
		||||
  CHECKTYPE NORMAL
 | 
			
		||||
  GROUP 3
 | 
			
		||||
  FLAGS "GU"
 | 
			
		||||
  MESSAGE EMPTY CLEAR,F_CHILD7|CLEAR,F_SEPDES6|CLEAR,F_ORD6
 | 
			
		||||
  MESSAGE ENABLE,F_CHILD7|ENABLE,F_SEPDES6|ENABLE,F_ORD6
 | 
			
		||||
  MESSAGE EMPTY CLEAR,F_CHILD7|CLEAR,F_SEPDES6|CLEAR,F_ORD6|CLEAR,F_DESCR6
 | 
			
		||||
  MESSAGE ENABLE,F_CHILD7|ENABLE,F_SEPDES6|ENABLE,F_ORD6|ENABLE,F_DESCR6
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_FORMAT6 20 10
 | 
			
		||||
@ -354,7 +358,7 @@ END
 | 
			
		||||
STRING F_DESCR6 50 33
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 28 12 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
  FIELD S3[41,50]
 | 
			
		||||
  GROUP 3
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
@ -386,8 +390,8 @@ BEGIN
 | 
			
		||||
  CHECKTYPE NORMAL
 | 
			
		||||
  GROUP 3
 | 
			
		||||
  FLAGS "GU"
 | 
			
		||||
  MESSAGE EMPTY CLEAR,F_CHILD8|CLEAR,F_SEPDES7|CLEAR,F_ORD7
 | 
			
		||||
  MESSAGE ENABLE,F_CHILD8|ENABLE,F_SEPDES7|ENABLE,F_ORD7
 | 
			
		||||
  MESSAGE EMPTY CLEAR,F_CHILD8|CLEAR,F_SEPDES7|CLEAR,F_ORD7|CLEAR,F_DESCR7
 | 
			
		||||
  MESSAGE ENABLE,F_CHILD8|ENABLE,F_SEPDES7|ENABLE,F_ORD7|ENABLE,F_DESCR7
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_FORMAT7 20 10
 | 
			
		||||
@ -400,7 +404,7 @@ END
 | 
			
		||||
STRING F_DESCR7 50 33
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 28 13 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
  FIELD S3[51,70]
 | 
			
		||||
  GROUP 3
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
@ -431,8 +435,8 @@ BEGIN
 | 
			
		||||
  FIELD S1[22,24]
 | 
			
		||||
  CHECKTYPE NORMAL
 | 
			
		||||
  GROUP 3
 | 
			
		||||
  MESSAGE EMPTY CLEAR,F_SEPDES8|CLEAR,F_ORD8
 | 
			
		||||
  MESSAGE ENABLE,F_SEPDES8|ENABLE,F_ORD8
 | 
			
		||||
  MESSAGE EMPTY CLEAR,F_SEPDES8|CLEAR,F_ORD8|CLEAR,F_DESCR8
 | 
			
		||||
  MESSAGE ENABLE,F_SEPDES8|ENABLE,F_ORD8|ENABLE,F_DESCR8
 | 
			
		||||
  FLAGS "GU"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
@ -446,7 +450,7 @@ END
 | 
			
		||||
STRING F_DESCR8 50 33
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 28 14 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
  FIELD S3[61,70]
 | 
			
		||||
  GROUP 3
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -32,7 +32,7 @@ static const TRectype& get_sublevel_info(const TString& code)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
///////////////////////////////////////////////////////////
 | 
			
		||||
// Maschera dianamica per inserimento codici
 | 
			
		||||
// Maschera dinamica per inserimento codici
 | 
			
		||||
///////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
class TCodart_mask : public TAutomask
 | 
			
		||||
@ -40,6 +40,8 @@ class TCodart_mask : public TAutomask
 | 
			
		||||
  static TCodice_articolo _restart;
 | 
			
		||||
	TString80 _children;
 | 
			
		||||
	TString80 _separators;
 | 
			
		||||
	TString80 _prompts;
 | 
			
		||||
	bool  		_add_descr;
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
  virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | 
			
		||||
@ -52,6 +54,7 @@ public:
 | 
			
		||||
  static void restart_with(const TString& cod) { _restart = cod; }
 | 
			
		||||
	const TString & get_descr_separator(const int level);
 | 
			
		||||
	int get_descr_order(const int level);
 | 
			
		||||
	const bool add_descr() { return _add_descr; }
 | 
			
		||||
  
 | 
			
		||||
  TCodart_mask();
 | 
			
		||||
};
 | 
			
		||||
@ -143,7 +146,14 @@ void TCodart_mask::create_level(int level, const TString& subcode)
 | 
			
		||||
  if (!fsa.empty())
 | 
			
		||||
  {
 | 
			
		||||
    const TString4 code = fsa.get("CODTAB"); // Puo' essere diverso da subcode!
 | 
			
		||||
    TString80 prompt = fsa.get("S0"); prompt.left_just(30);
 | 
			
		||||
    TString80 prompt = fsa.get("S0"); 
 | 
			
		||||
		if (level > 2)
 | 
			
		||||
		{
 | 
			
		||||
			TString16 gprompt = _prompts.mid((level - 3) * 10, 10);
 | 
			
		||||
			if (gprompt.blank() || !gprompt.starts_with(gprompt))
 | 
			
		||||
				prompt = gprompt;	
 | 
			
		||||
		}
 | 
			
		||||
		prompt.left_just(30);
 | 
			
		||||
    const TString& picture = fsa.get("S1");
 | 
			
		||||
    const int length = picture.len();
 | 
			
		||||
 | 
			
		||||
@ -186,6 +196,8 @@ bool TCodart_mask::build_children()
 | 
			
		||||
  // Non usare qui un TString& children, altrimenti  cambia sul piu' bello!
 | 
			
		||||
	_children = cache().get("GSA", code, "S1");
 | 
			
		||||
	_separators = cache().get("GSA", code, "S2");
 | 
			
		||||
	_prompts = cache().get("GSA", code, "S3");
 | 
			
		||||
	_add_descr = cache().get("GSA", code, "B0").full();
 | 
			
		||||
  
 | 
			
		||||
  // Affetto la stringona S1 in sottocodici da 3 caratteri l'uno
 | 
			
		||||
  for (int i = 0; i < 9; i++)
 | 
			
		||||
@ -237,19 +249,21 @@ bool advanced_codart_ask(TString& code, TString& desc)
 | 
			
		||||
			{
 | 
			
		||||
				int ord = 1000;
 | 
			
		||||
				int el = -1;
 | 
			
		||||
				for (id = 101; m.id2pos(id) >= 0; id++)
 | 
			
		||||
				const int start_id = m.add_descr() ? 101 : 102;
 | 
			
		||||
 | 
			
		||||
				for (id = start_id; m.id2pos(id) >= 0; id++)
 | 
			
		||||
				{
 | 
			
		||||
					if (order[id - 101] < ord)
 | 
			
		||||
					if (order[id - start_id] < ord)
 | 
			
		||||
					{
 | 
			
		||||
						el = id - 101;
 | 
			
		||||
						el = id - start_id;
 | 
			
		||||
						ord = order[el];
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
				if (el >= 0)
 | 
			
		||||
				{
 | 
			
		||||
					const int dlg = el + 101;
 | 
			
		||||
					const int dlg = el + start_id;
 | 
			
		||||
					order[el] = 1001;
 | 
			
		||||
					if (dlg > 101)
 | 
			
		||||
					if (dlg > start_id)
 | 
			
		||||
						desc <<	m.get_descr_separator(el);
 | 
			
		||||
					desc << esc(m.get(dlg + 100));
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user