Скачиваний:
0
Добавлен:
11.01.2026
Размер:
5.31 Кб
Скачать
#ifndef ControlListTechH
#define ControlListTechH
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <System.ImageList.hpp>
#include <Vcl.ImgList.hpp>
#include <Vcl.ComCtrls.hpp>
#include <Vcl.CheckLst.hpp>
#include <Vcl.ExtCtrls.hpp>
//---------------------------------------------------------------------------

#include <class.h>

class TFormControlListTech : public TForm
{
__published:
    TImageList *ImageList1;
    TButton *Button1;
    TButton *Button2;
    TPageControl *PageControl1;
    TTabSheet *TablePage;
    TTabSheet *PlanPage;
    TListView *ListView1;
    TButton *Button3;
	TButton *BtnSort;
	TButton *BtnSearch;
	TTabSheet *Deliveries;
    TTabSheet *TabSheet2;
    TTabSheet *TabSheet3;
    TPanel *Panel1;
    TListView *Post;
    TListView *ListView2;
    TLabel *Label1;
    TLabel *Label2;
    TPanel *Panel2;
    TLabel *Label3;
    TCheckListBox *CheckListBox1;
	TButton *BtnGenerateReport;
    TCheckListBox *CheckListBox2;
	TButton *ButtonAddSupplier;
    TPanel *Panel3;
    TPaintBox *sample_pb;
	TEdit *SearchEdit;
	TButton *BtnAdd;

    void __fastcall BtnAddClickClick(TObject *Sender);
    void __fastcall BtnEditClickClick(TObject *Sender);
    void __fastcall BtnDeleteClickClick(TObject *Sender);
    void __fastcall BtnSearchClickClick(TObject *Sender);
    void __fastcall PaintPlanTech(TObject *Sender);
    void __fastcall BtnSave(TObject *Sender);
    void __fastcall BtnLoad(TObject *Sender);
	void __fastcall BtnSearchClick(TObject *Sender);
	void __fastcall SearchEditChange(TObject *Sender);
	void __fastcall BtnSortClick(TObject *Sender);


private:
    OrgTechnic devices[50];     // Основное оборудование
    Supply supplies[50];        // Поставки
    Repair repairs[50];         // Ремонты
    int deviceCount;
    int supplyCount;
	int repairCount;
        // Для работы с поставщиками
    char suppliers[50][100];  // Массив поставщиков
    int supplierCount;        // Количество поставщиков
    bool supplierFilter[50];  // Флаги выбранных поставщиков для фильтрации

    void ManageDevices();
    void AddDevice();
    void EditDevice();
    void DeleteDevice();
    void SearchSort();
	void DisplayDeviceOnPlan(OrgTechnic &device); // Отрисовка на плане
    void UpdateMainListView();  // Обновление основной таблицы
	void UpdateSuppliesListView(); // Обновление поставок
	void AddSupplier();
	void __fastcall ButtonAddSupplierClick(TObject *Sender);
    void __fastcall ButtonResetFiltersClick(TObject *Sender);
    void __fastcall ButtonAddSupplyClick(TObject *Sender);
	void __fastcall CheckListBox1Click(TObject *Sender);
    void UpdateSupplierCheckboxes();
    void FilterBySuppliers();
	void UpdateSuppliesListViewWithFilter();
    void UpdateRepairsListView();  // Обновление ремонтов
    void AddSampleData();       // Заполнение тестовыми данными


    void SaveToFileWithDialog();
    void LoadFromFileWithDialog();
    void SaveToFile();
	void LoadFromFile();

	void LaunchEasterEgg();  // Запуск пасхалки
	void PerformSearch(const char* searchText);
    void UpdateMainListViewWithFilter(const char* filterText);
	void HideSearchInput();

    void __fastcall ListView1DblClick(TObject *Sender);
    void __fastcall ListView1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
	void ShowEditDialog(int deviceIndex);

	void CalculateTotalValue(); //стоимость
	void UpdateReportTab();
	void __fastcall PageControl1Change(TObject *Sender);  // Обработчик смены вкладки

        // ОБРАБОТЧИКИ СОРТИРОВКИ
    void __fastcall BtnSortPriceAscClick(TObject *Sender);
    void __fastcall BtnSortPriceDescClick(TObject *Sender);
    void __fastcall BtnSortDateAscClick(TObject *Sender);
    void __fastcall BtnSortDateDescClick(TObject *Sender);
    //void __fastcall BtnSortClick(TObject *Sender);  // Для меню
     // МЕТОДЫ ДЛЯ БЫСТРОЙ СОРТИРОВКИ
    void QuickSortByPrice(int left, int right, bool ascending = true);
    void QuickSortByDate(int left, int right, bool ascending = true);
    int PartitionByPrice(int left, int right, bool ascending);
    int PartitionByDate(int left, int right, bool ascending);
	void SwapDevices(int i, int j);

	// МЕТОДЫ ДЛЯ ВЫЗОВА СОРТИРОВКИ
    void SortByPrice(bool ascending);
	void SortByDate(bool ascending);

	 void __fastcall CheckListBox2Click(TObject *Sender);

     void __fastcall CheckListBox1ClickReport(TObject *Sender);




public:
    __fastcall TFormControlListTech(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TFormControlListTech *FormControlListTech;
//---------------------------------------------------------------------------
#endif
Соседние файлы в папке Курсовая работа Армашев 3 семестр. Список оргтехники предприятия. С++