View previous topic  :: View next topic    
	 
	
	
		Author 
		Message 
	 
	
		Дениска  Joined: 26 Feb 2002 Posts: 649 
		
			
				Posted: 09 Jul 2007 09:56     Post subject: Сортировка в физическом порядке  
				     
			 
			
				 
			 
			
				Как добавить сортировку в физическом порядке? 
 
 
Как добавить сортировку по временному индексу (в данном случаи по полю date_calc)? 
 
 
Как изменить индекс по умолчанию (индекс по которому отсортирован список при входе)?
 
 
  	  Code:  	 		  
 
Function Main()
 
  LOCAL aSet,aSetKey,nTop,nBot,cColHead,aBlockCols,cCurproc, bDel, _aSortSeek 
 
  aSetKey:=SaveSetKey()
 
  DBPUSH() 
 
  altd()
 
 
  NETUSE("F_form_arc",LOADPATH()+"form_arc.dbf")
 
 
  DISPBOX(1,0,24,79,( CHR( 201 ) + CHR( 205 ) + CHR( 187 ) + CHR( 186 ) + CHR( 188 ) + CHR( 205 ) + CHR( 200 ) + CHR( 186 )+' ' ),;
 
  "W+/B")
 
 
  nTop := 2
 
  nBot := 23
 
 
  cColHead:={" Код   Наименование формы отчетности               Дата    Начало     Конец   ",;
 
             " формы                                           создания  периода   периода  "}      
 
                                                                                            
 
  aBlockCols:={{{||SubStr(FIELD->code_var,7,4)}, 1},{{||FIELD->name_doc},7},{{||FIELD->Date_Calc},49},{{||FIELD->Period_Sta},59},{{||FIELD->Period_End},69}}
 
 
  cCurProc:={||"2"}
 
 
  _aSortSeek :={{"Период и код", "Код формы", "Code_Var",'UPPER(aIn[1])',,,,"Var"},;
 
                {"Имя формы", "Имя формы", "Name_Doc",'UPPER(aIn[1])',,,,"Name"},;
 
                {"Имя и период", {"Имя формы", "Начало периода", "Конец периода"},;
 
                  {"Name_Doc", "Period_Sta", "Period_End"},'UPPER(aIn[1]) + DTos(aIn[2]) + DTos(aIn[3])';
 
                   ,,,,"Code"};
 
               }
 
 
  F_form_arc->( INITLIST(nTop,nBot,cColHead,aBlockCols,cCurProc,;
 
          ,,,,,;                                                                  
 
          ,,,_aSortSeek,,))
 
 
  F_form_arc->( DBCLOSEAREA() )
 
  DbPop() 
 
  RestSetKey(aSetkey)
 
Return
 
 
 	 
 
			 
		
 
	 
	
		Back to top  
		 
	 
	
		 
	 
	
		nordk  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб 
		
			
				Posted: 09 Jul 2007 10:20     Post subject:   
				     
			 
			
				 
			 
			
				1. Для сортировки в физическом порядке искользуйте нулевой ТЭГ
 
2.Для сортировки по временному индексу надо создать временный индекс и включить имя ТЭГа в сортировку
 
3.При входе в Инитлист используется первый индекс массива aSortSeek  
			 
		
 
	 
	
		Back to top  
		 
	 
	
		 
	 
	
		Дениска  Joined: 26 Feb 2002 Posts: 649 
		
			
				Posted: 09 Jul 2007 13:16     Post subject:   
				     
			 
			
				 
			 
			
				 	  nordk wrote:  	 		  
 
3.При входе в Инитлист используется первый индекс массива aSortSeek 	 
 
 
Сначала у меня сортировалось по первому индексу, но сейчас сортируется по 3-ему индексу. После чего так получилось я не понял    
 
 
В ЗП есть возможность выбирать "Порядок сортировки сотрудников" (ЗП - Настройка подсистемы - Бух. настройка). Следовательно этим можно управлять ...  
			 
		
 
	 
	
		Back to top  
		 
	 
	
		 
	 
	
		Дениска  Joined: 26 Feb 2002 Posts: 649 
		
			
				Posted: 09 Jul 2007 13:39     Post subject:   
				     
			 
			
				 
			 
			
				 	  nordk wrote:  	 		  1. Для сортировки в физическом порядке искользуйте нулевой ТЭГ
 
 	 
 
 
Пишу:
 
  	  Code:  	 		  
 
  _aSortSeek :={{"Период и код", "Код формы", "Code_Var",'UPPER(aIn[1])',,,,"Var"},;
 
                {"Имя формы", "Имя формы", "Name_Doc",'UPPER(aIn[1])',,,,"Name"},;
 
                {"Имя и период", {"Имя формы", "Начало периода", "Конец периода"},;
 
                  {"Name_Doc", "Period_Sta", "Period_End"},'UPPER(aIn[1]) + DTos(aIn[2]) + DTos(aIn[3])';
 
                   ,,,,"Code"},;
 
                {"Физический", ,,,,,,};
 
               }
 
 	 
 
 
