Patch level : 10.966
Files correlati : ve0.exe Ricompilazione Demo : [ ] Commento : Bug 0001810: SRM: in creaz. aut. ORF da C non riesco a fare interrrogaz. per riferimento SRM: Nella creazione automatica ORF da C ed inserendo il riferimento stesso della commessa , SRM ha la necessità di vedere quanti ORF sono stati creati a fronte di una C. Il campo riferimento viene riportato correttamente negli ORF ma la ricerca per riferimento è lentissima (si parla di minuti!!!) e non porta nessun risultato. La ricerca ora viene filtrata per cliente/ fornitore se lo indico altrimenti viene fatta per documento di riferimento. nello sheet il codice e la ragione sociale sono stati spostati dopo il documento di riferimento e la data git-svn-id: svn://10.65.10.50/branches/R_10_00@21871 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									91963d2292
								
							
						
					
					
						commit
						1ee67a03e0
					
				@ -2395,24 +2395,49 @@ bool TDocumento_mask::numdocrif_search_handler(TMask_field& f, KEY key)
 | 
				
			|||||||
		TRelation rel(LF_DOC);
 | 
							TRelation rel(LF_DOC);
 | 
				
			||||||
		rel.add(LF_CLIFO, "TIPOCF==TIPOCF|CODCF==CODCF");
 | 
							rel.add(LF_CLIFO, "TIPOCF==TIPOCF|CODCF==CODCF");
 | 
				
			||||||
		rel.add(LF_RIGHEDOC, "PROVV==PROVV|ANNO==ANNO|CODNUM==CODNUM|NDOC==NDOC|NRIGA==1");
 | 
							rel.add(LF_RIGHEDOC, "PROVV==PROVV|ANNO==ANNO|CODNUM==CODNUM|NDOC==NDOC|NRIGA==1");
 | 
				
			||||||
 | 
							const long codcf = m.get_int(F_CODCF);
 | 
				
			||||||
 | 
							bool is_clifor =  (codcf > 0L);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    TRectype& filtrec = rel.curr();
 | 
					    TRectype& filtrec = rel.curr();
 | 
				
			||||||
		filtrec.put(DOC_TIPOCF, m.get(F_TIPOCF));
 | 
					 | 
				
			||||||
		filtrec.put(DOC_CODCF, m.get(F_CODCF));
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		TSorted_cursor cur(&rel, "TIPOCF|CODCF|PROVV|ANNO|CODNUM|NUMDOCRIF", "", 2, &filtrec, &filtrec);
 | 
							if (is_clifor)
 | 
				
			||||||
    TString80 filter; 
 | 
							{
 | 
				
			||||||
    filter.format("(CODNUM==\"%s\")&&(PROVV==\"D\")&&(ANNO==\"%d\")",
 | 
								filtrec.put(DOC_TIPOCF, m.get(F_TIPOCF));
 | 
				
			||||||
									(const char*)m.get(F_CODNUM), m.get_int(F_ANNO));
 | 
								filtrec.put(DOC_CODCF, codcf);
 | 
				
			||||||
    cur.setfilter(filter);
 | 
							}
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								filtrec.put(DOC_CODNUM, m.get(F_CODNUM));
 | 
				
			||||||
 | 
							filtrec.put(DOC_PROVV, m.get(F_PROVV));
 | 
				
			||||||
 | 
							filtrec.put(DOC_ANNO, m.get(F_ANNO));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							TSorted_cursor cur(&rel, "NUMDOCRIF", "", is_clifor ? 2: 1, &filtrec, &filtrec);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if (is_clifor)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
						    TString80 filter; 
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
								filter.format(DOC_CODNUM "==\"%s\"", (const char*)m.get(F_CODNUM));
 | 
				
			||||||
 | 
							  cur.setfilter(filter);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		TToken_string siblings;
 | 
							TToken_string siblings;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    TToken_string header(HR("Codice|Ragione Sociale@50|Docum.Rif.|Data@10|Docum.Rif. 1|Docum.Rif. 2|Docum.Rif. 3|Documento|Data\nDocumento@10|Totale\nDocumento@18V|Valuta|Stato"));
 | 
					    TToken_string header(HR("Docum.Rif.|Data@10|Codice|Ragione Sociale@50|Docum.Rif. 1|Docum.Rif. 2|Docum.Rif. 3|Documento|Data\nDocumento@10|Totale\nDocumento@18V|Valuta|Stato"));
 | 
				
			||||||
		TToken_string fieldlist("CODCF|20->RAGSOC|NUMDOCRIF|DATADOCRIF|DOC1|DOC2|DOC3|NDOC|DATADOC|G1:TOTDOC|CODVAL|STATO");
 | 
							TToken_string fieldlist("NUMDOCRIF|DATADOCRIF|CODCF|20->RAGSOC|DOC1|DOC2|DOC3|NDOC|DATADOC|G1:TOTDOC|CODVAL|STATO");
 | 
				
			||||||
    add_custom_search_fields(m, fieldlist, header);
 | 
					    add_custom_search_fields(m, fieldlist, header);
 | 
				
			||||||
			
 | 
								
 | 
				
			||||||
		TBrowse_sheet sheet(&cur, fieldlist, TR("Documento di riferimento"),
 | 
							TBrowse_sheet sheet(&cur, fieldlist, TR("Documento di riferimento"),
 | 
				
			||||||
												header, 0, (TEdit_field&)f, siblings);
 | 
																	header, 0, (TEdit_field&)f, siblings);
 | 
				
			||||||
 | 
							TCursor * c = sheet.cursor();
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							if (c != NULL)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
					      TRectype rec(filtrec);
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
							  rec.put(DOC_NUMDOCRIF, m.get(F_NUMDOCRIF));
 | 
				
			||||||
 | 
								c->curr() = rec;
 | 
				
			||||||
 | 
								c->read();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (sheet.run() == K_ENTER)
 | 
							if (sheet.run() == K_ENTER)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
      const int pos_ndoc = fieldlist.get_pos(DOC_NDOC);
 | 
					      const int pos_ndoc = fieldlist.get_pos(DOC_NDOC);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user