2Patch level : 12.0 972
Files correlati : cg1.exe cg1500a.msk cg1600a.msk Commento : Stampa bilanco e bilancio IV direttiva per data competenza costi/ricavi
This commit is contained in:
		
							parent
							
								
									759cc43b2b
								
							
						
					
					
						commit
						8824e41c1c
					
				@ -4,6 +4,7 @@
 | 
			
		||||
#include <modaut.h>
 | 
			
		||||
#include <tree.h>
 | 
			
		||||
#include <treectrl.h>
 | 
			
		||||
#include <utility.h>
 | 
			
		||||
#include <urldefid.h>
 | 
			
		||||
 | 
			
		||||
#include <mov.h>
 | 
			
		||||
@ -14,7 +15,7 @@
 | 
			
		||||
#include "calib01.h"
 | 
			
		||||
#include "calib02.h"
 | 
			
		||||
#include "calibmsk.h"
 | 
			
		||||
#include "../cg/cg2103.h"
 | 
			
		||||
#include "../cg/cglib.h"
 | 
			
		||||
 | 
			
		||||
#include "cdc.h"
 | 
			
		||||
#include "commesse.h"
 | 
			
		||||
@ -35,7 +36,7 @@ class TConfig_anal : public TConfig
 | 
			
		||||
  int _level;
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
  virtual const TString& get(const char* var, const char* section = NULL, int index = -1, const char* def = "");
 | 
			
		||||
  virtual const TString& get(const char* var, const char* section = nullptr, int index = -1, const char* def = "");
 | 
			
		||||
  TConfig_anal();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -46,7 +47,7 @@ TConfig_anal::TConfig_anal() : TConfig(CONFIG_DITTA, "ca"), _level(0)
 | 
			
		||||
  if (a.active(CIAUT)) _level |= 2;
 | 
			
		||||
 | 
			
		||||
  // Controllo se è veramente configurato il primo livello a CMS o CDC
 | 
			
		||||
  if (_level > 1 && TConfig::get("Level", NULL, 1).blank())
 | 
			
		||||
  if (_level > 1 && TConfig::get("Level", nullptr, 1).blank())
 | 
			
		||||
    _level = 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -88,11 +89,10 @@ const TString& TConfig_anal::get(const char* varname, const char* section, int i
 | 
			
		||||
 | 
			
		||||
TConfig& ca_config(bool force_reload)
 | 
			
		||||
{
 | 
			
		||||
  static TConfig_anal* cfg = NULL;
 | 
			
		||||
  if (cfg == NULL || force_reload)
 | 
			
		||||
  static TConfig_anal* cfg = nullptr;
 | 
			
		||||
  if (cfg == nullptr || force_reload)
 | 
			
		||||
  {
 | 
			
		||||
    if (cfg != NULL)
 | 
			
		||||
      delete cfg;
 | 
			
		||||
		SAFE_DELETE(cfg);
 | 
			
		||||
    cfg = new TConfig_anal;
 | 
			
		||||
  }
 | 
			
		||||
  return *cfg;
 | 
			
		||||
@ -275,12 +275,12 @@ TMultilevel_code_info::TMultilevel_code_info(int logicnum) : _logicnum(logicnum)
 | 
			
		||||
    int from = 1, to = 1;
 | 
			
		||||
    for (int level = 1; ; level++)
 | 
			
		||||
    {
 | 
			
		||||
      const TString& prompt = cfg.get(desvar, NULL, level);
 | 
			
		||||
      const TString& prompt = cfg.get(desvar, nullptr, level);
 | 
			
		||||
      if (prompt.blank())
 | 
			
		||||
        break;
 | 
			
		||||
      _prompt.add(prompt);
 | 
			
		||||
 | 
			
		||||
      const TString& picture = cfg.get(keyvar, NULL, level);
 | 
			
		||||
      const TString& picture = cfg.get(keyvar, nullptr, level);
 | 
			
		||||
      _picture.add(picture);
 | 
			
		||||
 | 
			
		||||
      const int keylen = picture.len();
 | 
			
		||||
@ -297,11 +297,14 @@ TMultilevel_code_info::TMultilevel_code_info(int logicnum) : _logicnum(logicnum)
 | 
			
		||||
 | 
			
		||||
const TMultilevel_code_info& ca_multilevel_code_info(int logicnum)
 | 
			
		||||
{
 | 
			
		||||
  static TArray* cache = NULL;
 | 
			
		||||
  if (cache == NULL)
 | 
			
		||||
  static TArray* cache = nullptr;
 | 
			
		||||
 | 
			
		||||
  if (cache == nullptr)
 | 
			
		||||
    cache = new TArray;
 | 
			
		||||
 | 
			
		||||
  TMultilevel_code_info* info = (TMultilevel_code_info*)cache->objptr(logicnum);
 | 
			
		||||
  if (info == NULL)
 | 
			
		||||
 | 
			
		||||
  if (info == nullptr)
 | 
			
		||||
  {
 | 
			
		||||
    info = new TMultilevel_code_info(logicnum);
 | 
			
		||||
    cache->add(info, logicnum);
 | 
			
		||||
@ -321,7 +324,8 @@ const TMultilevel_code_info* ca_multilevel_code_info_by_index(int level)
 | 
			
		||||
    if (_logicnum[0] < 0)
 | 
			
		||||
    {
 | 
			
		||||
	    TConfig& cfg = ca_config();
 | 
			
		||||
      const TString& lev1 = cfg.get("Level", NULL, 1);
 | 
			
		||||
      const TString& lev1 = cfg.get("Level", nullptr, 1);
 | 
			
		||||
 | 
			
		||||
      if (lev1.full())
 | 
			
		||||
      {
 | 
			
		||||
        const TMultilevel_code_info& fasi = ca_multilevel_code_info(LF_FASI);
 | 
			
		||||
@ -330,7 +334,7 @@ const TMultilevel_code_info* ca_multilevel_code_info_by_index(int level)
 | 
			
		||||
        if (fasi.parent() == _logicnum[k])
 | 
			
		||||
          _logicnum[++k] = LF_FASI;
 | 
			
		||||
 | 
			
		||||
        const TString& lev2 = cfg.get("Level", NULL, 2);
 | 
			
		||||
        const TString& lev2 = cfg.get("Level", nullptr, 2);
 | 
			
		||||
        if (lev2.full())
 | 
			
		||||
        {
 | 
			
		||||
          _logicnum[++k] = _logicnum[0] == LF_COMMESSE ? LF_CDC : LF_COMMESSE;
 | 
			
		||||
@ -344,7 +348,7 @@ const TMultilevel_code_info* ca_multilevel_code_info_by_index(int level)
 | 
			
		||||
	  logic = _logicnum[level];
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return logic > 0 ? &ca_multilevel_code_info(logic) : NULL;
 | 
			
		||||
  return logic > 0 ? &ca_multilevel_code_info(logic) : nullptr;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool ca_test_multilevel_field(TEdit_field& fld, int level)
 | 
			
		||||
@ -420,7 +424,7 @@ const char* ca_dollar2fieldname(int logic, const char* dollar)
 | 
			
		||||
    default        :  return FASI_CODFASE;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return NULL;
 | 
			
		||||
  return nullptr;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ca_append_and(TString& query, const TString& clause)
 | 
			
		||||
@ -452,7 +456,8 @@ static const TString& ca_get_user_permissions(const TString& utente, const int l
 | 
			
		||||
 | 
			
		||||
  if (ini_permessi.set_paragraph(utente))
 | 
			
		||||
  {
 | 
			
		||||
    const char* fieldname = NULL;
 | 
			
		||||
    const char* fieldname = nullptr;
 | 
			
		||||
 | 
			
		||||
	  switch (logic)
 | 
			
		||||
	  {
 | 
			
		||||
	  case LF_COMMESSE: fieldname = "Cms"; break;
 | 
			
		||||
@ -460,7 +465,7 @@ static const TString& ca_get_user_permissions(const TString& utente, const int l
 | 
			
		||||
	  case LF_FASI:		  fieldname = "Fas"; break;
 | 
			
		||||
	  default: break;
 | 
			
		||||
	  }
 | 
			
		||||
	  if (fieldname != NULL)
 | 
			
		||||
	  if (fieldname != nullptr)
 | 
			
		||||
	  {
 | 
			
		||||
		  const TString& expr = ini_permessi.get(fieldname);
 | 
			
		||||
      ca_append_and(select, expr);
 | 
			
		||||
@ -473,7 +478,7 @@ static const TString& ca_get_user_permissions(const TString& utente, const int l
 | 
			
		||||
      TToken_string row(80, SAFE_PIPE_CHR);
 | 
			
		||||
      for (int r = 0;; r++)
 | 
			
		||||
      {
 | 
			
		||||
        row = ini_permessi.get("Prog", NULL, r);
 | 
			
		||||
        row = ini_permessi.get("Prog", nullptr, r);
 | 
			
		||||
        if (row.blank())
 | 
			
		||||
          break;
 | 
			
		||||
        if (key == row.get(0))
 | 
			
		||||
@ -524,7 +529,8 @@ const TString& ca_create_user_select_clause(int logic)
 | 
			
		||||
{
 | 
			
		||||
  static TArray clauses;
 | 
			
		||||
  TString* clause = (TString*)clauses.objptr(logic);
 | 
			
		||||
  if (clause == NULL)
 | 
			
		||||
 | 
			
		||||
  if (clause == nullptr)
 | 
			
		||||
  {
 | 
			
		||||
    clause = new TString;
 | 
			
		||||
    switch (logic)
 | 
			
		||||
@ -579,7 +585,7 @@ bool ca_filter_record(const TRectype& rec)
 | 
			
		||||
 | 
			
		||||
bool ca_filter_function(const TRelation* rel)
 | 
			
		||||
{
 | 
			
		||||
  return rel != NULL && ca_filter_record(rel->curr());
 | 
			
		||||
  return rel != nullptr && ca_filter_record(rel->curr());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -837,13 +843,14 @@ int ca_create_fields(TMask& msk, int page, int logicnum, int x, int y,
 | 
			
		||||
      prompt.left_just(maxdeslen);
 | 
			
		||||
 | 
			
		||||
      const char* flags = picture[0] == '0' || picture[0] == '9' ? "BUZ" : "BU";
 | 
			
		||||
      TEdit_field* kfld = NULL;
 | 
			
		||||
      TEdit_field* kfld = nullptr;
 | 
			
		||||
 | 
			
		||||
      if (mci.is_numeric_picture(i))  // Numeric
 | 
			
		||||
        kfld = &msk.add_number(kid, page, prompt, tab0, y+i, picture.len(), flags);
 | 
			
		||||
      else
 | 
			
		||||
        kfld = &msk.add_string(kid, page, prompt, tab0, y+i, picture.len(), flags);
 | 
			
		||||
      ca_create_browse1(*kfld, i, logicnum, key_id, desc_in_sh && (i == mci.levels() - 1) ? key_id + mci.levels() - i : des_id);
 | 
			
		||||
      if ((mode & 0x1) != 0 && fieldname == NULL)
 | 
			
		||||
      if ((mode & 0x1) != 0 && fieldname == nullptr)
 | 
			
		||||
        kfld->set_key(1);
 | 
			
		||||
 | 
			
		||||
      // Ho specificato un nome di campo speciale
 | 
			
		||||
@ -872,7 +879,7 @@ int ca_create_fields(TMask& msk, int page, int logicnum, int x, int y,
 | 
			
		||||
      const short did = desc_in_sh && (i == mci.levels() - 1) ? key_id+mci.levels() : des_id+i;
 | 
			
		||||
      TEdit_field& dfld = msk.add_string(did, page, "", tab1, y+i, 50, "B", 72+tab0-tab1);
 | 
			
		||||
      ca_create_browse2(dfld, i, logicnum, key_id);
 | 
			
		||||
      if ((mode & 0x2) != 0 && fieldname == NULL)
 | 
			
		||||
      if ((mode & 0x2) != 0 && fieldname == nullptr)
 | 
			
		||||
        dfld.set_key(2);
 | 
			
		||||
      else
 | 
			
		||||
        dfld.set_field("");
 | 
			
		||||
@ -964,14 +971,14 @@ int ca_create_fields_compact(TMask& msk, int page, int logicnum, int x, int y,
 | 
			
		||||
 | 
			
		||||
			const char* flags = picture[0] == '0' || picture[0] == '9' ? "BUZG" : "BUG";
 | 
			
		||||
 | 
			
		||||
			TEdit_field* kfld = NULL;
 | 
			
		||||
			TEdit_field* kfld = nullptr;
 | 
			
		||||
 | 
			
		||||
			if (mci.is_numeric_picture(i))  // Numeric
 | 
			
		||||
        kfld = &msk.add_number(kid, page, prompt, tab0 + offset, y + row_offset, picture.len(), flags);
 | 
			
		||||
      else
 | 
			
		||||
        kfld = &msk.add_string(kid, page, prompt, tab0 + offset, y + row_offset, picture.len(), flags);
 | 
			
		||||
      ca_create_browse1(*kfld, i, logicnum, key_id, des_id);
 | 
			
		||||
      if ((mode & 0x1) != 0 && fieldname == NULL)
 | 
			
		||||
      if ((mode & 0x1) != 0 && fieldname == nullptr)
 | 
			
		||||
        kfld->set_key(1);
 | 
			
		||||
 | 
			
		||||
      // Ho specificato un nome di campo speciale
 | 
			
		||||
@ -995,7 +1002,7 @@ int ca_create_fields_compact(TMask& msk, int page, int logicnum, int x, int y,
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
      // Copio il checktype nel campo fantasma per colorare correttamente la colonna
 | 
			
		||||
      if (msk.get_sheet() != NULL && kfld->required())
 | 
			
		||||
      if (msk.get_sheet() != nullptr && kfld->required())
 | 
			
		||||
        msk.efield(kid-100).check_type(kfld->check_type()); 
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
@ -1010,7 +1017,7 @@ int ca_create_fields_compact(TMask& msk, int page, int logicnum, int x, int y,
 | 
			
		||||
      TEdit_field& dfld = (i < mci.levels() - 1) && (i != par_items -1) ? msk.add_string(did, page, "", 50, 50, 50, "B")
 | 
			
		||||
																																			  : msk.add_string(did, page, "", tab1, y + row_offset, 50, "B", 72+tab0-tab1);
 | 
			
		||||
      ca_create_browse2(dfld, i, logicnum, key_id);
 | 
			
		||||
      if ((mode & 0x2) != 0 && fieldname == NULL)
 | 
			
		||||
      if ((mode & 0x2) != 0 && fieldname == nullptr)
 | 
			
		||||
        dfld.set_key(2);
 | 
			
		||||
      else
 | 
			
		||||
        dfld.set_field("");
 | 
			
		||||
@ -1034,7 +1041,7 @@ int ca_create_fields_ext(TMask& m, int page, int x, int y, short first_id,
 | 
			
		||||
 | 
			
		||||
	for (int i = 0; i < 2; i++)
 | 
			
		||||
  {
 | 
			
		||||
    const TString& level = ini.get("Level", NULL, i+1);  // Legge il livello 1 o 2
 | 
			
		||||
    const TString& level = ini.get("Level", nullptr, i+1);  // Legge il livello 1 o 2
 | 
			
		||||
 | 
			
		||||
		if (level == "CDC" && cdc_fld && *cdc_fld)  // Crea centro di costo 
 | 
			
		||||
    {
 | 
			
		||||
@ -1117,7 +1124,7 @@ int ca_create_fields_ext(TMask& m, int page, int x, int y, short first_id,
 | 
			
		||||
    numero_campi += nfields;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (m.get_sheet() != NULL)  //Se è una maschera di riga, sistemo le colonne delle sheet
 | 
			
		||||
  if (m.get_sheet() != nullptr)  //Se è una maschera di riga, sistemo le colonne delle sheet
 | 
			
		||||
  {
 | 
			
		||||
    TSheet_field& s = *m.get_sheet();
 | 
			
		||||
    for (short id = first_id + 116; id >= first_id + 100; id--)
 | 
			
		||||
@ -1472,8 +1479,9 @@ bool TSimple_anal_msk::on_field_event(TOperable_field& o, TField_event e, long j
 | 
			
		||||
        const TTree_field& fld = (const TTree_field&)o;
 | 
			
		||||
        const TTree& tree = *fld.tree();
 | 
			
		||||
        TToken_string curr; tree.curr_id(curr);
 | 
			
		||||
        TEdit_field* last = NULL;
 | 
			
		||||
        for (int i = 0; ; i++)
 | 
			
		||||
        TEdit_field* last = nullptr;
 | 
			
		||||
        
 | 
			
		||||
				for (int i = 0; ; i++)
 | 
			
		||||
        {
 | 
			
		||||
          const short id = get_field_id(i);
 | 
			
		||||
          if (id <= 0)
 | 
			
		||||
@ -1488,7 +1496,7 @@ bool TSimple_anal_msk::on_field_event(TOperable_field& o, TField_event e, long j
 | 
			
		||||
          if (tok && *tok)
 | 
			
		||||
            last = &e;
 | 
			
		||||
        }
 | 
			
		||||
        if (last != NULL)
 | 
			
		||||
        if (last != nullptr)
 | 
			
		||||
        {
 | 
			
		||||
          if (last->check())
 | 
			
		||||
            stop_run(K_AUTO_ENTER);
 | 
			
		||||
@ -1658,7 +1666,8 @@ const TToken_string& TSimple_anal_msk::get_key_value(const TRectype& rec, int c)
 | 
			
		||||
const TToken_string& TSimple_anal_msk::get_key_value(int c) const
 | 
			
		||||
{
 | 
			
		||||
  TToken_string& val = get_tmp_string();
 | 
			
		||||
  for (TEditable_field* f = get_key_field(c, true); f != NULL; f = get_key_field(c, false))
 | 
			
		||||
 | 
			
		||||
  for (TEditable_field* f = get_key_field(c, true); f != nullptr; f = get_key_field(c, false))
 | 
			
		||||
  {
 | 
			
		||||
    val.add(f->get());
 | 
			
		||||
  }
 | 
			
		||||
@ -1780,8 +1789,9 @@ void TAnal_tree::node2id(const TObject* node, TString& id) const
 | 
			
		||||
bool TAnal_tree::goto_root()
 | 
			
		||||
{
 | 
			
		||||
	bool ok = false;
 | 
			
		||||
 | 
			
		||||
  //gestione speciale per le fasi con babbo
 | 
			
		||||
  if (_father_curs != NULL)
 | 
			
		||||
  if (_father_curs != nullptr)
 | 
			
		||||
  {
 | 
			
		||||
    if (_father_curs->items() > 0)
 | 
			
		||||
	  {
 | 
			
		||||
@ -2013,7 +2023,7 @@ TImage* TAnal_tree::image(bool selected) const
 | 
			
		||||
  return get_res_image(bmp_id);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TAnal_tree::TAnal_tree(int logicnum) : _curs(NULL), _father_curs(NULL), _is_father(false)
 | 
			
		||||
TAnal_tree::TAnal_tree(int logicnum) : _curs(nullptr), _father_curs(nullptr), _is_father(false)
 | 
			
		||||
{
 | 
			
		||||
	TString select;
 | 
			
		||||
  _curs = new TCursor(new TRelation(logicnum), ca_create_user_select_clause(logicnum));
 | 
			
		||||
@ -2170,10 +2180,8 @@ bool TAnal_app::remove()
 | 
			
		||||
 | 
			
		||||
bool TAnal_app::user_destroy()
 | 
			
		||||
{
 | 
			
		||||
  if (_msk != NULL)
 | 
			
		||||
    delete _msk;
 | 
			
		||||
  if (_rel != NULL)
 | 
			
		||||
    delete _rel;
 | 
			
		||||
	SAFE_DELETE(_msk);
 | 
			
		||||
	SAFE_DELETE(_rel);
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -2219,7 +2227,7 @@ const char * TAnal_mov::row_code(int row) const
 | 
			
		||||
  
 | 
			
		||||
	for (int i = 0; i < 2; i++)
 | 
			
		||||
  {
 | 
			
		||||
    const TString& level = cfg.get("Level", NULL, i+1);  // Legge il livello 1 o 2
 | 
			
		||||
    const TString& level = cfg.get("Level", nullptr, i+1);  // Legge il livello 1 o 2
 | 
			
		||||
 | 
			
		||||
    if (level == "CDC")                                  // Crea centro di costo 
 | 
			
		||||
    {
 | 
			
		||||
@ -2344,7 +2352,7 @@ void TAnal_mov::saldo_set_reset(const TRectype& row, bool reset)
 | 
			
		||||
      TImporto curr_imp(imp_row.sezione(), texaco.get());
 | 
			
		||||
      key.add(es, 1);   //sistema l'anno di esercizio nella chiave
 | 
			
		||||
      TImporto* imp = (TImporto*)_saldi.objptr(key);
 | 
			
		||||
      if (imp == NULL)
 | 
			
		||||
      if (imp == nullptr)
 | 
			
		||||
      {
 | 
			
		||||
        imp = new TImporto;
 | 
			
		||||
        _saldi.add(key, imp);
 | 
			
		||||
@ -2356,7 +2364,8 @@ void TAnal_mov::saldo_set_reset(const TRectype& row, bool reset)
 | 
			
		||||
			if (ca_ori_present(row))
 | 
			
		||||
			{
 | 
			
		||||
	      TImporto* impind = (TImporto*)_saldind.objptr(key);
 | 
			
		||||
				if (impind == NULL)
 | 
			
		||||
 | 
			
		||||
				if (impind == nullptr)
 | 
			
		||||
				{
 | 
			
		||||
					impind = new TImporto;
 | 
			
		||||
					_saldind.add(key, impind);
 | 
			
		||||
@ -2371,7 +2380,8 @@ void TAnal_mov::saldo_set_reset(const TRectype& row, bool reset)
 | 
			
		||||
  else  //saldo in un solo anno (caso standard)
 | 
			
		||||
  {
 | 
			
		||||
    TImporto* imp = (TImporto*)_saldi.objptr(key);
 | 
			
		||||
    if (imp == NULL)
 | 
			
		||||
 | 
			
		||||
    if (imp == nullptr)
 | 
			
		||||
    {
 | 
			
		||||
      imp = new TImporto;
 | 
			
		||||
      _saldi.add(key, imp);
 | 
			
		||||
@ -2383,7 +2393,8 @@ void TAnal_mov::saldo_set_reset(const TRectype& row, bool reset)
 | 
			
		||||
		if (ca_ori_present(row))
 | 
			
		||||
		{
 | 
			
		||||
      TImporto* impind = (TImporto*)_saldind.objptr(key);
 | 
			
		||||
			if (impind == NULL)
 | 
			
		||||
 | 
			
		||||
			if (impind == nullptr)
 | 
			
		||||
			{
 | 
			
		||||
				impind = new TImporto;
 | 
			
		||||
				_saldind.add(key, impind);
 | 
			
		||||
@ -2483,8 +2494,9 @@ bool TAnal_mov::save_saldi(const int annoes)
 | 
			
		||||
 | 
			
		||||
      if (err == NOERR)
 | 
			
		||||
      {
 | 
			
		||||
        const char* fld_sez = NULL;
 | 
			
		||||
        const char* fld_val = NULL;
 | 
			
		||||
        const char* fld_sez = nullptr;
 | 
			
		||||
        const char* fld_val = nullptr;
 | 
			
		||||
 | 
			
		||||
        switch (tipo)
 | 
			
		||||
        {
 | 
			
		||||
	        case 'P': fld_sez = SALDANA_SEZIONEP; fld_val = SALDANA_SALDOP; break;
 | 
			
		||||
@ -2500,7 +2512,7 @@ bool TAnal_mov::save_saldi(const int annoes)
 | 
			
		||||
				
 | 
			
		||||
				const TImporto * ind = (const TImporto*) _saldind.objptr(key);
 | 
			
		||||
 | 
			
		||||
				if (ind != NULL)
 | 
			
		||||
				if (ind != nullptr)
 | 
			
		||||
				{
 | 
			
		||||
					const TImporto& impind = *(const TImporto*)ind;
 | 
			
		||||
					switch (tipo)
 | 
			
		||||
@ -2671,7 +2683,8 @@ int TAnal_mov::save_rmov_comp() const
 | 
			
		||||
    {
 | 
			
		||||
      const TRectype* rmov_old = (TRectype*)itm;
 | 
			
		||||
      const TRectype* rmov_new = (TRectype*)new_rows.objptr(key);
 | 
			
		||||
      if (rmov_new == NULL)
 | 
			
		||||
 | 
			
		||||
      if (rmov_new == nullptr)
 | 
			
		||||
        rmov_old->remove(file);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
@ -3296,10 +3309,12 @@ bool ca_extract_sheet_field(const TSheet_field& sheet, const int row, const int
 | 
			
		||||
  FOR_EACH_MASK_FIELD(mask_sheet, i, f)   //giro sui campi della maschera di riga
 | 
			
		||||
  {
 | 
			
		||||
    const TFieldref* fr = f->field();     //campo corrente della maschera
 | 
			
		||||
    if (fr != NULL && f->is_edit())       //deve essere un campo di tipo edit
 | 
			
		||||
 | 
			
		||||
    if (fr != nullptr && f->is_edit())       //deve essere un campo di tipo edit
 | 
			
		||||
    {
 | 
			
		||||
      TEdit_field& e = *(TEdit_field*)f;   //visto che è di tipo edit può creare l'edit_field per farne la browse
 | 
			
		||||
      if (e.browse() != NULL)
 | 
			
		||||
 | 
			
		||||
      if (e.browse() != nullptr)
 | 
			
		||||
      {
 | 
			
		||||
        const TCursor& cur = *e.browse()->cursor();
 | 
			
		||||
        const int ln = cur.file().num();  //Allah! dal campo ricava il cursore sul file di numero ln
 | 
			
		||||
 | 
			
		||||
@ -13,8 +13,8 @@
 | 
			
		||||
#include <relapp.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef __CGLIB03_H
 | 
			
		||||
class TBill;
 | 
			
		||||
#ifndef __CGLIB_H
 | 
			
		||||
#include "../cg/cglib.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
class TRecordset ;
 | 
			
		||||
 | 
			
		||||
@ -4,6 +4,7 @@
 | 
			
		||||
 | 
			
		||||
#include <rdoc.h>
 | 
			
		||||
#include <pconti.h>
 | 
			
		||||
#include <utility.h>
 | 
			
		||||
 | 
			
		||||
#include "movana.h"
 | 
			
		||||
#include "pconana.h"
 | 
			
		||||
@ -263,7 +264,7 @@ bool TPconana_recordset::valid_record(const TRelation& rel) const
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
  
 | 
			
		||||
static const TPconana_recordset* _current_recset = NULL;
 | 
			
		||||
static const TPconana_recordset* _current_recset = nullptr;
 | 
			
		||||
 | 
			
		||||
bool TPconana_recordset::pianoconti_filter(const TRelation* rel)
 | 
			
		||||
{ return _current_recset->valid_record(*rel); }
 | 
			
		||||
@ -365,12 +366,13 @@ size_t TAnal_report::get_usr_words(TString_array& words) const
 | 
			
		||||
    "CA_FORMAT_CONTO",
 | 
			
		||||
    "CA_FORMAT_CMSCDC",
 | 
			
		||||
    "CA_FORMAT_CONTO_DESCR",
 | 
			
		||||
    NULL
 | 
			
		||||
		nullptr
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  ((TAnal_report*)this)->_first_msg = words.items(); // Calcola il primo numero disponibile
 | 
			
		||||
  size_t i; 
 | 
			
		||||
  for (i = 0; name[i] != NULL; i++)
 | 
			
		||||
 | 
			
		||||
  for (i = 0; name[i] != nullptr; i++)
 | 
			
		||||
    words.add(name[i]);
 | 
			
		||||
  
 | 
			
		||||
  return words.items();
 | 
			
		||||
@ -1125,13 +1127,11 @@ TSaldi_cache::TSaldi_cache() : TCache(3881)  // Numero primo
 | 
			
		||||
 | 
			
		||||
const TSaldanal& ca_saldo(const TAnal_bill& bill, const TDate& dal, const TDate& al, word tipi)
 | 
			
		||||
{
 | 
			
		||||
  static TSaldi_cache* cache = NULL;
 | 
			
		||||
  if (tipi == 0 && cache != NULL)
 | 
			
		||||
  {
 | 
			
		||||
    delete cache;
 | 
			
		||||
    cache = NULL;
 | 
			
		||||
  }
 | 
			
		||||
  if (cache == NULL)
 | 
			
		||||
  static TSaldi_cache* cache = nullptr;
 | 
			
		||||
 | 
			
		||||
  if (tipi == 0)
 | 
			
		||||
    SAFE_DELETE(cache);
 | 
			
		||||
  if (cache == nullptr)
 | 
			
		||||
    cache = new TSaldi_cache;
 | 
			
		||||
  return cache->saldo(bill, dal, al, tipi);
 | 
			
		||||
}
 | 
			
		||||
@ -1168,7 +1168,8 @@ int TAnal_report_mask::create_sheet_fields(short sheet_id, int lf, int& y, short
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const char* fieldname = NULL;
 | 
			
		||||
    const char* fieldname = nullptr;
 | 
			
		||||
 | 
			
		||||
    switch(logic)
 | 
			
		||||
    {
 | 
			
		||||
    case LF_CDC     : fieldname = RMOVANA_CODCCOSTO; break;
 | 
			
		||||
@ -1207,7 +1208,8 @@ void TAnal_report_mask::create_sheet(short sheet_id)
 | 
			
		||||
 | 
			
		||||
  for (int i = 0; i < 2; i++)
 | 
			
		||||
  {
 | 
			
		||||
    const TString& level = ini.get("Level", NULL, i+1);  // Legge il livello 1 o 2
 | 
			
		||||
    const TString& level = ini.get("Level", nullptr, i+1);  // Legge il livello 1 o 2
 | 
			
		||||
 | 
			
		||||
    if (level == "CDC")                                  // Crea centro di costo 
 | 
			
		||||
    {
 | 
			
		||||
      if (fasinfo.parent() == LF_CDC)
 | 
			
		||||
@ -1255,7 +1257,8 @@ int TAnal_report_mask::get_row_bill(TSheet_field& sf, int r, TAnal_bill& bill)
 | 
			
		||||
    for (int level = 0; level <= 2; level++)
 | 
			
		||||
    {
 | 
			
		||||
      const TMultilevel_code_info* info = ca_multilevel_code_info_by_index(level);
 | 
			
		||||
      if (info == NULL)
 | 
			
		||||
 | 
			
		||||
      if (info == nullptr)
 | 
			
		||||
        break;
 | 
			
		||||
      TString20 code;
 | 
			
		||||
      for (int i = 0; i < info->levels(); i++)
 | 
			
		||||
@ -1280,7 +1283,8 @@ int TAnal_report_mask::set_row_bill(TSheet_field& sf, int r, const TAnal_bill& b
 | 
			
		||||
  for (int level = 0; level <= 2; level++)
 | 
			
		||||
  {
 | 
			
		||||
    const TMultilevel_code_info* info = ca_multilevel_code_info_by_index(level);
 | 
			
		||||
    if (info == NULL)
 | 
			
		||||
 | 
			
		||||
    if (info == nullptr)
 | 
			
		||||
      break;
 | 
			
		||||
    TToken_string code;
 | 
			
		||||
    switch (info->logic())
 | 
			
		||||
 | 
			
		||||
@ -9,8 +9,8 @@
 | 
			
		||||
#include <report.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef __CGLIB01_H
 | 
			
		||||
#include "../cg/cglib01.h"
 | 
			
		||||
#ifndef __CGLIB_H
 | 
			
		||||
#include "../cg/cglib.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
///////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user