Patch level :10.0
Files correlati : Ricompilazione Demo : [ ] Commento :continuano le peripezie sulla gestione multilistini git-svn-id: svn://10.65.10.50/trunk@19376 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									685c5e3ed1
								
							
						
					
					
						commit
						c0240eae36
					
				@ -295,9 +295,15 @@ int TVendite_tabapp::read(TMask& m)
 | 
			
		||||
      }
 | 
			
		||||
                 
 | 
			
		||||
      listini.destroy();
 | 
			
		||||
      //questo serve per settare il separatore in modo che non mandi in confusione l'editor degli archivi..
 | 
			
		||||
      //..separator è definito nella maschera
 | 
			
		||||
      TToken_string stringhina(16, listini.separator());
 | 
			
		||||
      FOR_EACH_TOKEN(stringona, str)
 | 
			
		||||
      {
 | 
			
		||||
        listini.row(-1) = str;
 | 
			
		||||
        stringhina = str;
 | 
			
		||||
        if (stringhina.find('|') >= 0)    //converte eventuali pipe standard in broken pipe
 | 
			
		||||
          stringhina.replace('|', stringhina.separator());
 | 
			
		||||
        listini.row(-1) = stringhina;
 | 
			
		||||
        listini.check_row(listini.items() - 1);
 | 
			
		||||
      }
 | 
			
		||||
      listini.force_update();
 | 
			
		||||
