Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2015, 15:34   #1
Shingis
Пользователь
 
Регистрация: 09.04.2009
Сообщений: 27
По умолчанию Как можно в cheklistbox вставить имена поля на с русскими буквами если в бд имя поля с латинскими букв

Загружаю с таблицы имена поля в чеклистбоксу:
Код:
Checklistbox1.clear;
For i=0  to AQ1.fieldcount-1 do
begin
CheckListBox1.Items.Add (AQ1.Fields.fields[i].fieldname;
end;
У меня в таблице имена поля с латинскими буквами. В чеклистбоксу тоже загружаются латинами. И я ихние русские название сделал так--- взяв с дбгрида тайтл.капшн:
Побежал по count' у чеклистбокса и...
Cheklistbox.items.strings[i]:= dbgrid.columns[i].title.caption;
Все нормально с дбгрида тайтл капшн загружают. Но при экпорте в ексел уже не могут найти поля, ругаются с русскими названиями. Надеюсь обзяснил нормально. Что и как советуете господа проггеры

Последний раз редактировалось Shingis; 20.04.2015 в 19:47.
Shingis вне форума Ответить с цитированием
Старый 20.04.2015, 18:36   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Надеюсь обзяснил нормально
Я мало что понял...
Цитата:
вставить имена поля на с русскими буквами если в бд имя поля с латинскими букв
Сложная фраза. Если прямо отвечать на нее то никак. Или кодировать транслитом.
С другой стороны дай я угадаю - ты в ListBox записал некие названия неких полей, но на другом языке. А потом из этого списка выбираешь чтоб использовать в качестве имен полей?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.04.2015, 19:20   #3
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Код:
procedure TfrmMain.Button1Click(Sender: TObject);
begin
   // Загружаю ИЗ ADOQuery имена поля в CheckListBox
  ADOQuery1.GetFieldNames(CheckListBox1.Items);
   // -----------  Для русский названий полей 
   with CheckListBox1  do
   begin
     Items[0] := '№ заказа';
     Items[1] := '№ Клиента';
     Items[2] := '№ сотрудника';
     Items[3] := 'Дата приема заказов';
     Items[4] := 'Дата отправки';
      // продолжайте 
   end;
end;

end.
Вложения
Тип файла: rar cheklistbox_Colums.rar (256.4 Кб, 12 просмотров)

Последний раз редактировалось xxbesoxx; 20.04.2015 в 19:27.
xxbesoxx вне форума Ответить с цитированием
Старый 20.04.2015, 19:43   #4
Shingis
Пользователь
 
Регистрация: 09.04.2009
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Я мало что понял...

Сложная фраза. Если прямо отвечать на нее то никак. Или кодировать транслитом.
С другой стороны дай я угадаю - ты в ListBox записал некие названия неких полей, но на другом языке. А потом из этого списка выбираешь чтоб использовать в качестве имен полей?
Да Stilet, но не на другом языке. проста с латинскими буквами. например FIO. Pol. datarojdeniа итд в таблице а мне в листбокс ФИО, Пол, Дата рождения.
Я такое уже получил как надо, и теперь при экспорте в ексел уже ФИО Пол ДР не понимает.

Цитата:
Сообщение от xxbesoxx Посмотреть сообщение
Код:
procedure TfrmMain.Button1Click(Sender: TObject);
begin
   // Загружаю ИЗ ADOQuery имена поля в CheckListBox
  ADOQuery1.GetFieldNames(CheckListBox1.Items);
   // -----------  Для русский названий полей 
   with CheckListBox1  do
   begin
     Items[0] := '№ заказа';
     Items[1] := '№ Клиента';
     Items[2] := '№ сотрудника';
     Items[3] := 'Дата приема заказов';
     Items[4] := 'Дата отправки';
      // продолжайте 
   end;
end;

end.
Я это уже сделал вот здесь
Цитата:
Сообщение от shingis Посмотреть сообщение
Побежал по count' у чеклистбокса и...
Код:
Cheklistbox.items.strings[i]:= dbgrid.columns[i].title.caption;
Все нормально с дбгрида тайтл капшн загружают. Но при экпорте в ексел уже не могут найти поля, ругаются с русскими названиями
Все равно спасибо Вам!

Последний раз редактировалось Stilet; 20.04.2015 в 22:09.
Shingis вне форума Ответить с цитированием
Старый 20.04.2015, 19:55   #5
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
теперь при экспорте в ексел уже ФИО Пол ДР не понимает.
Чудеса ...
Код:
procedure TfrmMain.FormShow(Sender: TObject);
begin
  with  ADOQuery1 do
  begin
    Fields[0].DisplayLabel:= '№ заказа';
    Fields[1].DisplayLabel:= '№ Клиента';
    Fields[2].DisplayLabel:= '№ сотрудника';
    Fields[3].DisplayLabel:= 'Дата приема заказов';
    Fields[4].DisplayLabel:= 'Дата отправки';
  end;
end;

Последний раз редактировалось xxbesoxx; 20.04.2015 в 19:58.
xxbesoxx вне форума Ответить с цитированием
Старый 20.04.2015, 20:15   #6
Shingis
Пользователь
 
Регистрация: 09.04.2009
Сообщений: 27
Печаль

Цитата:
Сообщение от xxbesoxx Посмотреть сообщение
Чудеса ...
Код:
procedure TfrmMain.FormShow(Sender: TObject);
begin
  with  ADOQuery1 do
  begin
    Fields[0].DisplayLabel:= '№ заказа';
    Fields[1].DisplayLabel:= '№ Клиента';
    Fields[2].DisplayLabel:= '№ сотрудника';
    Fields[3].DisplayLabel:= 'Дата приема заказов';
    Fields[4].DisplayLabel:= 'Дата отправки';
  end;
end;
Это на подобие так да? :
for i:=0 to AQ1.Fields.Count-1 do
begin
CheckListBox.Items.Add(AQ.Fields[i].DisplayLabel);
end; Если так то тоже ругается. Например у АДОКУЕРИ Fieldname:='FIO' и сделать Displaylabel:='ФИО' то полюбому ругается
Проблема в том что в таблице имена поля на латын букв и его переименовал на русских букв в листбоксе и теперь с листбокса эти имена хотел использовать как имена поля и экспортировать в екселлллл

Последний раз редактировалось Shingis; 20.04.2015 в 20:19.
Shingis вне форума Ответить с цитированием
Старый 20.04.2015, 20:23   #7
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

1) зачем цикл FOR я не понимаю если AQ.GetFieldNames сразу заполняет ваши CheckListBox
2) смотря как вы делайте экспорт в Excel -е если там цикл копируйте все запись тогда Fields[0].DisplayLabel:= ХХХХ надо. Но, можно без него описывать каждое поля
Код:
 Sheet.Cells[2,1]:='Имя поля';
На все учебнике написано и на форуме много пример ............ код который на #1 я промолчу , А вы говорите что делали и работает

Последний раз редактировалось xxbesoxx; 20.04.2015 в 20:32.
xxbesoxx вне форума Ответить с цитированием
Старый 20.04.2015, 20:53   #8
Shingis
Пользователь
 
Регистрация: 09.04.2009
Сообщений: 27
По умолчанию

я экспортирую в ексел по выбранному полю в чеклистбоксе
Shingis вне форума Ответить с цитированием
Старый 20.04.2015, 21:00   #9
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Можно ваши код и проекту посмотреть ? или пример делайте отдельно что вы делайте и что не получается . это тайна ?

Код:
Checklistbox1.clear; //это почему писали скажите пожалуйста

Последний раз редактировалось xxbesoxx; 20.04.2015 в 21:22.
xxbesoxx вне форума Ответить с цитированием
Старый 20.04.2015, 22:12   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
теперь при экспорте в ексел уже ФИО Пол ДР не понимает.
И правильно делает. Это ж глупость...
Тебе получается нужно назад конвертировать. В цикле искать в гриде элемент по русски и запоминать его поле.
А вообще это делается проще - именам полей даются алиасы, и уже они становятся именами в запросах. Я не знаю как это правильно описать кроме как
Код:
select
 Field1 as "Поле по русски"
,Field2 as "Поле по русски 2"
...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. Файлы - Создать подпрограмму для заполнения файла латинскими и русскими буквами Антон Лысенко Помощь студентам 2 15.12.2010 22:44
как получить значение поля грид на основе значения другого lookUp поля malayka БД в Delphi 0 21.04.2010 19:06
QReport QRExpr поля русскими символами ArtInt БД в Delphi 1 24.02.2010 16:41
Как в dbgrideh получить имя поля той колонки, по заголовку которой Вы щелкнули???? zimmion БД в Delphi 4 04.03.2008 15:02
можно ли узнать имя HTML-поля, кликнув на него? furstenberg Работа с сетью в Delphi 0 28.01.2008 16:49