|
#16
|
||||
|
||||
А там же, на вкладке TChart
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#17
|
|||
|
|||
у меня 7 delphi и в упор нет того компонента(, что за нескладуха, посмотрел всю палитру. мот его скачать где можно?
Последний раз редактировалось djmix, 10.07.2014 в 20:02. |
#18
|
|||
|
|||
приветствую народ! полный ступор, не имея компоненты TDBCrossTabSource.
как блин хотя бы можно копировать данные в excel из dbgid ? ((( хотя я не выдержу такого извращения( |
#19
|
||||
|
||||
На вкладке Servers палитры компонентов есть ExcelApplication, его нужно кинуть на форму и выставить свойство ConnectKind как ckNewInstance, вот пример передачи данных из StringGrid в Excel (drkb)
Код:
procedure TForm1.Button1Click(Sender: TObject); var WorkBk: _WorkBook; // определяем WorkBook WorkSheet: _WorkSheet; // определяем WorkSheet I, J, K, R, C: Integer; IIndex: OleVariant; TabGrid: Variant; begin if GenericStringGrid.Cells[0, 1] <> '' then begin IIndex := 1; R := GenericStringGrid.RowCount; C := GenericStringGrid.ColCount; // Создаём массив-матрицу TabGrid := VarArrayCreate([0, (R - 1), 0, (C - 1)], VarOleStr); I := 0; // Определяем цикл для заполнения массива-матрицы repeat for J := 0 to (C - 1) do TabGrid[I, J] := GenericStringGrid.Cells[J, I]; Inc(I, 1); until I > (R - 1); // Соединяемся с сервером TExcelApplication ExcelApplication1.Connect; // Добавляем WorkBooks в ExcelApplication ExcelApplication1.WorkBooks.Add(xlWBatWorkSheet, 0); // Выбираем первую WorkBook WorkBk := ExcelApplication1.WorkBooks.Item[IIndex]; // Определяем первый WorkSheet WorkSheet := WorkBk.WorkSheets.Get_Item(1) as _WorkSheet; // Сопоставляем Delphi массив-матрицу с матрицей в WorkSheet Worksheet.Range['A1', Worksheet.Cells.Item[R, C]].Value := TabGrid; // Заполняем свойства WorkSheet WorkSheet.Name := 'Customers'; Worksheet.Columns.Font.Bold := True; Worksheet.Columns.HorizontalAlignment := xlRight; WorkSheet.Columns.ColumnWidth := 14; // Заполняем всю первую колонку WorkSheet.Range['A' + IntToStr(1), 'A' + IntToStr(R)].Font.Color := clBlue; WorkSheet.Range['A' + IntToStr(1), 'A' + IntToStr(R)].HorizontalAlignment := xlHAlignLeft; WorkSheet.Range['A' + IntToStr(1), 'A' + IntToStr(R)].ColumnWidth := 31; // Показываем Excel ExcelApplication1.Visible[0] := True; // Разрываем связь с сервером ExcelApplication1.Disconnect; // Unassign the Delphi Variant Matrix TabGrid := Unassigned; end; end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
djmix (17.07.2014)
|
#20
|
||||
|
||||
Ну вот как так-то? Мне хватило 10 минут изучения TDBChart в D7, чтобы найти решение без TDBCrossTabSource. Ну неужели нельзя было просто по вкладочкам этого компонента потыкать?
Решение проблемы: 1. ПКМ на DBChart1 2. Выбрать Edit chart... 3. На второй линии выбрать вкладку Series и в ней нажать кнопку Add... 3.1. Из галереии выбрать нужный график 4. На первой линии выбираем вкладку Series 4.1 В ней выбираем вкладку Data source. 4.2 В выпадающем списке выбрано по умолчанию значение Random values. Вместо него выбираем Dataset (появятся дополнительные свойства) 4.3. Заполняем появившиеся свойства: (Dataset, Labels, Bar) Все. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. Последний раз редактировалось Страдалецъ, 12.07.2014 в 03:19. |
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
djmix (12.07.2014)
|
#21
|
|||
|
|||
Страдалец , спасиб за терпение), но прикладываю скрин вообщем то действия на котором всё закончилось в моих действиях , ещё при первом твоём посте про решение с dbchart
Последний раз редактировалось djmix, 12.07.2014 в 09:56. |
#22
|
||||
|
||||
Видимо DBchart пытается получить список полей из запроса, а подключение не проходит. Причина скорее всего в том, что потерялся параметр Extended property в AdoConnection (есть такой баг в Delphi). Попробуйте сначала активировать в дизайнмоде AdoConnection,AdoQuery а уже потом настроить TDBChart.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#23
|
|||
|
|||
вот собственно ошибки при попытке активировать
|
#24
|
|||
|
|||
усё сложно))
|
#25
|
||||
|
||||
ConnectionString проверь
В первой же ошибке написано, что не так. Написано, что неправлиьно указан провайдерю — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
djmix (15.07.2014)
|
#26
|
|||
|
|||
Товарищи, Спасибо!! решился вопрос странным образом, пока вручную не создал столбцы в ADOQuery, по которым сделан SQL запрос (+ один из них суммирует кол-во f4), всё , получил желаемое.
сейчас вопрос, можно ли график этот сформированный в Word или Excel переносить. хочу полностью формировать отчёт по конкретному пользователю, + период выбирать. |
#27
|
|||
|
|||
аууу нарооод(
|
#28
|
|||
|
|||
Ответьте пожалуйста на два вопроса.
подскажите как правильно создать программно столбики в adoquery типа adoquery.fields.add () и как правильно организовать печать из dbgrid1 |
#29
|
|||
|
|||
как отфильтровать по двум столбцам пишу что то подбное
и так 'where F2='+ label9.Caption+' AND F4='+ edit3.text+' и эдак 'where (F2='+ label9.Caption+') AND (F4='+ edit3.text+') выдаёт Ошибка синтаксиса (пропущен оператор в выражении запроса) что подставить необходимо? Спасибо заранее |
#30
|
||||
|
||||
Так вы фильтром или запросом это пытаетесь сделать? Для фильтра where уберите, а для запроса возможно пробел перед where надо добавить. Вообще посмотрите текст запроса итоговый, там будет все понятно, чего не хватает, а что лишнее.
К тому-же неясно какого типа поля F2 и F4 у вас. Если это текст, то надо обрамлять значение кавычками. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
djmix (07.08.2014)
|