📄 main.pas
字号:
unit Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ToolWin, ComCtrls,
ImgList, Buttons, DBGrids, Menus,
DB, DBClient, Provider, jpeg, ActnList, ComObj,
ADOdb, adoconed, inifiles, DBCtrls, CheckLst, WinSkinData;
type
TForm_main = class(TForm)
MainMenu1: TMainMenu;
Parameter: TMenuItem;
P_1: TMenuItem;
N1: TMenuItem;
P_2: TMenuItem;
saFety: TMenuItem;
F_1: TMenuItem;
F_2: TMenuItem;
F_3: TMenuItem;
F_1_1: TMenuItem;
F_4: TMenuItem;
N400: TMenuItem;
H_1: TMenuItem;
MenuItem27: TMenuItem;
H_2: TMenuItem;
StatusBar1: TStatusBar;
ImageList_tools: TImageList;
CoolBar1: TCoolBar;
ToolBar1: TToolBar;
ToolBtn_MatRK: TToolButton;
ToolBtn_MatCK: TToolButton;
ToolBtn_FinRK: TToolButton;
ToolBtn_FinCK: TToolButton;
ToolButton5: TToolButton;
ToolBtn_FinXS: TToolButton;
ToolBtn_SeqFL: TToolButton;
ToolButton6: TToolButton;
ToolBtn_L: TToolButton;
ToolBtn_quit: TToolButton;
F_5: TMenuItem;
Base: TMenuItem;
B_1: TMenuItem;
B_2: TMenuItem;
Order: TMenuItem;
O_2: TMenuItem;
O_1: TMenuItem;
B_4: TMenuItem;
B_3: TMenuItem;
B_5: TMenuItem;
O_3: TMenuItem;
B_6: TMenuItem;
B_1_1: TMenuItem;
B_1_2: TMenuItem;
B_1_3: TMenuItem;
Storehouse: TMenuItem;
S_1: TMenuItem;
S_1_1: TMenuItem;
S_1_2: TMenuItem;
S_1_3: TMenuItem;
S_2: TMenuItem;
S_2_1: TMenuItem;
S_2_2: TMenuItem;
S_2_3: TMenuItem;
S_N_1: TMenuItem;
S_2_4: TMenuItem;
Account: TMenuItem;
A_1: TMenuItem;
A_2: TMenuItem;
A_1_1: TMenuItem;
S_N_2: TMenuItem;
S_4: TMenuItem;
A_4: TMenuItem;
A_5: TMenuItem;
A_10: TMenuItem;
Time1: TTimer;
B_7: TMenuItem;
b_1_4: TMenuItem;
P_5: TMenuItem;
ToolButton7: TToolButton;
S_N_3: TMenuItem;
S_3: TMenuItem;
A_1_3: TMenuItem;
A_3: TMenuItem;
A_9: TMenuItem;
A_8: TMenuItem;
A_6: TMenuItem;
A_7: TMenuItem;
N10: TMenuItem;
N12: TMenuItem;
P_4: TMenuItem;
A_1_2: TMenuItem;
ADOQ_severdate: TADOQuery;
O_4: TMenuItem;
O_5: TMenuItem;
O_1_1: TMenuItem;
P_3: TMenuItem;
P_1_1: TMenuItem;
SkinData1: TSkinData;
procedure H_2Click(Sender: TObject);
procedure F_4Click(Sender: TObject);
procedure F_5Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure P_2Click(Sender: TObject);
procedure B_1Click(Sender: TObject);
procedure B_2Click(Sender: TObject);
procedure B_4Click(Sender: TObject);
procedure B_3Click(Sender: TObject);
procedure B_5Click(Sender: TObject);
procedure B_6Click(Sender: TObject);
procedure Time1Timer(Sender: TObject);
procedure O_1Click(Sender: TObject);
procedure O_2Click(Sender: TObject);
procedure O_3Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure B_7Click(Sender: TObject);
procedure F_1Click(Sender: TObject);
procedure P_1Click(Sender: TObject);
procedure F_2Click(Sender: TObject);
procedure F_3Click(Sender: TObject);
procedure S_1_1Click(Sender: TObject);
procedure S_1_3Click(Sender: TObject);
procedure S_1_2Click(Sender: TObject);
procedure S_2_1Click(Sender: TObject);
procedure S_2_2Click(Sender: TObject);
procedure S_2_4Click(Sender: TObject);
procedure S_2_3Click(Sender: TObject);
procedure A_1Click(Sender: TObject);
procedure A_2Click(Sender: TObject);
procedure A_4Click(Sender: TObject);
procedure A_5Click(Sender: TObject);
procedure S_4Click(Sender: TObject);
procedure S_3Click(Sender: TObject);
procedure A_8Click(Sender: TObject);
procedure A_3Click(Sender: TObject);
procedure B_9Click(Sender: TObject);
procedure A_9Click(Sender: TObject);
procedure A_10Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure A_7Click(Sender: TObject);
procedure A_6Click(Sender: TObject);
procedure P_4Click(Sender: TObject);
procedure O_4Click(Sender: TObject);
procedure O_5Click(Sender: TObject);
procedure P_3Click(Sender: TObject);
procedure P_5Click(Sender: TObject);
private
{ Private declarations }
// procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;
procedure ShowHint(Sender: TObject);
procedure display_menu;
public
{ Public declarations }
procedure Create_ProgressForm(AOwner: TComponent;Labeltext:string);
procedure WriteIntoExcel(FDBGrid1: TDBGrid; sName,Title1: string);
end;
var
Form_main: TForm_main;
CloseMe:boolean;
Progress_Form1: TForm; {进度窗体}
ProgressBar1: TProgressBar; {进度条}
implementation
uses About, sharevar, sharefun, DBConfig, Base_info, order_info,
Sequence_price, Absent_BOM, Employee, Logon, Role, SysFlag, Admin,
ChangeKey, data, Material_RK, Material_KC, Material_CK, Fin_Product_RK,
Fin_Product_CK, Fin_Product_KC, Fin_Product_XS, Payout, Earning, Borrow,
Earn, Outbom_log, CaiCangDan, PersonMainShouLU, Etp_Month_ACC, Emp_Pay,
EmpPay_Out, EMPTJ_SHOUZHI_month, Search_orderSL, EMPTJ_SHOUZHI_ALL,
material_info, Sysdata_manage, search_orderSL_detail, Employee_Backup;
{$R *.dfm}
{
procedure TForm_main.WMEraseBkgnd(var Message: TWMEraseBkgnd);
begin
inherited;
DrawItem(LBLLOGO);
end;
}
//{创建进度显示窗口}
procedure TForm_main.Create_ProgressForm(AOwner: TComponent;Labeltext:string);
var
Panel: TPanel;
Prompt: TLabel; {提示标签}
begin
if assigned(Progress_Form1) then exit;
Progress_Form1 := TForm.Create(AOwner);
with Progress_Form1 do
begin
try
Font.Name := '宋体'; {设置字体}
Font.Size := 9;
BorderStyle := bsNone;
Width := 300;
Height := 100;
BorderWidth := 2;
Color := clBlue;
Position := poScreenCenter;
Panel := TPanel.Create(Progress_Form1);
with Panel do
begin
Parent := Progress_Form1;
Align := alClient;
BevelInner := bvNone;
BevelOuter := bvRaised;
Caption := '';
end;
Prompt := TLabel.Create(Panel);
with Prompt do
begin
Parent := panel;
AutoSize := True;
Left := 25;
Top := 25;
Caption :='正在导出数据,请稍候...';
application.ProcessMessages ;
end;
ProgressBar1 := TProgressBar.Create(panel);
with ProgressBar1 do
begin
Parent := panel;
Left := 20;
Top := 50;
Height := 18;
Width := 260;
end;
except
end;
end;
end;
//导出到EXCEL自定义函数
procedure TForm_main.WriteIntoExcel(FDBGrid1: TDBGrid; sName,Title1: string);
var
ExcelID: Variant;
k, i, j: integer;
filename: string;
label TmpGriditems1, TmpGriditems2;
begin
if FDBGrid1.DataSource.DataSet.IsEmpty then
begin
beep;
showmessage('没有可导出的数据!');
exit;
end;
filename:= concat(extractfilepath(application.exename), sName, '.xls');
try
ExcelID:= CreateOleObject( 'Excel.Application' ); //创建 Excel 对象
ExcelID.Caption :='企业管理系统'+'--调用 Microsoft Excel 打开导出文件'; //更改 Excel 标题栏
except
Application.Messagebox(pchar('Excel 没有安装!'),pchar(trim('system_name')), MB_ICONERROR + mb_Ok);
exit;
end;
try
Create_ProgressForm(self,'正在导出数据,请稍候...');//显示进度框
application.ProcessMessages;
Progress_Form1.Show;
ProgressBar1.Max := FDBGrid1.DataSource.DataSet.RecordCount;
ExcelID.Workbooks.Add;
FDBGrid1.DataSource.DataSet.DisableControls; //禁止dbgrid记录移动
FDBGrid1.DataSource.DataSet.First;
for j := 0 to FDBGrid1.Columns.Count - 1 do //插入字段名
begin
application.ProcessMessages;
if (not FDBGrid1.Columns[j].Visible) then goto TmpGriditems1;
ExcelID.Worksheets[1].Cells[3, j + 1] := FDBGrid1.Columns[j].Title.Caption;
ExcelID.Worksheets[1].Cells.item[3, j + 1].font.size := '10';
TmpGriditems1:
end;
k:=2;
for i := 4 to FDBGrid1.DataSource.DataSet.RecordCount + 3 do //插入记录(记录循环)
begin
ProgressBar1.Position := k;
application.ProcessMessages;
for j := 0 to FDBGrid1.FieldCount - 1 do //DBGrid列循环
begin
if (not FDBGrid1.Columns[j].Visible) then goto TmpGriditems2;
ExcelID.Worksheets[1].Cells.item[i, j + 1] :=
FDBGrid1.Fields[j].Asstring;
ExcelID.Worksheets[1].Cells.item[i, j + 1].font.size := '10';
TmpGriditems2:
end;
FDBGrid1.DataSource.DataSet.Next;
k:=k+1;
end;
ExcelID.Worksheets[1].Columns.AutoFit; //宽度自适应
ExcelID.Worksheets[1].Cells.item[1, 2] := Title1; //标题内容
ExcelID.Worksheets[1].Cells.Item[1, 2].font.size := '14'; //标题大小
finally
FDBGrid1.DataSource.DataSet.EnableControls;
ExcelID.Visible := true; //显示EXCEL窗口
ProgressBar1.Position :=0;
Progress_Form1.Close;
end;
end;
procedure TForm_main.ShowHint(Sender: TObject);
begin
if Length(Application.Hint) > 0 then
begin
StatusBar1.SimplePanel := True;
StatusBar1.SimpleText := Application.Hint;
end
else StatusBar1.SimplePanel := False;
end;
procedure TForm_main.display_menu;
begin
//显示菜单
//其本信息录入
if curAdmin.team_power[0][0]='0' then B_1.Visible :=false else B_1.Visible :=true;
if curAdmin.team_power[0][1]='0' then B_2.Visible :=false else B_2.Visible :=true;
if curAdmin.team_power[0][2]='0' then B_3.Visible :=false else B_3.Visible :=true;
if curAdmin.team_power[0][3]='0' then B_4.Visible :=false else B_4.Visible :=true;
if curAdmin.team_power[0][4]='0' then B_5.Visible :=false else B_5.Visible :=true;
if curAdmin.team_power[0][5]='0' then B_6.Visible :=false else B_6.Visible :=true;
if curAdmin.team_power[0][6]='0' then B_7.Visible :=false else B_7.Visible :=true;
if not (B_1.Visible or B_2.Visible or B_3.Visible or B_4.Visible or B_5.Visible or B_6.Visible or B_7.Visible)
then Base.Visible:=false else Base.Visible:=true;
if not (B_1.Visible or B_2.Visible) then B_1_1.Visible:=false else B_1_1.Visible:=true;
B_1_2.Visible:=B_3.Visible; B_1_3.Visible:=b_4.Visible;
if not (B_5.Visible or B_6.Visible) then b_1_4.Visible:=false else b_1_4.Visible:=true;
//订单管理
if curAdmin.team_power[1][0]='0' then O_1.Visible :=false else O_1.Visible :=true;
if curAdmin.team_power[1][1]='0' then O_2.Visible :=false else O_2.Visible :=true;
if curAdmin.team_power[1][2]='0' then O_3.Visible :=false else O_3.Visible :=true;
if curAdmin.team_power[1][3]='0' then O_4.Visible :=false else O_4.Visible :=true;
if curAdmin.team_power[1][4]='0' then O_5.Visible :=false else O_5.Visible :=true;
if not (O_1.Visible or O_2.Visible or O_3.Visible or O_4.Visible or O_5.Visible)
then Order.Visible:=false else Order.Visible:=true;
if not (O_4.Visible or O_5.Visible) then O_1_1.Visible:=false else O_1_1.Visible:=true;
//仓库管理
if curAdmin.team_power[2][0]='0' then S_1_1.Visible :=false else S_1_1.Visible :=true;
if curAdmin.team_power[2][1]='0' then S_1_2.Visible :=false else S_1_2.Visible :=true;
if curAdmin.team_power[2][2]='0' then S_1_3.Visible :=false else S_1_3.Visible :=true;
if curAdmin.team_power[2][3]='0' then S_2_1.Visible :=false else S_2_1.Visible :=true;
if curAdmin.team_power[2][4]='0' then S_2_2.Visible :=false else S_2_2.Visible :=true;
if curAdmin.team_power[2][5]='0' then S_2_3.Visible :=false else S_2_3.Visible :=true;
if curAdmin.team_power[2][6]='0' then S_2_4.Visible :=false else S_2_4.Visible :=true;
if curAdmin.team_power[2][7]='0' then S_3.Visible :=false else S_3.Visible :=true;
if curAdmin.team_power[2][8]='0' then S_4.Visible :=false else S_4.Visible :=true;
ToolBtn_MatRK.Visible:=S_1_1.Visible; ToolBtn_MatCK.Visible:=S_1_2.Visible;
ToolBtn_FinRK.Visible:=S_2_1.Visible; ToolBtn_FinCK.Visible:=S_2_2.Visible;
ToolBtn_FinXS.Visible:=S_2_3.Visible; ToolBtn_SeqFL.Visible:=s_4.Visible;
if not (S_1_1.Visible or S_1_2.Visible or S_1_3.Visible)
then s_1.Visible:=false else s_1.Visible:=true;
if not (S_2_1.Visible or S_2_2.Visible or S_2_3.Visible or S_2_4.Visible)
then S_2.Visible:=false else S_2.Visible:=true;
S_N_1.Visible:=s_1.Visible; S_N_2.Visible:=S_2.Visible;
S_N_3.Visible:=s_3.Visible;
if not (S_1.Visible or S_2.Visible or S_3.Visible or s_4.Visible)
then Storehouse.Visible:=false else Storehouse.Visible:=true;
//企业账务管理
if curAdmin.team_power[3][0]='0' then A_1.Visible :=false else A_1.Visible :=true;
if curAdmin.team_power[3][1]='0' then A_2.Visible :=false else A_2.Visible :=true;
if curAdmin.team_power[3][2]='0' then A_3.Visible :=false else A_3.Visible :=true;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -