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

📄 pub.pas

📁 完整的公司合同管理系统,基于ACSESS数据库开发,无须安装任何其他插件.附带源码.免费提供.
💻 PAS
字号:
unit pub;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DBCtrls, Mask, Buttons, ComCtrls, ExtCtrls, ToolWin,
  DB, ADODB, ImgList;

 //******************************************************************************************
 //******************                                                 ***********************
 //******************          关于附件操作的方法                      **********************
 //******************                                                 ***********************
 //******************************************************************************************

  procedure FuJian_ViewData(const HtID : string;
                            const aQuery: TADOQuery;
                            const ListV: TListView ) ;  //获得附件数据,并显示在TlistView中
  procedure FuJian_ListViewShowData(const aQuery: TADOQuery;
                                    const ListV: TListView ) ;  //在TlistView中显示附件数据
  function FuJian_GetFileName(var FileDir : string) : boolean;  //获得文件的非路径名称
  function FuJian_PostInTable (const HtID,HtName,FJBH,FJDir : string;
                               const aTable1,aTable2 : TADOTable):boolean;//保存附件信息
  function FuJian_GetSaveLocation(var NewDir : string;   //NewDir先将HTID做为参数传入
                                  const aTable : TADOTable) : boolean;  //获得附件保存路径
  function FuJIan_DelteFile(const HtID : string ;
                            const ListV : TListView ;
                            const aTable : TADOTable;
                            const aQuery : TADOQuery):boolean; //删除附件
  //*****************************************************************************************
  //*****************************************************************************************
  procedure HeTong_ViewData(const SqlText : string;
                            const aQuery: TADOQuery;
                            const Mark : string;  //ListV显示方式的标志,‘1’表示简洁显示;‘2’打印单字段显示,‘3’表示完全显示
                            const ListV: TListView ) ;  //获得附件数据
  function HeTong_GetQueryData(const SqlText : string;
                               const aQuery: TADOQuery) : boolean;
  function HeTong_DeleteQueryData(const SqlText : string;
                               const aQuery: TADOQuery) : boolean;

  procedure CreateStringList(const HtID , HtName : string ; var StrL : TStringList ;ComB : TComBobox);
  procedure AddStringList(const HtID , HtName : string ; var StrL : TStringList ;ComB : TComBobox);
  function MonthToJidu(const month : integer) : integer;

  function HeTong_TaiZTongJ(const SqlText : string;
                            const aQuery: TADOQuery) : Integer;
implementation
uses pdm;

