⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainunit.pas

📁 一个票据管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
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 + -