| 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 |  | 
	
		|  | 
	
		|  |