-
В программе использую cxDBFilterControl. Экран Filter builder'a на английском языке. Я решил сделать локализацию на русский. Создал файл ресурса с переводом через cxLocalizereditor.exe. Теперь необходимо этот файл ресурса подгрузить в программу. Прописал в программе строчку {$R rus.res}. создаю Ресурс стрим ResStream:=TResourceStream.Create(HInstance, 'Russian', RT_RCDATA); но при запуске выходит ошибка что ресурс с именем Russian не найден... как узнать под каким именем находится ресурс. В самой утилитке для создания локализации ничего не нашел...
-
Внимание! Здесь обсуждаются вопросы, связанные с разработкой компонентов, редакторов свойств, редакторов компонентов и экспертов IDE. Вопросы по поиску и использованию готовых компонентов, редакторов или экспертов являются нарушением тематики и могут быть удалены.
-
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('Русский');
-
А, да. У вас проблемы с ресурсами. Ну как создать ресурсный файл инфы дофига. Локализатор сохраняет ini, его засовываете в ресурс. В моем примере ресурс RUSSIAN сохранен под типом LOCALIZE.
-
Спасибо большое... все получилось!!!!
-
Простите за наглость... но я уж в этой теме спрошу... про тот же cxDBFilterControl ... вобщем в окошке DBFilterControl указываю условие и нажимаю применить.. выскакивает ошибка...
---------------------------
Can't parse Filter for:
docs_d_dset: Field 'DOCS.ID' not found.
---------------------------
ОК
---------------------------
почему то не видит поля... хотя в датасете (Я использую FIBdataset) в SelectSQL эти поля поля прописаны в запросе.. Грид данные отображает... но фильтер контрол почему то выдают такую ошибку... подскажите в чем причина?
-
поищи 'ID'
-
Он же вроде платный. Мот в саппорт стукнуть?
-
> поищи 'ID'
дело в том что ругается не только на 'ID' а на любое другое поле в списке... список полей он же как то видит.. но при фильтрации ругается...
-
> Он же вроде платный. Мот в саппорт стукнуть?
а ты сам пользуешся только лицензионным ПО?
-
> 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
-
dataSet.sql.text := 'select t1.id, t2.id from MyTable1 t1 join MyTable2 t2 on....'
t1.id = id t2.id = id_1
-
чо то не совсем понял что делать...
-
вот текст моего запроса: 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')
-
> (Я использую FIBdataset)
упсь... я сейчас проверял на sql server - работает, interbase нету. а ты условие фильтра кодом добавляешь или кнопками cxdbfilter?
-
> чо то не совсем понял что делать...
> вот текст моего запроса: > SELECT > D.ID, > D.DATE_DOC, > D.TYPE_DOC, > D.NAME_DOC, > D.USER_ID, > D.USER_FIO, > D.CLIENT_ID,
имена полей будут без 'D.'
-
> а ты условие фильтра кодом добавляешь или кнопками cxdbfilter?
кнопками cxdbfiltr'a
> имена полей будут без 'D.'
да я уже и так и так пробовал и c D. и без D.
-
> но фильтер контрол почему то выдают такую ошибку...
кстати, а почему фильтерконтрол? По крайней мере в примере ихнем датасету фильтр берется из этого контрола... или как-то еще можно?
-
можт в cxDBFilterControl нужно какую то опцию включить? просто я DBFilter вызываю через cxDBNavigator.. в нем есть кнопка фильтра при нажатии которого вызывается DBFilterControl ... может нужно DBFilter отдельным компонентом сделать ...
-
я ща делал отдельно. после задания условия фильтра надо тыркнуть на кнопарь:
cxDBFilter.ApplyFilter; DataSet.Filtered := False; DataSet.Filter := cxDbFilter.FilterText; DataSet.Filtered := True;
в ихнем примере так, только там переопределен ApplyFilter, в котором делают то же самое, что и в примере выше
-
сейчас буду пробовать как в примере.. спасибо картман за помощь...
-
> а ты сам пользуешся только лицензионным ПО?
Да.
-
Разобрался я с фильтрацией... вобщем ошибка была в следующем... в самом Fibdataset есть свойство FieldOriginRule, в котором по умолчанию стояло forTableAndFieldName , поэтому фильтр генерировал поле как DOCS.ID . Я выставил значение в forClientFieldName и ошибка исчезла...но результатом фильтрации была пустая таблица... в примере по локальной фильтрации от FIBPlus увидел что нужно отключать событие OnFilterRecord , присвоив ему nil, т.е. dataset.onFiltyerRecord:=nil; и фильтрация заработала... т.е. я использую встроенную фильтрацию cxDBNavigator'a ... спасибо всем кто помогал...
-
слушай...картман.. раз уж ты юзал cxDBFilterControl... подскажи еще одну вещь.... уже все перерыл... вобщем в списке условий не появляется условие contains или Like ... выставил в свойствах итемов дбфильтра TextEdit, указывая что поле текстовое... но при фильтрации в списке условий эти условия не появляются... как сделать чтобы они там появились?
-
> ixen (16.11.10 13:58) [23]
не юзал я его - только для твоего вопроса попробовал.
А like - думаю, нет его вовсе, это команда SQL уже, датасет как бы ничего о нем не знает.
|