|  26.02.2004, 10:22 | #1 | 
| Участник |  Как в AddRange() добавить поле Dimension[2] 
			
			Как в AddRange() добавить поле Dimension[2] ? Ругается на строку qdbs.AddRange(FieldNum(SalesTable,Dimension[2])) Это и понятно, физически нет такого поля. Но как тогда программно задать Range по не первому элементу поля типа массив? Т.е. как получить ID такого поля? | 
|  | 
|  26.02.2004, 10:53 | #2 | 
| Участник | 
			
			Сам нашел. Если еще кому надо: qdbs.AddRange(fieldid2ext(fieldnum(SalesTable,dimension),2)) fieldid2ext - это метод класса Global | 
|  | 
|  26.02.2004, 11:02 | #3 | 
| 1C | 
			
			Описываем переменные PHP] Dimension analitik; QueryBuildRange rangeDep; [/PHP] PHP код: 
			 | 
|  | 
|  26.02.2004, 11:03 | #4 | 
| 1C | Цитата: 
		
			fieldid2ext - это метод класса Global
		
	 | 
|  | 
|  26.02.2004, 13:39 | #5 | 
| Участник | 
			
			У меня вот как работает: QueryBuildDataSource qB; QueryBuildRange qr; qr = qB.addRange(fieldnum(LedgerBudget,dimension)+(idx<<16)); где idx - номер аналитики | 
|  | 
|  26.02.2004, 14:13 | #6 | 
| Участник | 
			
			Содержание метода fieldId2Ext класса Global PHP код: 
			 | 
|  | 
|  26.02.2004, 14:15 | #7 | 
| Участник | 
			
			[QUOTE]Изначально опубликовано Владимир Максимов  [B]Сам нашел. Если еще кому надо: qdbs.AddRange(fieldid2ext(fieldnum(SalesTable,dimension),2)) ________________________________________________ А я так делаю: qbr = qr.dataSourceTable(tablenum(SalesTable)).addRange(fieldname2id(tablename2id('SalesTable'),'Dimension[5]')); | 
|  | 
|  26.02.2004, 14:22 | #8 | 
| Участник | 
			
			а вот так писать не стоит. названия полей, таблиц, методов могут изменится. в qdbs.AddRange(fieldid2ext(fieldnum(SalesTable,dimension),2)) будет синтаксиеская ошибка на этапе компиляции а в ...addRange(fieldname2id(tablename2id('SalesTable'),'Dimension[5]')); будет run-time ошибка. Почувствуйте разницу   | 
|  | 
|  26.02.2004, 14:26 | #9 | 
| Участник | Цитата: 
		
			Изначально опубликовано NeveB  qr = qB.addRange(fieldnum(LedgerBudget,dimension)+(idx<<16)); fieldid2ext - будет. | 
|  | 
|  26.02.2004, 16:16 | #10 | 
| Участник | 
			
			[QUOTE]Изначально опубликовано mazzy  [B]а вот так писать не стоит. названия полей, таблиц, методов могут изменится. __________________________________________ Как это могут измениться!? При смене названия таблицы (да ещё такой как SalesTable) сколько кода навернётся. | 
|  | 
|  26.02.2004, 19:02 | #11 | 
| Участник | Цитата: 
		
			в qdbs.AddRange(fieldid2ext(fieldnum(SalesTable,dimension),2))  будет синтаксиеская ошибка на этапе компиляции а в ...addRange(fieldname2id(tablename2id('SalesTable'),'Dimension[5]')); будет run-time ошибка. Более качественным в этом отношении мне видится такой код: SalesTable table; addRange(fieldname2id(table.tableId,'Dimension[5]')); | 
|  | 
|  27.02.2004, 10:02 | #12 | 
| Участник | 
			
			Ошибка будет в любом случае в Run-Time вне зависимости от способа. На этапе компиляции не даст ошибки никакой из приведенных способов. Это легко проверить: PHP код: 
			Ссылка на то, что название полей, таблиц и методов могут изменится в данном случае неуместна! В обоих случаях я должен писать имя таблицы и имя поля. Разница только в способе указания индекса массива - либо в качестве отдельного параметра, либо как реквизит имени поля. Так что оба способа в данном случае абсолютно равноправны. Вопрос исключительно личных предпочтений. | 
|  | 
|  27.02.2004, 11:21 | #13 | 
| Участник | Цитата: 
		
			Изначально опубликовано levsha  Но зато вторым способом можно передавать имя таблицы в качестве параметра. | 
|  | 
|  27.02.2004, 11:27 | #14 | 
| Участник | Цитата: 
		
			Изначально опубликовано Владимир Максимов  Ошибка будет в любом случае в Run-Time вне зависимости от способа. Цитата: 
		
			Изначально опубликовано Владимир Максимов  Так что оба способа в данном случае абсолютно равноправны. Вопрос исключительно личных предпочтений. | 
|  | 
|  | 
| 
 |