procedure FuJian_ViewData(const HtID : string;
                          const aQuery: TADOQuery;
                          const ListV: TListView  );
  function GetFuJianData(const HtID : string;
                         const aQuery: TADOQuery) : boolean;
    begin
      try
          with aQuery do
               begin
                    Close;
                    SQL.Clear;
                    SQL.Add(' select * from FJ ');
                    SQL.Add(' where ID= '+#39+HtID+#39);
                    SQL.Add(' order by ShiJ,FJID ');
                    Prepared;
                    Open;
               end;
           result := true;
       except
         result:=false;
       end;
    end;

var lstItem:TListItem;
begin
  if GetFuJianData(HtID,aQuery) then
     begin
          ListV.Clear;
          with aQuery do
               begin
                    First;
                    while not eof do
                          begin
                                lstItem:=ListV.Items.Add ;
                                lstItem.SubItems.Add(FieldByName('FJID').AsString );
                                lstItem.Caption:=FieldByName('FJMC').AsString;
                                lstItem.SubItems.Add(FieldByName('SHIJ').AsString );
                                Next ;
                          end;
               end;
     end
  else
     application.MessageBox('数据配置有误','警告',MB_OK+MB_ICONSTOP);

end;

procedure FuJian_ListViewShowData(const aQuery: TADOQuery;
                                  const ListV: TListView ) ;
var lstItem:TListItem;
begin
  ListV.Clear;
  with aQuery do
       begin
            First;
            while not eof do
                  begin
                        lstItem:=ListV.Items.Add ;
                        lstItem.SubItems.Add(FieldByName('FJID').AsString );
                        lstItem.Caption:=FieldByName('FJMC').AsString;
                        lstItem.SubItems.Add(FieldByName('SHIJ').AsString );
                        Next ;
                  end;
       end;
end;

function FuJian_GetFileName(var FileDir : string) : boolean; //*-----------------
var i : integer ;
begin
   i := pos('\',FileDir);
   while i>0 do
         begin
              Delete(FileDir,1,i);
              i := pos('\',FileDir);
         end;
   result := true;
end;

function FuJian_PostInTable (const HtID,HtName,FJBH,FJDir : string;
                             const aTable1,aTable2 : TADOTable):boolean;
var olddir,newdir : string;
begin
     result := false;
     if FuJian_GetSaveLocation(NewDir,aTable2) then
        begin
             try
               with aTable1 do
                    begin
                         Close;
                         Open;
                         Last;
                         Insert;
                         FieldByName('ID').AsString := HtID;
                         FieldByName('FJID').AsString := FJBH;
                         FieldByName('FJMC').AsString := HtName;
                         FieldByName('SHIJ').AsString := DateToStr(Date);
                         Post;

                         olddir :=FJDir;
                         newdir := newdir+HtID;
                         if not DirectoryExists(newdir) then
                                CreateDir(newdir);
                         newdir := newdir+'\'+HtName;
                         CopyFile(pchar(olddir),pchar(newdir),true);
                         result := true;
                    end;

             except
                 application.MessageBox('附件编号可能有重复!','提示',MB_OK+MB_ICONSTOP);
             end;
         end
     else
         application.MessageBox('请先在“系统维护”中设置附件保存路径!','提示',MB_OK+MB_ICONSTOP);

end;

function FuJian_GetSaveLocation(var NewDir : string;const aTable : TADOTable) : boolean; //NewDir先将HTID做为参数传入
begin
     with aTable do
          begin
               close;
               open;
               if FieldByName('Dir').AsString<>'' then
                  begin
                       NewDir := FieldByName('Dir').AsString+NewDir+'\';
                       result := true;
                  end
               else
                  result := false;
          end;
end;

function FuJIan_DelteFile(const HtID : string ;
                          const ListV : TListView ;
                          const aTable : TADOTable;
                          const aQuery : TADOQuery):boolean;

  function DeleteFuJian(const HtID,HtName : string;const aQuery : TADOQuery) : boolean;
    begin
         try
            with aQuery do
                 begin
                      Close;
                      SQL.Clear;
                      SQL.Add(' delete from FJ ');
                      SQL.Add(' where FJMC= '+#39+HtName+#39+'and ID= '+#39+HtID+#39 );
                      Prepared;
                      ExecSQL;
                 end;
             result := true;
         except
             result:=false;
         end;
    end;


var NewDir : string;
begin
  result:=false;
  NewDir := HtID;
  if Application.MessageBox(PChar('是否要删除 “'+ListV.Selected.Caption+'” 附件?'),'提示',MB_YESNO+MB_ICONQUESTION)=IDYES then
     if FuJIan_GetSaveLocation(NewDir,aTable) then
        begin
             if DeleteFuJian(HtID,ListV.Selected.Caption,aQuery) then begin
                DeleteFile(NewDir+ListV.Selected.Caption);
                result := true;
             end else
                application.MessageBox('数据操作失败!请检查数据文件是否正常...','警告',MB_OK+MB_ICONSTOP);
        end
     else
         application.MessageBox('请先在“系统维护”中设置附件的删除路径!','提示',MB_OK+MB_ICONSTOP);

end;

procedure CreateStringList(const HtID , HtName : string ; var StrL : TStringList ;ComB : TComBobox);
begin
    StrL := TStringList.Create;
    strL.Clear;
    StrL.Add(HtName+'='+HtID);
    ComB.Items.Add(HtName);
    ComB.ItemIndex := 0;
end;

procedure AddStringList(const HtID , HtName : string ; var StrL : TStringList ;ComB : TComBobox);
begin
    StrL.Insert(0,HtName+'='+HtID);
    ComB.Items.Insert(0,HtName);
    ComB.ItemIndex := 0;
end;

// HeTong
function MonthToJidu(const month : integer) : integer;
begin
  result := 0;
  case month of
     1 : result:=1;
     2 : result:=1;
     3 : result:=1;
     4 : result:=2;
     5 : result:=2;
     6 : result:=2;
     7 : result:=3;
     8 : result:=3;
     9 : result:=3;
     10 : result:=4;
     11 : result:=4;
     12 : result:=4;
  end;
end;

procedure HeTong_ViewData(const SqlText : string;
                          const aQuery: TADOQuery;
                          const Mark : string;  //ListV显示方式的标志,‘1’表示简洁显示;‘2’打印单字段显示,‘3’表示完全显示
                          const ListV: TListView ) ;  //获得附件数据
  function GetFuJianData(const SqlText : string;
                         const aQuery: TADOQuery) : boolean;
    begin
      try
          with aQuery do
               begin
                    Close;
                    SQL.Clear;
                    SQL.Add(SqlText);
                    Prepared;
                    Open;
               end;
           result := true;
       except
         result:=false;
       end;
    end;

var lstItem:TListItem;
begin
  if GetFuJianData(SqlText,aQuery) then
     begin
          ListV.Clear;
          with aQuery do
               begin
                    First;
                    while not eof do
                          begin
                                if SameText(Mark,'1') then begin
                                   lstItem:=ListV.Items.Add ;
                                   lstItem.Caption:=FieldByName('Name').AsString;
                                   lstItem.SubItems.Add(FieldByName('ID').AsString );
                                   lstItem.SubItems.Add(FieldByName('QDRQ').AsString );
                                 end else if SameText(Mark,'2') then begin
                                   lstItem:=ListV.Items.Add ;
                                   lstItem.Caption:=FieldByName('Name').AsString;
                                 end else begin
                                   {完全显示代码}
                                 end;
                                Next ;
                          end;
               end;
     end
  else
     application.MessageBox('数据配置有误','警告',MB_OK+MB_ICONSTOP);

end;

function HeTong_GetQueryData(const SqlText : string;
                             const aQuery: TADOQuery) : boolean;
begin
try
  with aQuery do
           begin
                Close;
                SQL.Clear;
                SQL.Add(SqlText);
                Prepared;
                Open;
           end;
       result := true;
   except
     result:=false;
   end;
end;

function HeTong_DeleteQueryData(const SqlText : string;
                                const aQuery: TADOQuery) : boolean;
begin
try
  with aQuery do
           begin
                Close;
                SQL.Clear;
                SQL.Add(SqlText);
                Prepared;
                ExecSQL;
           end;
       result := true;
   except
     result:=false;
   end;
end;

function HeTong_TaiZTongJ(const SqlText : string;
                          const aQuery: TADOQuery) : Integer;
begin
  with aQuery do
           begin
                Close;
                SQL.Clear;
                SQL.Add(SqlText);
                Prepared;
                Open;
           end;
       result := aQuery.RecordCount;
end;
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -