Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PowerBuilder Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 (?) chenge picture in dw  [new]
drw
Guest
Здрасте,

Такой вопрос:
как в dw сделать вместо поля картинку, если напимер поле равно 0 - то один значёк, если 1 - то другой... Пробовал вставлять объект picture, но программно поменять имя выводимого файла, через (dw_1.object.p_1.picturename = "D:\dw_pic1.bmp") не получается. Ошибка (Error accessing external object...). Надо вот, чтоб как на скрепке, первая колонка (@) Как такое придумать?

Заранее благодарен за ответ!
Дима.

К сообщению приложен файл. Размер - 0Kb
19 янв 05, 16:20    [1257939]     Ответить | Цитировать Сообщить модератору
 Re: (?) chenge picture in dw  [new]
Alexander Kolotinets
Member

Откуда:
Сообщений: 121
Как вариант можно вставить две разные картинки и играться свойством visible в зависимости от условий
19 янв 05, 16:34    [1258017]     Ответить | Цитировать Сообщить модератору
 Re: (?) chenge picture in dw  [new]
Gosha
Member

Откуда: Odessa
Сообщений: 217
покопай в сторону computed field функция bitmap
19 янв 05, 16:42    [1258068]     Ответить | Цитировать Сообщить модератору
 Re: (?) chenge picture in dw  [new]
PL99
Member

Откуда: Moscow
Сообщений: 1367
Опиши структуру таблицы и укажи, какой сервер
19 янв 05, 16:45    [1258084]     Ответить | Цитировать Сообщить модератору
 Re: (?) chenge picture in dw  [new]
PL99
Member

Откуда: Moscow
Сообщений: 1367
Hint: Display As Picture
19 янв 05, 16:48    [1258096]     Ответить | Цитировать Сообщить модератору
 Re: (?) chenge picture in dw  [new]
Локшин Марк
Member

Откуда: Воронеж
Сообщений: 3154
Создать computed field с выражением типа
bitmap(if (field = 1,"1.bmp","0.bmp"))
19 янв 05, 17:49    [1258347]     Ответить | Цитировать Сообщить модератору
 Re: (?) chenge picture in dw  [new]
drw
Guest
Локшин Марк
Создать computed field с выражением типа
bitmap(if (field = 1,"1.bmp","0.bmp"))

Именно то что нужно! Спасибо!

Всем огромное спасибо!!! за помощь...
Дима.
19 янв 05, 18:28    [1258501]     Ответить | Цитировать Сообщить модератору
 Re: (?) chenge picture in dw  [new]
Филипп
Member

Откуда: Boston, MA, USA (c 1989 ) б. Москва
Сообщений: 1880
Локшин Марк
Создать computed field с выражением типа
bitmap(if (field = 1,"1.bmp","0.bmp"))

Как пральна подметил г-н PL99 - Hint: Display As Picture, так что зачем лишнего строить, неясно...
19 янв 05, 21:18    [1258808]     Ответить | Цитировать Сообщить модератору
 Re: (?) chenge picture in dw  [new]
Локшин Марк
Member

Откуда: Воронеж
Сообщений: 3154
Филипп
Как пральна подметил г-н PL99 - Hint: Display As Picture, так что зачем лишнего строить, неясно...

А где лишнее? Как говорится, тоже самое, вид сбоку. Только еще почему-то SQL запрос должен знать об именах картинок, что весьма не очевидно (что он должен знать).
20 янв 05, 10:02    [1259387]     Ответить | Цитировать Сообщить модератору
 Re: (?) chenge picture in dw  [new]
Филипп
Member

Откуда: Boston, MA, USA (c 1989 ) б. Москва
Сообщений: 1880
Локшин Марк
Филипп
Как пральна подметил г-н PL99 - Hint: Display As Picture, так что зачем лишнего строить, неясно...

А где лишнее? Как говорится, тоже самое, вид сбоку. Только еще почему-то SQL запрос должен знать об именах картинок, что весьма не очевидно (что он должен знать).


Это ж простите за каким хреном SQL запрос должен знать об именах картинок?
20 янв 05, 19:24    [1262225]     Ответить | Цитировать Сообщить модератору
 Re: (?) chenge picture in dw  [new]
PL99
Member

Откуда: Moscow
Сообщений: 1367
2 Филипп & Локшин Марк
Не стоит ссориться по таким пустякам :-))
Вопрос о том, должен ли сервер знать об именах картинок я для себя решил положительно - их знает соответствующая серверная функция приложения.

Возможно, что Марк руководствуется другими соображениями - имеет полное право :-)

Спасибо.

