Информация о форуме
Администратор: root
Модератор(ы): Mikes, Lurid, Kiddy
Всего тем: 20

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

Форум: Soft & Warez
все о программах, новых и старых
венн_BDS2005 : Delphi
венн_BDS2005
09.12.06 23:14
>AndrЮshkA
Данные в запросе редактировать можно, только после
редактирования данных необходимо выполнять .Post для
Dataset, чтобы эти данные были внесены в БД
AndrЮshkA
10.12.06 02:02
А сделать чтоб редактируя данные в тейбле они и в таблице
охранялись?
AndrЮshkA
10.12.06 02:08
Query1.Close;
S:='SELECT * From Продажа Where';
if combobox2.Text<>'' then s:=s+' Район
='+'"'+Combobox2.Text+'"'else s:=s+' Район =
"Центр" or Район = "СЗР" or Район = "ЮЗР" or Район =
"НЮР" or Район = ""';
if edit2.Text<>'' then s:=s+' and
Адрес='+'"'+Edit2.Text+'"';
if edit3.Text<>'' then s:=s+' and Количество
комнат='+Edit3.Text;
if Combobox1.Text<>'' then s:=s+' and
Тип='+'"'+Combobox1.Text+'"';
if Combobox3.Text<>'' then s:=s+' and
Планировка='+'"'+Combobox3.Text+'"';
if (edit1.Text<>'') and (EDit2.Text<>'') then s:=s+'
and Площадь BETWEEN '+ edit1.Text+' and '+edit5.Text;
if edit2.Text<>'' then s:=s+ ' and
Представитель='+'"'+Edit6.Text+'"';
if (edit21.Text<>'') and (EDit22.Text<>'') then s:=s+'
and Цена BETWEEN '+ edit21.Text+' and '+edit22.Text;
Query1.SQL.Text:=s;
Query1.Open;

почему при таком запросе если комбобокс2 пустой, а в каком
нить другом поле есть текст, он мне ничего не выдает? хотя
все варианты первой переменной описаны?
мда, не умею я вопросы задавать
AndrЮshkA
10.12.06 02:16
и еще)))
Как ты в ворд выводишь данные? ))
я нашел как просто таблицу вывести, все работает, но
кривовато
венн
13.12.06 08:54
AndrЮshkA: (10.12.06 02:02)
А сделать чтоб редактируя данные в тейбле они и в таблице
охранялись?
Вот, для того, чтобы изменения в ADOTable сохранились в
таблице базы, надо выполнить Post :)
венн
13.12.06 09:32
AndrЮshkA: (10.12.06 02:08)
Query1.Close;
S:='SELECT * From Продажа Where';
if combobox2.Text<>'' then s:=s+' Район
='+'"'+Combobox2.Text+'"'else s:=s+' Район =
"Центр" or Район = "СЗР" or Район = "ЮЗР" or Район =
"НЮР" or Район = ""';
if edit2.Text<>'' then s:=s+' and
Адрес='+'"'+Edit2.Text+'"';
if edit3.Text<>'' then s:=s+' and Количество
комнат='+Edit3.Text;
if Combobox1.Text<>'' then s:=s+' and
Тип='+'"'+Combobox1.Text+'"';
if Combobox3.Text<>'' then s:=s+' and
Планировка='+'"'+Combobox3.Text+'"';
if (edit1.Text<>'') and (EDit2.Text<>'') then s:=s+'
and Площадь BETWEEN '+ edit1.Text+' and '+edit5.Text;
if edit2.Text<>'' then s:=s+ ' and
Представитель='+'"'+Edit6.Text+'"';
if (edit21.Text<>'') and (EDit22.Text<>'') then s:=s+'
and Цена BETWEEN '+ edit21.Text+' and '+edit22.Text;
Query1.SQL.Text:=s;
Query1.Open;

почему при таком запросе если комбобокс2 пустой, а в каком
нить другом поле есть текст, он мне ничего не выдает? хотя
все варианты первой переменной описаны?
мда, не умею я вопросы задавать
а ты попробуй для:

if combobox2.Text<>'' then s:=s+' Район
='+'"'+Combobox2.Text+'"'else s:=s+' Район =
"Центр" or Район = "СЗР" or Район = "ЮЗР" or Район =

"НЮР" or Район = ""';

использовать, например, такое:

if combobox2.Text<>'' then s:=s+' Район
='+'"'+Combobox2.Text+'"'else s:=s+' Район LIKE
''*''';

где как, но по-моему именно * надо ставить в качестве
подстановочного знака, либо знак процента LIKE ''%'''


заметь, что ''*''' - там используются только апострофы,
а не кавычки с апострофом
венн
13.12.06 10:00
AndrЮshkA: (10.12.06 02:16)
и еще)))
Как ты в ворд выводишь данные? ))
я нашел как просто таблицу вывести, все работает, но
кривовато
можешь с экселем поэкспериментировать :)
вот из рабочей программы код:

var
Excel, ExcelBook, ExcelSheet: OleVariant;
RowCount, i: integer;

begin
//Запускаем Эксель
Excel := CreateOleObject('Excel.Application');
Excel.Visible := true;
ExcelBook := Excel.Workbooks.Add;
ExcelSheet := ExcelBook.Sheets[1];
//Начинаем заполнять прайс
with mdlMain.qryMain do begin
First;
RowCount:=1;
while not EOF do begin
ExcelSheet.Cells[RowCount,1].Value :=
Fields[4].AsVariant;
ExcelSheet.Cells[RowCount,2].Value :=
Fields[6].AsString;
ExcelSheet.Cells[RowCount,3].Value :=
Fields[8].AsString;
ExcelSheet.Cells[RowCount,4].Value :=
Fields[13].AsString;
ExcelSheet.Cells[RowCount,5].Value :=
Fields[17].AsString+' ';

ExcelSheet.Cells[RowCount,5].HorizontalAlignment:=4;
ExcelSheet.Cells[RowCount,6].Value :=
Fields[22].AsString;
ExcelSheet.Cells[RowCount,7].Value :=
Fields[19].AsCurrency;
Next;
RowCount:=RowCount + 1;
end;
end;
//Изменение размеров ячеек
ExcelSheet.Columns[1].ColumnWidth := 15;
ExcelSheet.Columns[2].ColumnWidth := 15;
ExcelSheet.Columns[3].ColumnWidth := 20;
ExcelSheet.Columns[4].ColumnWidth := 30;
ExcelSheet.Columns[5].ColumnWidth := 15;
ExcelSheet.Columns[6].ColumnWidth := 15;
ExcelSheet.Columns[7].ColumnWidth := 15;
...
ExcelSheet.Range['A6:G6'].Select;
Excel.Selection.Borders[8].LineStyle := 0;
Excel.Selection.Borders[8].Weight := 3;
Excel.Selection.Borders[8].ColorIndex := 0;
...
//Установки страницы печати
ExcelSheet.PageSetup.Orientation := 2;
ExcelSheet.PageSetup.Zoom := 95;
ExcelSheet.Protect(True,True,True);

Вооот.:)) объектную модель экселя, равно как и ворда, можешь
посмотреть в справке по VBA к данным приложениям..
да и вообще - неплохо было бы тебе в VBA заглянуть, да
посмотреть - как там работают с раличными объектами.

в данном примере используется метод позднего связывания...

можно, конечно, воспользоваться палитрой компонентов
Servers, но мне это не нравится...
AndrЮshkA
14.12.06 18:02
венн: (13.12.06 10:00)
можешь с экселем поэкспериментировать :)
вот из рабочей программы код:

var
Excel, ExcelBook, ExcelSheet: OleVariant;
RowCount, i: integer;

begin
//Запускаем Эксель
Excel := CreateOleObject('Excel.Application');
Excel.Visible := true;
ExcelBook := Excel.Workbooks.Add;
ExcelSheet := ExcelBook.Sheets[1];
//Начинаем заполнять прайс
with mdlMain.qryMain do begin
First;
RowCount:=1;
while not EOF do begin
ExcelSheet.Cells[RowCount,1].Value :=
Fields[4].AsVariant;
ExcelSheet.Cells[RowCount,2].Value :=
Fields[6].AsString;
ExcelSheet.Cells[RowCount,3].Value :=
Fields[8].AsString;
ExcelSheet.Cells[RowCount,4].Value :=
Fields[13].AsString;
ExcelSheet.Cells[RowCount,5].Value :=
Fields[17].AsString+' ';

ExcelSheet.Cells[RowCount,5].HorizontalAlignment:=4;
ExcelSheet.Cells[RowCount,6].Value :=
Fields[22].AsString;
ExcelSheet.Cells[RowCount,7].Value :=
Fields[19].AsCurrency;
Next;
RowCount:=RowCount + 1;
end;
end;
//Изменение размеров ячеек
ExcelSheet.Columns[1].ColumnWidth := 15;
ExcelSheet.Columns[2].ColumnWidth := 15;
ExcelSheet.Columns[3].ColumnWidth := 20;
ExcelSheet.Columns[4].ColumnWidth := 30;
ExcelSheet.Columns[5].ColumnWidth := 15;
ExcelSheet.Columns[6].ColumnWidth := 15;
ExcelSheet.Columns[7].ColumnWidth := 15;
...
ExcelSheet.Range['A6:G6'].Select;
Excel.Selection.Borders[8].LineStyle := 0;
Excel.Selection.Borders[8].Weight := 3;
Excel.Selection.Borders[8].ColorIndex := 0;
...
//Установки страницы печати
ExcelSheet.PageSetup.Orientation := 2;
ExcelSheet.PageSetup.Zoom := 95;
ExcelSheet.Protect(True,True,True);

Вооот.:)) объектную модель экселя, равно как и ворда, можешь
посмотреть в справке по VBA к данным приложениям..
да и вообще - неплохо было бы тебе в VBA заглянуть, да
посмотреть - как там работают с раличными объектами.

в данном примере используется метод позднего связывания...

можно, конечно, воспользоваться палитрой компонентов
Servers, но мне это не нравится...
вот эт нужное)) а с остальным я сам разобрался))
правда я и в ворд нашел как закидывать))
AndrЮshkA
14.12.06 19:27
CreateOleObject - не знаю такую штуку говорит(( может там
какие библиотеки надо прописать?!
AndrЮshkA
14.12.06 19:35
а нашел че нехватает)) все работает)