Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.06.2006, 11:34
Tina Tina вне форума
Прохожий
 
Регистрация: 30.05.2006
Сообщения: 8
Репутация: 10
По умолчанию Help!!! Диплом горит! Отчеты в Ecxel

Привет Всем!
Оч нужна помощь!
Возможно вопрос глуповат, но обшарила всю литературу и ответ на него не нашла, хотя уверена на 100 %, что сделать это можно.
Вообщем ситуация такая:
Есть БД с числовыми полями ( мне надо, чтобы они так числовыми и оставались), из нее вывожу отчет в Ecxel, но в этой базе присутствую большие, длинные числа и конечно же Ecxel (зараза такая ) берет и сокращает эти числа. Естесственно нормальному человеку сразу приходит на ум сделать формат ячеек Ecxelя текстовым, но вот как это сделать из Delphi заранее???
Нашла как поменять ширину, высоту, цвет и прочую билибирдистику, а вот как задать формат ячеек в Excele текстовым не нашла ...думаю, что выглядеть это далжно практически анЭлогично как и цвет менять, но подобрать пока что не смогла ничего
Вот кусок кода, который задает жирность и цвет:

Colum:=XLApp.Workbooks[1].WorkSheets['Отчет'].Rows;
Colum.Rows[2].Font.Bold:=true;
Colum.Rows[1].Font.Bold:=true;
Colum.Rows[1].Font.Color:=clBlue;
Colum.Rows[2].Font.Size:=14;

Я думаю это должно выглядеть примерно так:
Colum.Rows[n].<...>:=true;
НО КАК ТОЧНО???

через 2 недели защита очень жду каких-нибудь предложений.
Спасибо!!!
Ответить с цитированием
  #2  
Старый 05.06.2006, 13:15
Tina Tina вне форума
Прохожий
 
Регистрация: 30.05.2006
Сообщения: 8
Репутация: 10
По умолчанию Вопрос еще один возник :(

Связанные таблицы....БД берется из аксеса
Есть две связанных таблицы: одна содержит данные о людях, а другая содержит их движения по счетам. Я выбираю одного человека и во второй таблице отражаются именно ЕГО движения по счету. Все это в принципе получается, но во вторую таблицу движения по счетам заносятся почему-то не по-порядку, а это важно, т.е. человек снимал деньги например в январе, феврале и марте....В таблицу вывдится снятие за февраль, потом за март, потом за январь....полнейший беспорядок. Что делать-то?
Ответить с цитированием
  #3  
Старый 05.06.2006, 13:57
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Вопрос в том каким образом ты передаешь данные из программы в Excel
Если по твоему примеру то:
Код:
Colum.Rows[2].NumberFormat:= '@';
Colum.Rows[2].Value:=14
Ответить с цитированием
  #4  
Старый 05.06.2006, 14:41
Tina Tina вне форума
Прохожий
 
Регистрация: 30.05.2006
Сообщения: 8
Репутация: 10
По умолчанию УРА!

Супер! Работает
Спасибо, Спасибро, Спасибо ( с меня пиво )
Тока я не поняла зачем вторая строка нужна?
Ну да это и не важно
Вот кто бы еще со вторым вопросиком помог бы
Ответить с цитированием
  #5  
Старый 05.06.2006, 17:23
Аватар для Lektor
Lektor Lektor вне форума
Прохожий
 
Регистрация: 29.05.2006
Сообщения: 6
Репутация: 10
По умолчанию

если я правильно тебя понял то в конце запроса добавь
Order By Дата Asc
Ответить с цитированием
  #6  
Старый 05.06.2006, 21:52
Tina Tina вне форума
Прохожий
 
Регистрация: 30.05.2006
Сообщения: 8
Репутация: 10
По умолчанию

уСЕ РАВНО НЕ ПАШЕТ ....ПЕРВЫЕ НЕСКОЛЬКО СТРОК СТАВИТ ПОСЛЕДНИМИ....
Ответить с цитированием
  #7  
Старый 06.06.2006, 05:25
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Tina
Тока я не поняла зачем вторая строка нужна?
Она была для примера
Цитата:
Сообщение от Tina
Вот кто бы еще со вторым вопросиком помог бы
приведи структуры таблиц и связи, подумаю
Ответить с цитированием
  #8  
Старый 06.06.2006, 09:22
Tina Tina вне форума
Прохожий
 
Регистрация: 30.05.2006
Сообщения: 8
Репутация: 10
По умолчанию .

Есть две таблицы (аксес) через АДО:
В одной хранятся данные о клиентах (ФИО, номер счета, и пр.,) есть ключевое поле-счетчик Key1
Во второй таблице хранятся даты (текстовый), основания (текстовый) и суммы снятий и зачислений со счетов (числовой), есть ключевое поле Key1 и поле числовое LinkKey.
Делаю вторую таблицу через АДО тоже и когда делаю в св-ве MasterSource указываю связь с первой таблицей, а в св-ве MasterFields связываю поля Key1 из первой таблицы и LinkKey из второй. Действует по принципу:
Таблица1
Key1 Фамилия Имя Отчество
1 Иванов Иван Иванович
2 Петров Петр Петрович

Таблица2
Key1 LinkKey Дата Основание ДС
1 1 ... ... 5000
2 1 ... ... -2000
3 1 ... ... 1000
4 2 ... ... 2000
4 2 ... ... 4000

Действует по принципу
Таблица 1
Иванов Key1=1
Таблица 2
Выбираются только те строки (автоматически потому что поля связаны, так что не ни строчки кода), где LinkKey=Key1
И выдается Движение ДС только этого человека.
Вот такие пироги.
Причем он все путает ни когда я выводу в Эксель, а на стадии заполнения таблицы . Заметила закономерность, что он первые 8 строк делает последними, но это при условии, что туда не будут дополняться еще данные.
Ответить с цитированием
  #9  
Старый 06.06.2006, 09:34
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Могу предложить 2 решения проблемы
1. (Не изменяя мотодов доступа к таблице используемых тобой)
Создай иднекс для второй таблице по двум полям LinkKey и Дата
2. Доступ к базе осуществлять посредством sql-запросов, запрос на выборку из второй таблицы будет примерно таким:
Код:
SELECT * FROM [Таблица2]
WHERE
  LinkKey = id 
ORDER BY
  [Дата]
id - код записи (Key) из первой таблицы движения по которой ты желаешь увидеть

ЗЫЖ Хранить дату в текстовом поле ИМХО неправильно
Ответить с цитированием
  #10  
Старый 06.06.2006, 17:18
Tina Tina вне форума
Прохожий
 
Регистрация: 30.05.2006
Сообщения: 8
Репутация: 10
По умолчанию все гораздо прще оказалось :)

Все просто. Я сама сдурила.
Сделала я все правильно, тока вот аксесовскую таблицу заполнять не стала, забила пару параметров для проверки работы остальные думала потом забью....остальные строки остались пустыми...так вот если их заполнить - все работает отлично
Не быть мне великим прграммистом
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:09.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter