Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.21;
Скачать: [xml.tar.bz2];




Вниз

Отчет по нескольким линиям TMemo!!!! 


draculenok   (2002-02-20 07:49) [0]

Здравствуйте уважаемые программеры!!!! извините за навязчивость у меня такая проблема.... при составлении отчета раньше я пользовался Editом следствии чего получался отчет только то одной записи теперь возникла ситуация при которой мне необходимо чтобы отчет был по нескольким записям!!
я использовал Memo и Combobox при нажании на кнопку Button выделенная запись в сомвовохе переходит в Memo, занимая соответственно 1 строку 2,3 и т.д.
с заполнением проблем нет вся проблема как составить запрос чтобы она работала раньше я использовал вот такой:
Form8.Query1.SQL.Clear;
Form8.Query1.SQL.Add("SELECT GroupTov,Company,AdvrtName,ConstrType, sum(price) FROM base2.db where GroupTov= """+Edit1.Text+""" group by GroupTov,AdvrtName,ConstrType,Company");
Form8.Query1.active:=true;
Form8.QuickRep1.Preview;

как можно заменить Edit1.text на все записи в Memo!!
заранее благодарен



Alexandr   (2002-02-20 08:42) [1]

Memo1.text



draculenok   (2002-02-20 10:19) [2]

Но он не создает отчет по всем записям он вообще не создает почему то?



Viktor Lonin   (2002-02-20 11:18) [3]

Возможно, необходимо пробегаться по всем существующим строкам в МЕМО1 и обьединять их в запросе через логику(например
select * from aa.dbf
where
sity=memo1.lines[0]
AND
sity=memo1.lines[1]
.....)
Конечно, зараннее необходимо знать количество строк в MEMO
(memo1.Lines.Count) и что то еще додумать...:))



MetallAdm   (2002-02-20 11:37) [4]

Хех а помоему выводить отчеты в Word и Exel
куды проще меньше проблем да и красившей получается :))
если надо как работать с ентим пиши !



draculenok   (2002-02-20 12:05) [5]

MetallAdm © >> если есть возможность то пожалуйста объясни ..



draculenok   (2002-02-20 12:08) [6]

Viktor Lonin >> а если задавать memo1.lines.count:=table1.count то на пустые места он просто не будет реагировать и все?



Viktor Lonin   (2002-02-20 12:38) [7]

Memo1.lines.count -это только для чтения. Это число, показывающее сколько строк сейчас существует в Мемо1. Доступ к конкретной строке Мемо можно получить:
Мемо1.Lines[i] (типа стринг)
Причем нельзя обращаться к строке у которой i>=Memo1.Lines.Count
(Нумерация строк начинается с 0)
А вообще MetallAdm прав. Отчеты лучше всего делать в Excel"е.



draculenok   (2002-02-20 12:57) [8]

кто нибудь может объянить как делать отчеты в экселе !!!! никак не могу найти полное описание!!!!!!!!!



amamed_3071   (2002-02-20 13:46) [9]

Form8.Query1.SQL.Add("SELECT GroupTov,Company,AdvrtName,ConstrType, sum(price) FROM base2.db where GroupTov in (");
s:="";
for i:=0 to memo1.lines.Count-1 do
s:=s+""""+memo1.lines[i]+""",";
s:=Copy(s,1,Length(s)-1);
Form8.Query1.SQL.Add(s+") group by GroupTov,AdvrtName,ConstrType,Company");



Viktor Lonin   (2002-02-20 13:47) [10]

Вот тебе примерчик, я когда то делал. Я использую метод позднего связывания, что считается вроде бы не очень хорошо...
Но тем не менее:
Во-первых в разделе Uses необходимо добавить ComObj
Далее какая нибудь процедура вывода в Excel(по кнопке например):

procedure TForm1.SpeedButton9Click(Sender: TObject);
var X,Sheet,sheet1,Colum,Colum1:Variant;
i,j,Last_Str:Integer;
begin
X:= CreateOleObject("Excel.Application");
X.Visible:=true; //показать exel
X.Workbooks.Add(-4167); //так надо :))
X.Workbooks[1].WorkSheets[1].Name:="Отчет";//имя книги
//получаем указатель на лист:
Sheet:=X.Workbooks[1].WorkSheets["Отчет"];

//получаем указатель на колонки
Colum:=X.Workbooks[1].WorkSheets["Отчет"].Columns;

//изменяем колонки
Colum.Columns[1].ColumnWidth:=3; //unpacker
Colum.Columns[2].ColumnWidth:=3; //washer
Colum.Columns[3].ColumnWidth:=3; //...
Colum.Columns[4].ColumnWidth:=3;
//Указатель на строки
Colum:=X.Workbooks[1].WorkSheets["Отчет"].Rows;
//меняем шрифт определенных строк(заголовки)
Colum.Rows[1].Font.Bold:=true;
Colum.Rows[1].Font.Color:=clBlue;
Colum.Rows[1].Font.Size:=13;
Colum.Rows[4].Font.Bold:=true;
Colum.Rows[5].Font.Bold:=true;
//заполняем
Sheet.Cells[1,6]:="Привет!";
//данные из БД
table2.First;

for i:=1 to table2.RecordCount do //по таблице2
begin
for j:=1 to 5 do //по полям таблицы
begin
Sheet.Cells[i+5,j]:=table2.Fields[j].AsString;
end;//of for j=1 to
table2.Next;
end;//of for i=1 to
end;
Я тут очень многое вырезал, поэтому возможно сразу не заработает.
Пиши, если не понятно.



Draculenok   (2002-02-20 15:30) [11]

Viktor Lonin >>> а как мне выводить 0 поле ведь счет идет с 0 а он показывает ошибку



Viktor Lonin   (2002-02-20 15:54) [12]

Я не помню, поэкспериментируй...Я то же попробую
Лучше пиши мне по электронке..



Draculenok   (2002-02-20 16:02) [13]

Viktor Lonin>>> Все проблем с 0 нет разобрался!!!!!!!!
>>> люди встала другая проблема а как задавать програмно функции .. ну например сортировку чтобы из базы одинаковые значения не выводились допустим
1 колонка Имя
2 колонка Стоимость
Необходимо чтобы при одинаковых именах их стоимости складывались.....
и показывалось только одно имя+ вся их сумма...



Johnmen   (2002-02-20 16:43) [14]

Есть предположение, что тов. Draculenok © хочет, чтобы за него написали его прогу...Или это не так ?



MetallAdm   (2002-02-20 18:02) [15]

Я тебе уже писмо написал !
воот тама я разбирал с одим человеком как с ЕКСЕЛЕМ
работать думаю будет понятно !

Я уже начинаю соглашатся с Johnmen © ::)

сорри за сообшение не в тему !



panov   (2002-02-20 18:11) [16]

>Draculenok © (20.02.02 16:02)
Создавай новую ветку для вопросов не по теме Topic.



Draculenok   (2002-02-21 06:21) [17]

Ну да конечно вам проще судить а если человек действительно не знает ....
Лучше наверное промолчать, чем делать выводы ... у меня хватило бы и денег и возможности чтобы за меня ее написали....



Draculenok   (2002-02-21 09:43) [18]

И ПРОСТО ВООБЩЕ Я ДУМАЮ ЧТО НА СЧЕТ Ecxela просто возник вопрос к моей программе он не относится
мне просто давно надо было узнать как и что...




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.21;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.75 MB
Время: 0.023 c
14-67008          Елена                 2002-02-08 18:34  2002.03.21  
?


1-66811           AndrewK               2002-03-05 11:46  2002.03.21  
QuickReport конфликтует с драйвером принтера


1-66845           Mishka                2002-03-07 20:56  2002.03.21  
Постоянно висящие Hintы


3-66755           dymka                 2002-02-21 08:53  2002.03.21  
Нужен совет по проектированию системы


14-66956          GReMLiN               2002-02-03 12:43  2002.03.21  
rxLib