8-м параметром пробовал еще ставить 0, "0","". Не работает. Точнее в некоторых из этих вариантах работает со второй попытки, т.е. первый раз выбираешь сотрировку она не срабатывает, второй раз жмешь F3, курсор стоит на 2-й записи, выбираешь 4-й (физический) запись и срабатывает ...
 
 
Это одна проблема. Вторая проблема поиск. Можно убрать этот пунк из поиска (F7) и/или как сделать поиск по физическому номеру записи?  
			 
		
 
	 
	
		Back to top  
		 
	 
	
		 
	 
	
		Дениска  Joined: 26 Feb 2002 Posts: 649 
		
			
				Posted: 09 Jul 2007 14:31     Post subject:   
				     
			 
			
				 
			 
			
				 	  nordk wrote:  	 		  
 
2.Для сортировки по временному индексу надо создать временный индекс и включить имя ТЭГа в сортировку
 
 	 
 
 
Здесь получилось, но опять срабатывает только со второго раза  
 
 
  	  Code:  	 		  
 
  temp_index := F_form_arc -> (CreateTempIndex("DTos(date_calc)"))
 
 
  _aSortSeek :={{"Период и код", "Код формы", "Code_Var",'UPPER(aIn[1])',,,,"Var"},;
 
                {"Имя формы", "Имя формы", "Name_Doc",'UPPER(aIn[1])',,,,"Name"},;
 
                {"Имя и период", {"Имя формы", "Начало периода", "Конец периода"},;
 
                  {"Name_Doc", "Period_Sta", "Period_End"},'UPPER(aIn[1]) + DTos(aIn[2]) + DTos(aIn[3])';
 
                   ,,,,"Code"},;
 
                {"Дата создания", "Дата создания", "date_calc", "DTos(aIn[1])",,,,"temp_index"};
 
               }
 
 
 	 
 
			 
		
 
	 
	
		Back to top  
		 
	 
	
		 
	 
	
		Дениска  Joined: 26 Feb 2002 Posts: 649 
		
			
				Posted: 09 Jul 2007 14:53     Post subject:   
				     
			 
			
				 
			 
			
				По пути еще один вопрос из другой серии. Как из БЭСТ-а получить путь до каталога Bin?  
			 
		
 
	 
	
		Back to top  
		 
	 
	
		 
	 
	
		nordk  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб 
		
			
				Posted: 10 Jul 2007 10:32     Post subject:   
				     
			 
			
				 
			 
			
				Вообще-то путь до каталога BIN
 
/BIN 
 
Но вопрос зачем Вам именно этот каталог: используйте лучше PRO
 
Управлять нельзя, можно просто при старте Инитлиста изощряться
 
с установкой индекса при входе. Ставьет первым.
 
ФИзический порядок ставьте просто 0 в имя тега.
 
Почему и он и временный индекс срабатывает у Вас со второго
 
раза мне непонятно - надо смотреть всю программу.
 
Пункт из F7 убирается легко последним (15) параметром aSortSeek  
			 
		
 
	 
	
		Back to top  
		 
	 
	
		 
	 
	
		Дениска  Joined: 26 Feb 2002 Posts: 649 
		
			
				Posted: 11 Jul 2007 09:30     Post subject:   
				     
			 
			
				 
			 
			
				 	  nordk wrote:  	 		  Вообще-то путь до каталога BIN
 
/BIN 
 
Но вопрос зачем Вам именно этот каталог: используйте лучше PRO
 
 	 
 
 
Выяснилось, что путь не нужен   Мне нужно запусть файл frview.exe. Выяснилось, что он доступен так: BIN\frview.exe
 
 
Сейчас я запускаю отчет так:
 
  	  Code:  	 		  
 
  SETKEY(13,{||xRun ("BIN\frview.exe " + LoadPath() + AllTrim(memoline(F_form_arc->doc_string, 254, 1)))})
 
 	 
 
 
Но после выхода из отчета я выхожу и из плагина   Как исправить ситуацию?  
			 
		
 
	 
	
		Back to top  
		 
	 
	
		 
	 
	
		nordk  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб 
		
			
				Posted: 11 Jul 2007 12:52     Post subject:   
				     
			 
			
				 
			 
			
				Не могу понять никак: что нужно ?
 
Осветите поподробнее ситуацию плз.  
			 
		
 
	 
	
		Back to top  
		 
	 
	
		 
	 
	
		Дениска  Joined: 26 Feb 2002 Posts: 649 
		
			
				Posted: 06 Aug 2007 08:55     Post subject:   
				     
			 
			
				 
			 
			
				Код программы:
 
  	  Code:  	 		  
 
Function Main()
 
  LOCAL aSet,aSetKey,nTop,nBot,cColHead,aBlockCols,cCurproc, bDel, _aSortSeek, temp_index
 
  aSetKey:=SaveSetKey()
 
  DBPUSH() 
 
  altd()
 
 
  NETUSE("F_form_arc",LOADPATH()+"form_arc.dbf")
 
 
  SETKEY(13,{||xRun ("BIN\frview.exe " + LoadPath() + AllTrim(memoline(F_form_arc->doc_string, 254, 1)))})
 
 
  DISPBOX(1,0,24,79,( CHR( 201 ) + CHR( 205 ) + CHR( 187 ) + CHR( 186 ) + CHR( 188 ) + CHR( 205 ) + CHR( 200 ) + CHR( 186 )+' ' ),;
 
  "W+/B")
 
 
  nTop := 2
 
 
  nBot := 23
 
 
  cColHead:={" Код   Наименование формы отчетности               Дата    Начало     Конец   ",;
 
             " формы                                           создания  периода   периода  "}      
 
                                                                                            
 
  aBlockCols:={{{||SubStr(FIELD->code_var,7,4)}, 1},{{||FIELD->name_doc},7},{{||FIELD->Date_Calc},49},{{||FIELD->Period_Sta},59},{{||FIELD->Period_End},69}}
 
 
  cCurProc:={||"2"}
 
 
  bDel:={||.F.} 
 
 
  F_form_arc -> (OrdCreate(GlobalTmpPath+ "cdx_form_arc", "temp_index", "DTos(date_calc)"))
 
 
  _aSortSeek :={{"Период и код", "Код формы", "Code_Var",'UPPER(aIn[1])',,,,"Var"},;
 
                {"Имя формы", "Имя формы", "Name_Doc",'UPPER(aIn[1])',,,,"Name"},;
 
                {"Имя и период", {"Имя формы", "Начало периода", "Конец периода"},;
 
                  {"Name_Doc", "Period_Sta", "Period_End"},'UPPER(aIn[1]) + DTos(aIn[2]) + DTos(aIn[3])';
 
                   ,,,,"Code"},;
 
                {"Дата создания", "Дата создания", "date_calc", "DTos(aIn[1])",,,,"temp_index"};
 
               }
 
 
  F_form_arc->( INITLIST(nTop,nBot,cColHead,aBlockCols,cCurProc,;
 
          ,,,,,;                      
 
          ,,,_aSortSeek,,))
 
 
  F_form_arc->( DBCLOSEAREA() )
 
  DbPop() 
 
  RestSetKey(aSetkey)
 
Return
 
 	 
 
 
Обращаю внимаение, что реакция на Enter изменина с помощью SETKEY.
 
 
По нажатию Enter вызывается ФастРепорт. А после выхода из ФастРепорт выходишь и из программы. Как сделать чтобы при выходе из ФастРепорт возвращаться обратно в плагин?  
			 
		
 
	 
	
		Back to top  
		 
	 
	
		 
	 
	
		nordk  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб 
		
			
				Posted: 06 Aug 2007 13:49     Post subject:   
				     
			 
			
				 
			 
			
				Добавьте после вызова функции xRun в блоке кода через запятую 2  
			 
		
 
	 
	
		Back to top  
		 
	 
	
		 
	 
	
		Дениска  Joined: 26 Feb 2002 Posts: 649 
		
			
				Posted: 06 Aug 2007 15:10     Post subject:   
				     
			 
			
				 
			 
			
				 	  nordk wrote:  	 		  Добавьте после вызова функции xRun в блоке кода через запятую 2 	 
 
 
   не понял куда надо добавить 2   Попробывал поставить ее в несколько мест, но это не помогло   
			 
		
 
	 
	
		Back to top  
		 
	 
	
		 
	 
	
		nordk  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб 
		
			
				Posted: 06 Aug 2007 15:45     Post subject:   
				     
			 
			
				 
			 
			
				Это у Вас
 
  
 
  	  Code:  	 		  SETKEY(13,{||xRun ("BIN\frview.exe " + LoadPath() + AllTrim(memoline(F_form_arc->doc_string, 254, 1)))})  	 
 
 
А это я предложил 
 
    	  Code:  	 		  SETKEY(13,{||xRun ("BIN\frview.exe " + LoadPath() + AllTrim(memoline(F_form_arc->doc_string, 254, 1))),2})  	 
 
			 
		
 
	 
	
		Back to top  
		 
	 
	
		 
	 
	
		nordk  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб 
		
			
				Posted: 06 Aug 2007 15:48     Post subject:   
				     
			 
			
				 
			 
			
				Вот здесь тоже
 
 
 
исправьте на
 
  
			 
		
 
	 
	
		Back to top  
		 
	 
	
		 
	 
	
		Дениска  Joined: 26 Feb 2002 Posts: 649 
		
			
				Posted: 06 Aug 2007 15:51     Post subject:   
				     
			 
			
				 
			 
			
				Спасибо, получилось   
			 
		
 
	 
	
		Back to top  
		 
	 
	
		 
	 
	
		 
	 
  
	 
	    
	   
	
You cannot  post new topics in this forum You cannot  reply to topics in this forum You cannot  edit your posts in this forum You cannot  delete your posts in this forum You cannot  vote in polls in this forum  
   
 
Powered by phpBB  © phpBB Group