Files correlati : Ricompilazione Demo : [ ] Commento : Aggiunta traduzione a i cespiti git-svn-id: svn://10.65.10.50/trunk@11114 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			191 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			191 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include <applicat.h>
 | 
						||
#include <automask.h>
 | 
						||
#include <form.h> 
 | 
						||
#include <printer.h>
 | 
						||
#include <recarray.h>
 | 
						||
 | 
						||
#include "celib.h" 
 | 
						||
#include "ce3400.h" 
 | 
						||
#include "ce3600a.h" 
 | 
						||
 | 
						||
#include "../cg/cglib01.h" 
 | 
						||
 | 
						||
#include "ammce.h" 
 | 
						||
#include "ammmv.h" 
 | 
						||
#include "cespi.h" 
 | 
						||
#include "movce.h" 
 | 
						||
 | 
						||
///////////////////////////////////////////////////////////
 | 
						||
// Main Form
 | 
						||
///////////////////////////////////////////////////////////
 | 
						||
 | 
						||
class TLM_form : public TCespi_list_form
 | 
						||
{ 
 | 
						||
  TCursor* _cur;
 | 
						||
  int _tiposit;
 | 
						||
 | 
						||
protected:
 | 
						||
  virtual TRelation* relation() const { return _cur->relation(); }
 | 
						||
  virtual TCursor* cursor() const { return _cur; }
 | 
						||
  virtual bool validate(TForm_item& fld, TToken_string& val);
 | 
						||
 | 
						||
public:
 | 
						||
  void set_cursor(TCursor& cur) { _cur = &cur; }
 | 
						||
  void set_testata(const TMask& m);
 | 
						||
  
 | 
						||
  TPrint_section& corpo() { return section('B', odd_page); }
 | 
						||
 | 
						||
  TLM_form();
 | 
						||
};
 | 
						||
 | 
						||
void TLM_form::set_testata(const TMask& m)
 | 
						||
{     
 | 
						||
  TCespi_list_form::set_testata(m);
 | 
						||
  _tiposit = m.get_int(F_SITUAZIONE);
 | 
						||
}
 | 
						||
 | 
						||
bool TLM_form::validate(TForm_item& fld, TToken_string& val)
 | 
						||
{             
 | 
						||
  const char* cmd = val.get(0);
 | 
						||
  if (stricmp(cmd, "_RIVGEN") == 0)
 | 
						||
  {
 | 
						||
    const TRectype& mov = relation()->curr();
 | 
						||
    fld.set(mov.get(_tiposit == 1 ? MOVCE_RIVGF : MOVCE_RIVGC)); 
 | 
						||
    return TRUE;
 | 
						||
  } 
 | 
						||
  return TCespi_list_form::validate(fld, val);
 | 
						||
}
 | 
						||
 | 
						||
TLM_form::TLM_form() : TCespi_list_form("ce3600a")
 | 
						||
{ }
 | 
						||
 | 
						||
///////////////////////////////////////////////////////////
 | 
						||
// Main Mask
 | 
						||
///////////////////////////////////////////////////////////
 | 
						||
 | 
						||
class TLM_mask : public TAutomask
 | 
						||
{
 | 
						||
protected:
 | 
						||
  virtual bool on_field_event(TOperable_field& f, TField_event e, long jolly);
 | 
						||
 | 
						||
public:
 | 
						||
  TLM_mask() : TAutomask("ce3600a") { }
 | 
						||
};
 | 
						||
 | 
						||
bool TLM_mask::on_field_event(TOperable_field& f, TField_event e, long jolly)
 | 
						||
{ 
 | 
						||
  bool ok = TRUE;
 | 
						||
  switch (f.dlg())
 | 
						||
  {
 | 
						||
  case F_CODCAT:
 | 
						||
  case F_D_CODCAT:
 | 
						||
    {
 | 
						||
      TDitta_cespiti& dc = ditta_cespiti();
 | 
						||
      ok = dc.on_category_event(f, e, jolly);
 | 
						||
    }
 | 
						||
    break;
 | 
						||
  default: break;
 | 
						||
  }
 | 
						||
  return ok;
 | 
						||
}
 | 
						||
 | 
						||
///////////////////////////////////////////////////////////
 | 
						||
// Main Application
 | 
						||
///////////////////////////////////////////////////////////
 | 
						||
 | 
						||
class TLM_app : public TSkeleton_application
 | 
						||
{
 | 
						||
  TLM_form* _form;
 | 
						||
  
 | 
						||
protected:
 | 
						||
  virtual void main_loop();
 | 
						||
  
 | 
						||
public:
 | 
						||
  void print_mov();
 | 
						||
};
 | 
						||
 | 
						||
void TLM_app::print_mov()
 | 
						||
{
 | 
						||
  TPrint_section& corpo = _form->corpo();
 | 
						||
  _form->print_section(corpo);
 | 
						||
}
 | 
						||
 | 
						||
void TLM_app::main_loop()
 | 
						||
{
 | 
						||
  TLM_mask m;
 | 
						||
  ditta_cespiti().init_mask(m);
 | 
						||
  while (m.run() != K_QUIT)
 | 
						||
  {
 | 
						||
    const int ese = m.get_int(F_ESERCIZIO);
 | 
						||
    const int gruppo = m.get_int(F_GRUPPO);
 | 
						||
    const TString4 specie = m.get(F_SPECIE);
 | 
						||
    ditta_cespiti().set_attivita(ese, gruppo, specie);
 | 
						||
    
 | 
						||
    const int tiposit = m.get_int(F_SITUAZIONE);
 | 
						||
    const int order = m.get_int(F_ORDINAMENTO);
 | 
						||
    const int codcat = m.get_int(F_CODCAT); 
 | 
						||
    const TString& codmov = m.get(F_TIPOMOV);
 | 
						||
    const TString& codimp = m.get(F_CODIMP);
 | 
						||
 | 
						||
    TLM_form form; _form = &form;
 | 
						||
  
 | 
						||
    TRelation rel(LF_MOVCE);    
 | 
						||
    
 | 
						||
    TString expr; 
 | 
						||
    expr << "IDCESPITE==IDCESPITE";
 | 
						||
    rel.add(LF_CESPI, expr);
 | 
						||
    expr << "|IDMOV==IDMOV|TPAMM==" << tiposit;
 | 
						||
    rel.add(LF_MOVAM, expr);
 | 
						||
    
 | 
						||
    const TRectype& cespi = rel.curr(LF_CESPI);
 | 
						||
    
 | 
						||
    TDate fromdate = m.get(F_FROM_DATE), todate = m.get(F_TO_DATE);
 | 
						||
    TString filter;
 | 
						||
    if (fromdate.ok())
 | 
						||
      filter << "(ANSI(" << MOVCE_DTMOV << ")>=\"" << fromdate.string(ANSI) << "\")";
 | 
						||
    if (todate.ok())
 | 
						||
    {
 | 
						||
      if (filter.not_empty()) filter << "&&";
 | 
						||
      filter << "(ANSI(" << MOVCE_DTMOV << ")<=\"" << todate.string(ANSI) << "\")";
 | 
						||
    }
 | 
						||
    if (codmov.not_empty())
 | 
						||
    {
 | 
						||
      if (filter.not_empty()) filter << "&&";
 | 
						||
      filter << '(' << MOVCE_CODMOV << "==\"" << codmov << "\")";
 | 
						||
    }
 | 
						||
    
 | 
						||
    const char* orderby = order == 1 ? "DTMOV|IDMOV" : "IDMOV";
 | 
						||
    TSorted_cursor cur(&rel, orderby, filter);
 | 
						||
    
 | 
						||
    const long items = cur.items();
 | 
						||
    if (items > 0)
 | 
						||
    {
 | 
						||
      cur.freeze();
 | 
						||
      form.set_cursor(cur);
 | 
						||
      form.set_testata(m);
 | 
						||
      printer().open();
 | 
						||
      for (cur = 0L; cur.pos() < items; ++cur)
 | 
						||
      {             
 | 
						||
        // Controllo qui la validit<69> per non incasinare il valutatore con stringhe e numeri
 | 
						||
        if (cespi.get_int(CESPI_CODCGRA) != gruppo || cespi.get(CESPI_CODSPA) != specie)
 | 
						||
          continue;
 | 
						||
        if (codcat > 0 && cespi.get_int(CESPI_CODCAT) != codcat)
 | 
						||
          continue;
 | 
						||
        if (codimp.not_empty() && cespi.get(CESPI_CODIMP) != codimp)
 | 
						||
          continue;
 | 
						||
 | 
						||
        print_mov();
 | 
						||
      }
 | 
						||
      printer().close();
 | 
						||
    }
 | 
						||
    xvt_statbar_set("");
 | 
						||
  }
 | 
						||
}
 | 
						||
 | 
						||
int ce3600(int argc, char* argv[])
 | 
						||
{
 | 
						||
  TLM_app app;
 | 
						||
  app.run(argc, argv, TR("Lista Movimenti"));
 | 
						||
  return 0;
 | 
						||
}
 |