📄 pub.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 + -