Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[13.59.136.170] |
|
Сообщ.
#1
,
|
|
|
Всем привет!Помогите в программе сделать статистику поступления заказов т.е кто сколько заказал. И статистику поставщиков, так же какая организация сколько привезла товара, и когда вводил нового поставщика или заказ то она автоматически попадали в эту статистику.
Код поставщиков: unit Unit7; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, XPMan, StdCtrls, Grids, DBGrids, DB, ADODB, ExtCtrls, Spin; type TForm7 = class(TForm) ADOQuery1: TADOQuery; ADOTable1: TADOTable; DataSource1: TDataSource; DBGrid1: TDBGrid; Label1: TLabel; Label2: TLabel; Edit1: TEdit; Label3: TLabel; ComboBox1: TComboBox; Button1: TButton; Button2: TButton; XPManifest1: TXPManifest; Button3: TButton; Label4: TLabel; Edit2: TEdit; Label5: TLabel; Edit3: TEdit; Bevel1: TBevel; Label6: TLabel; SpinEdit1: TSpinEdit; Edit4: TEdit; Edit5: TEdit; Label7: TLabel; Label8: TLabel; Edit6: TEdit; Label9: TLabel; Button4: TButton; procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure DBGrid1CellClick(Column: TColumn); procedure Button4Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form7: TForm7; id: string; implementation {$R *.dfm} uses Unit1; procedure Filter(fname: string; table: TADOTable); begin table.Filtered:= false; table.Filter:= fname; table.Filtered:= true; end; procedure TForm7.Button3Click(Sender: TObject); begin if (not(trim(edit2.Text)='')) and (trim(edit3.Text)='') then filter('Îðãàíèçàöèÿ like ''%'+edit2.text+'%''', adotable1) else if (not(trim(edit2.Text)='')) and (not(trim(edit3.Text)='')) then filter('Îðãàíèçàöèÿ like ''%'+edit2.text+'%'' and Êàòåãîðèÿ like ''%'+edit3.text+'%''', adotable1) else if (trim(edit2.Text)='') and (not(trim(edit3.Text)='')) then filter('Êàòåãîðèÿ like ''%'+edit3.text+'%''', adotable1) else messagebox(0, 'Çàïîëíèòå õîòÿ áû îäíî ïîëå!', 'Error!', mb_iconerror); end; procedure TForm7.Button2Click(Sender: TObject); begin if (not(trim(edit1.Text)='')) then begin adotable1.Active:= false; adoquery1.SQL.Clear; adoquery1.SQL.Add('INSERT INTO postav(Îðãàíèçàöèÿ, Êàòåãîðèÿ, Êîëè÷åñòâî, Òåëåôîí, Email, Àäðåñ) VALUES ('''+edit1.text+''', '''+combobox1.Text+''', '''+inttostr(spinedit1.Value)+''', '''+edit4.Text+''', '''+edit5.Text+''', '''+edit6.Text+''')'); adoquery1.ExecSQL; adotable1.Active:= true; end else messagebox(0, 'Çàïîëíèòå âñå ïîëÿ!', 'Error!', mb_iconerror); end; procedure TForm7.Button1Click(Sender: TObject); begin adotable1.Active:= false; adoquery1.SQL.Clear; adoquery1.SQL.Add('DELETE FROM postav WHERE Êîä='+id); adoquery1.ExecSQL; adotable1.Active:= true; end; procedure TForm7.DBGrid1CellClick(Column: TColumn); begin id:= adotable1.fieldbyname('Êîä').AsString; end; procedure TForm7.Button4Click(Sender: TObject); begin adotable1.Filtered:= false; end; procedure TForm7.FormCreate(Sender: TObject); begin end; end. Код заказов: unit Unit3; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB, XPMan, Spin; type TForm3 = class(TForm) DataSource1: TDataSource; ADOTable1: TADOTable; DBGrid1: TDBGrid; Label1: TLabel; Label2: TLabel; Edit1: TEdit; Label3: TLabel; Edit2: TEdit; Label4: TLabel; Edit3: TEdit; Edit4: TEdit; Label5: TLabel; Button1: TButton; XPManifest1: TXPManifest; Label7: TLabel; Label8: TLabel; Edit5: TEdit; ComboBox1: TComboBox; Button2: TButton; ADOQuery1: TADOQuery; Button3: TButton; SpinEdit1: TSpinEdit; Label6: TLabel; ComboBox2: TComboBox; Label9: TLabel; Button4: TButton; procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure DBGrid1CellClick(Column: TColumn); procedure FormCreate(Sender: TObject); procedure Button4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form3: TForm3; id: string; implementation {$R *.dfm} uses Unit1; procedure Filter(fname: string; table: TADOTable); begin table.Filtered:= false; table.Filter:= fname; table.Filtered:= true; end; procedure TForm3.Button2Click(Sender: TObject); begin if (not(trim(edit5.Text)='')) then begin adoquery1.SQL.Clear; adoquery1.SQL.Add('INSERT INTO zakaz(Çàêàç, Êàòåãîðèÿ, Âðåìÿ_ïðîäàæè, Äàòà_ïðîäàæè, Êîëè÷åñòâî, Îðãàíèçàöèÿ) VALUES ('''+edit5.Text+''', '''+combobox1.Text+''', '''+timetostr(now)+''', '''+datetostr(now)+''', '''+inttostr(spinedit1.Value)+''', '''+combobox2.Text+''')'); adoquery1.ExecSQL; adotable1.Active:= false; adotable1.Active:= true; end else messagebox(0, 'Çàïîëíèòå ïîëÿ!', 'Error!', mb_iconerror); end; procedure TForm3.Button1Click(Sender: TObject); begin if (trim(edit1.Text)='') and (not(trim(edit2.Text)='')) and (not(trim(edit3.Text)='')) and (not(trim(edit4.Text)='')) then filter('Êàòåãîðèÿ like ''%'+edit2.text+'%'' and Âðåìÿ_ïðîäàæè like ''%'+edit3.text+'%'' and Äàòà_ïðîäàæè like ''%'+edit4.text+'%''', adotable1) else if (not(trim(edit1.Text)='')) and (trim(edit2.Text)='') and (not(trim(edit3.Text)='')) and (not(trim(edit4.Text)='')) then filter('Çàêàç like ''%'+edit1.text+'%'' and Âðåìÿ_ïðîäàæè like ''%'+edit3.text+'%'' and Äàòà_ïðîäàæè like ''%'+edit4.text+'%''', adotable1) else if (not(trim(edit1.Text)='')) and (not(trim(edit2.Text)='')) and (trim(edit3.Text)='') and (not(trim(edit4.Text)='')) then filter('Çàêàç like ''%'+edit1.text+'%'' and Êàòåãîðèÿ like ''%'+edit2.text+'%'' and Äàòà_ïðîäàæè like ''%'+edit4.text+'%''', adotable1) else if (not(trim(edit1.Text)='')) and (not(trim(edit2.Text)='')) and (not(trim(edit3.Text)='')) and (trim(edit4.Text)='') then filter('Çàêàç like ''%'+edit1.text+'%'' and Êàòåãîðèÿ like ''%'+edit2.text+'%'' and Âðåìÿ_ïðîäàæè like ''%'+edit3.text+'%''', adotable1) else if (trim(edit1.Text)='') and (trim(edit2.Text)='') and (not(trim(edit3.Text)='')) and (not(trim(edit4.Text)='')) then filter('Âðåìÿ_ïðîäàæè like ''%'+edit3.text+'%'' and Äàòà_ïðîäàæè like ''%'+edit4.text+'%''', adotable1) else if (trim(edit1.Text)='') and (not(trim(edit2.Text)='')) and (trim(edit3.Text)='') and (not(trim(edit4.Text)='')) then filter('Êàòåãîðèÿ like ''%'+edit2.text+'%'' and Äàòà_ïðîäàæè like ''%'+edit4.text+'%''', adotable1) else if (trim(edit1.Text)='') and (not(trim(edit2.Text)='')) and (not(trim(edit3.Text)='')) and (trim(edit4.Text)='') then filter('Êàòåãîðèÿ like ''%'+edit2.text+'%'' and Âðåìÿ_ïðîäàæè like ''%'+edit3.text+'%''', adotable1) else if (not(trim(edit1.Text)='')) and (trim(edit2.Text)='') and (trim(edit3.Text)='') and (not(trim(edit4.Text)='')) then filter('Çàêàç like ''%'+edit1.text+'%'' and Äàòà_ïðîäàæè like ''%'+edit4.text+'%''', adotable1) else if (not(trim(edit1.Text)='')) and (trim(edit2.Text)='') and (not(trim(edit3.Text)='')) and (trim(edit4.Text)='') then filter('Çàêàç like ''%'+edit1.text+'%'' and Âðåìÿ_ïðîäàæè like ''%'+edit3.text+'%''', adotable1) else if (not(trim(edit1.Text)='')) and (not(trim(edit2.Text)='')) and (trim(edit3.Text)='') and (trim(edit4.Text)='') then filter('Çàêàç like ''%'+edit1.text+'%'' and Êàòåãîðèÿ like ''%'+edit2.text+'%''', adotable1) else if (trim(edit1.Text)='') and (not(trim(edit2.Text)='')) and (trim(edit3.Text)='') and (trim(edit4.Text)='') then filter('Êàòåãîðèÿ like ''%'+edit2.text+'%''', adotable1) else if (not(trim(edit1.Text)='')) and (trim(edit2.Text)='') and (trim(edit3.Text)='') and (trim(edit4.Text)='') then filter('Çàêàç like ''%'+edit1.text+'%''', adotable1) else if (trim(edit1.Text)='') and (trim(edit2.Text)='') and (not(trim(edit3.Text)='')) and (trim(edit4.Text)='') then filter('Âðåìÿ_ïðîäàæè like ''%'+edit3.text+'%''', adotable1) else if (trim(edit1.Text)='') and (trim(edit2.Text)='') and (trim(edit3.Text)='') and (not(trim(edit4.Text)='')) then filter('Äàòà_ïðîäàæè like ''%'+edit4.text+'%''', adotable1) else messagebox(0, 'Çàïîëíèòå õîòÿ áû îäíî ïîëå!', 'Error!', mb_iconerror); end; procedure TForm3.Button3Click(Sender: TObject); begin adotable1.Active:= false; adoquery1.SQL.Clear; adoquery1.SQL.Add('DELETE FROM zakaz WHERE Êîä='+id); adoquery1.ExecSQL; adotable1.Active:= true; end; procedure TForm3.DBGrid1CellClick(Column: TColumn); begin id:= adotable1.fieldbyname('Êîä').AsString; end; procedure TForm3.FormCreate(Sender: TObject); var i: integer; begin adotable1.Active:= false; adotable1.TableName:= 'clients'; adotable1.Active:= true; for i:= 1 to adotable1.RecordCount do begin adotable1.RecNo:= i; combobox2.Items.Add(adotable1.fieldbyname('Îðãàíèçàöèÿ').AsString); end; combobox2.ItemIndex:= 0; adotable1.Active:= false; adotable1.TableName:= 'zakaz'; adotable1.Active:= true; end; procedure TForm3.Button4Click(Sender: TObject); begin adotable1.Filtered:= false; end; end. M Используйте теги code |
Сообщ.
#2
,
|
|
|
! Обязательно указание: 1) типа базы данных (Paradox/Oracle/Interbase и т.п.) 2) способа доступа к базе данных (ODBC/ADO/DAO/BDE и т.п.) Например: Paradox/BDE, MS Access/ADO Добавлено Цитата Dencerok @ так же какая организация сколько привезла товара, и когда вводил нового поставщика или заказ то она автоматически попадали в эту статистику. Какова структура таблиц? Это в виде отчета надо ? |
Сообщ.
#3
,
|
|
|
Тип базы Access, способ доступа- ADO query. а структура как по проще, в принципе без разницы
|
Сообщ.
#4
,
|
|
|
Цитата Dencerok @ а структура как по проще, в принципе без разницы Проще не куда. Таблица "движение" (id,приход/расход, кол-во, цена,id_товара,id_контрагент,дата_операции) Таблица "контрагент" (id,наименование,инн,.....) Таблица "товар" (id,наименование,ед.измерения,.....) А дальше запрос который выдаст требуемое Раньше в Access была учебная база и там была схема склад, там хорошо было для начинающих. |
Сообщ.
#5
,
|
|
|
Нет Ребят, надо кнопку просто сделать чтоб когда нажал вылезла статистика какой поставщик сколько привез
Вот скрин http://www.image123.net/q27xruhjbiq8pic.html Добавлено Тоесть вылазит форма и в ней написано такой то поставщик, такое то количество такого то товара |
Сообщ.
#6
,
|
|
|
Цитата Dencerok @ в ней написано такой то поставщик, такое то количество такого то товара select sum(движение.кол-во),товар.наименование from движение LEFT join товар on движение.id_товара=товар.id where движение.id_контрагент=2548 group by движение.id_товара Вот и повесь примерно такой запрос на кнопку. Добавлено Цитата Dencerok @ вылезла статистика какой поставщик сколько привез Без знания структур таблиц и связей это невозможно, тут телепатов нет. |
Сообщ.
#7
,
|
|
|
А что значит движение? Извините просто я не шарю в этом
|
Сообщ.
#8
,
|
|
|
Цитата Dencerok @ А что значит движение? Извините просто я не шарю в этом приход товара на склад/ отпуск товара со склада. Дебет отличается от Кредита. Добавлено Или у вас склад только получает товар? |
Сообщ.
#9
,
|
|
|
Книга Бен Форта SQL, рекомендую.
|