@ -332,7 +338,7 @@ void TVendite_tabapp::write_gmc(const TMask& m, TRectype& curr)
 | 
			
		||||
  TToken_string s1(70, ';'), s2(70, ';');
 | 
			
		||||
  FOR_EACH_SHEET_ROW (listini, r, riga)
 | 
			
		||||
  {
 | 
			
		||||
    TToken_string mini_string(12, '|');
 | 
			
		||||
    TToken_string mini_string(12, SAFE_PIPE_CHR);   //separatore broken_pipe !!!
 | 
			
		||||
    mini_string.add(riga->get(0));      //catven
 | 
			
		||||
    mini_string.add(riga->get());       //codlis
 | 
			
		||||
    mini_string.add(riga->get());       //ricarico
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										239
									
								
								ve/ve2700.cpp
									
									
									
									
									
								
							
							
						
						
									
										239
									
								
								ve/ve2700.cpp
									
									
									
									
									
								
							@ -4,6 +4,7 @@
 | 
			
		||||
#include <recarray.h>
 | 
			
		||||
#include <recset.h>
 | 
			
		||||
#include <relapp.h>
 | 
			
		||||
#include <tabutil.h>
 | 
			
		||||
 | 
			
		||||
#include "condv.h"
 | 
			
		||||
#include "rcondv.h"
 | 
			
		||||
@ -19,14 +20,145 @@ class TAggiorna_listini_edit_mask : public TAutomask
 | 
			
		||||
  TMask* _query_mask; //puntatore alla maschera di query
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
  void fill_children_list();
 | 
			
		||||
  void fill_ricarichi_children_list();
 | 
			
		||||
  void save_children_list();
 | 
			
		||||
  void fill_aggiorna_sheet();
 | 
			
		||||
  virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
  TAggiorna_listini_edit_mask(TMask* query_mask);
 | 
			
		||||
  void aggiorna_listini_figli();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//metodo per riempire lo sheet dei listini figli con i ricarichi oggi tanto di moda 
 | 
			
		||||
void TAggiorna_listini_edit_mask::fill_ricarichi_children_list()
 | 
			
		||||
{
 | 
			
		||||
  TString8 grmerc;
 | 
			
		||||
  grmerc.format("%-3s%-2s", (const char*)get(F_GRMERC),(const char*)get(F_SOTGRMERC));
 | 
			
		||||
  const TRectype& rec_gmc = cache().get("GMC", grmerc);
 | 
			
		||||
  TToken_string lista_listini(rec_gmc.get("S1"), ';');
 | 
			
		||||
  //se trova qualcosa nella lista listini collegati al grmerc...
 | 
			
		||||
  if (lista_listini.full())
 | 
			
		||||
  {
 | 
			
		||||
    lista_listini.trim();
 | 
			
		||||
    //se la lista di listini riempie il campo S1, magari continua in S2...
 | 
			
		||||
    if (lista_listini.len() == 70)
 | 
			
		||||
    {
 | 
			
		||||
      lista_listini.add(rec_gmc.get("S2"));
 | 
			
		||||
      lista_listini.trim();
 | 
			
		||||
    }
 | 
			
		||||
    //cerca se i listini trovati in GMC ci sono anche nello sheet dei figli
 | 
			
		||||
    TSheet_field& sf_righe = sfield(F_LISTINI_FIGLI);
 | 
			
		||||
    const int righe_sheet = sf_righe.items();
 | 
			
		||||
 | 
			
		||||
    FOR_EACH_STR_TOKEN(lista_listini, str)
 | 
			
		||||
    {
 | 
			
		||||
      //controlla se il listino in grmerc (chiave) esiste in una delle righe dello sheet dei figli
 | 
			
		||||
      TToken_string chiave(str, SAFE_PIPE_CHR);
 | 
			
		||||
      TString4 catven = chiave.get(0);
 | 
			
		||||
      catven.trim();
 | 
			
		||||
      TString4 codlis = chiave.get(1);
 | 
			
		||||
      codlis.trim();
 | 
			
		||||
 | 
			
		||||
      FOR_EACH_SHEET_ROW(sf_righe, i, row)
 | 
			
		||||
      {
 | 
			
		||||
        TString4 sh_catven = row->get(0);
 | 
			
		||||
        sh_catven.trim();
 | 
			
		||||
        TString4 sh_codlis = row->get(1);
 | 
			
		||||
        sh_codlis.trim();
 | 
			
		||||
        //se incredibilmente trova il listino di grmerc tra i figli prigionieri nello sheet setta il ricarico
 | 
			
		||||
        if (catven == sh_catven && codlis == sh_codlis)
 | 
			
		||||
          row->add(chiave.get(2), 2);
 | 
			
		||||
      } //FOR_EACH_SHEETT_ROW(...
 | 
			
		||||
 | 
			
		||||
    } //FOR_EACH_STR_TOKEN
 | 
			
		||||
    sf_righe.force_update();
 | 
			
		||||
  } //if(lista_listini.full...
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//metodo per il salvataggio dei ricarichi sulla tabella GMC dei gruppi merceologici
 | 
			
		||||
void TAggiorna_listini_edit_mask::save_children_list()
 | 
			
		||||
{
 | 
			
		||||
  TString8 grmerc;
 | 
			
		||||
  grmerc.format("%-3s%-2s", (const char*)get(F_GRMERC),(const char*)get(F_SOTGRMERC));
 | 
			
		||||
  if (grmerc.full())
 | 
			
		||||
  {
 | 
			
		||||
    //cerca sulla tabella GMC il record corrispondente all'attuale GMC
 | 
			
		||||
    TTable tab_gmc("GMC");
 | 
			
		||||
    tab_gmc.put("CODTAB", grmerc);
 | 
			
		||||
    int err = tab_gmc.read();
 | 
			
		||||
    if (err == NOERR)
 | 
			
		||||
    {
 | 
			
		||||
      //prende S1 e, se pieno, anche S2
 | 
			
		||||
      TToken_string stringona(140, ';');
 | 
			
		||||
      TString s = tab_gmc.get("S1");
 | 
			
		||||
      if (s.full())
 | 
			
		||||
      {
 | 
			
		||||
        stringona.add(s);
 | 
			
		||||
        s = tab_gmc.get("S2");
 | 
			
		||||
        if (s.full())
 | 
			
		||||
          stringona.add(s);
 | 
			
		||||
      }
 | 
			
		||||
      //mette tutte le token_stringhine catven|codlis|ricarico in uno string_array, in modo da tener traccia..
 | 
			
		||||
      //..della loro posizione (ogni elemento dello string_array è una token_stringhina)
 | 
			
		||||
      TString_array ricarichi;
 | 
			
		||||
      FOR_EACH_STR_TOKEN(stringona, str)
 | 
			
		||||
        ricarichi.add(str);
 | 
			
		||||
      
 | 
			
		||||
      //giro su tutti gli elementi dell'array
 | 
			
		||||
      FOR_EACH_ARRAY_ROW(ricarichi, i, row)
 | 
			
		||||
      {
 | 
			
		||||
        TToken_string chiave(*row, SAFE_PIPE_CHR);  //separatore broken_pipe
 | 
			
		||||
        TString4 catven = chiave.get(0);
 | 
			
		||||
        catven.trim();
 | 
			
		||||
        TString4 codlis = chiave.get(1);
 | 
			
		||||
        codlis.trim();
 | 
			
		||||
 | 
			
		||||
        //giro sulle righe dello sheet listini figli
 | 
			
		||||
        TSheet_field& sf_righe = sfield(F_LISTINI_FIGLI);
 | 
			
		||||
        FOR_EACH_SHEET_ROW_BACK(sf_righe, r, riga)
 | 
			
		||||
        {
 | 
			
		||||
          TString4 sh_catven = riga->get(0);
 | 
			
		||||
          sh_catven.trim();
 | 
			
		||||
          TString4 sh_codlis = riga->get(1);
 | 
			
		||||
          sh_codlis.trim();
 | 
			
		||||
          //se incredibilmente trova il listino dell'array tra i figli prigionieri nello sheet..
 | 
			
		||||
          if (catven == sh_catven && codlis == sh_codlis)
 | 
			
		||||
          {
 | 
			
		||||
            const TString& ricarico = riga->get(2);
 | 
			
		||||
            chiave.add(ricarico, 2);  //setta il ricarico nella cella dello sheet
 | 
			
		||||
            ricarichi.add(chiave, i); //lo aggiunge all'array dei ricarichi
 | 
			
		||||
            break;                    //esce perchè non può fare altro
 | 
			
		||||
          }
 | 
			
		||||
        } //FOR_EACH_SHEET_ROW_BACK...
 | 
			
		||||
      } //FOR_EACH_ARRAY_ROW
 | 
			
		||||
 | 
			
		||||
      //adesso deve tornare a scrivere le nuove S1 ed S2 modificate
 | 
			
		||||
      TToken_string s1(70, ';'), s2(70, ';');
 | 
			
		||||
      FOR_EACH_ARRAY_ROW (ricarichi, r, riga)
 | 
			
		||||
      {
 | 
			
		||||
        TToken_string mini_string(*riga, SAFE_PIPE_CHR);   //separatore broken_pipe !!!
 | 
			
		||||
        if (s1.len() + mini_string.len() < 70)
 | 
			
		||||
          s1.add(mini_string);
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
          if (s2.len() + mini_string.len() < 70)
 | 
			
		||||
            s2.add(mini_string);
 | 
			
		||||
        }
 | 
			
		||||
      } //FOR_EACH_ARRAY_ROW..
 | 
			
		||||
 | 
			
		||||
      //finalmente scrive sulla tabella GMC
 | 
			
		||||
      tab_gmc.put("S1", s1);
 | 
			
		||||
      tab_gmc.put("S2", s2);
 | 
			
		||||
      tab_gmc.rewrite();
 | 
			
		||||
 | 
			
		||||
    } //if(err==NOERR)
 | 
			
		||||
  } //if(grmerc.full())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bool TAggiorna_listini_edit_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
 | 
			
		||||
{
 | 
			
		||||
  switch(o.dlg())
 | 
			
		||||
@ -36,47 +168,15 @@ bool TAggiorna_listini_edit_mask::on_field_event(TOperable_field& o, TField_even
 | 
			
		||||
    //una volta selezionati grmerc/sotgrmerc riempie la colonna ricarico dello sheet
 | 
			
		||||
    if (e == fe_modify)
 | 
			
		||||
    {
 | 
			
		||||
      TString8 grmerc;
 | 
			
		||||
      grmerc.format("%-3s%-2s", (const char*)get(F_GRMERC),(const char*)get(F_SOTGRMERC));
 | 
			
		||||
      const TRectype& rec_gmc = cache().get("GMC", grmerc);
 | 
			
		||||
      TToken_string lista_listini(rec_gmc.get("S1"), ';');
 | 
			
		||||
      //se trova qualcosa nella lista listini collegati al grmerc...
 | 
			
		||||
      if (lista_listini.full())
 | 
			
		||||
      {
 | 
			
		||||
        lista_listini.trim();
 | 
			
		||||
        //se la lista di listini riempie il campo S1, magari continua in S2...
 | 
			
		||||
        if (lista_listini.len() == 70)
 | 
			
		||||
        {
 | 
			
		||||
          lista_listini.add(rec_gmc.get("S2"));
 | 
			
		||||
          lista_listini.trim();
 | 
			
		||||
        }
 | 
			
		||||
        //cerca se i listini trovati in GMC ci sono anche nello sheet dei figli
 | 
			
		||||
        TSheet_field& sf_righe = sfield(F_LISTINI_FIGLI);
 | 
			
		||||
        const int righe_sheet = sf_righe.items();
 | 
			
		||||
      fill_ricarichi_children_list();
 | 
			
		||||
    }
 | 
			
		||||
    break;
 | 
			
		||||
 | 
			
		||||
        FOR_EACH_STR_TOKEN(lista_listini, str)
 | 
			
		||||
        {
 | 
			
		||||
          //controlla se il listino in grmerc (chiave) esiste in una delle righe dello sheet dei figli
 | 
			
		||||
          TToken_string chiave = lista_listini.get();
 | 
			
		||||
          TString4 catven = chiave.get(0);
 | 
			
		||||
          catven.trim();
 | 
			
		||||
          TString4 codlis = chiave.get(1);
 | 
			
		||||
          codlis.trim();
 | 
			
		||||
          for (int i = 0; i < righe_sheet; i++)
 | 
			
		||||
          {
 | 
			
		||||
            TToken_string& row = sf_righe.row(i);
 | 
			
		||||
            TString4 sh_catven = row.get(0);
 | 
			
		||||
            sh_catven.trim();
 | 
			
		||||
            TString4 sh_codlis = row.get(1);
 | 
			
		||||
            sh_codlis.trim();
 | 
			
		||||
            //se incredibilmente trova il listino di grmerc tra i figli prigionieri nello sheet setta il ricarico
 | 
			
		||||
            if (catven == sh_catven && codlis == sh_codlis)
 | 
			
		||||
              row.add(chiave.get(2), 2);
 | 
			
		||||
 | 
			
		||||
          } //for(int i...
 | 
			
		||||
        } //FOR_EACH_STR_TOKEN
 | 
			
		||||
        sf_righe.force_update();
 | 
			
		||||
      } //if(lista_listini.full...
 | 
			
		||||
    //applica i cambiamenti dovuti ai ricarichi e salva questi ultimi in gmc
 | 
			
		||||
  case DLG_APPLICA:
 | 
			
		||||
    if (e == fe_button)
 | 
			
		||||
    {
 | 
			
		||||
      save_children_list();
 | 
			
		||||
    }
 | 
			
		||||
    break;
 | 
			
		||||
  default:
 | 
			
		||||
@ -85,15 +185,9 @@ bool TAggiorna_listini_edit_mask::on_field_event(TOperable_field& o, TField_even
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TAggiorna_listini_edit_mask::TAggiorna_listini_edit_mask(TMask* query_mask)
 | 
			
		||||
                           : TAutomask("ve2700b"), _query_mask(query_mask)
 | 
			
		||||
//metodo per aggiungere i figli allo sheet dei medesimi
 | 
			
		||||
void TAggiorna_listini_edit_mask::fill_children_list()
 | 
			
		||||
{
 | 
			
		||||
  //aggiorna campi listino padre
 | 
			
		||||
  set(F_FATHCATVEN, _query_mask->get(F_FATHCATVEN));
 | 
			
		||||
  set(F_FATHDESVEN, _query_mask->get(F_FATHDESVEN));
 | 
			
		||||
  set(F_FATHCODLIS, _query_mask->get(F_FATHCODLIS));
 | 
			
		||||
  set(F_FATHDESLIS, _query_mask->get(F_FATHDESLIS));
 | 
			
		||||
 | 
			
		||||
  //disabilita se necessario la colonna della categoria di vendita (lo sheet serve comunque dopo!)
 | 
			
		||||
  TSheet_field& sf_righe = sfield(F_LISTINI_FIGLI);
 | 
			
		||||
  sf_righe.destroy();
 | 
			
		||||
@ -130,10 +224,52 @@ TAggiorna_listini_edit_mask::TAggiorna_listini_edit_mask(TMask* query_mask)
 | 
			
		||||
  sf_righe.force_update();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TAggiorna_listini_edit_mask::aggiorna_listini_figli()
 | 
			
		||||
//metodo per riempire lo sheet con i dati da aggiornare
 | 
			
		||||
void TAggiorna_listini_edit_mask::fill_aggiorna_sheet()
 | 
			
		||||
{
 | 
			
		||||
  //rinomina le colonne dello sheet di aggiornamento come il listino che rappresentano (fighissimo!)..
 | 
			
		||||
  //..secondo la solita catven+codlis; fa sparire le colonne che non servono. Ricordiamo infatti che..
 | 
			
		||||
  //...si posson avere al massimo 10 figli (controllo demografico sui listini)
 | 
			
		||||
  TSheet_field& sf_multilistini = sfield(F_MULTILISTINI);
 | 
			
		||||
 | 
			
		||||
  TSheet_field& sf_figli = sfield(F_LISTINI_FIGLI);
 | 
			
		||||
  TString column_header;
 | 
			
		||||
  int num_of_columns = 2;
 | 
			
		||||
  FOR_EACH_SHEET_ROW(sf_figli, r, riga)
 | 
			
		||||
  {
 | 
			
		||||
    column_header.cut(0);
 | 
			
		||||
    column_header << riga->get(0) << " ";
 | 
			
		||||
    column_header.trim();
 | 
			
		||||
    column_header << riga->get(1);
 | 
			
		||||
 | 
			
		||||
    sf_multilistini.set_column_header(r + 2, column_header);
 | 
			
		||||
    num_of_columns ++;
 | 
			
		||||
  }
 | 
			
		||||
  //cancella i figli in eccesso
 | 
			
		||||
  for( ;sf_multilistini.exist_column(num_of_columns); num_of_columns++)
 | 
			
		||||
    sf_multilistini.delete_column(num_of_columns);
 | 
			
		||||
 | 
			
		||||
  //popola il double-deck sheet
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
TAggiorna_listini_edit_mask::TAggiorna_listini_edit_mask(TMask* query_mask)
 | 
			
		||||
                           : TAutomask("ve2700b"), _query_mask(query_mask)
 | 
			
		||||
{
 | 
			
		||||
  //aggiorna campi listino padre
 | 
			
		||||
  set(F_FATHCATVEN, _query_mask->get(F_FATHCATVEN));
 | 
			
		||||
  set(F_FATHDESVEN, _query_mask->get(F_FATHDESVEN));
 | 
			
		||||
  set(F_FATHCODLIS, _query_mask->get(F_FATHCODLIS));
 | 
			
		||||
  set(F_FATHDESLIS, _query_mask->get(F_FATHDESLIS));
 | 
			
		||||
 | 
			
		||||
  //popola lo sheet dei listini figli
 | 
			
		||||
  fill_children_list();
 | 
			
		||||
  //e poi riempie lo sheet di aggiornamento dei figli
 | 
			
		||||
  fill_aggiorna_sheet();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
///////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
//  MASCHERA DI QUERY (seleziona il listino padre tra i listini con paternità)
 | 
			
		||||
///////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
@ -207,8 +343,7 @@ bool TAggiorna_listini_query_mask::on_field_event(TOperable_field& o, TField_eve
 | 
			
		||||
 | 
			
		||||
        //lancia la maschera di edit
 | 
			
		||||
        TAggiorna_listini_edit_mask edit_mask(this);  //gli passa la maschera principale
 | 
			
		||||
        if (edit_mask.run() == K_ENTER)
 | 
			
		||||
          edit_mask.aggiorna_listini_figli();
 | 
			
		||||
        edit_mask.run();
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    break;
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										46
									
								
								ve/ve2700.h
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								ve/ve2700.h
									
									
									
									
									
								
							@ -10,8 +10,11 @@
 | 
			
		||||
#define F_SOTGRMERC       206
 | 
			
		||||
#define F_DESGRMERC       207
 | 
			
		||||
#define F_LISTINI_FIGLI   208
 | 
			
		||||
#define DLG_CHECKALL      209
 | 
			
		||||
#define DLG_APPLICA       210
 | 
			
		||||
#define DLG_ADDART        211
 | 
			
		||||
 | 
			
		||||
//#define F_MULTILISTINI    280
 | 
			
		||||
#define F_MULTILISTINI    220
 | 
			
		||||
 | 
			
		||||
//primo sheet con i listini figli
 | 
			
		||||
#define F_CATVEN      101
 | 
			
		||||
@ -20,32 +23,15 @@
 | 
			
		||||
#define F_DESLIS      104
 | 
			
		||||
 | 
			
		||||
//multi-terribile sheet dei multi-listini
 | 
			
		||||
/*#define F_TIPORIGA      101
 | 
			
		||||
#define F_CODRIGA_A     102
 | 
			
		||||
#define F_DESRIGA_A     103
 | 
			
		||||
#define F_CODRIGA_G     202
 | 
			
		||||
#define F_DESRIGA_G     203
 | 
			
		||||
#define F_CODRIGA_S     302
 | 
			
		||||
#define F_DESRIGA_S     303
 | 
			
		||||
#define F_CODRIGA_R     402
 | 
			
		||||
#define F_DESRIGA_R     403
 | 
			
		||||
#define F_PREZZO        104
 | 
			
		||||
#define F_UM            105
 | 
			
		||||
#define F_OLDPRZ1       106
 | 
			
		||||
#define F_NEWPRZ1       107
 | 
			
		||||
#define F_OLDPRZ2       108
 | 
			
		||||
#define F_NEWPRZ2       109
 | 
			
		||||
#define F_OLDPRZ3       110
 | 
			
		||||
#define F_NEWPRZ3       111
 | 
			
		||||
#define F_OLDPRZ4       112
 | 
			
		||||
#define F_NEWPRZ4       113
 | 
			
		||||
#define F_OLDPRZ5       114
 | 
			
		||||
#define F_NEWPRZ5       115
 | 
			
		||||
#define F_OLDPRZ6       116
 | 
			
		||||
#define F_NEWPRZ6       117
 | 
			
		||||
#define F_OLDPRZ7       118
 | 
			
		||||
#define F_NEWPRZ7       119
 | 
			
		||||
#define F_OLDPRZ8       120
 | 
			
		||||
#define F_NEWPRZ8       121
 | 
			
		||||
#define F_OLDPRZ9       122
 | 
			
		||||
#define F_NEWPRZ9       123*/
 | 
			
		||||
#define F_CODRIGA     101
 | 
			
		||||
#define F_PREZZO      102
 | 
			
		||||
#define F_LIST1       103
 | 
			
		||||
#define F_LIST2       104
 | 
			
		||||
#define F_LIST3       105
 | 
			
		||||
#define F_LIST4       106
 | 
			
		||||
#define F_LIST5       107
 | 
			
		||||
#define F_LIST6       108
 | 
			
		||||
#define F_LIST7       109
 | 
			
		||||
#define F_LIST8       110
 | 
			
		||||
#define F_LIST9       111
 | 
			
		||||
#define F_LIST10      112
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										178
									
								
								ve/ve2700b.uml
									
									
									
									
									
								
							
							
						
						
									
										178
									
								
								ve/ve2700b.uml
									
									
									
									
									
								
							@ -4,21 +4,40 @@ TOOLBAR "Toolbar" 0 0 0 2
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_SAVEREC 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 10 -1 "~Salva"
 | 
			
		||||
  PROMPT 1 1 "~Salva"
 | 
			
		||||
  PICTURE TOOL_SAVEREC
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_NULL 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 1 ""
 | 
			
		||||
  PICTURE 0
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_CHECKALL 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 3 1 "~Tutti"
 | 
			
		||||
  PICTURE TOOL_MULTISEL
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_APPLICA 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 4 1 "~Applica"
 | 
			
		||||
  PICTURE TOOL_CONVERT
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_ADDART 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 5 1 "A~ggiunge"
 | 
			
		||||
  PICTURE TOOL_IMPORT
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
#include <cancelbar.h>
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
PAGE "Aggiornamento listini" 0 2 0 0
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 78 4
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 0 0 "@bDati listino padre"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
LIST DLG_NULL 1 7
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 100 100 ""
 | 
			
		||||
@ -30,31 +49,31 @@ END
 | 
			
		||||
 | 
			
		||||
STRING F_FATHCATVEN 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 1 "Cat. ven. "
 | 
			
		||||
  PROMPT 0 0 "@bDati listino padre "
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_FATHDESVEN 50
 | 
			
		||||
STRING F_FATHDESVEN 10
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 18 1 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
  PROMPT 1 0 ""
 | 
			
		||||
  FLAGS "H"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_FATHCODLIS 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 2 "Listino   "
 | 
			
		||||
  PROMPT 23 0 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_FATHDESLIS 50
 | 
			
		||||
STRING F_FATHDESLIS 50 48
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 18 2 ""
 | 
			
		||||
  PROMPT 27 0 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_GRMERC 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 4 "Gr. merc. "
 | 
			
		||||
  PROMPT 0 1 "Gr. merc. "
 | 
			
		||||
  FLAGS "U"
 | 
			
		||||
  USE GMC SELECT CODTAB[4,5] == ""
 | 
			
		||||
  INPUT CODTAB[1,3] F_GRMERC
 | 
			
		||||
@ -68,7 +87,7 @@ END
 | 
			
		||||
 | 
			
		||||
STRING F_SOTGRMERC 5
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 20 4 ""
 | 
			
		||||
  PROMPT 19 1 ""
 | 
			
		||||
  FLAGS "U"
 | 
			
		||||
  USE GMC 
 | 
			
		||||
  COPY INPUT F_GRMERC
 | 
			
		||||
@ -82,9 +101,9 @@ BEGIN
 | 
			
		||||
  GROUP 2
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_DESGRMERC 50 45
 | 
			
		||||
STRING F_DESGRMERC 50 48
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 28 4 ""
 | 
			
		||||
  PROMPT 27 1 ""
 | 
			
		||||
  USE GMC KEY 2
 | 
			
		||||
  INPUT S0 F_DESGRMERC
 | 
			
		||||
  DISPLAY "Descrizione@50" S0
 | 
			
		||||
@ -97,24 +116,41 @@ END
 | 
			
		||||
 | 
			
		||||
TEXT DLG_NULL
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 5 "@bListini figli"
 | 
			
		||||
  PROMPT 1 2 "@bListini figli"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
SPREADSHEET F_LISTINI_FIGLI 78 4
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 0 6 "@bListini figli"
 | 
			
		||||
  PROMPT 0 3 "Listini figli"
 | 
			
		||||
  ITEM "Cat.Ven."
 | 
			
		||||
  ITEM "Codice"
 | 
			
		||||
  ITEM "Ricarico@8"
 | 
			
		||||
  ITEM "Descrizione@50"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
SPREADSHEET F_MULTILISTINI -1 -1
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 0 8 "Aggiornamento figli"
 | 
			
		||||
  ITEM "Descrizione\nArticolo@30"
 | 
			
		||||
  ITEM "U. M. \nPrezzo base@8"
 | 
			
		||||
  ITEM "Figlio 1@8"
 | 
			
		||||
  ITEM "Figlio 2@8"
 | 
			
		||||
  ITEM "Figlio 3@8"
 | 
			
		||||
  ITEM "Figlio 4@8"
 | 
			
		||||
  ITEM "Figlio 5@8"
 | 
			
		||||
  ITEM "Figlio 6@8"
 | 
			
		||||
  ITEM "Figlio 7@8"
 | 
			
		||||
  ITEM "Figlio 8@8"
 | 
			
		||||
  ITEM "Figlio 9@8"
 | 
			
		||||
  ITEM "Figlio 10@8"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
ENDMASK
 | 
			
		||||
 | 
			
		||||
/////////////////////////////////////////
 | 
			
		||||
//maschera di riga
 | 
			
		||||
////////////////////////////////////////////
 | 
			
		||||
//maschera di riga sheet dei listini figli
 | 
			
		||||
TOOLBAR "topbar" 0 0 0 2
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_OK 10 2
 | 
			
		||||
@ -146,8 +182,6 @@ BEGIN
 | 
			
		||||
  DISPLAY "Cat." CODTAB
 | 
			
		||||
  DISPLAY "Descrizione@50" S0
 | 
			
		||||
  OUTPUT F_CATVEN CODTAB
 | 
			
		||||
  //OUTPUT F_DESVEN S0
 | 
			
		||||
  //CHECKTYPE FORCED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_CODLIS 3
 | 
			
		||||
@ -169,4 +203,102 @@ END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
ENDMASK
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
///////////////////////////////////////////////
 | 
			
		||||
//maschera di riga sheet aggiornamento listini
 | 
			
		||||
TOOLBAR "topbar" 0 0 0 2
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_OK 10 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -13 -1 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_DELREC 10 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -23 -1 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_CANCEL 10 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -33 -1 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
PAGE "Riga aggiornamento listini" -1 -1 78 22
 | 
			
		||||
 | 
			
		||||
STRING F_CODRIGA 50 20
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 1 "Codice "
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_PREZZO 8
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 2 "Prezzo "
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
CURRENCY F_LIST1 8
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 4 "List1 "
 | 
			
		||||
  FLAGS "U"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
CURRENCY F_LIST2 8
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 5 "List2 "
 | 
			
		||||
  FLAGS "U"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
CURRENCY F_LIST3 8
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 6 "List3 "
 | 
			
		||||
  FLAGS "U"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
CURRENCY F_LIST4 8
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 7 "List4 "
 | 
			
		||||
  FLAGS "U"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
CURRENCY F_LIST5 8
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 8 "List5 "
 | 
			
		||||
  FLAGS "U"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
CURRENCY F_LIST6 8
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 9 "List6 "
 | 
			
		||||
  FLAGS "U"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
CURRENCY F_LIST7 8
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 10 "List7 "
 | 
			
		||||
  FLAGS "U"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
CURRENCY F_LIST8 8
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 11 "List8 "
 | 
			
		||||
  FLAGS "U"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
CURRENCY F_LIST9 8
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 12 "List9 "
 | 
			
		||||
  FLAGS "U"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
CURRENCY F_LIST10 8
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 13 "List10 "
 | 
			
		||||
  FLAGS "U"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
ENDMASK
 | 
			
		||||
@ -282,6 +282,7 @@ BEGIN
 | 
			
		||||
  ITEM "Listino"
 | 
			
		||||
  ITEM "Ricarico"
 | 
			
		||||
  ITEM "Descrizione@50"
 | 
			
		||||
  FLAGS "|"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user