Конференция "Прочее" » Локализация DevExpress
 
  • ixen (13.11.10 13:36) [0]
    В программе использую cxDBFilterControl. Экран Filter builder'a на английском языке. Я решил сделать локализацию на русский. Создал файл ресурса с переводом через cxLocalizereditor.exe. Теперь необходимо этот файл ресурса подгрузить в программу. Прописал в программе строчку {$R rus.res}.

    создаю Ресурс стрим
    ResStream:=TResourceStream.Create(HInstance, 'Russian', RT_RCDATA);



    но при запуске выходит ошибка что ресурс с именем Russian не найден... как узнать под каким именем находится ресурс. В самой утилитке для создания локализации ничего не нашел...
  • DimaBr © (15.11.10 08:51) [1]
    Внимание! Здесь обсуждаются вопросы, связанные с разработкой компонентов, редакторов свойств, редакторов компонентов и экспертов IDE.
    Вопросы по поиску и использованию готовых компонентов, редакторов или экспертов являются нарушением тематики и могут быть удалены.
  • Andy BitOff © (15.11.10 09:47) [2]
       Res := TResourceStream.Create(Hinstance, 'RUSSIAN', 'LOCALIZE');
       try
         frmMain.Localizer.LoadFromStream(Res);
       finally
         Res.Free;
       end;
       frmMain.Localizer.Active := True;
       frmMain.Localizer.LanguageIndex := frmMain.Localizer.Languages.GetLanguageByName('Русский');

  • Andy BitOff © (15.11.10 09:53) [3]
    А, да. У вас проблемы с ресурсами. Ну как создать ресурсный файл инфы дофига. Локализатор сохраняет ini, его засовываете в ресурс. В моем примере ресурс RUSSIAN сохранен под типом LOCALIZE.
  • ixen (15.11.10 11:51) [4]
    Спасибо большое... все получилось!!!!
  • ixen (15.11.10 15:01) [5]
    Простите за наглость... но я уж в этой теме спрошу... про тот же cxDBFilterControl ... вобщем в окошке DBFilterControl указываю условие и нажимаю применить.. выскакивает ошибка...

    ---------------------------
    Can't parse Filter for:
    docs_d_dset: Field '
    DOCS.ID' not found.
    ---------------------------
    ОК  
    ---------------------------



    почему то не видит поля... хотя в датасете (Я использую FIBdataset) в SelectSQL эти поля поля прописаны в запросе.. Грид данные отображает... но фильтер контрол почему то выдают такую ошибку... подскажите в чем причина?
  • картман © (15.11.10 15:24) [6]
    поищи 'ID'
  • Дмитрий Белькевич (15.11.10 15:26) [7]
    Он же вроде платный. Мот в саппорт стукнуть?
  • ixen (16.11.10 06:15) [8]
    > поищи 'ID'

    дело в том что ругается не только на 'ID' а на любое другое поле в списке... список полей он же как то видит.. но при фильтрации ругается...
  • ixen (16.11.10 06:16) [9]
    > Он же вроде платный. Мот в саппорт стукнуть?

    а ты сам пользуешся только лицензионным ПО?
  • картман © (16.11.10 06:43) [10]

    > ixen   (16.11.10 06:15) [8]
    >
    > > поищи 'ID'
    >
    > дело в том что ругается не только на 'ID' а на любое другое
    > поле в списке... список полей он же как то видит.. но при
    > фильтрации ругается...

    он их видит без алиасов.

    dataSet.sql.text := 'select t1.id, t2.name from MyTable1 t1 join MyTable2 t2 on....'

    имена полей будт id и name - не t1.id, t2.name
  • картман © (16.11.10 06:47) [11]
    dataSet.sql.text := 'select t1.id, t2.id from MyTable1 t1 join MyTable2 t2 on....'

    t1.id = id
    t2.id = id_1
  • ixen (16.11.10 06:55) [12]
    чо то не совсем понял что делать...
  • ixen (16.11.10 06:56) [13]
    вот текст моего запроса:
    SELECT
       D.ID,
       D.DATE_DOC,
       D.TYPE_DOC,
       D.NAME_DOC,
       D.USER_ID,
       D.USER_FIO,
       D.CLIENT_ID,
       (select c.client_fio from clients c where c.id=d.client_id) as CLIENT_FIO,
       cast ((SELECT Sum(kolvo*price) FROM moves m WHERE  m.doc_id=d.id)as numeric(15,2)) as total_summ
    FROM
      DOCS d where (type_doc<>'A')and(type_doc<>'Z')

  • картман © (16.11.10 07:17) [14]

    > (Я использую FIBdataset)

    упсь... я сейчас проверял на sql server - работает, interbase нету.
    а ты условие фильтра кодом добавляешь или кнопками cxdbfilter?
  • картман © (16.11.10 07:19) [15]



    > чо то не совсем понял что делать...


    > вот текст моего запроса:
    > SELECT
    >    D.ID,
    >    D.DATE_DOC,
    >    D.TYPE_DOC,
    >    D.NAME_DOC,
    >    D.USER_ID,
    >    D.USER_FIO,
    >    D.CLIENT_ID,

    имена полей будут без 'D.'
  • ixen (16.11.10 07:52) [16]
    > а ты условие фильтра кодом добавляешь или кнопками cxdbfilter?

    кнопками cxdbfiltr'a


    > имена полей будут без 'D.'

    да я уже и так и так пробовал и c D. и без D.
  • картман © (16.11.10 08:00) [17]

    >  но фильтер контрол почему то выдают такую ошибку...

    кстати, а почему фильтерконтрол? По крайней мере в примере ихнем датасету фильтр берется из этого контрола... или как-то еще можно?
  • ixen (16.11.10 08:01) [18]
    можт в cxDBFilterControl нужно какую то опцию включить? просто я DBFilter вызываю через cxDBNavigator.. в нем есть кнопка фильтра при нажатии которого вызывается DBFilterControl ... может нужно DBFilter отдельным компонентом сделать ...
  • картман © (16.11.10 08:07) [19]
    я ща делал отдельно. после задания условия фильтра надо тыркнуть на кнопарь:

    cxDBFilter.ApplyFilter;
    DataSet.Filtered := False;
    DataSet.Filter := cxDbFilter.FilterText;
    DataSet.Filtered := True;

    в ихнем примере так, только там переопределен ApplyFilter, в котором делают то же самое, что и в примере выше
  • ixen (16.11.10 08:20) [20]
    сейчас буду пробовать как в примере.. спасибо картман за помощь...
  • Дмитрий Белькевич (16.11.10 09:17) [21]

    > а ты сам пользуешся только лицензионным ПО?


    Да.
  • ixen (16.11.10 10:52) [22]
    Разобрался я с фильтрацией...
    вобщем ошибка была в следующем... в самом Fibdataset есть свойство FieldOriginRule, в котором по умолчанию стояло
    forTableAndFieldName

    , поэтому фильтр генерировал поле как
    DOCS.ID

    . Я выставил значение в
    forClientFieldName

    и ошибка исчезла...но результатом фильтрации была пустая таблица... в примере по локальной фильтрации от FIBPlus увидел что нужно отключать событие
    OnFilterRecord

    , присвоив ему nil, т.е.
    dataset.onFiltyerRecord:=nil;

    и фильтрация заработала... т.е. я использую встроенную фильтрацию cxDBNavigator'a ... спасибо всем кто помогал...
  • ixen (16.11.10 13:58) [23]
    слушай...картман.. раз уж ты юзал cxDBFilterControl... подскажи еще одну вещь.... уже все перерыл... вобщем в списке условий не появляется условие contains или Like ... выставил в свойствах итемов дбфильтра TextEdit, указывая что поле текстовое... но при фильтрации в списке условий эти условия не появляются... как сделать чтобы они там появились?
  • картман © (16.11.10 14:36) [24]

    > ixen   (16.11.10 13:58) [23]

    не юзал я его - только для твоего вопроса попробовал.

    А like - думаю, нет его вовсе, это команда SQL уже, датасет как бы ничего о нем не знает.
 
Конференция "Прочее" » Локализация DevExpress
Есть новые Нет новых   [134467   +7][b:0][p:0.002]