|
|
|
DW добавление столбцов
|
|||
|---|---|---|---|
|
#18+
Всем доброе утро! Так получилось , что в данный момент срочно приходиться разбираться с PB и вносить изменения в программу, хотя сам пишу программы на Си.. Для меня PB - тёмный лес , но немного уже удалось разобраться. Прошу прощения , могу немного путать в терминалогии. Есть БД на СУБД MS SQL, пишется под неё клиент(точнее сказать - уже написан клиент.Человек ,который вёл данные проекты - уволился.) Вылезли ошибки, их надо срочно поправить. Мне выдали барабан на шею и горн в руки сословами: "Вперёд к светлому будущему!". Проблемма : На одной из форм есть объект DW, поднего подклыдывается объект DataObject на основе View-ра в БД, который возвращает данные в таком формате : Name A1 A2 A3 ... An Имя1 100 200 300 ... 121 Имя2 300 134 345 ... 190 Имя3 345 98 123 ... 34 где n - зависит от заполнености БД. Возник вопрос : Как добавить в конец ещё несколько столбцов : B1,B2,B3 ???? Смотрел поик и понял , что это делается как-то через фукцию dw_1.modify("");, но нимогу вникнуть что надо ей передать. Во встроенном хелпе совсем запутался :( Подскажите плиз . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 10:19 |
|
||
|
DW добавление столбцов
|
|||
|---|---|---|---|
|
#18+
Самый простой способ: 1. Правишь вьюху, добовляя нужные столбцы. 2. Правишь "объект DataObject". Это DataWindow, его имя ты видишь в пропортях на форме. Просто щелкаешь правым кликом мыши на этом обьекте (прямо на форме) и выбираешь Modify DataWindow... , сразу вываливаешься в окно редактирования этого обьекта. Далее в меню Design\Data Source... там можно будет добавить нужные столбцы - путем простого выбора, потом немного причешишь DataWindow и все будет ОК! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 10:35 |
|
||
|
DW добавление столбцов
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответ ,но эти столбцы я выбрать не могу , так они полностью расчётные и данные для расчётов берутся из других dw.(забыл об этом написать, меня даже CrossTab - не спасает для вычислений.) [quote] Name A1 A2 A3 ... An Имя1 100 200 300 ... 121 Имя2 200 300 400 ... 125 где n - зависит от заполнености БД. [/quote] показатель n - может быть равен 3, 5 ..10 и более. Единственный способ добавить эти 3 столбца программно, а дальше все вычисления сделать через циклы с вставкой в данный dw. Вот в чём вопрос , как программно их туда добавить???7 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 14:42 |
|
||
|
DW добавление столбцов
|
|||
|---|---|---|---|
|
#18+
Вот что по этому поводу говорит приложение dw syntax: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 14:55 |
|
||
|
DW добавление столбцов
|
|||
|---|---|---|---|
|
#18+
авторЕдинственный способ добавить эти 3 столбца программно, а дальше все вычисления сделать через циклы с вставкой в данный dw. Вот в чём вопрос , как программно их туда добавить???7 Во первых выполняете, что прописал Black Savage. Теперь собственно, как причесать DataWindow Object (это и есть DataObject) - Вызываем меню Design/DataSource... Внизу находим закладочку Compute , выбираем её. Щелкаем правой кнопкой мыши, и выбираем Insert Compute , а дальше вколачиваем что-то вроде 0 as MyComputeField_1 Думаю, что ход мысли Вам понятен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 15:04 |
|
||
|
DW добавление столбцов
|
|||
|---|---|---|---|
|
#18+
Ermak Во первых выполняете, что прописал Black Savage. Теперь собственно, как причесать DataWindow Object (это и есть DataObject) - Вызываем меню Design/DataSource... Внизу находим закладочку Compute , выбираем её. Щелкаем правой кнопкой мыши, и выбираем Insert Compute , а дальше вколачиваем что-то вроде 0 as MyComputeField_1 Думаю, что ход мысли Вам понятен. Ход мысли понятен, только там я могу выбрать либо Columns... либо Functions .. , у меня на закладке compute ничего нет Я так понимаю это мой случай .. Winnie-the-Pooh <DW Control Name>.Modify(& "create column( id=<an integer> tabsequence=<an integer> accelerator='<a single letter>' moveable=<0 - False, 1 - True> resizeable=<0 - False, 1 - True> pointer='<Arrow!, Cross!, HourGlass!, IBeam!, Icon!, Size!, SizeNESW!, SizeNS!, SizeNWSE!, SizeWE!, UpArrow!, or cursor filename (with path)>' band=<Detail, Footer, Header, Header.<group #>, Summary, Trailer.<group #>, Background, Foreground>" + & " x='<an integer>' y='<an integer>' bitmapname=<Yes or No> criteria.dialog=<Yes or No> criteria.override_edit=<Yes or No> format='<constant string containing display format (i.e., [general]) for col (can also be an expression)>' alignment='<0 - Left, 1 - Right, 2 - Center>' criteria.required=<Yes or No> height.autosize=<Yes or No> border='<0 - None, 1- Shadow, 2 - Box, 3 - Resize, 4 - Underline, 5 - 3D Lowered, 6 - 3D Raised>' color='<a long>' height='<an integer>' width='<an integer>' name=<string> tag='<string>'"+& " background.mode='<0 - Opaque, 1 - Transparent>' background.color='<a long>' font.face='<name of type face (i.e., SYSTEM, COURIER)>' font.height='<negative number for points, positive number for PBUs (i.e., -10 = 10 points, 10 = 10 PBUs>' font.weight='<400 - Normal, 700 - Bold>' font.family='<0 - AnyFont, 1 - Roman, 2 - Swiss, 3 - Modern, 4 - Script, 5 - Decorative>' font.pitch='<0 - default, 1 - Fixed, 2 - Variable>' font.charset='<0 - Ansi, 1 - default, 2 - Symbol, 128 - Shift jis, 255 - OEM>' font.italic='<0 - False, 1 - True>' font.strikethrough='<0 - False, 1 - True>' font.underline='<0 - False, 1 - True>'"+& " edit.validatecode=<Yes or No> edit.focusrectangle=<Yes or No> edit.format=<constant string containing display format (i.e., [general]) for col (can also be an expression)> edit.nilisnull=<Yes or No> edit.password=<Yes or No> edit.required=<Yes or No> edit.hscrollbar=<Yes or No> edit.limit=<max number of chars the user can type (0 unlimited)> edit.codetable=<Yes or No> edit.displayonly=<Yes or No> edit.autovscroll=<Yes or No> edit.case=<Any, Upper or Lower> edit.autohscroll=<Yes or No> edit.autoselect=<Yes or No> edit.vscrollbar=<Yes or No> edit.name='<repository style name, if any>') ") Спасибо за помощь , сейчас буду пробовать .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 16:17 |
|
||
|
DW добавление столбцов
|
|||
|---|---|---|---|
|
#18+
4xwdХод мысли понятен, только там я могу выбрать либо Columns... либо Functions .. , у меня на закладке compute ничего нет Ну и выбирайте все что угодно. Аболютно. Чтобы Вы не выбрали, это будет преобразовано в строку синтаксиса, который Вы уже сможете заменить на то, что Вам нужно. И, кстати говоря, ничего не быть там не может - хотя бы одна пустая строка там есть всегда 4xwd Я так понимаю это мой случай .. Вы уверены, что Вам проще разобраться в синтаксисе метода, чем в визуальной среде? Если я Вас правильно понял, Вы не собираетесь полностью переходить на РВ и работать на нем? Тогда зачем "делать лишние телодвижения" по изучению сожного, враждебного Вам синтаксиса, который Вам больше никогда, вероятнее всего, не понадобится? (ИМХО) --- С уважением, IKAR ikarhomecenter@narod.ru IkarHomeCenter ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 16:54 |
|
||
|
DW добавление столбцов
|
|||
|---|---|---|---|
|
#18+
Внизу находим закладочку Compute, выбираем её. Щелкаем правой кнопкой мыши, и выбираем Insert Compute Хорошо, давайте зайдем с другой стороны. - Выбираем меню Design/datSource... - Выбираем меню Design/Convert To Syntax Теперь уже видим, сам SQL запрос на выборку данных Осталось добавить, нужные Вам Computed Field'ы Для этого после последнего поля в Select'e ставим запятую и добавляем 0 as MyNumberField_1, 0 as MyNumberField_2, 0 as MyNumberField_3... PS. Думаю, что ход мысли ясен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2004, 06:36 |
|
||
|
DW добавление столбцов
|
|||
|---|---|---|---|
|
#18+
IkarВы уверены, что Вам проще разобраться в синтаксисе метода, чем в визуальной среде? Если я Вас правильно понял, Вы не собираетесь полностью переходить на РВ и работать на нем? Тогда зачем "делать лишние телодвижения" по изучению сожного, враждебного Вам синтаксиса, который Вам больше никогда, вероятнее всего, не понадобится? (ИМХО) В визуальной среде я уже разобрался немного, но задача очень специфическая и для меня сложная .. Как сказал наш програмист , когда увольнялся : "Надо знать РВ - для БД, СИ и Ассемблер - для системы,тогда всё можно будет сделать!" Предстоит или нет мне полностью переходить на среду разработки РВ я однозначно ответить сейчас не могу , время покажет. Ermak Внизу находим закладочку Compute, выбираем её. Щелкаем правой кнопкой мыши, и выбираем Insert Compute Хорошо, давайте зайдем с другой стороны. - Выбираем меню Design/datSource... - Выбираем меню Design/Convert To Syntax Теперь уже видим, сам SQL запрос на выборку данных Осталось добавить, нужные Вам Computed Field'ы Для этого после последнего поля в Select'e ставим запятую и добавляем 0 as MyNumberField_1, 0 as MyNumberField_2, 0 as MyNumberField_3... PS. Думаю, что ход мысли ясен Ход мысли понятен , только там у меня чистый серый экран, с надписью на верху "Select - Server2.odbc.stat.dbo" и всё. Если я выбираю какое-нибудь поле, то тогда данные совсем не отображаются. Парадокс .. А если прогуляться по закладкам ,которые мы открываем через Design/datSource... , то там можно увидеть : fact_table_a12u_col_6 - имя вьюера Where - ничего нет Having - ничего нет Compute - ничего нет Syntax - SELECT fact_table_a12u_col_6.row_id, fact_table_a12u_col_6.region_name, fact_table_a12u_col_6.yy, fact_table_a12u_col_6.parameter_value FROM fact_table_a12u_col_6 Sql - запрос к вьюеру Sort - fact_table_a12u_col_6.row_id fact_table_a12u_col_6.region_name fact_table_a12u_col_6.yy fact_table_a12u_col_6.parameter_value Group - fact_table_a12u_col_6.column_number fact_table_a12u_col_6.region_name fact_table_a12u_col_6.yy fact_table_a12u_col_6.parameter_value fact_table_a12u_col_6.sex fact_table_a12u_col_6.row_id fact_table_a12u_col_6.hndl_region Как я написал выше у меня есть view1 на сервере БД, в него выбираются данные в структуре : column_number region_name parameter_value yy row_id sex hndl 1 В округ 100 A 1 Москва 1 В округ 200 А1 1 Москва 1 С округ 121 А 2 Москва 1 С округ 234 А1 2 Москва 1 Ю округ 124 А 5 Москва 1 Ю округ 111 А2 7 Москва Когда я открываю DW то данные у меня представляются в виде: region_name A A1 A2 В округ 100 200 С округ 121 234 Ю округ 124 111 Как понимаете , чем больше будет записей , тем больше столбцов будет в результате и жёстко сделать связъ не удаётся. И ещё надо добавить 3 расчётных поля в конец ... :( Вот тут и зарылась - изюминка .. Вопрос как раз и задавался : Как добавить столбец. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2004, 10:14 |
|
||
|
DW добавление столбцов
|
|||
|---|---|---|---|
|
#18+
авторSELECT fact_table_a12u_col_6.row_id, fact_table_a12u_col_6.region_name, fact_table_a12u_col_6.yy, fact_table_a12u_col_6.parameter_value FROM fact_table_a12u_col_6 Добавляем в Ваш исходный запрос несколько computed Field'ов, примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2004, 13:10 |
|
||
|
DW добавление столбцов
|
|||
|---|---|---|---|
|
#18+
4xwdСпасибо за ответ ,но эти столбцы я выбрать не могу , так они полностью расчётные и данные для расчётов берутся из других dw Зайдём ещё с одной стороны. Даже если данные берутся из других dw, то всё равно они както связываются с главным dw, подозреваю, что по полю Name. Следовательно можно создать View2 из расчетных полей, что-то типа (Name, compute_field1, compute_field1, ... ). Собрать оба View в один Create view ViewMain() As Select v1.*, v2.* From view1 v1, view2 v2 Where v1.name=v2.name И уже этот ViewMain использовать в качестве источника данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2004, 14:19 |
|
||
|
DW добавление столбцов
|
|||
|---|---|---|---|
|
#18+
Всем больщое спасибо за интерестные решения и помощь! Вопрос как всегда решился - Организационно . Жёстким ограничением - вывод только 5 значений. Что позволило сделать шаблон , а дальше выгрузить в него данные - дело техники. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2004, 11:36 |
|
||
|
|

start [/forum/topic.php?fid=15&fpage=100&tid=1338932]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 370ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...