Форум: "Базы";
Текущий архив: 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.21 c