Corretta gestione ultima pagina
git-svn-id: svn://10.65.10.50/trunk@2643 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									0fb31ef39c
								
							
						
					
					
						commit
						3a5d57c310
					
				| @ -1,7 +1,7 @@ | |||||||
| #include <ctype.h> | #include <ctype.h> | ||||||
| #include <stdlib.h>      | #include <stdlib.h>      | ||||||
| 
 | 
 | ||||||
| #if XVT_OS == XVT_OS_WIN | #if XVT_OS == XVT_OS_WIN || XVT_OS == XVT_OS_NT | ||||||
| #define STRICT | #define STRICT | ||||||
| #include <windows.h> | #include <windows.h> | ||||||
| #endif | #endif | ||||||
| @ -12,7 +12,8 @@ | |||||||
| #include <printer.h> | #include <printer.h> | ||||||
| #include <relation.h> | #include <relation.h> | ||||||
| #include <sheet.h> | #include <sheet.h> | ||||||
| #include <utility.h> | #include <utility.h>  | ||||||
|  | #include <spool.h> | ||||||
| 
 | 
 | ||||||
| #ifndef __DEFMASK_H | #ifndef __DEFMASK_H | ||||||
| #include <defmask.h> | #include <defmask.h> | ||||||
| @ -641,7 +642,7 @@ TToken_string& TForm_item::message(int m) | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // @doc EXTERNAL
 | // @doc EXTERNAL
 | ||||||
| 	 |    | ||||||
| // @mfunc Manda il messaggio al campo <p dest>
 | // @mfunc Manda il messaggio al campo <p dest>
 | ||||||
| void TForm_item::send_message( | void TForm_item::send_message( | ||||||
|      const TString& cmd,  // @parm Messaggio di comando
 |      const TString& cmd,  // @parm Messaggio di comando
 | ||||||
| @ -3405,8 +3406,12 @@ void TForm::arrange_form() | |||||||
| //   CHR(15), allora prima del posizionamento scrivo il chr(15) sulla stampante!
 | //   CHR(15), allora prima del posizionamento scrivo il chr(15) sulla stampante!
 | ||||||
| 
 | 
 | ||||||
| {                      | {                      | ||||||
|   TString device; |   int i, x; | ||||||
| #if XVT_OS == XVT_OS_WIN |   TString str_pos;   | ||||||
|  |   TMask m("ba2100c"); | ||||||
|  |    | ||||||
|  | #if XVT_OS == XVT_OS_WIN || XVT_OS == XVT_OS_NT | ||||||
|  | /*
 | ||||||
|   char defPrinter[80]; |   char defPrinter[80]; | ||||||
|   char szDevice[50]; |   char szDevice[50]; | ||||||
| 
 | 
 | ||||||
| @ -3416,22 +3421,28 @@ void TForm::arrange_form() | |||||||
|   GetProfileString ("devices", pdev, "", szDevice, sizeof(szDevice)); |   GetProfileString ("devices", pdev, "", szDevice, sizeof(szDevice)); | ||||||
|   pdev.add(szDevice);              |   pdev.add(szDevice);              | ||||||
|   device = pdev.get(2); |   device = pdev.get(2); | ||||||
|   device = device.left(4); //Legge solo LPTx...
 |   device = device.left(4); //Legge solo LPTx... 
 | ||||||
| #endif       |   */ | ||||||
|  | #else | ||||||
|  |   TString device(printer.printername()); | ||||||
|   FILE* lpt = fopen(device,"w");  |   FILE* lpt = fopen(device,"w");  | ||||||
| 
 | 
 | ||||||
|   int i, x; |   if (lpt == NULL) | ||||||
|   TString str_pos;   |     fatal_box("Non rieso ad aprire il device %s.",device); | ||||||
|   if (lpt == NULL) fatal_box("Non rieso ad aprire il device %s.",device); | #endif | ||||||
|   TMask m("ba2100c"); |  | ||||||
|    |    | ||||||
|   // _ipy viene assunto uguale per entrambi i posizionamneti
 |   // _ipy viene assunto uguale per entrambi i posizionamneti
 | ||||||
|   str_pos << "\017";  // Questo e' 15 in ottale...
 |   str_pos = "\017";  // Questo e' 15 in ottale...
 | ||||||
|   for (i=1; i < _ipy; i++) str_pos << "\n"; |   for (i=1; i < _ipy; i++) str_pos << "\n"; | ||||||
|  | #if XVT_OS == XVT_OS_WIN || XVT_OS == XVT_OS_NT  | ||||||
|  |   SpoolRow((char *) (const char *) str_pos, str_pos.len()); | ||||||
|  | #else                                            | ||||||
|  | 
 | ||||||
|   fprintf(lpt,"%s",(const char*) str_pos);   |   fprintf(lpt,"%s",(const char*) str_pos);   | ||||||
|   fflush(lpt);              // Salta le righe...                           
 |   fflush(lpt);              // Salta le righe...                           
 | ||||||
|   fclose(lpt); |   fclose(lpt); | ||||||
|   str_pos.cut(0);  //Azzera la stringa di posizionamento
 | #endif   | ||||||
|  |   str_pos = "";  //Azzera la stringa di posizionamento
 | ||||||
|   for (i=1; i < _ipx; i++) str_pos << " "; //Aggiunge gli spazi necessari...
 |   for (i=1; i < _ipx; i++) str_pos << " "; //Aggiunge gli spazi necessari...
 | ||||||
|   if (_ipx > 0 && _ipy > 0) |   if (_ipx > 0 && _ipy > 0) | ||||||
|     str_pos << _char_to_pos;   // aggiunge il primo carattere di posizionamento...
 |     str_pos << _char_to_pos;   // aggiunge il primo carattere di posizionamento...
 | ||||||
| @ -3439,26 +3450,29 @@ void TForm::arrange_form() | |||||||
|   for (i=1; i < x; i++) str_pos << " "; |   for (i=1; i < x; i++) str_pos << " "; | ||||||
|   if (_fpx > 0) |   if (_fpx > 0) | ||||||
|     str_pos << _char_to_pos;  // aggiunge il secondo carattere di posizionamento
 |     str_pos << _char_to_pos;  // aggiunge il secondo carattere di posizionamento
 | ||||||
|   TString bspc; bspc.fill('\b',str_pos.len()); // Questi servono per tornare indietro...
 |   str_pos << '\r'; | ||||||
|  | //  TString bspc; bspc.fill('\b',str_pos.len()); // Questi servono per tornare indietro...
 | ||||||
|   do |   do | ||||||
|   {  |   {  | ||||||
|  | #if XVT_OS == XVT_OS_WIN || XVT_OS == XVT_OS_NT  | ||||||
|  |     SpoolRow((char *)(const char *) str_pos, str_pos.len()); | ||||||
|  | #else                                            | ||||||
|     lpt = fopen(device,"w");              |     lpt = fopen(device,"w");              | ||||||
|     if (lpt == NULL) fatal_box("Non rieso ad aprire il device %s.",device); |     if (lpt == NULL) fatal_box("Non rieso ad aprire il device %s.",device); | ||||||
| //    fprintf(lpt,"%s",(const char*) bspc);  
 | //    fprintf(lpt,"%s",(const char*) bspc);  
 | ||||||
|     fprintf(lpt,"%s\n",(const char*) str_pos);   |     fprintf(lpt,"%s\r",(const char*) str_pos);   | ||||||
|     fflush(lpt);           |     fflush(lpt);           | ||||||
|     fclose(lpt); |     fclose(lpt);                                 | ||||||
|  | #endif | ||||||
|   } while (m.run() == K_ESC);     // cicla sulla stampa posizionamento...
 |   } while (m.run() == K_ESC);     // cicla sulla stampa posizionamento...
 | ||||||
|   const int h = height(odd_page);                    | /*  const int h = height(odd_page);                   
 | ||||||
|   str_pos.cut(0); |   str_pos.cut(0); | ||||||
|   for (i=0; i < h; i++) str_pos << "\n"; |   for (i=0; i < h; i++) str_pos << "\n"; | ||||||
|   lpt = fopen(device,"w"); |   lpt = fopen(device,"w"); | ||||||
|   if (lpt == NULL) fatal_box("Non rieso ad aprire il device %s.",device); |   if (lpt == NULL) fatal_box("Non rieso ad aprire il device %s.",device); | ||||||
|   fprintf(lpt, "%s", (const char*) str_pos); // Salta tante righe quanto e' lungo il form standard
 |   fprintf(lpt, "%s", (const char*) str_pos); // Salta tante righe quanto e' lungo il form standard
 | ||||||
|   fclose (lpt);        |   fclose (lpt);       */ | ||||||
| #if XVT_OS != XVT_OS_WIN   |   printer().set_offset(_ipy - 1, printer().get_column_offset()); | ||||||
| #pragma message ("Voglio proprio vedere come fai a gestire il posizionamento sotto Unix!") |  | ||||||
| #endif |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| long TForm::records() const | long TForm::records() const | ||||||
| @ -3759,7 +3773,7 @@ bool TForm::print( | |||||||
|     set_body(page(pr), TRUE); |     set_body(page(pr), TRUE); | ||||||
|   } |   } | ||||||
|    |    | ||||||
|   if (i == lastrec) |   if (i == lastrec && from >= 0) | ||||||
|   {                 |   {                 | ||||||
|     if (cursor()) *cursor() = i; |     if (cursor()) *cursor() = i; | ||||||
|     set_last_page(TRUE); |     set_last_page(TRUE); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user