Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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 просто возник вопрос к моей программе он не относится
мне просто давно надо было узнать как и что...



Страницы: 1 вся ветка

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

Наверх





Память: 0.49 MB
Время: 0.038 c
1-66826
Alev
2002-03-07 12:36
2002.03.21
Flash


1-66809
cad
2002-03-04 08:47
2002.03.21
Нажать на кнопку дрогого приложения


3-66769
Markov D.
2002-02-21 19:00
2002.03.21
Midas / SocketConnection


3-66802
TwoK
2002-02-24 12:14
2002.03.21
Не подскажете альтернативные движки кроме BDE? Фриварные, шароварные - все равно...(-)


1-66830
Gayrus
2002-03-07 16:20
2002.03.21
Form s events





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский