На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Обязательно указание:
1) типа базы данных (Paradox/Oracle/Interbase и т.п.)
2) способа доступа к базе данных (ODBC/ADO/DAO/BDE и т.п.)
Например: Paradox/BDE, MS Access/ADO

Наиболее часто задаваемые вопросы:
Базы даных для начинающих. Первые шаги. Понятие о BDE.
Переход на клиент-сервер и начала ADO
Приёмы работы с BLOB (OLE/Memo) полями
Запросы и параметры или как избавиться от многих проблем. Проблемы с датами в запросах.
Нужели мне нужно устанавливать BDE? (или почему не работает программа на другом компьютере)
Модераторы: Bas, Rouse_
  
> Статистика в программе , Как сделать статистику в программе
    Всем привет!Помогите в программе сделать статистику поступления заказов т.е кто сколько заказал. И статистику поставщиков, так же какая организация сколько привезла товара, и когда вводил нового поставщика или заказ то она автоматически попадали в эту статистику.

    Код поставщиков:
    ExpandedWrap disabled
      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
    Сообщение отредактировано: Bas -
      !
      Обязательно указание:
      1) типа базы данных (Paradox/Oracle/Interbase и т.п.)
      2) способа доступа к базе данных (ODBC/ADO/DAO/BDE и т.п.)
      Например: Paradox/BDE, MS Access/ADO


      Добавлено
      Цитата Dencerok @
      так же какая организация сколько привезла товара, и когда вводил нового поставщика или заказ то она автоматически попадали в эту статистику.

      Какова структура таблиц? Это в виде отчета надо ?
        Тип базы Access, способ доступа- ADO query. а структура как по проще, в принципе без разницы
          Цитата Dencerok @
          а структура как по проще, в принципе без разницы

          Проще не куда.
          Таблица "движение" (id,приход/расход, кол-во, цена,id_товара,id_контрагент,дата_операции)
          Таблица "контрагент" (id,наименование,инн,.....)
          Таблица "товар" (id,наименование,ед.измерения,.....)
          А дальше запрос который выдаст требуемое
          Раньше в Access была учебная база и там была схема склад, там хорошо было для начинающих.
          Сообщение отредактировано: Bas -
            Нет Ребят, надо кнопку просто сделать чтоб когда нажал вылезла статистика какой поставщик сколько привез
            Вот скрин
            http://www.image123.net/q27xruhjbiq8pic.html

            Добавлено
            Тоесть вылазит форма и в ней написано такой то поставщик, такое то количество такого то товара
              Цитата Dencerok @
              в ней написано такой то поставщик, такое то количество такого то товара

              ExpandedWrap disabled
                select sum(движение.кол-во),товар.наименование from движение
                LEFT join товар on движение.id_товара=товар.id
                where движение.id_контрагент=2548 group by движение.id_товара

              Вот и повесь примерно такой запрос на кнопку.

              Добавлено
              Цитата Dencerok @
              вылезла статистика какой поставщик сколько привез

              Без знания структур таблиц и связей это невозможно, тут телепатов нет.
                А что значит движение? Извините просто я не шарю в этом
                  Цитата Dencerok @
                  А что значит движение? Извините просто я не шарю в этом

                  приход товара на склад/ отпуск товара со склада. Дебет отличается от Кредита.

                  Добавлено
                  Или у вас склад только получает товар?
                  Сообщение отредактировано: Bas -
                    Книга Бен Форта SQL, рекомендую.
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0349 ]   [ 18 queries used ]   [ Generated: 26.04.24, 11:59 GMT ]