Delphi

Автор AmonRa, 01:41, 22 августа, 2003

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Vad

Цитата: AmonRa от 21:17, 12 мая, 2004
Нет, редактируемы набор мне не нужен, а вот с запросом дело сложнее!!! Как его сделать? Через TQuery??? Дело в том, что это нужно для отчета!  А в нем уже содержится один TQuery (из которого берутся данные для отчета),  а связать их вместе у меня никак не получается! Может подскажешь??? Заранее спасибо!!!

Напиши какие поля в каких таблицах, как связанны,
и чего надо. Я ж не телепат. :nope
Удача терпелива...

AmonRa

Цитата: Vad от 00:07, 13 мая, 2004
Напиши какие поля в каких таблицах, как связанны,
и чего надо. Я ж не телепат. :nope
В таблице 2 поля: номер, кол-во, дата1, дата2, и еще какое-то, сейчас не помню! В таблице1: номер (тот же что и во 2-й), дата1, дата2 (эти даты ко 2-й таблице никакого отношения не имеют!). В таблице1 и 2 есть индекс номер, по которому они и связываются! Создал дополнительный индекс Дата1 (сортирующий таблицу в порядке убывания), но если при работе изменить индекс с номера на Дату, то теряется связь :-((, может можно как-то сделать, что бы 2-я таблица приоткрытии сразу сортировалась в порядке убывания даты???

Думал сделать с помошью TQuery, но не получилось связать их TQuery1 с TQuery2 (в каждом есть поле номер, по которому в принципе возможно сделать связь, но КАК????). Вот, буду премного благодарен за ответ, только если можно поподробнее!!! Если нужно: в TQuery1 забиваются данные еще из кучи таблиц, их перечислять замучаюсь, !но Таблицы2 там нет!, зато есть Таблица1, точнее е? необходимая часть!

Vad

#52
Цитата: AmonRa от 02:05, 13 мая, 2004
В таблице 2 поля: номер, кол-во, дата1, дата2, и еще какое-то, сейчас не помню! В таблице1: номер (тот же что и во 2-й), дата1, дата2 (эти даты ко 2-й таблице никакого отношения не имеют!). В таблице1 и 2 есть индекс номер, по которому они и связываются! Создал дополнительный индекс Дата1 (сортирующий таблицу в порядке убывания), но если при работе изменить индекс с номера на Дату, то теряется связь :-((, может можно как-то сделать, что бы 2-я таблица приоткрытии сразу сортировалась в порядке убывания даты???

Думал сделать с помошью TQuery, но не получилось связать их TQuery1 с TQuery2 (в каждом есть поле номер, по которому в принципе возможно сделать связь, но КАК????). Вот, буду премного благодарен за ответ, только если можно поподробнее!!! Если нужно: в TQuery1 забиваются данные еще из кучи таблиц, их перечислять замучаюсь, !но Таблицы2 там нет!, зато есть Таблица1, точнее е? необходимая часть!


Ну, кидаешь еще одну TQuery2 ни с чем не связывая,
ей в SQL забиваешь что то вроде:

SELECT <какие там нужно поля с псевдонимом> FROM
"TAB1.DB" T1, "TAB2.DB" T2
WHERE T1.НОМЕР=T2.НОМЕР
ORDER BY T2.Дата1 DESC


Здесь T2.Дата1 - поле из второй таблицы. по которому сортировка, DESC -признак по убыванию.
Потом просто открываешь TQuery2 и у тебя все есть.

А вообще смотри localsql.hlp
Удача терпелива...


AmonRa

А можно ли как-нибудь сохранить результаты запроса TQuery в *.dbf. А при нажатии на кнопку сделать удаление всех записей таблицы?

Vad

Цитата: AmonRa от 16:27, 15 мая, 2004
А можно ли как-нибудь сохранить результаты запроса TQuery в *.dbf. А при нажатии на кнопку сделать удаление всех записей таблицы?

Можно все, было бы время и желание. :)
Удача терпелива...


AmonRa

Цитата: Vad от 20:58, 15 мая, 2004
Можно все, было бы время и желание. :)
Так желание есть всегда, но вот со временем уже напряженка выходит! :-(


И еще вопросик: можно ли с помощью AppendRecord сделать добавление в таблицу не одной строки, а сразу всех! Я делаю следующее:
Table1.AppendRecord([Query1Numer, Query1NPP, Query1KL, Query1DATA1, Query1ISP, Query1Dаta2, Query1PR]); в этом случае происходит добавление только одной записи из Query? а как сделать добавление сразу всех??? Если есть способ полегче, то с радостью приму!

AmonRa

Народ, если кому нибудь понадобится, то вот процедура добавледия всех записей из TQuery в Ttable и очищение TTable:


procedure TForm1.BitBtn2Click(Sender: TObject);
var
n:integer;
begin
form5.Query1.Active:=true;
form5.Table1.Active:=true;
form5.Table1.Filter:='Data1 = '''+DateToStr(SprDate.Date)+'''';
form5.QRLabel7.Caption:= DateToStr(SprDate.Date);
form5.Query2.Active:=true;
form5.Table2.Active:=true;
//Добавление всех записей в таблицу!!!!!!
form5.Query2.First;
for n:=1 to form5.Query2.RecordCount do begin
form5.Table2.AppendRecord([form5.Query2Numer,
form5.Query2PP, form5.Query2DATA1,
form5.Query2SP, form5.Query2P]);
form5.Query2.Next;
end;
form5.Table2.Filter:='Data1 <= '''+DateToStr(SprDate.Date)+'''';
form5.QuickRep1.Preview;
form5.Query1.Active:=false;
form5.Query2.Active:=false;
form5.Table1.Active:=false;
form5.Table2.Active:=false;
// Удаление ВСЕХ данных из таблицы
with form5.Table2 do
begin
Exclusive := true ;
EmptyTable ;
end;
end;

AmonRa

#57
Народ! Плдскажите где можно достать RXLib для 7 Delphi!!! Очень нужно! Если можно ссылку попрямее! Спасибо!  


Vad

Цитата: AmonRa от 04:29, 25 мая, 2004
Народ! Плдскажите где можно достать RXLib для 7 Delphi!!! Очень нужно! Если можно ссылку попрямее! Спасибо!  

Под 6 :
http://www.torry.net/vcl/packs/huge/etrx275d6.zip
Может и под 7 пойдет, не проверял.
Удача терпелива...

AmonRa

#59
Привет всезнающий All подскажите пожалуйста как копировать файлы из одной папки в другую. И как их удалять. Спасибо! Желательно на конкретном примере. И, если не трудно покажите где указывается путь к файлам и их имена.

Кстати, этот компонент под 7 Delphi не прет! :-( Нашел правда какой-то странный, который нужно патчить, но вот еще не разобрался как именно все это делать! Может кто подскажет?


AmonRa

Народ, как сделать индикатор процесса? У меня происходит упаковка таблиц и вот на этом месте хотелось бы сделать индикатор процесса.

При работе с таблицами есть два метода открытия Activate:=true и Open, какой лучше использовать и в каких случаяхи и с закрытием какой лучше???

Vad

1. Индикатор только замедлит работу.

2. По барабану, это одно и то же.
Удача терпелива...

AmonRa

А  как насчет копирования и удаления файлов? Никто не поможет??

абревиатура

Блин, ну почему никто OpenGL не прогит.
Базы данных, да базы данных, это ж не интересно...

AmonRa кстати чат можно стедлат ьне только на основе инди, можно на сокетах можно и на тисипиайпи. Самое простое на сокетах.
Я полковник! Я командую парадом! Я в звездах! На белом коне! Я полковник! Я командую парадом!

Vad

Цитата: AmonRa от 01:29, 02 июня, 2004
А  как насчет копирования и удаления файлов? Никто не поможет??

.... поможет F1  
;D
Удача терпелива...

AmonRa

Цитата: абревиатура от 02:39, 02 июня, 2004
Блин, ну почему никто OpenGL не прогит.
Базы данных, да базы данных, это ж не интересно...

AmonRa кстати чат можно стедлат ьне только на основе инди, можно на сокетах можно и на тисипиайпи. Самое простое на сокетах.
Я конечно могу спросить, но сам этой штукой не занимался, а что именно надо???

AmonRa

#66
Совершенно неожиданно наткнулся на такую проблему: в RichEdit'e открываю файл *.rtf таким образом: RichEdit1.Lines.LoadFromFile(имя_файла.rtf). Файл открывается, точнее его содержимое загружается в рич, но! В каждую строчку по одной букве! В чем дело? Текст очень сильно отформатирован. При увеличении едита все отображается нормально, т.е. длина строк в линии такая как и в вордовском варианте, но расположение по центру и правому краю отсутствует!  И еще вопрносик: как открыть файл в MSWord'e? Я открываю таким образом: ShellExecute(0, nil, '*.doc', nil, nil, SW_SHOWNORMAL); Но в этом случае файл лежит у меня в директории с программой. А как открыть из др. директории?

AmonRa

Про OpenGl посмотри тут: http://www.codenet.ru

Vad

Цитата: AmonRa от 00:44, 05 июня, 2004
Совершенно неожиданно наткнулся на такую проблему: в RichEdit'e открываю файл *.rtf таким образом: RichEdit1.Lines.LoadFromFile(имя_файла.rtf). Файл открывается, точнее его содержимое загружается в рич, но! В каждую строчку по одной букве! В чем дело? Текст очень сильно отформатирован. При увеличении едита все отображается нормально, т.е. длина строк в линии такая как и в вордовском варианте, но расположение по центру и правому краю отсутствует!  И еще вопрносик: как открыть файл в MSWord'e? Я открываю таким образом: ShellExecute(0, nil, '*.doc', nil, nil, SW_SHOWNORMAL); Но в этом случае файл лежит у меня в директории с программой. А как открыть из др. директории?

1)Или RICHEDIT узкий или руки -

2) Подумай слегка.  :hash
Ответ уже там.  8)
Удача терпелива...

Лайса

ребят, я конечно, делфи не помню нефига, но разве РичЭдит сохранял форматирование? или я его с чем-то путаю?

Vad

Цитата: Lice от 14:37, 07 июня, 2004
ребят, я конечно, делфи не помню нефига, но разве РичЭдит сохранял форматирование? или я его с чем-то путаю?

РичЭдит сохраняет форматирование настолько, насколько
его поддерживает RTF формат. Тока с картинками напряг.
Удача терпелива...

Лайса

Цитата: Vad от 15:04, 07 июня, 2004
РичЭдит сохраняет форматирование настолько, насколько
его поддерживает RTF формат. Тока с картинками напряг.
а...ясна... в принципе логично)))

AmonRa

Народ, как сделать что бы при прошествии определенного времени срабатывало событие? Только с помошью таймера или есть более рациональное решение?
Если кому-нибудь нужно копирование всех файлов из миректори в др.директорию и удаление, то держите:
...
var
i, z:integer;
begin
TrayIcon1.IconList:=ImageList1;
if filelistbox2.Items.Count<>0
then begin

for z:=0 to FileListBox2.Items.Count-1 do begin
FileListBox2.Clear;
if DeleteFile(DirectoryListBox2.Directory+'\'+FileListBox1.Items[z]) then
TrayIcon1.IconIndex:=1
else begin
TrayIcon1.IconIndex:=2;
TrayIcon1.ShowBalloonHint('Внимание!','Не удалось удалить файл '+FileListBox1.Items[z], bitInfo, 10);
ShowMessage('Не удается удалить файл '+FileListBox1.Items[z]);
end;
end;
end;
TrayIcon1.IconList:=ImageList1;
TrayIcon1.IconIndex:=2;
for i:=0 to FileListBox1.Items.Count-1
do begin
FileListBox2.Items.Add(FileListBox1.Items);
if CopyFile(Pchar(DirectoryListBox1.Directory+'\'+FileListBox1.Items),
Pchar(DirectoryListBox2.Directory+'\'+FileListBox1.Items),true) then
TrayIcon1.IconIndex:=2
else begin
TrayIcon1.IconIndex:=0;
TrayIcon1.ShowBalloonHint('Внимание!','Не удалось скопировать  файл '+FileListBox1.Items[z], bitInfo, 10);
ShowMessage('Не удается скопировать файл '+FileListBox1.Items[z]);
end;
end;
TrayIcon1.IconList:=ImageList2;
end;

Vad

Цитата: AmonRa от 01:02, 10 июня, 2004
Народ, как сделать что бы при прошествии определенного времени срабатывало событие? Только с помошью таймера или есть более рациональное решение?


:nope Куда уж рациональней.
А чем таймер не устраивает?
Удача терпелива...

AmonRa

Да, таймер, даже не знаю, просто не нравится, сделал через RXClock вродже работает, кстати, кому нужна программулина резервного копирования напишите - скину.




Данный форум не является СМИ в соответствии с Законом №2124-1.
Яндекс.Метрика