Nelle stampe scadenzario/scaduto e' stata tolta la condizione di filtro
sui malefici TCursor_sheet_recno (nonche' vaporizzati). In compenso il filtro supplementare viene fatto nella preprocess_page(). Modifiche alla TSelection_ext_mask per farla funzionare anche con la selezione su LF_PCON per descrizione. (Non ancora completa). git-svn-id: svn://10.65.10.50/trunk@2229 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									55402f08db
								
							
						
					
					
						commit
						b2aa454ff0
					
				@ -80,7 +80,6 @@ class TStampaScadenzario : public TPrintapp
 | 
			
		||||
                _cur2, _cur3, _cur4, _cur41,                 // piu' avanti spiega tutto.
 | 
			
		||||
                _cur5, _cur6, _cur7;                          
 | 
			
		||||
  TSelection_ext_mask *_m;              
 | 
			
		||||
  //TBit_array    _cs;                                          TBit_array costruito da TSelectionMask
 | 
			
		||||
  TPartita      *_p;                                         // Oggetto partita corrente. Viene ricaricato ad ogni cambio partita,
 | 
			
		||||
                                                             // ovvero ogni volta che la rata corrente cambia i "connotati"
 | 
			
		||||
  TLocalisamfile *_caus, *_partite, *_pagsca;                // File delle causali, serve per reperire le descrizioni, nel caso non ci siano sul file parite
 | 
			
		||||
@ -174,35 +173,9 @@ bool filter_func(const TRelation *r)
 | 
			
		||||
  bool            rt      = FALSE;   // e' abilitato il flag; se non e' saldata va sempre bene. 
 | 
			
		||||
  TLocalisamfile* scad    = &(r->lfile(LF_SCADENZE));      
 | 
			
		||||
  bool            saldata = scad->get_bool(SCAD_PAGATA);
 | 
			
		||||
  TCursor_sheet_recno& cs = app()._m->cur_sheet();
 | 
			
		||||
  TCursor* c = cs.cursor();
 | 
			
		||||
  TRecnotype n;
 | 
			
		||||
  
 | 
			
		||||
  switch (app()._tipost)
 | 
			
		||||
  {
 | 
			
		||||
    case tutti:
 | 
			
		||||
      n=scad->recno();
 | 
			
		||||
    break;
 | 
			
		||||
    case clienti:
 | 
			
		||||
    case fornitori:
 | 
			
		||||
    {
 | 
			
		||||
      TLocalisamfile * clifo = &(r->lfile(LF_CLIFO));
 | 
			
		||||
      n=clifo->recno();
 | 
			
		||||
    }
 | 
			
		||||
    break;
 | 
			
		||||
    case altri:
 | 
			
		||||
    {
 | 
			
		||||
      TLocalisamfile * pcon = &(r->lfile(LF_PCON));
 | 
			
		||||
      n=pcon->recno();
 | 
			
		||||
    }
 | 
			
		||||
    default:
 | 
			
		||||
    break;
 | 
			
		||||
  }
 | 
			
		||||
  if (!saldata || (saldata && app()._ratesald))
 | 
			
		||||
  {
 | 
			
		||||
    // Questo dovrebbe fungere da filtro sulla selezione Cli/Fo - PConti - Scadenze.
 | 
			
		||||
    // Might It be a good idea?
 | 
			
		||||
    if (cs.rec_checked(n)) 
 | 
			
		||||
     rt=TRUE;
 | 
			
		||||
  }
 | 
			
		||||
  return rt;
 | 
			
		||||
@ -368,7 +341,9 @@ void TStampaScadenzario::calcola_pagamenti(real& imp_scad, int riga, int rata)
 | 
			
		||||
        break;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  totalep.normalize(); scdz.normalize();
 | 
			
		||||
  char norm = 'D';
 | 
			
		||||
  if (_tipost == fornitori) norm = 'A';
 | 
			
		||||
  totalep.normalize(norm); scdz.normalize(norm);
 | 
			
		||||
  _w_imp_pag = totalep.valore();
 | 
			
		||||
  imp_scad = scdz.valore();             
 | 
			
		||||
  real a,b;
 | 
			
		||||
@ -431,6 +406,16 @@ bool TStampaScadenzario::preprocess_page(int file, int counter)
 | 
			
		||||
  }                
 | 
			
		||||
  if (file == LF_SCADENZE && !_end_printed)
 | 
			
		||||
  {
 | 
			
		||||
    TCursor_sheet& cs = _m->cur_sheet(); // Sheet di selezione (CLI/FO/PCON)
 | 
			
		||||
    TCursor* c = cs.cursor();
 | 
			
		||||
    TRectype& rec = c->curr();
 | 
			
		||||
    if (_tipost == clienti || _tipost == fornitori)
 | 
			
		||||
      rec = current_cursor()->curr(LF_CLIFO);
 | 
			
		||||
    else
 | 
			
		||||
      if (_tipost == altri)
 | 
			
		||||
        rec = current_cursor()->curr(LF_PCON);
 | 
			
		||||
    if (!cs.checked(c->read(_isequal))) // Se non e' stato selezionato salta alla prossima scdz
 | 
			
		||||
      return FALSE;
 | 
			
		||||
    _descrizione->restart();
 | 
			
		||||
    if (scad_changed(tipoc,gruppo,conto,codcf,annop,nump))
 | 
			
		||||
    {
 | 
			
		||||
@ -779,14 +764,6 @@ bool TStampaScadenzario::set_print(int)
 | 
			
		||||
    _end_printed = FALSE;
 | 
			
		||||
    reset_files();
 | 
			
		||||
    reset_print();
 | 
			
		||||
    //TCursor_sheet& c = _m->cur_sheet();
 | 
			
		||||
    //const long items = c.items();
 | 
			
		||||
    //_cs.reset();
 | 
			
		||||
   // for (long i = 0; i < items; i++)
 | 
			
		||||
   // {   Now sets TBit_array for filter_func!!!
 | 
			
		||||
    //  if (c.checked(i))
 | 
			
		||||
    //    _cs.set(c.cursor()->recno(i));
 | 
			
		||||
    //}
 | 
			
		||||
    // Inizializza i membri necessari al calcolo totali nel caso sia stato scelto l'ordine
 | 
			
		||||
    // primario secondo la data di scadenza.
 | 
			
		||||
    if (_m->get_who() == 'P') _tipost = altri;
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										152
									
								
								sc/sc2201.cpp
									
									
									
									
									
								
							
							
						
						
									
										152
									
								
								sc/sc2201.cpp
									
									
									
									
									
								
							@ -22,9 +22,9 @@ TSelection_ext_mask::TSelection_ext_mask(const char* name) : TSelection_mask(nam
 | 
			
		||||
  _pcon_cur_k2 = new TCursor(_pcon_rel, "", 2);
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
  _pcon_sh_k1 = new TCursor_sheet_recno(_pcon_cur_k1, " |GRUPPO|CONTO|SOTTOCONTO|DESCR", "Selezione conti per gruppo/conto/sottoconto",
 | 
			
		||||
  _pcon_sh_k1 = new TCursor_sheet(_pcon_cur_k1, " |GRUPPO|CONTO|SOTTOCONTO|DESCR", "Selezione conti per gruppo/conto/sottoconto",
 | 
			
		||||
                                 "@1|Gruppo|Conto|Sottoconto|Descrizione@50");
 | 
			
		||||
  _pcon_sh_k2 = new TCursor_sheet_recno(_pcon_cur_k2, " |DESCR|GRUPPO|CONTO|SOTTOCONTO", "Selezione conti per descrizione",
 | 
			
		||||
  _pcon_sh_k2 = new TCursor_sheet(_pcon_cur_k2, " |DESCR|GRUPPO|CONTO|SOTTOCONTO", "Selezione conti per descrizione",
 | 
			
		||||
                                 "@1|Descrizione@50|Gruppo|Conto|Sottoconto");
 | 
			
		||||
 | 
			
		||||
  set_handler(SC_CLIFO,   rpcon_handler);  // Redefined handler...
 | 
			
		||||
@ -46,24 +46,22 @@ TSelection_ext_mask::~TSelection_ext_mask()
 | 
			
		||||
  delete _pcon_rel;
 | 
			
		||||
}             
 | 
			
		||||
 | 
			
		||||
TCursor_sheet_recno& TSelection_ext_mask::cur_sheet()
 | 
			
		||||
TCursor_sheet& TSelection_ext_mask::cur_sheet()
 | 
			
		||||
{             
 | 
			
		||||
  TCursor_sheet_recno* cs;
 | 
			
		||||
  TCursor_sheet* cs;
 | 
			
		||||
  if (get_key() == 1) cs = get_who() == 'P' ? _pcon_sh_k1 : NULL;
 | 
			
		||||
  else                cs = get_who() == 'P' ? _pcon_sh_k2 : NULL;
 | 
			
		||||
  
 | 
			
		||||
  if (get_who() != 'P')
 | 
			
		||||
    return TSelection_mask::cur_sheet();
 | 
			
		||||
  CHECK(cs, "Can't use a NULL TCursor_sheet_recno");
 | 
			
		||||
  CHECK(cs, "Can't use a NULL TCursor_sheet");
 | 
			
		||||
  return *cs;
 | 
			
		||||
}                 
 | 
			
		||||
 | 
			
		||||
void TSelection_ext_mask::reset_sheets()
 | 
			
		||||
{
 | 
			
		||||
  _pcon_sh_k1->uncheck(-1);
 | 
			
		||||
  _pcon_sh_k1->rec_uncheck(-1);
 | 
			
		||||
  _pcon_sh_k2->uncheck(-1);
 | 
			
		||||
  _pcon_sh_k2->rec_uncheck(-1);
 | 
			
		||||
  TSelection_mask::reset_sheets();
 | 
			
		||||
  reset(SC_PCONCODFR1);
 | 
			
		||||
  reset(SC_PCONCODFR2);
 | 
			
		||||
@ -73,13 +71,57 @@ void TSelection_ext_mask::reset_sheets()
 | 
			
		||||
  reset(SC_PCONCODTO3);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TSelection_ext_mask::select_pcon_range(int grf, int cof,long sof,int grt,int cot, long sot)
 | 
			
		||||
void TSelection_ext_mask::select_pcon_range(const char* des,int grt, int cot, long sot)
 | 
			
		||||
{
 | 
			
		||||
  TCursor_sheet_recno& c = cur_sheet();
 | 
			
		||||
  TCursor_sheet& c = cur_sheet();
 | 
			
		||||
  const long items = c.items();
 | 
			
		||||
  const int key = get_key();
 | 
			
		||||
  
 | 
			
		||||
  TCursor* crs = c.cursor();
 | 
			
		||||
  TRectype& rec = crs->file().curr();
 | 
			
		||||
  TString desl;
 | 
			
		||||
  rec.zero();
 | 
			
		||||
  rec.put(PCN_DESCR,des);
 | 
			
		||||
  const TRecnotype start = crs->read(_isgteq);
 | 
			
		||||
  int grf = rec.get_int(PCN_GRUPPO);
 | 
			
		||||
  int cof = rec.get_int(PCN_CONTO);
 | 
			
		||||
  long sof = rec.get_long(PCN_SOTTOCONTO);
 | 
			
		||||
  rec.zero();
 | 
			
		||||
  if (grt==0 && cot==0 && sot==0)      
 | 
			
		||||
  { 
 | 
			
		||||
     TToken_string& t = c.row(items-1);
 | 
			
		||||
     desl = t.get_int(1);
 | 
			
		||||
  }
 | 
			
		||||
  rec.put(PCN_DESCR,desl);
 | 
			
		||||
  TRectype recx(rec);
 | 
			
		||||
  TRecnotype end = crs->read(_isgteq);
 | 
			
		||||
  if (rec != recx) 
 | 
			
		||||
  {
 | 
			
		||||
    end--;
 | 
			
		||||
    (*crs)-=1;
 | 
			
		||||
  }
 | 
			
		||||
  grt = rec.get_int(PCN_GRUPPO);
 | 
			
		||||
  cot = rec.get_int(PCN_CONTO);
 | 
			
		||||
  sot = rec.get_long(PCN_SOTTOCONTO);
 | 
			
		||||
  c.uncheck(-1);
 | 
			
		||||
  for (long i = start; i <= end; i++)
 | 
			
		||||
    //if (!c.checked(i))
 | 
			
		||||
      c.check(i);
 | 
			
		||||
  set(SC_PCONCODFR1, grf);
 | 
			
		||||
  set(SC_PCONCODFR2, cof);
 | 
			
		||||
  set(SC_PCONCODFR3, sof);
 | 
			
		||||
  set(SC_PCONCODTO1, grt);
 | 
			
		||||
  set(SC_PCONCODTO2, cot);
 | 
			
		||||
  set(SC_PCONCODTO3, sot);
 | 
			
		||||
  set(SC_NSEL,    c.checked());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TSelection_ext_mask::select_pcon_range(int grf, int cof,long sof,int grt,int cot, long sot)
 | 
			
		||||
{
 | 
			
		||||
  TCursor_sheet& c = cur_sheet();
 | 
			
		||||
  const long items = c.items();
 | 
			
		||||
  const int key = get_key();
 | 
			
		||||
  
 | 
			
		||||
  long nsel = get_long(SC_NSEL);
 | 
			
		||||
  TCursor* crs = c.cursor();
 | 
			
		||||
  TRectype& rec = crs->file().curr();
 | 
			
		||||
  rec.zero();
 | 
			
		||||
@ -111,71 +153,70 @@ void TSelection_ext_mask::select_pcon_range(int grf, int cof,long sof,int grt,in
 | 
			
		||||
  grt = rec.get_int(PCN_GRUPPO);
 | 
			
		||||
  cot = rec.get_int(PCN_CONTO);
 | 
			
		||||
  sot = rec.get_long(PCN_SOTTOCONTO);
 | 
			
		||||
  c.uncheck(-1);
 | 
			
		||||
  for (long i = start; i <= end; i++)
 | 
			
		||||
  {
 | 
			
		||||
    if (!c.checked(i))
 | 
			
		||||
    {
 | 
			
		||||
    //if (!c.checked(i))
 | 
			
		||||
      c.check(i);
 | 
			
		||||
      c.rec_check(i);
 | 
			
		||||
      nsel++;
 | 
			
		||||
    }  
 | 
			
		||||
  }
 | 
			
		||||
  set(SC_PCONCODFR1, grf);
 | 
			
		||||
  set(SC_PCONCODFR2, cof);
 | 
			
		||||
  set(SC_PCONCODFR3, sof);
 | 
			
		||||
  set(SC_PCONCODTO1, grt);
 | 
			
		||||
  set(SC_PCONCODTO2, cot);
 | 
			
		||||
  set(SC_PCONCODTO3, sot);
 | 
			
		||||
  set(SC_NSEL,    nsel);
 | 
			
		||||
  set(SC_NSEL,    c.checked());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TSelection_ext_mask::set_pcon_limits()
 | 
			
		||||
{  
 | 
			
		||||
  int gf=0,gl=0,cf=0,cl=0;
 | 
			
		||||
  long sf=0,sl=0;
 | 
			
		||||
  long sf=0L,sl=0L;
 | 
			
		||||
  
 | 
			
		||||
  TCursor_sheet_recno& c = cur_sheet();
 | 
			
		||||
  TCursor_sheet& c = cur_sheet();
 | 
			
		||||
  const long items = c.items();
 | 
			
		||||
  const int key = get_key();
 | 
			
		||||
  bool found = FALSE;
 | 
			
		||||
  long first = -1, last = -1;
 | 
			
		||||
  long nsel = 0L;
 | 
			
		||||
  
 | 
			
		||||
  for (long i = 0; i < items && !found; i++) 
 | 
			
		||||
  // Ricerca veloce di estremi (vale solo su GR/CO/SO)
 | 
			
		||||
  for (long i = 0; i < items; i++) 
 | 
			
		||||
    if (c.checked(i))
 | 
			
		||||
    {
 | 
			
		||||
      TToken_string& t = c.row(i);
 | 
			
		||||
      gf = t.get_int(key);
 | 
			
		||||
      cf = t.get_int(key+1);
 | 
			
		||||
      sf = t.get_long(key+2);
 | 
			
		||||
      found = TRUE;
 | 
			
		||||
      if (first == -1)
 | 
			
		||||
        first = i;
 | 
			
		||||
      nsel ++;
 | 
			
		||||
    }
 | 
			
		||||
  if (found)  //Optimization... If nothing was found previously skip this test.
 | 
			
		||||
  {                                          
 | 
			
		||||
    found = FALSE;
 | 
			
		||||
    for (long j = (items-1); j >= 0 && !found; j--)
 | 
			
		||||
    {
 | 
			
		||||
  if (first != -1)  //Optimization... If nothing was found previously skip this test.
 | 
			
		||||
    for (long j = (items-1); j >= 0 ; j--)
 | 
			
		||||
      if (c.checked(j))
 | 
			
		||||
        if (last == -1)
 | 
			
		||||
        {
 | 
			
		||||
        TToken_string& t = c.row(j);
 | 
			
		||||
        gl = t.get_int(key);
 | 
			
		||||
        cl = t.get_int(key+1);
 | 
			
		||||
        sl = t.get_long(key+2);
 | 
			
		||||
        found = TRUE;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
          last = j;
 | 
			
		||||
          break;
 | 
			
		||||
        }
 | 
			
		||||
  if (first!= -1 && last != -1) // Something selected?
 | 
			
		||||
  {
 | 
			
		||||
    TToken_string fitem(c.row(first));
 | 
			
		||||
    TToken_string litem(c.row(last));
 | 
			
		||||
    gf = fitem.get_int(key);
 | 
			
		||||
    cf = fitem.get_int(key+1);
 | 
			
		||||
    sf = fitem.get_long(key+2);
 | 
			
		||||
    gl = litem.get_int(key);
 | 
			
		||||
    cl = litem.get_int(key+1);
 | 
			
		||||
    sl = litem.get_long(key+2);
 | 
			
		||||
    if (gf > gl || (gf==gl && cf > cl) || (gf==gl && cf==cl && sf>sl))
 | 
			
		||||
  {
 | 
			
		||||
    {     // Swap them...
 | 
			
		||||
      int t1 = gf,t2 = cf;long t3 = sf;
 | 
			
		||||
      gf=gl;cf=cl;sf=sl; 
 | 
			
		||||
      gl=t1;cl=t2;sl=t3;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  set(SC_PCONCODFR1, gf);
 | 
			
		||||
  set(SC_PCONCODFR2, cf);
 | 
			
		||||
  set(SC_PCONCODFR3, sf);
 | 
			
		||||
  set(SC_PCONCODTO1, gl);
 | 
			
		||||
  set(SC_PCONCODTO2, cl);
 | 
			
		||||
  set(SC_PCONCODTO3, sl);
 | 
			
		||||
  set(SC_NSEL,    c.checked());
 | 
			
		||||
  set(SC_NSEL,    nsel);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TSelection_ext_mask::bfrompcon_handler(TMask_field& f, KEY k)
 | 
			
		||||
@ -183,7 +224,7 @@ bool TSelection_ext_mask::bfrompcon_handler(TMask_field& f, KEY k)
 | 
			
		||||
  if (k == K_SPACE)
 | 
			
		||||
  {  
 | 
			
		||||
    TSelection_ext_mask& m = (TSelection_ext_mask&)f.mask();
 | 
			
		||||
    TCursor_sheet_recno& c = m.cur_sheet();
 | 
			
		||||
    TCursor_sheet& c = m.cur_sheet();
 | 
			
		||||
    const int key = m.get_key();
 | 
			
		||||
    c.disable_check();
 | 
			
		||||
    if (c.run() == K_ENTER)
 | 
			
		||||
@ -200,6 +241,9 @@ bool TSelection_ext_mask::bfrompcon_handler(TMask_field& f, KEY k)
 | 
			
		||||
      m.set(SC_PCONCODFR1, grf);
 | 
			
		||||
      m.set(SC_PCONCODFR2, cof);
 | 
			
		||||
      m.set(SC_PCONCODFR3, sof);
 | 
			
		||||
      if (m.get_key() == 2)
 | 
			
		||||
        m.select_pcon_range(t.get(1),grt,cot,sot);
 | 
			
		||||
      else
 | 
			
		||||
        m.select_pcon_range(grf,cof,sof,grt,cot,sot);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
@ -211,7 +255,7 @@ bool TSelection_ext_mask::btopcon_handler(TMask_field& f, KEY k)
 | 
			
		||||
  if (k == K_SPACE)
 | 
			
		||||
  {
 | 
			
		||||
    TSelection_ext_mask& m = (TSelection_ext_mask&)f.mask();
 | 
			
		||||
    TCursor_sheet_recno& c = m.cur_sheet();
 | 
			
		||||
    TCursor_sheet& c = m.cur_sheet();
 | 
			
		||||
    const int key = m.get_key();
 | 
			
		||||
    c.disable_check();
 | 
			
		||||
    if (c.run() == K_ENTER)
 | 
			
		||||
@ -222,12 +266,15 @@ bool TSelection_ext_mask::btopcon_handler(TMask_field& f, KEY k)
 | 
			
		||||
      grt =t.get_int(key);
 | 
			
		||||
      cot =t.get_int(key+1);
 | 
			
		||||
      sot =t.get_long(key+2);
 | 
			
		||||
      grf = m.get_int(SC_PCONCODTO1);
 | 
			
		||||
      cof = m.get_int(SC_PCONCODTO2);
 | 
			
		||||
      sof = m.get_long(SC_PCONCODTO3);
 | 
			
		||||
      m.set(SC_PCONCODFR1, grt);
 | 
			
		||||
      m.set(SC_PCONCODFR2, cot);
 | 
			
		||||
      m.set(SC_PCONCODFR3, sot);
 | 
			
		||||
      grf = m.get_int(SC_PCONCODFR1);
 | 
			
		||||
      cof = m.get_int(SC_PCONCODFR2);
 | 
			
		||||
      sof = m.get_long(SC_PCONCODFR3);
 | 
			
		||||
      m.set(SC_PCONCODTO1, grt);
 | 
			
		||||
      m.set(SC_PCONCODTO2, cot);
 | 
			
		||||
      m.set(SC_PCONCODTO3, sot);
 | 
			
		||||
      if (m.get_key() == 2)
 | 
			
		||||
        m.select_pcon_range(t.get(1),grt,cot,sot);
 | 
			
		||||
      else
 | 
			
		||||
        m.select_pcon_range(grf,cof,sof,grt,cot,sot);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
@ -300,7 +347,7 @@ bool TSelection_ext_mask::bselectpcon_handler(TMask_field& f, KEY k)
 | 
			
		||||
  if (k == K_SPACE)
 | 
			
		||||
  {
 | 
			
		||||
    TSelection_ext_mask& m = (TSelection_ext_mask&)f.mask();
 | 
			
		||||
    TCursor_sheet_recno& c = m.cur_sheet();
 | 
			
		||||
    TCursor_sheet& c = m.cur_sheet();
 | 
			
		||||
    c.enable_check();
 | 
			
		||||
    c.run();
 | 
			
		||||
    if (m.get_who() =='P')
 | 
			
		||||
@ -316,7 +363,10 @@ bool TSelection_ext_mask::rpcon_handler(TMask_field& f, KEY k)
 | 
			
		||||
  if (k == K_SPACE)
 | 
			
		||||
  {
 | 
			
		||||
    TSelection_ext_mask& m = (TSelection_ext_mask&)f.mask();
 | 
			
		||||
    m.set_who(f.get()[0]);
 | 
			
		||||
    char who = f.get()[0];
 | 
			
		||||
    m.set_who(who);
 | 
			
		||||
    if (who == 'P')
 | 
			
		||||
      m.set_key(1);
 | 
			
		||||
    m.reset_sheets();
 | 
			
		||||
  }
 | 
			
		||||
  return TRUE;
 | 
			
		||||
 | 
			
		||||
@ -11,11 +11,12 @@ class TSelection_ext_mask : public TSelection_mask
 | 
			
		||||
  TCursor* _pcon_cur_k1;
 | 
			
		||||
  TCursor* _pcon_cur_k2;
 | 
			
		||||
 
 | 
			
		||||
  TCursor_sheet_recno* _pcon_sh_k1;
 | 
			
		||||
  TCursor_sheet_recno* _pcon_sh_k2;
 | 
			
		||||
  TCursor_sheet* _pcon_sh_k1;
 | 
			
		||||
  TCursor_sheet* _pcon_sh_k2;
 | 
			
		||||
  
 | 
			
		||||
protected:  
 | 
			
		||||
  void select_pcon_range(int grf, int cof,long sof,int grt,int cot, long sot);
 | 
			
		||||
  void select_pcon_range(const char* des,int grt,int cot, long sot);
 | 
			
		||||
  void set_pcon_limits();
 | 
			
		||||
 | 
			
		||||
  virtual void reset_sheets();
 | 
			
		||||
@ -29,7 +30,7 @@ protected:
 | 
			
		||||
  static bool rsortpcon_handler(TMask_field& f, KEY k);
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
  virtual TCursor_sheet_recno& cur_sheet();     
 | 
			
		||||
  virtual TCursor_sheet& cur_sheet();     
 | 
			
		||||
 | 
			
		||||
  TSelection_ext_mask(const char* name); 
 | 
			
		||||
  virtual ~TSelection_ext_mask();
 | 
			
		||||
 | 
			
		||||
@ -70,7 +70,6 @@ class TStampaScaduto : public TPrintapp
 | 
			
		||||
  int           _cur1, _cur2,                            // Identificatori dei cursori di lavoro... 
 | 
			
		||||
                _cur3, _cur4;
 | 
			
		||||
 | 
			
		||||
  //TBit_array     _cs;
 | 
			
		||||
  TSelection_ext_mask *_m;
 | 
			
		||||
  TLocalisamfile *_scad,*_pagsca;
 | 
			
		||||
  tipo_st   _tipost;                                     // Tipo di stampa impostato
 | 
			
		||||
@ -118,29 +117,10 @@ inline TStampaScaduto& app() {return (TStampaScaduto&)main_app();}
 | 
			
		||||
bool fil_function(const TRelation *r)
 | 
			
		||||
{
 | 
			
		||||
  TLocalisamfile* part = &(r->lfile(LF_PARTITE));
 | 
			
		||||
  TRecnotype n;
 | 
			
		||||
  int nriga = part->get_int(PART_NRIGA);
 | 
			
		||||
  bool rt = FALSE;
 | 
			
		||||
  TCursor_sheet_recno& cs = app()._m->cur_sheet();
 | 
			
		||||
  TCursor* c = cs.cursor();
 | 
			
		||||
  
 | 
			
		||||
  switch (app()._tipost)
 | 
			
		||||
  {
 | 
			
		||||
    case clienti:
 | 
			
		||||
    case fornitori:
 | 
			
		||||
    {
 | 
			
		||||
      TLocalisamfile * clifo = &(r->lfile(LF_CLIFO));
 | 
			
		||||
      n=clifo->recno();
 | 
			
		||||
    }
 | 
			
		||||
    break;
 | 
			
		||||
    case altri:
 | 
			
		||||
    {
 | 
			
		||||
      TLocalisamfile * pcon = &(r->lfile(LF_PCON));
 | 
			
		||||
      n=pcon->recno();
 | 
			
		||||
    }
 | 
			
		||||
    default:break;
 | 
			
		||||
  }
 | 
			
		||||
  if (nriga == 1 && cs.rec_checked(n))
 | 
			
		||||
  if (nriga == 1)
 | 
			
		||||
    rt=TRUE;
 | 
			
		||||
  return rt;
 | 
			
		||||
}
 | 
			
		||||
@ -254,14 +234,16 @@ void TStampaScaduto::compute_all(TPartita& p)
 | 
			
		||||
        }
 | 
			
		||||
        if ((tipomov==3 || tipomov==5) && _tipost==clienti && _gcr!=0)
 | 
			
		||||
        {
 | 
			
		||||
          TDate data_pag(sum.get_date("DATAPAG")); // This will be PART_DATAPAG
 | 
			
		||||
          TDate data_pag(sum.get_date(PART_DATAPAG)); // This will be PART_DATAPAG
 | 
			
		||||
          int tipo_pag = rs.get_int(SCAD_TIPOPAG);
 | 
			
		||||
          if (tipo_pag!=1 && tipo_pag!=8 && tipo_pag!= 9 && data_pag.ok()) //Incasso tramite effetto
 | 
			
		||||
            if (data_pag >= _limbf && data_pag <= _limscad)
 | 
			
		||||
              bf += TImporto(sez,pg.get_real(field));
 | 
			
		||||
        }
 | 
			
		||||
      }          
 | 
			
		||||
      pag.normalize(); scd.normalize(); bf.normalize();
 | 
			
		||||
      char norm='D';  
 | 
			
		||||
      if (_tipost == fornitori) norm = 'A';
 | 
			
		||||
      pag.normalize(norm); scd.normalize(norm); bf.normalize(norm);
 | 
			
		||||
      real res,a,b; a = pag.valore(); b = scd.valore(); buonf = bf.valore();
 | 
			
		||||
      if (_uns > 0.0)  // Rettifica i pagamenti con i non assegnati
 | 
			
		||||
      {
 | 
			
		||||
@ -367,6 +349,17 @@ bool TStampaScaduto::preprocess_page(int file, int counter)
 | 
			
		||||
  
 | 
			
		||||
  if (file == LF_PARTITE)
 | 
			
		||||
  {
 | 
			
		||||
    TCursor_sheet& cs = _m->cur_sheet(); // Sheet di selezione (CLI/FO/PCON)
 | 
			
		||||
    TCursor* c = cs.cursor();
 | 
			
		||||
    TRectype& rec = c->curr();
 | 
			
		||||
    if (_tipost == clienti || _tipost == fornitori)
 | 
			
		||||
      rec = current_cursor()->curr(LF_CLIFO);
 | 
			
		||||
    else
 | 
			
		||||
      if (_tipost == altri)
 | 
			
		||||
        rec = current_cursor()->curr(LF_PCON);
 | 
			
		||||
    if (!cs.checked(c->read(_isequal))) // Se non e' stato selezionato salta alla prossima part
 | 
			
		||||
      return FALSE;
 | 
			
		||||
   
 | 
			
		||||
    int nriga = 1;
 | 
			
		||||
    if (_tipost == clienti || _tipost == fornitori)
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user