Patch level :
Files correlati : mg3 Ricompilazione Demo : [ ] Commento : Migliorata efficienza form per stampe magazzino (Hardy) git-svn-id: svn://10.65.10.50/branches/R_10_00@22456 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									03e0d81fd3
								
							
						
					
					
						commit
						50b54d23ea
					
				@ -479,10 +479,13 @@ void TForm_item::send_message(
 | 
				
			|||||||
    if (form().message_add_enabled())
 | 
					    if (form().message_add_enabled())
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      const real n((cmd[0] == 'I') ? "1.0" : get());
 | 
					      const real n((cmd[0] == 'I') ? "1.0" : get());
 | 
				
			||||||
 | 
					      if (!n.is_zero())
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
        real r(des.get());
 | 
					        real r(des.get());
 | 
				
			||||||
        r += n;
 | 
					        r += n;
 | 
				
			||||||
        des.set(r.string());
 | 
					        des.set(r.string());
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
  } else if (cmd == "COPY") {
 | 
					  } else if (cmd == "COPY") {
 | 
				
			||||||
    des.set(get());
 | 
					    des.set(get());
 | 
				
			||||||
  } else if (cmd == "APPEND") {
 | 
					  } else if (cmd == "APPEND") {
 | 
				
			||||||
@ -565,7 +568,7 @@ bool TForm_item::do_message(int num)
 | 
				
			|||||||
      const TString80 cmd(msg.get());      // Get command
 | 
					      const TString80 cmd(msg.get());      // Get command
 | 
				
			||||||
      const TString80 id = msg.get();      // Get destination
 | 
					      const TString80 id = msg.get();      // Get destination
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      if (id.right(1) == "@")
 | 
					      if (id.ends_with("@"))
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        const byte group = atoi(id);
 | 
					        const byte group = atoi(id);
 | 
				
			||||||
        // Send the message to all fields in local and upper sections with the given group
 | 
					        // Send the message to all fields in local and upper sections with the given group
 | 
				
			||||||
@ -608,7 +611,7 @@ void TForm_item::send_message_to_group(const char * cmd,byte id,const TPrint_sec
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
bool TForm_item::update()
 | 
					bool TForm_item::update()
 | 
				
			||||||
{  
 | 
					{  
 | 
				
			||||||
  if (_prompt.right(1) == "#")
 | 
					  if (_prompt.ends_with("#"))
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    TString prompt(_prompt);
 | 
					    TString prompt(_prompt);
 | 
				
			||||||
    int i;
 | 
					    int i;
 | 
				
			||||||
@ -618,9 +621,9 @@ bool TForm_item::update()
 | 
				
			|||||||
    prompt.cut(i+1);
 | 
					    prompt.cut(i+1);
 | 
				
			||||||
    string_at(x(), _y, prompt);
 | 
					    string_at(x(), _y, prompt);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  else string_at(x(), _y, _prompt);
 | 
					  else 
 | 
				
			||||||
 | 
					    string_at(x(), _y, _prompt);
 | 
				
			||||||
  return TRUE;
 | 
					  return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void TForm_item::print_on(TToken_string& row)  const
 | 
					void TForm_item::print_on(TToken_string& row)  const
 | 
				
			||||||
@ -1528,7 +1531,7 @@ bool TForm_currency::update()
 | 
				
			|||||||
      {
 | 
					      {
 | 
				
			||||||
        const bool dotted = pic.empty() || pic.find('.') > 0;
 | 
					        const bool dotted = pic.empty() || pic.find('.') > 0;
 | 
				
			||||||
        v = curr.string(dotted);
 | 
					        v = curr.string(dotted);
 | 
				
			||||||
        if (pic.right(3) == "^^^")  // 770 only: to be improved
 | 
					        if (pic.ends_with("^^^"))  // 770 only: to be improved
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          const int dec = curr.decimals();
 | 
					          const int dec = curr.decimals();
 | 
				
			||||||
          if (dec == 0)
 | 
					          if (dec == 0)
 | 
				
			||||||
@ -1545,7 +1548,7 @@ bool TForm_currency::update()
 | 
				
			|||||||
    else
 | 
					    else
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      const TString& pic = picture();
 | 
					      const TString& pic = picture();
 | 
				
			||||||
      if (pic.right(1)[0] == '@')
 | 
					      if (pic.ends_with("@"))
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        TString80 v;
 | 
					        TString80 v;
 | 
				
			||||||
        const int w = width() - (_section->columnwise() ? _prompt.len() : 0);
 | 
					        const int w = width() - (_section->columnwise() ? _prompt.len() : 0);
 | 
				
			||||||
@ -3231,10 +3234,10 @@ bool TPrint_section::update_and_print(const sec_print_mode show_fields, bool new
 | 
				
			|||||||
    } 
 | 
					    } 
 | 
				
			||||||
    else 
 | 
					    else 
 | 
				
			||||||
    { 
 | 
					    { 
 | 
				
			||||||
      last_hpos=min(word(fi.y()-1), height());
 | 
					 | 
				
			||||||
      // found a subsection
 | 
					      // found a subsection
 | 
				
			||||||
      TForm_subsection& ss=(TForm_subsection & )fi;
 | 
					      TForm_subsection& ss=(TForm_subsection & )fi;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      last_hpos=min(word(fi.y()-1), height());
 | 
				
			||||||
      last_printed_row=print_rows(show_fields,last_printed_row,last_hpos);
 | 
					      last_printed_row=print_rows(show_fields,last_printed_row,last_hpos);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      // process subsection
 | 
					      // process subsection
 | 
				
			||||||
@ -3723,22 +3726,18 @@ bool TForm::print(
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
      if (height(t) > (word)pr.formlen())
 | 
					      if (height(t) > (word)pr.formlen())
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        TString s(TR("La lunghezza totale della sezione "));
 | 
					        TString s;
 | 
				
			||||||
 | 
					        s << TR("La lunghezza totale della sezione ");
 | 
				
			||||||
        switch ( t )
 | 
					        switch ( t )
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
        case odd_page:
 | 
					        case odd_page:   s << TR("standard"); break;
 | 
				
			||||||
          s << TR("standard"); break;
 | 
					        case even_page:  s << TR("pagine pari"); break;
 | 
				
			||||||
        case even_page:
 | 
					        case first_page: s << TR("prima pagina"); break;
 | 
				
			||||||
          s << TR("pagine pari"); break;
 | 
					        case last_page:  s << TR("ultima pagina"); break;
 | 
				
			||||||
        case first_page:
 | 
					        default: break;
 | 
				
			||||||
          s << TR("prima pagina"); break;
 | 
					 | 
				
			||||||
        case last_page:
 | 
					 | 
				
			||||||
          s << TR("ultima pagina"); break;
 | 
					 | 
				
			||||||
        default:
 | 
					 | 
				
			||||||
          break;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        s << TR(" eccede la lunghezza reale del foglio.");
 | 
					        s << TR(" eccede la lunghezza reale del foglio.");
 | 
				
			||||||
        message_box(s);
 | 
					        warning_box(s);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@ -4087,7 +4086,7 @@ bool TForm::validate(TForm_item &cf, TToken_string &s)
 | 
				
			|||||||
          TString fld(curr.left(poseq)); // preleva il nome del campo del form alla sinistra dell'uguale
 | 
					          TString fld(curr.left(poseq)); // preleva il nome del campo del form alla sinistra dell'uguale
 | 
				
			||||||
          const TString &dat= file->get(curr.mid(posrv)); // preleva il nome del campo del file alla destra dell'uguale e lo legge dal record
 | 
					          const TString &dat= file->get(curr.mid(posrv)); // preleva il nome del campo del file alla destra dell'uguale e lo legge dal record
 | 
				
			||||||
          if (fld[0]=='#') fld.ltrim(1);
 | 
					          if (fld[0]=='#') fld.ltrim(1);
 | 
				
			||||||
          if (fld.right(1)== "@")
 | 
					          if (fld.ends_with("@"))
 | 
				
			||||||
          { // se c'è la a-commerciale è un gruppo
 | 
					          { // se c'è la a-commerciale è un gruppo
 | 
				
			||||||
            if (fld.find("->") != -1)
 | 
					            if (fld.find("->") != -1)
 | 
				
			||||||
            { // se nel gruppo c'è la freccia si riferisce ad un'altra sezione
 | 
					            { // se nel gruppo c'è la freccia si riferisce ad un'altra sezione
 | 
				
			||||||
 | 
				
			|||||||
@ -47,8 +47,11 @@
 | 
				
			|||||||
#define MOV_DNDOC      "DNDOC"
 | 
					#define MOV_DNDOC      "DNDOC"
 | 
				
			||||||
#define MOV_DATAINC    "DATAINC"
 | 
					#define MOV_DATAINC    "DATAINC"
 | 
				
			||||||
#define MOV_LIQDIFF    "LIQDIFF"
 | 
					#define MOV_LIQDIFF    "LIQDIFF"
 | 
				
			||||||
#define MOV_CONTRATTO  "CONTRATTO"
 | 
					 | 
				
			||||||
#define MOV_MODPAG     "MODPAG"
 | 
					#define MOV_MODPAG     "MODPAG"
 | 
				
			||||||
 | 
					#define MOV_CONTRATTO  "CONTRATTO"
 | 
				
			||||||
 | 
					#define MOV_DATAFATT   "DATAFATT"
 | 
				
			||||||
 | 
					#define MOV_NUMFATT    "NUMFATT"
 | 
				
			||||||
 | 
					#define MOV_ANNOFE     "ANNOFE"
 | 
				
			||||||
#define MOV_CONTSEP    "CONTSEP"
 | 
					#define MOV_CONTSEP    "CONTSEP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define NUMREG_PROVVISORIO 999999L
 | 
					#define NUMREG_PROVVISORIO 999999L
 | 
				
			||||||
 | 
				
			|||||||
@ -96,7 +96,7 @@ public:
 | 
				
			|||||||
  bool write_enable() const { return _write_enable; }
 | 
					  bool write_enable() const { return _write_enable; }
 | 
				
			||||||
  void write_enable(bool we) { _write_enable = we; }
 | 
					  void write_enable(bool we) { _write_enable = we; }
 | 
				
			||||||
  TRectype& load_rec(TRectype& r, const TRectype& from) const;
 | 
					  TRectype& load_rec(TRectype& r, const TRectype& from) const;
 | 
				
			||||||
  const char* evaluate_expr(int j, const TLocalisamfile& to);
 | 
					  const char* evaluate_expr(int j, const TLocalisamfile& to) const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void print_on(TToken_string& out) const;
 | 
					  void print_on(TToken_string& out) const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -240,7 +240,7 @@ void TRelationdef::print_on(TToken_string& out) const
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const char* TRelationdef::evaluate_expr(int j, const TLocalisamfile& to)
 | 
					const char* TRelationdef::evaluate_expr(int j, const TLocalisamfile& to) const
 | 
				
			||||||
{             
 | 
					{             
 | 
				
			||||||
  const TRectype& rec = to.curr();
 | 
					  const TRectype& rec = to.curr();
 | 
				
			||||||
  TExpression& expr = (TExpression&)_exprs[j];
 | 
					  TExpression& expr = (TExpression&)_exprs[j];
 | 
				
			||||||
@ -663,7 +663,7 @@ int TRelation::position_rels(
 | 
				
			|||||||
    for (int j = 0; j < rd._fields.items(); j++) // for each field
 | 
					    for (int j = 0; j < rd._fields.items(); j++) // for each field
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      expr = rd.evaluate_expr(j, to);
 | 
					      expr = rd.evaluate_expr(j, to);
 | 
				
			||||||
      TFieldref& s = (TFieldref&) rd._fields[j];
 | 
					      const TFieldref& s = (const TFieldref&) rd._fields[j];
 | 
				
			||||||
      s.write(expr, furr);
 | 
					      s.write(expr, furr);
 | 
				
			||||||
    } // for each field
 | 
					    } // for each field
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -2060,9 +2060,14 @@ const char* TSorted_cursor::fill_sort_key(TString& k)
 | 
				
			|||||||
    int fld_len = f.len(frec);
 | 
					    int fld_len = f.len(frec);
 | 
				
			||||||
    // Converte in ANSI i campi data ed i sottocampi con una data!
 | 
					    // Converte in ANSI i campi data ed i sottocampi con una data!
 | 
				
			||||||
    if (fld_type == _datefld || (f.is_subfield() && TDate::isdate(sf)))
 | 
					    if (fld_type == _datefld || (f.is_subfield() && TDate::isdate(sf)))
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      if (sf.not_empty()) // Aggiunta del 17-10-2011 per efficienza stampe mg (ma potrebbe non andar bene!)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        const TDate d(sf);
 | 
					        const TDate d(sf);
 | 
				
			||||||
        sf.format("%08ld", d.date2ansi());
 | 
					        sf.format("%08ld", d.date2ansi());
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					        sf.spaces(8);
 | 
				
			||||||
      fld_type = _datefld;
 | 
					      fld_type = _datefld;
 | 
				
			||||||
      fld_len = 8;
 | 
					      fld_len = 8;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -2092,7 +2097,7 @@ bool TSorted_cursor::changed()
 | 
				
			|||||||
  {
 | 
					  {
 | 
				
			||||||
    rt = TCursor::changed();
 | 
					    rt = TCursor::changed();
 | 
				
			||||||
    if (!rt) rt=_is_changed_expr;
 | 
					    if (!rt) rt=_is_changed_expr;
 | 
				
			||||||
    _is_changed_expr = FALSE;
 | 
					    _is_changed_expr = false;
 | 
				
			||||||
  } 
 | 
					  } 
 | 
				
			||||||
  else         
 | 
					  else         
 | 
				
			||||||
    NFCHECK("Can't perform changed() while sorted cursor expression is not valid!");
 | 
					    NFCHECK("Can't perform changed() while sorted cursor expression is not valid!");
 | 
				
			||||||
@ -2964,12 +2969,12 @@ int TSortedfile::reread(TRectype& rec, word lockop)
 | 
				
			|||||||
  return 0;
 | 
					  return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
// @mfunc Legge il record (vedi <t TReclock> e <t TIsamop>)
 | 
					// @mfunc Legge il record (vedi <t TReclock> e <t TIsamop>)
 | 
				
			||||||
int TSortedfile::read(word op , word lockop )
 | 
					int TSortedfile::read(word op , word lockop )
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  return read(curr(),op,lockop);
 | 
					  return read(curr(),op,lockop);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// @mfunc Legge il record e lo copia in <p rec> (vedi <t TReclock> e <t TIsamop>)
 | 
					// @mfunc Legge il record e lo copia in <p rec> (vedi <t TReclock> e <t TIsamop>)
 | 
				
			||||||
int TSortedfile::read(TRectype& rec, word op , word lockop )
 | 
					int TSortedfile::read(TRectype& rec, word op , word lockop )
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
				
			|||||||
@ -752,8 +752,7 @@ public:
 | 
				
			|||||||
  // @cmember Indietreggia al record precedente
 | 
					  // @cmember Indietreggia al record precedente
 | 
				
			||||||
  virtual int operator --();
 | 
					  virtual int operator --();
 | 
				
			||||||
  // @cmember Ritorna TRUE se tabella
 | 
					  // @cmember Ritorna TRUE se tabella
 | 
				
			||||||
  virtual bool tab() const 
 | 
					  virtual bool tab() const { return false;}
 | 
				
			||||||
  { return FALSE;}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // @cmember Ritorna il record corrente del del file 
 | 
					  // @cmember Ritorna il record corrente del del file 
 | 
				
			||||||
  virtual TRectype& curr() const; 
 | 
					  virtual TRectype& curr() const; 
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user