Приложение:
  • Реализация для Oracle
    CREATE OR REPLACE FUNCTION GetPictureName (FieldValue number) RETURN varchar2 IS
    lv_Ret varchar2(4000);
    BEGIN
    	if FieldValue = 0 then
    		lv_Ret:='First.bmp';
    	elsif FieldValue = 1 then
    		lv_Ret:='Second.bmp';
    	elsif FieldValue = ... then
    	...
    	else
    		lv_Ret:='Unknown.bmp';
    	end if;
       RETURN lv_Ret;
       EXCEPTION
         WHEN NO_DATA_FOUND THEN
           return 'Error.bmp';
         WHEN OTHERS THEN
           RAISE;
    END GetPictureName;

    Запрос для DW
    Select GetPictureName(MyField) Picture, OthersFields FROM MyTable;

    Для поля Picture в DW установлен флажок Display As Picture.
  • Для ASA аналогично :-)
  • 20 янв 05, 20:08    [1262279]     Ответить | Цитировать Сообщить модератору
     Re: (?) chenge picture in dw  [new]
    ЗоринАндрей
    Member

    Откуда: Санкт-Петербург
    Сообщений: 3004
    bitmap(if (field = 1,"1.bmp","0.bmp"))

    против

    CREATE OR REPLACE FUNCTION GetPictureName (FieldValue number) RETURN varchar2 IS
    ... еще два десятка строк ...

    и кто "понастроил лишнего" ?

    IMHO, сервер не должен зависеть от приложения. обратное - неверно.
    Что должен знать сервер о способе представления данных? НИ-ЧЕ-ГО!
    Вы бы еще сами картинки в блобы запихнули и само клиентское приложение заодно
    20 янв 05, 20:19    [1262290]     Ответить | Цитировать Сообщить модератору
     Re: (?) chenge picture in dw  [new]
    Филипп
    Member

    Откуда: Boston, MA, USA (c 1989 ) б. Москва
    Сообщений: 1880
    ЗоринАндрей
    bitmap(if (field = 1,"1.bmp","0.bmp"))

    против

    CREATE OR REPLACE FUNCTION GetPictureName (FieldValue number) RETURN varchar2 IS
    ... еще два десятка строк ...

    и кто "понастроил лишнего" ?


    Под лишним я подразумевал именно client side compute, и ничего больше.
    Делается это следующим образом:
    1) Как пральна подметил г-н PL99, для поля - field ставим галочку в Display As Picture
    2) Идём в Edit Styles поля field, выбираем DropDownListBox
    3) Заполняем Code Table (для непонятливых, в колонку Display Value пишутся имена bmpшек)
    20 янв 05, 20:29    [1262298]     Ответить | Цитировать Сообщить модератору
     Re: (?) chenge picture in dw  [new]
    Локшин Марк
    Member

    Откуда: Воронеж
    Сообщений: 3154
    Филипп
    1) Как пральна подметил г-н PL99, для поля - field ставим галочку в Display As Picture
    2) Идём в Edit Styles поля field, выбираем DropDownListBox
    3) Заполняем Code Table (для непонятливых, в колонку Display Value пишутся имена bmpшек)

    1. Можно конечно, но лично меня бы использование 2) и 3) несколько бы запутало, если бы я такое встретил в DataWindow.
    2. В вашем случае тогда "лишним" получается client side column. Может, конечно, оно и несколько быстрее будет работать через такую таблицу перекодировок, но это выглядит менее естественным. И по количеству объектов в DataWindow, выходит, мы ничего не проигрываем.
    3. Насколько удобно из программы менять содержимое DDLB?
    4. Вариант с computed field обеспечивает большую функциональность. Например можно обеспечить вывод различных картинок на 1 и последней строке в странице.
    21 янв 05, 10:35    [1263165]     Ответить | Цитировать Сообщить модератору
     Re: (?) chenge picture in dw  [new]
    PL99
    Member

    Откуда: Moscow
    Сообщений: 1367
    ЗоринАндрей
    IMHO, сервер не должен зависеть от приложения. обратное - неверно.
    Согласен, но с оговорками :-)
    offtop
    Приложение - это не только (и не столько) одна или несколько клиентских программ. Приложение - это реализация как клиентской, так и серверной части, т.е.,типы данных, хранимые процедуры, пакеты, материализованные представления и прочее. Мультиплатформенные приложения давно уже не делал, так что мои приложения зависят от сервера :-(

    ЗоринАндрей
    Что должен знать сервер о способе представления данных? НИ-ЧЕ-ГО!
    Вы бы еще сами картинки в блобы запихнули и само клиентское приложение заодно
    Тоже вариант :-)).Открою страшную тайну - синтаксис DW именно там и хранится, если по каким-то причинам его нельзя/сложно/нецелесообразно формировать динамически.
    end offtop
    21 янв 05, 10:37    [1263174]     Ответить | Цитировать Сообщить модератору
     Re: (?) chenge picture in dw  [new]
    PL99
    Member

    Откуда: Moscow
    Сообщений: 1367
    Локшин Марк
    3. Насколько удобно из программы менять содержимое DDLB?
    Для меня удобнее всего решить эти проблемы на сервере - функция, возвращающая имя картинки, тривиальна, позволяет обращаться к справочникам, сопровождение приложения сводится к написанию и распространению (выполнению) скрипта.

    Думаю, что все эти рассуждения автору темы неинтересны, иначе он по другому сформулировал бы свой вопрос :-) А посему, предлагаю тему закрыть.
    21 янв 05, 10:44    [1263200]     Ответить | Цитировать Сообщить модератору
     Re: (?) chenge picture in dw  [new]
    ЗоринАндрей
    Member

    Откуда: Санкт-Петербург
    Сообщений: 3004
    PL99
    функция, возвращающая имя картинки, тривиальна

    2010 год.
    PL99 давно работает в Microsoft.
    Клиента переписывают на VSharp 2011.
    Программист видит что от сервера пришла строка 'picture_1.bmp'
    тихо матерится и пишет что-то вроде
    IF (column1 = 'picture_1.bmp') { PageXXX.ShowImage("StatusOne") }


    З.Ы. Можно закрывать.
    21 янв 05, 16:34    [1265341]     Ответить | Цитировать Сообщить модератору
     Re: (?) chenge picture in dw  [new]
    Филипп
    Member

    Откуда: Boston, MA, USA (c 1989 ) б. Москва
    Сообщений: 1880
    Локшин Марк
    Филипп
    1) Как пральна подметил г-н PL99, для поля - field ставим галочку в Display As Picture
    2) Идём в Edit Styles поля field, выбираем DropDownListBox
    3) Заполняем Code Table (для непонятливых, в колонку Display Value пишутся имена bmpшек)

    1. Можно конечно, но лично меня бы использование 2) и 3) несколько бы запутало, если бы я такое встретил в DataWindow.
    2. В вашем случае тогда "лишним" получается client side column. Может, конечно, оно и несколько быстрее будет работать через такую таблицу перекодировок, но это выглядит менее естественным. И по количеству объектов в DataWindow, выходит, мы ничего не проигрываем.
    3. Насколько удобно из программы менять содержимое DDLB?
    4. Вариант с computed field обеспечивает большую функциональность. Например можно обеспечить вывод различных картинок на 1 и последней строке в странице.


    -Это что же это за "лишняя" client side column? Она ж так или иначе в SQL запросе...
    -2) и 3) - это САМЫЙ распространённый и общепринятый метод, я с ним знаком уже лет 9, РВ101 так сказать...
    -Удобно из программы менять содержимое DDLB ровно настолько насколько удобно менять computed field expression
    -computed field expression написан на колонку из SQL запроса, и 2) и 3) написано на колонку из SQL запроса, поэтому меня несколько клинит понять почему вариант с computed field обеспечивает большую функциональность...
    21 янв 05, 18:44    [1265752]     Ответить | Цитировать Сообщить модератору
     Re: (?) chenge picture in dw  [new]
    ЗоринАндрей
    Member

    Откуда: Санкт-Петербург
    Сообщений: 3004
    это САМЫЙ распространённый и общепринятый метод
    ... который я вижу первый раз за десять лет.
    Кто-нибудь из присутствующих видел когда-нибудь такое?
    почему вариант с computed field обеспечивает большую функциональность
    Запросто.
    1. Вид картинки зависит не от одного column, а от сочетания двух или трех?
    2. Многие ли из здесь присуствующих знают как в Code Table записать значение NULL в качестве data value ?

    А вообще - пофиг по большому счету. Оба метода одинаковы по всем параметрам. Каждый выбирает для себя.
    Мне больше нравится compute.
    21 янв 05, 19:13    [1265796]     Ответить | Цитировать Сообщить модератору
     Re: (?) chenge picture in dw  [new]
    Филипп
    Member

    Откуда: Boston, MA, USA (c 1989 ) б. Москва
    Сообщений: 1880
    ЗоринАндрей
    это САМЫЙ распространённый и общепринятый метод
    ... который я вижу первый раз за десять лет.
    Кто-нибудь из присутствующих видел когда-нибудь такое?
    почему вариант с computed field обеспечивает большую функциональность
    Запросто.
    1. Вид картинки зависит не от одного column, а от сочетания двух или трех?
    2. Многие ли из здесь присуствующих знают как в Code Table записать значение NULL в качестве data value ?

    А вообще - пофиг по большому счету. Оба метода одинаковы по всем параметрам. Каждый выбирает для себя.
    Мне больше нравится compute.


    1. Вопрос был про ОДНО поле :-)
    2. А его не надо

    А теперь по секрету расскажу почему мне больше нравится мой вариант (в случае зависимости от одного поля) :-)
    Когда я делал Web порт под EAS/EAF, то выснилось, что в HTMLDatawindow computes с картинками ведут себя гораздо хуже и котролировать их сложнее, зато такие DDLB работают на ура...
    21 янв 05, 19:19    [1265803]     Ответить | Цитировать Сообщить модератору
     Re: (?) chenge picture in dw  [new]
    Филипп
    Member

    Откуда: Boston, MA, USA (c 1989 ) б. Москва
    Сообщений: 1880
    ЗоринАндрей
    это САМЫЙ распространённый и общепринятый метод
    ... который я вижу первый раз за десять лет.
    Кто-нибудь из присутствующих видел когда-нибудь такое?

    По-моему первый раз я увидел это тут:

    К сообщению приложен файл. Размер - 0Kb
    21 янв 05, 19:34    [1265822]     Ответить | Цитировать Сообщить модератору
     Re: (?) chenge picture in dw  [new]
    PL99
    Member

    Откуда: Moscow
    Сообщений: 1367
    ЗоринАндрей
    PL99
    функция, возвращающая имя картинки, тривиальна

    2010 год.
    PL99 давно работает в Microsoft.
    Клиента переписывают на VSharp 2011.
    Программист видит что от сервера пришла строка 'picture_1.bmp'
    тихо матерится и пишет что-то вроде
    IF (column1 = 'picture_1.bmp') { PageXXX.ShowImage("StatusOne") }


    З.Ы. Можно закрывать.
    Раз всем так понравилось тут тусоваться, позволю себе спросить - а если может VSharp 2011 сможет отобразить картинку так
    PageXXX.ShowImage(column1) ;
    , то, вероятно, у программиста не будет повода материться?
    И чем, простите, это хуже случая, когда программист не будет материться, но все равно напишет
    IF (column1 = 1) { PageXXX.ShowImage("StatusOne") }
    :-))
    21 янв 05, 21:01    [1265961]     Ответить | Цитировать Сообщить модератору
     Re: (?) chenge picture in dw  [new]
    PL99
    Member

    Откуда: Moscow
    Сообщений: 1367
    Филипп
    А теперь по секрету расскажу почему мне больше нравится мой вариант (в случае зависимости от одного поля) :-)
    Когда я делал Web порт под EAS/EAF, то выснилось, что в HTMLDatawindow computes с картинками ведут себя гораздо хуже и котролировать их сложнее, зато такие DDLB работают на ура...
    А я тут больше на Oracle заточен, у него свои предпочтения по организации Web-интерфейса :-)
    21 янв 05, 21:03    [1265967]     Ответить | Цитировать Сообщить модератору
     Re: (?) chenge picture in dw  [new]
    Локшин Марк
    Member

    Откуда: Воронеж
    Сообщений: 3154
    Филипп
    -Это что же это за "лишняя" client side column? Она ж так или иначе в SQL запросе...

    Филипп, надеюсь вы понимаете, что данные для этой колонки из result set SQL
    запроса и объект column для визуализации этих данных в DataWindow, которому сопоставляются данные из этой колонки не одно и тоже?
    Филипп
    поэтому меня несколько клинит понять почему вариант с computed field обеспечивает большую функциональность...
    Дополнительное условие: для первой и последней строки на странице должны отображаться иные картинки, например...
    22 янв 05, 11:27    [1266281]     Ответить | Цитировать Сообщить модератору
     Re: (?) chenge picture in dw  [new]
    PL99
    Member

    Откуда: Moscow
    Сообщений: 1367
    Локшин Марк
    ...Дополнительное условие: для первой и последней строки на странице должны отображаться иные картинки, например...
    IMHO, неудачный пример. Не странице, которая выводится на печать? Или на той строке DW, ниже которой отображается Footer? Не стоит умножать сущностей без необходимости (С) :-)
    22 янв 05, 20:28    [1266615]     Ответить | Цитировать Сообщить модератору
    Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
    Все форумы / PowerBuilder Ответить