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 вне зависимости от способа. Цитата:
Изначально опубликовано Владимир Максимов
Так что оба способа в данном случае абсолютно равноправны. Вопрос исключительно личных предпочтений. |
|
|
|