📄 mainunit.pas
字号:
unit MainUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdActns, ActnList, Menus, ComCtrls, ToolWin, ExtCtrls,shellapi,
mxOutlookBarPro, ImgList, jpeg;
type
TMainForm = class(TForm)
MainMenu1: TMainMenu;
M_System: TMenuItem;
M_Del: TMenuItem;
N3: TMenuItem;
M_SetMm: TMenuItem;
N5: TMenuItem;
M_SetBm: TMenuItem;
M_SetGl: TMenuItem;
N8: TMenuItem;
M_Close: TMenuItem;
M_Edit: TMenuItem;
M_DataGl: TMenuItem;
M_DataLe: TMenuItem;
M_DataXh: TMenuItem;
M_CreateRep: TMenuItem;
M_RepGl: TMenuItem;
M_RepLe: TMenuItem;
M_RepKq: TMenuItem;
M_RepXh: TMenuItem;
M_RepJc: TMenuItem;
M_Window: TMenuItem;
M_Win_Cascade: TMenuItem;
M_Win_Hor: TMenuItem;
M_Win_Ver: TMenuItem;
M_Win_Min: TMenuItem;
M_Win_Close: TMenuItem;
M_Help: TMenuItem;
M_Help_info: TMenuItem;
ActionList1: TActionList;
WindowCascade1: TWindowCascade;
WindowTileHorizontal1: TWindowTileHorizontal;
WindowTileVertical1: TWindowTileVertical;
WindowMinimizeAll1: TWindowMinimizeAll;
WindowCloseAll: TAction;
CoolBar1: TCoolBar;
ToolBar2: TToolBar;
ToolButton: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
StatusBar1: TStatusBar;
Splitter1: TSplitter;
ToolButton9: TToolButton;
ImageList1: TImageList;
ImageList2: TImageList;
ToolButton1: TToolButton;
ToolButton11: TToolButton;
ToolButton12: TToolButton;
N1: TMenuItem;
N2: TMenuItem;
N4: TMenuItem;
ToolButton13: TToolButton;
ToolButton14: TToolButton;
ToolButton15: TToolButton;
Panel1: TPanel;
Image1: TImage;
N6: TMenuItem;
N7: TMenuItem;
N10: TMenuItem;
mxOutlookBarPro1: TmxOutlookBarPro;
N9: TMenuItem;
Timer1: TTimer;
N11: TMenuItem;
ToolButton4: TToolButton;
ToolButton10: TToolButton;
N12: TMenuItem;
function CreateForm(CForm:TForm):boolean;
procedure FileCopy(Const sourcefilename,targetfilename:String);
procedure MQPathFile;
procedure pathfileexe;
procedure ymjz;
procedure WindowCloseAllExecute(Sender: TObject);
procedure WinodwCloseAllUpdate(Sender: TObject);
procedure M_CloseClick(Sender: TObject);
procedure formclose(Sender: TObject; var Action: TCloseAction);
procedure formcreate(Sender: TObject);
procedure formshow(Sender: TObject);
procedure M_DelClick(Sender: TObject);
procedure ToolButton12Click(Sender: TObject);
procedure M_Help_infoClick(Sender: TObject);
procedure M_DataGlClick(Sender: TObject);
procedure M_DataLeClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButtonClick(Sender: TObject);
procedure M_SetMmClick(Sender: TObject);
procedure M_SetBmClick(Sender: TObject);
procedure M_SetGlClick(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure M_RepGlClick(Sender: TObject);
procedure M_DataXhClick(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure M_RepLeClick(Sender: TObject);
procedure M_RepKqClick(Sender: TObject);
procedure M_RepXhClick(Sender: TObject);
procedure M_RepJcClick(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton15Click(Sender: TObject);
procedure ToolButton13Click(Sender: TObject);
procedure ToolButton7Click(Sender: TObject);
procedure ToolButton8Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure ToolButton10Click(Sender: TObject);
procedure Mxbutton6click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
pathfile:string;
end;
var
MainForm: TMainForm;
implementation
uses OpenUnit,dm,CreateUnit1, createdata,yhhz_AboutBox,updataztUnit,BmUnit,BjqlUnit,GrUnit,QcKqUnit,GrqxUnit,
bjllUnitpas,XhUnit,ThUnit,leUnit,KqUnit,XhqyUnit,BmKqUnit,jzUnit,FzUnit,jqUnit,thqsunit;
{$R *.dfm}
function Tmainform.CreateForm(CForm:TForm):boolean;
var {*****用户自定义MDIChild子窗体存在判断函数*****}
No:integer;
FormExist:boolean;
begin
FormExist := false;
if (CForm = NiL) then //判断CForm是否为空
begin
CreateForm := false; //函数返回值赋false
exit; //退出本函数
end;
for No:=0 to Screen.FormCount-1 do //判断窗体是否已经被建立起来
begin
if Screen.Forms[No].ClassType = CForm.ClassType then //窗体存在判断
FormExist := true; //窗体已经创建,用户没看到可能是处于隐藏或者最小化
end;
if FormExist = false then //窗体没有创建,返回false
begin
CreateForm := false;
exit;
end;
if CForm.WindowState = wsMinimized then //窗体已经创建,但处于最小化状态
ShowWindow(CForm.Handle,SW_SHOWNORMAL) //显示窗体
else //窗体已经创建,但处于隐藏状态
ShowWindow(CForm.Handle,SW_SHOWNA); //显示窗体
if not CForm.Visible then
CForm.Visible := true;
CForm.BringToFront; //当前窗口显示在最面前
CForm.SetFocus; //把光标的焦点转移到刚才创建或显示的窗口上
CreateForm := true; //函数返回值赋true
end;
procedure TmainForm.FileCopy(Const sourcefilename,targetfilename:string);
var
S,T:TFileStream;
begin
s:=TFileStream.Create(sourcefilename,fmOpenRead);
try
t:=TFileStream.Create(Targetfilename,fmopenWrite or fmCreate);
try
t.CopyFrom(s,s.Size);
finally
t.Free;
end;
finally
s.Free;
end;
end;
procedure tmainform.ymjz;
begin
if dmdata.qsjzADOQuery.fieldByName('bflag').AsBoolean = true then
begin
m_datagl.Enabled:=false;
m_datale.Enabled:=false;
m_dataxh.Enabled:=false;
N10.Enabled:=false;
n2.Enabled:=false;
mxOutlookbarpro1.Header[2].Buttons[0].Enabled:=false;
n4.Enabled:=true;
mxOutlookbarpro1.Header[2].Buttons[1].Enabled:=true;
toolbutton.Enabled:=false;
toolbutton2.Enabled:=false;
toolbutton3.Enabled:=false;
toolbutton15.Enabled:=false;
toolbutton13.Enabled:=false;
mxOutlookbarpro1.Header[1].Buttons[0].Enabled:=false;
mxOutlookbarpro1.Header[1].Buttons[1].Enabled:=false;
mxOutlookbarpro1.Header[1].Buttons[2].Enabled:=false;
mxOutlookbarpro1.Header[1].Buttons[3].Enabled:=false;
end
else
begin
m_datagl.Enabled:=true;
m_datale.Enabled:=true;
m_dataxh.Enabled:=true;
n10.Enabled:=true;
n2.Enabled:=true;
mxOutlookbarpro1.Header[2].Buttons[0].Enabled:=true;
n4.Enabled:=false;
mxOutlookbarpro1.Header[2].Buttons[1].Enabled:=false;
toolbutton.Enabled:=true;
toolbutton2.Enabled:=true;
toolbutton3.Enabled:=true;
toolbutton15.Enabled:=true;
toolbutton13.Enabled:=true;
mxOutlookbarpro1.Header[1].Buttons[0].Enabled:=true;
mxOutlookbarpro1.Header[1].Buttons[1].Enabled:=true;
mxOutlookbarpro1.Header[1].Buttons[2].Enabled:=true;
mxOutlookbarpro1.Header[1].Buttons[3].Enabled:=true;
end;
end;
procedure tmainform.MQPathFile;
begin
DMData.ADOConnectiondata.Connected := false;
DMData.ADOConnectiondata.ConnectionString := mainform.pathfile;
try
DMData.ADOConnectiondata.Connected := true;
//启动与数据库服务器的连接
except //抛出异常
Application.MessageBox('与数据库服务器连接未成功,请重新配置','警告对话框',MB_OK);
end;
end;
procedure tmainform.pathfileexe;
var
l,s,i,j,ID,ID_int,g_period_id:integer;
path,Cstring,cacc,str,str1,stryear,dir,dir1,dir2,dirfile1,dirfile2,dbegin,dend:string;
yy,mm,dd:word;
begin
dmdata.free;
Application.CreateForm(TDMData, DMData);
if jqform.combobox1.Text= '' then
begin
MQPathFile;
exit;
end;
s:=length(trim(jqform.combobox1.Text));
str1:=copy(trim(jqform.combobox1.Text),2,s-1);
i:=pos(']',trim(str1));
cacc:=copy(trim(str1),1,i-1);
j:=pos('-',trim(datetostr(jqform.datetimepicker1.Date)));
stryear:=copy(trim(datetostr(jqform.datetimepicker1.Date)),1,j-1);
with dmdata.CreateHDADOQuery do
begin
close;
sql.Clear;
sql.Add('select * from g_account where (cAcc=:a)' );
parameters.ParamByName('a').Value:=trim(cacc);
open;
if fieldByName('dbegin').AsDateTime >jqform.Datetimepicker1.Date then
begin
showmessage('你所选择的日期小于建账日期');
MQPathFile;
exit;
end;
dm.DMData.pjlen:=fieldByName('pjlen').AsInteger;
dm.DMData.pjlenstr:='0';
for l:=1 to dm.DMData.pjlen-1 do
begin
dm.DMData.pjlenstr:=dm.DMData.pjlenstr+'0';
end;
end;
with dmdata.CreateHDADOQuery do
begin
close;
sql.Clear;
sql.Add('select MAX(iYear) AS matyear from g_account1 where (AccountNum=:a)' );
parameters.ParamByName('a').Value:=trim(cacc);
open;
if fieldByName('matyear').AsInteger < strtoint(stryear)-1 then
begin
showmessage('你所选择的日期不能隔年');
MQPathFile;
exit;
end;
end;
with dmdata.CreateHDADOQuery do
begin
close;
sql.Clear;
sql.Add('select * from g_account1 where (AccountNum=:a) and (iYear=:b)' );
parameters.ParamByName('a').Value:=trim(cacc);
parameters.ParamByName('b').Value:=strtoint(trim(stryear));
open;
if RecordCount > 0 then
begin
if trim(jqform.combobox2.Text) <> stryear then
begin
showmessage('请查看登陆日期与账套年份是否相符');
MQPathFile;
exit;
end;
if (length(jqform.combobox3.Text)>0) and (length(jqform.edit1.text)>0)then
begin
with dmdata.OpenUserADOQuery do
try
close;
sql.Clear;
sql.Add('select * from T_User where (name=:a)and (passwd=:b)');
parameters.ParamByName('a').Value:=trim(jqform.combobox3.Text);
parameters.ParamByName('b').Value:=trim(jqform.edit1.Text);
open;
if RecordCount > 0 then
begin
//date:=datetostr(jqform.dateTimepicker1.date);
with dmdata.OpenZtADOQuery do
begin
close;
sql.Clear;
sql.Add('Select * from g_account1 where (AccountNum = :a) and (iyear = :b)');
parameters.ParamByName('a').Value:=cacc;
parameters.ParamByName('b').Value:=strtoint(trim(jqform.combobox2.Text));
open;
dir:=trim(fieldByName('FullpathName').AsString);
id_int:= fieldByName('ID').AsInteger;
end;
//Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:\FPGLXT\Zt001\Pjdb.mdb;Persist Security Info=False
CString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=';
CString:=CString+dir;
str:=';Persist Security Info=False';
DMData.ADOConnectiondata.Connected := false;
DMData.ADOConnectiondata.ConnectionString := cstring;
try
DMData.ADOConnectiondata.Connected := true;
//启动与数据库服务器的连接
except //抛出异常
Application.MessageBox('与数据库服务器连接未成功,请重新配置','警告对话框',MB_OK);
end;
close;
//loginok:=true;
end
else
begin
//loginok:=false;
showmessage('请确认登录的用户名和密码是否正确!');
MQPathFile;
exit;
end;
finally
free;
end;
close;
end
else
begin
showmessage('请输入登录用户名和密码!');
MQPathFile;
exit;
//edit1.SelectAll;
end;
inherited;
dmdata.ADOTable_T_user.Active:=true;
dmdata.ADOTable_T_user.First;
dmdata.ADOTable_T_user.Edit;
dmdata.ADOTable_T_user['DH']:=trim(jqform.combobox1.Text);
dmdata.ADOTable_T_user['name']:=trim(jqform.combobox3.Text);
dmdata.ADOTable_T_user['date']:=jqform.datetimepicker1.date;
dmdata.ADOTable_T_user.Post;
end
else
begin
if (length(jqform.combobox3.Text)>0) and (length(jqform.edit1.text)>0)then
begin
if MessageDlg('确认要创建年度账吗?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
begin
with dmdata.CreateHDADOQuery do
begin
close;
sql.Clear;
sql.Add('insert into g_account1(accountNum,iyear,fullpathname) values(:a,:b,:c)');
parameters.ParamByName('a').Value:=cacc;
parameters.ParamByName('b').Value:=strtoint(stryear);
parameters.ParamByName('c').Value:=trim(ExtractFileDir(Application.ExeName)+'\Zt'+cacc+'\'+stryear+'\pjdb.mdb');
execsql;
end;
with dmdata.CreateHDADOQuery do
begin
close;
sql.Clear;
sql.Add('Select * from g_account1 where (AccountNum = :a) and (iyear = :b)');
parameters.ParamByName('a').Value:=cacc;
parameters.ParamByName('b').Value:=strtoint(stryear);
open;
id_int:= fieldByName('ID').AsInteger;
end;
with dmdata.CreateHDADOQuery do
begin
close;
sql.Clear;
sql.Add('Select * from g_account1 where (AccountNum = :a) and (iyear = :b)');
parameters.ParamByName('a').Value:=cacc;
parameters.ParamByName('b').Value:=strtoint(stryear)-1;
open;
id:= fieldByName('ID').AsInteger;
end;
with dmdata.CreateHDADOQuery do
begin
close;
sql.Clear;
sql.Add('Select * from g_period where (iacc_id = :a)');
parameters.ParamByName('a').Value:=id;
open;
First;
while not eof do
begin
g_period_id:=fieldByName('id').AsInteger;
decodedate(fieldByName('dbegin').AsDateTime,yy,mm,dd);
dbegin:=inttostr(yy+1)+'-'+inttostr(mm)+'-'+inttostr(dd);
decodedate(fieldByName('dend').AsDateTime,yy,mm,dd);
dend:= inttostr(yy+1)+'-'+inttostr(mm)+'-'+inttostr(dd);
with dmdata.CreateYearADOQuery do
begin
close;
sql.Clear;
sql.Add('insert into g_period values(:a,:b,:c,:d,:e,:f)');
parameters.ParamByName('a').Value:=id_int;
parameters.ParamByName('b').Value:=strtoint(stryear);
parameters.ParamByName('c').Value:= g_period_id;
parameters.ParamByName('d').Value:=strtodate(dbegin);
parameters.ParamByName('e').Value:=strtodate(dend);
parameters.ParamByName('f').Value:=0;
execsql;
end;
next;
end;
end;
end;
dir1:= ExtractFileDir(Application.ExeName);
dir2:= trim(ExtractFileDir(Application.ExeName)+'\Zt'+cacc+'\'+stryear);
ForceDirectories(dir2);
dirfile1:=dir1+'\Pjdb.mdb';
dirfile2:=dir2+'\pjdb.mdb';
FileCopy(dirfile1,dirfile2);
//dmdata.ADOConnectionSet.Connected := false;
//Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:\FPGLXT\Zt010\Pjdb.mdb;Persist Security Info=False
CString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=';
CString:=CString+dir2;
str:='\Pjdb.mdb;Persist Security Info=False';
CString:=CString+str;
DMData.ADOConnectiondata.Connected := false;
DMData.ADOConnectiondata.ConnectionString := cstring;
try
DMData.ADOConnectiondata.Connected := true;
//启动与数据库服务器的连接
except //抛出异常
Application.MessageBox('与数据库服务器连接未成功,请重新配置','警告对话框',MB_OK);
end;
//loginok:=true;
inherited;
dmdata.ADOTable_T_user.Active:=true;
dmdata.ADOTable_T_user.First;
dmdata.ADOTable_T_user.Edit;
dmdata.ADOTable_T_user['DH']:=trim(jqform.combobox1.Text);
dmdata.ADOTable_T_user['name']:=trim(jqform.combobox3.Text);
dmdata.ADOTable_T_user['date']:=jqform.datetimepicker1.date;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -