Files correlati : Ricompilazione Demo : [ ] Commento : chiamata alla stampa avanzata doc. con nuovi parametri per stampare i documenti elencati in un file git-svn-id: svn://10.65.10.50/trunk@19711 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			153 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			153 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include <applicat.h>
 | 
						|
#include <automask.h>
 | 
						|
#include <execp.h>
 | 
						|
#include <relation.h>
 | 
						|
#include <reprint.h>
 | 
						|
 
 | 
						|
#include "lv1100a.h"
 | 
						|
 | 
						|
class TStampaBuoni_mask: public TAutomask
 | 
						|
{
 | 
						|
protected:
 | 
						|
  virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | 
						|
public:
 | 
						|
	TStampaBuoni_mask();
 | 
						|
};
 | 
						|
 | 
						|
TStampaBuoni_mask::TStampaBuoni_mask():TAutomask("lv1100a") 
 | 
						|
{
 | 
						|
  TConfig configlv(CONFIG_DITTA, "lv");
 | 
						|
	const char* title = NULL;
 | 
						|
	const char tipobuoni = main_app().argv(2)[0];
 | 
						|
  switch (tipobuoni)
 | 
						|
  {
 | 
						|
  case 'P': 
 | 
						|
		{
 | 
						|
			set_caption(TR("Stampa buoni di prelievo"));
 | 
						|
			set(F_CODNUM, configlv.get("NUM_PRE(0)"));
 | 
						|
			set(F_TIPODOC, configlv.get("TIPODOC_PRE(0)"));
 | 
						|
		}
 | 
						|
		break;
 | 
						|
  case 'R': 
 | 
						|
		{
 | 
						|
			set_caption(TR("Stampa buoni di ritiro"));
 | 
						|
			set(F_CODNUM, configlv.get("NUM_RIT(0)"));
 | 
						|
			set(F_TIPODOC, configlv.get("TIPODOC_RIT(0)"));
 | 
						|
		}
 | 
						|
    break;
 | 
						|
  case 'C': 
 | 
						|
		{
 | 
						|
			set_caption(TR("Stampa buoni di consegna"));
 | 
						|
			set(F_CODNUM, configlv.get("NUM_GEN"));
 | 
						|
			set(F_TIPODOC, configlv.get("TIPODOC_GEN"));
 | 
						|
		}
 | 
						|
    break;
 | 
						|
	default:
 | 
						|
		break;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
bool TStampaBuoni_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
 | 
						|
{
 | 
						|
  return true;
 | 
						|
}
 | 
						|
 | 
						|
class TStampaBuoni_app: public TSkeleton_application
 | 
						|
{
 | 
						|
protected:
 | 
						|
  virtual void main_loop();
 | 
						|
  void elabora(const TMask& mask, const char action) const;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
void TStampaBuoni_app::elabora(const TMask& mask, const char action) const
 | 
						|
{
 | 
						|
	const TDate data_from = mask.get_date(F_DATA_FROM);
 | 
						|
	TString query = "USE DOC \n"
 | 
						|
									"SELECT (BETWEEN(DATADOC,#DATA_FROM,#DATA_TO))"
 | 
						|
									"&&(BETWEEN(CODCF,#CODCF_FROM,#CODCF_TO))"
 | 
						|
									"&&(BETWEEN(G1:CODITI,#CODITI_FROM,#CODITI_TO))\n"
 | 
						|
									"JOIN CLIFO INTO TIPOCF=='C' CODCF==CODCF\n"
 | 
						|
									;
 | 
						|
  query << "FROM PROVV=\"D\" ANNO=" << data_from.year() << " CODNUM=\"" << mask.get(F_CODNUM) << "\"\n"
 | 
						|
				<< "TO PROVV=\"D\" ANNO=" << data_from.year() << " CODNUM=\"" << mask.get(F_CODNUM) << "\"\n";
 | 
						|
  TISAM_recordset buoni(query);                     
 | 
						|
  //inserire parametri filtri
 | 
						|
  buoni.set_var("#DATA_FROM", mask.get_date(F_DATA_FROM));
 | 
						|
  buoni.set_var("#DATA_TO",	mask.get_date(F_DATA_TO)); 
 | 
						|
  buoni.set_var("#CODCF_FROM", TVariant(mask.get(F_CODCF_FROM)));
 | 
						|
  buoni.set_var("#CODCF_TO", TVariant(mask.get(F_CODCF_TO)));
 | 
						|
  buoni.set_var("#CODITI_FROM", TVariant(mask.get(F_CODITI_FROM)));
 | 
						|
  buoni.set_var("#CODITI_TO", TVariant(mask.get(F_CODITI_TO)));
 | 
						|
  
 | 
						|
	TString80 chiavedoc = "D|";
 | 
						|
	chiavedoc << data_from.year() << "|" <<	mask.get(F_CODNUM) << "|";
 | 
						|
 | 
						|
	TCursor* c = buoni.cursor();
 | 
						|
  TCursor_sheet sht(c, " |NDOC|DATADOC|CODCF|20->RAGSOC", TR("Selezione Documenti"),
 | 
						|
                   HR("@1|Numero\nDoc.@7|Data\nDoc.@10|Cliente|Ragione Sociale@50"));
 | 
						|
 | 
						|
  if (sht.run() && sht.one_checked())
 | 
						|
  {
 | 
						|
		TFilename tmp; tmp.temp();
 | 
						|
		ofstream outf(tmp);
 | 
						|
		
 | 
						|
		outf << "[Transaction]" << endl;
 | 
						|
		outf << "Action=" << action << endl;
 | 
						|
		outf << "Mode=P" << endl;
 | 
						|
		outf << "[33]" << endl;
 | 
						|
 | 
						|
		long nx=0;
 | 
						|
 | 
						|
		const long items = sht.items();
 | 
						|
	  for (long i = 0L; i<items; i++)
 | 
						|
			if (sht.checked(i))
 | 
						|
			{
 | 
						|
				outf << "Doc(" << (nx++) << ")=";
 | 
						|
			  outf << chiavedoc << sht.row(i).get_long(1) << endl;
 | 
						|
			}
 | 
						|
	  outf.close();
 | 
						|
 | 
						|
		TFilename appname = "ve1.exe -2 -i";
 | 
						|
		appname << tmp;
 | 
						|
		TExternal_app app(appname);
 | 
						|
	  app.run();
 | 
						|
		tmp.fremove();
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
void TStampaBuoni_app::main_loop()
 | 
						|
{
 | 
						|
  TStampaBuoni_mask m;
 | 
						|
	bool running = true;
 | 
						|
  while (running)
 | 
						|
	{
 | 
						|
		const KEY k = m.run();
 | 
						|
		switch (k)
 | 
						|
		{
 | 
						|
		case K_ENTER: elabora(m, 'P'); break;
 | 
						|
		case 'A':			elabora(m, 'A'); break;
 | 
						|
		default: running = false; break;
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
int lv1100(int argc, char* argv[])
 | 
						|
{
 | 
						|
  const char* title = NULL;
 | 
						|
  switch (toupper(*argv[2]))
 | 
						|
  {
 | 
						|
  case 'P': title = TR("Stampa buoni di prelievo");
 | 
						|
		break;
 | 
						|
  case 'R': title = TR("Stampa buoni di ritiro");
 | 
						|
    break;
 | 
						|
  case 'C': title = TR("Stampa buoni di consegna");
 | 
						|
    break;
 | 
						|
	default:
 | 
						|
	break;
 | 
						|
	}
 | 
						|
  TStampaBuoni_app app;
 | 
						|
  app.run(argc, argv, title);
 | 
						|
  return 0;
 | 
						|
}
 |