RTFormwork/public10/ThreeFun/Fun/U_PublicFunction.pas
“ddf” 61630656e9 1
2024-07-07 09:35:27 +08:00

125 lines
3.1 KiB
ObjectPascal

unit U_PublicFunction;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, StdCtrls, BtnEdit, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit,DBGrids, DB, cxDBData,
cxGridLevel, cxClasses, cxControls, cxGridCustomView, ADODB,StrUtils,
Midas,cxGridCustomTableView, cxGridTableView, cxGridDBTableView,cxTimeEdit,
cxGrid,cxDBLookupComboBox,cxCalendar, cxCurrencyEdit,cxGridExportLink,
ExtCtrls, Buttons,DBClient,RTComboBox,cxDropDownEdit,CXmemo;
function GetMaxBh(ADOQueryTmp:TADOQuery;
var mMaxBh:string;
mBhType:string;
mFlag:string;
mStatus:string;
lsLen:integer=3):Boolean;
procedure CreateAdoToCds(Ado1:TADOQuery; Cds1:TclientDataSet );
procedure InitAdoToCds(Ado1:TADOQuery;Cds1:TclientDataSet);
implementation
function GetMaxBh(ADOQueryTmp:TADOQuery;
var mMaxBh:string;
mBhType:string;
mFlag:string;
mStatus:string;
lsLen:integer=3):Boolean;
begin
try
with ADOQueryTmp do
begin
Close;
sql.Clear ;
sql.Add(' exec Get_SY_MaxBH ');
sql.Add(' @BHstr='+quotedstr(mFlag));
sql.Add(',@BHType='+quotedStr(mBhType));
sql.Add(',@Len='+inttostr(LsLen));
sql.Add(',@status='+quotedStr(mStatus));
Open;
if RecordCount>0 then
begin
mMaxBh:=trim(fieldByName('MaxBH').AsString) ;
if mMaxBh<>'' then
result:=true
else
Result:=false;
end
else
begin
result:=false;
end;
end;
if not Result then
application.MessageBox(Pchar('无法生成自动编号('+mflag+')'),'提示信息',MB_ICONINFORMATION);
Except
result:=false;
application.MessageBox(Pchar('无法生成自动编号('+mflag+')'),'提示信息',MB_ICONINFORMATION);
end;
end;
procedure CreateAdoToCds(Ado1:TADOQuery; Cds1:TclientDataSet );
var
i:integer;
mfieldName:string;
mSize:integer;
begin
mfieldName:='';
Cds1.FieldDefs.Clear;
with Ado1 do
begin
for i:=0 to fieldCount-1 do //
begin
if (Fields[i].DataType=ftString) and (Fields[i].Size=0) then
begin
msize:=1;
end
else
msize:=Fields[i].Size;
mfieldName:=trim(fields[i].FieldName);
Cds1.FieldDefs.Add(mfieldName,Fields[i].DataType,msize);
end;
end;
Cds1.FieldDefs.Add('flag',ftString,1);
Cds1.FieldDefs.Add('index',ftInteger,0);
Cds1.Close;
Cds1.CreateDataSet;
end;
procedure InitAdoToCds(Ado1:TADOQuery;Cds1:TclientDataSet);
var
i:integer;
k:integer;
begin
Ado1.DisableControls;
Cds1.DisableControls;
Ado1.first;
K:=1;
while not Ado1.Eof do
begin
with Cds1 do
begin
Append;
for i:=0 to Ado1.FieldCount-1 do
begin
fields[i].value:=Ado1.Fields[i].Value ;
end;
fieldByName('flag').AsString :='1';
fieldByName('index').value :=k;
inc(k);
Post;
end;
Ado1.Next;
end;
if not Cds1.IsEmpty then
begin
Cds1.First ;
end;
Ado1.EnableControls;
Cds1.EnableControls;
end;
end.