| View previous topic :: View next topic   | 
	
	
	
		| Author | 
		Message | 
	
	
		nordk
 
 
  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
  | 
		
			
				 Posted: 11 Oct 2005 11:17    Post subject: Обсуждение написание модуля на харборе УРОК5 | 
				     | 
			 
			
				
  | 
			 
			
				Задачей данной темы является научиться в режиме 
 
ввода/корректировки использовать перебор данных из
 
существующего массива посредством клавиши "пробел" | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		nordk
 
 
  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
  | 
		
			
				 Posted: 11 Oct 2005 11:52    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				В нашем примере при вводе/корректировке третьим параметром стоит наименование услуг.
 
Давайте на примере предположим что у нас есть всего 3 услуги и мы будем выбирать их из массива
 
- Услуги системного инженера
 
- Услуги по программированию
 
- Услуги консультанта
 
- Услуги по терминальной связи
 
 
Создадим массив
 
 
 	  | Code: | 	 		  aType:={{'1','Услуги системного инженера'}, ;
 
              {'2','Услуги по программированию'},;
 
              {'3','Услуги консультанта       '},      ;
 
              {'4','Услуги по терминальной св.'}} | 	 
  | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		nordk
 
 
  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
  | 
		
			
				 Posted: 11 Oct 2005 12:02    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Теперь исправим наш массив справочника
 
 
 	  | Code: | 	 		  | aRef:={,,{|x|RotateAndReader(x,m->aType)},,,,"partners"} | 	  
 
 
С учетом того что у нас не совсем стандартный справочник нам нужно задействовать еще 18 элемент функции InitList
 
 
 	  | Code: | 	 		  | aGetBlock:={,,{|x|RotateBlock(x,m->aType,"aIn[3]")}} | 	  
 
 
И соответственно подправить нашу итоговую строчку
 
 
 	  | Code: | 	 		  work->(Initlist(nTop,nBot,cColHead,aBlockCols,cCurProc,; 
 
_aHeads,aRef,aPic,aWhen,,; 
 
nUniMode,bDel,,,,; 
 
,,aGetBlock,,,; 
 
,,cFindMacro,,,  ; 
 
,,,,aHotKey)) | 	  
 
 
Вот так шаг за шагом получаем очень даже "навороченный" экран работы   
 
 
 
ВНИМАНИЕ !!! Данное описание для демонстрации подключения клавиши пробел. Вопросы будут.... нашу задачку после такого вмешательства предстоит улучшать | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Марина
 
 
  Joined: 27 Aug 2002 Posts: 501 Location: Кондрина Марина Александровна Occupation: ОАО БКО программист Interests: Боровичи Новгородской обл
  | 
		
			
				 Posted: 11 Oct 2005 14:05    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Поясните, пожалуйста, кто такой m->, почему именно m
 
 
Я попробовала убрать этот m->. Тогда перебор вариантов услуг получается, но на экран выводится и в файл записывается номер варианта напимер '2' вместо значения. 
 
В случае редактирования не новой записи на ввод подается первый вариант из aType, а не тот, который уже имеется в этой записи. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Светлана
 
 
  Joined: 22 Jul 2002 Posts: 416 Location: Эпштейн Светлана
  Interests: Бердск, Новосибирская обл
  | 
		
			
				 Posted: 12 Oct 2005 10:37    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				| А можно еще рассказать про 19,20 и 24 параметры InitList? Они управляют цветом данных. Хочется чтобы не только работало, но и было красиво... | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		nordk
 
 
  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
  | 
		
			
				 Posted: 12 Oct 2005 11:50    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | Марина wrote: | 	 		  Поясните, пожалуйста, кто такой m->, почему именно m
 
 
Я попробовала убрать этот m->. Тогда перебор вариантов услуг получается, но на экран выводится и в файл записывается номер варианта напимер '2' вместо значения. 
 
В случае редактирования не новой записи на ввод подается первый вариант из aType, а не тот, который уже имеется в этой записи. | 	  
 
 
Я брал пример из рабочей программы - а там у меня внутри функции и желательно сказать было что в памяти есть массив вот и использовал m-> , в нашем примере это действительно совсем не нужно было... (но и мешать не должно) - что касается всего остального, то действительно так - я же писал что это показать как перебор сделать, вечером распишу как дальше улучшить все правиль | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		nordk
 
 
  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
  | 
		
			
				 Posted: 12 Oct 2005 11:52    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | Светлана wrote: | 	 		  | А можно еще рассказать про 19,20 и 24 параметры InitList? Они управляют цветом данных. Хочется чтобы не только работало, но и было красиво... | 	  
 
 
Обязательно распишу...
 
Извините за медлительность - днем еще и другие вопросы нужно реша | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		nordk
 
 
  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
  | 
		
			
				 Posted: 12 Oct 2005 22:13    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | Марина wrote: | 	 		  Поясните, пожалуйста, кто такой m->, почему именно m
 
 
Я попробовала убрать этот m->. Тогда перебор вариантов услуг получается, но на экран выводится и в файл записывается номер варианта напимер '2' вместо значения. 
 
В случае редактирования не новой записи на ввод подается первый вариант из aType, а не тот, который уже имеется в этой записи. | 	  
 
 
 
1. Для того чтобы все работало нам с Вами надо добавить поле в базу TYPE C 1 0 и дальше при выводе на экране можно тогда в массиве блоков кода вместе {{||FIELD->NAME},....}
 
написать {{|| IF(!EMPTY(FIELD->TYPE),aType[VAL(FIELD->TYPE),2],SPACE(25))}....}
 
 
Поле NAME в этом случае будет не нужно - если по нему не нужен фрагментный поиск
 
 
2. Для того чтобы подставляло нужное надо использовать параметр 26
 
Туда надо прописать
 
bPreGet:={|x,y,z|aIn[x]:=FIELD->VID} | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Светлана
 
 
  Joined: 22 Jul 2002 Posts: 416 Location: Эпштейн Светлана
  Interests: Бердск, Новосибирская обл
  | 
		
			
				 Posted: 18 Oct 2005 09:59    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				| Ау!!! А продолжение будет? Только вошли во вкус... | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		nordk
 
 
  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
  | 
		
			
				 Posted: 18 Oct 2005 13:09    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Обязательно будет - простыть уже нельзя   | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		itman
 
  
  Joined: 05 Apr 2002 Posts: 1247 Location: Ильин Е.Ю. Occupation: Cio Interests: Кинель
  | 
		
			
				 Posted: 20 Oct 2005 15:48    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				| Хотелось бы осветить вопрос отметки строк (ins /  +  / - )в initlist. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		nordk
 
 
  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
  | 
		
			
				 Posted: 20 Oct 2005 16:18    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				| План перенес как раз сегодня на вечер, так что скоро будет | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Светлана
 
 
  Joined: 22 Jul 2002 Posts: 416 Location: Эпштейн Светлана
  Interests: Бердск, Новосибирская обл
  | 
		
			
				 Posted: 20 Oct 2005 17:29    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				| И еще про цвет обещали... про 19,20 и 24 параметры InitList? | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		nordk
 
 
  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
  | 
		
			
				 Posted: 20 Oct 2005 18:43    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				| Все помню | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		 |