📄 weijie_data.pas
字号:
je[2]:=je[2]+fieldbyname('fcc').AsFloat;
je[3]:=je[3]+fieldbyname('fback').AsFloat;
je[4]:=je[4]+fieldbyname('fout').AsFloat;
je[5]:=je[5]+fieldbyname('fjy').AsFloat;
edit;
fieldbyname('fjy').AsFloat := je[1] + je[3] - je[2] - je[4] + je[5];
next;
end;
append;
fieldbyname('cZhaiY').asstring:='本月结存';
fieldbyname('fjc').asfloat:=je[1];
fieldbyname('fcc').asfloat:=je[2];
fieldbyname('fback').asfloat:=je[3];
fieldbyname('fout').asfloat:=je[4];
fieldbyname('fjy').asfloat:=je[1] + je[3] - je[2] - je[4] + je[5];
post;
end;
end;
procedure TWeiJieServer.PGetZhangbenCKGetData(Sender: TObject;
DataSet: TCustomClientDataSet);
begin
DoGetZhangBenCKJX(DataSet);
end;
function TWeiJieServer.IAccountBookTotal(IYEA: Integer; IMON: Smallint;
DDATE: TDateTime; const ccpt: WideString): Smallint;
VAR SRS : STRING;
begin
RESULT := 1;
SRS := DoAccountBookTotal(IYEA,IMON,DDATE,ccpt);
IF SRS <> '' THEN BEGIN
RESULT := -1;
RAISE exception.Create('结帐没有成功,请认真阅读下面提示从中找出原因:'+#13+#13+sRs);
END
end;
function TWeiJieServer.DoAccountBookTotal(IYEA: Integer; IMON: Smallint;
DDATE: TDateTime; const ccpt: WideString): String;
begin
RESULT := '';
try
WITH ADOPUB DO BEGIN
CLOSE;
PARAMETERS.Clear;
IF ccpt = 'CW' THEN
ProceDureName := 'TotalAccountBookMoney';
IF ccpt = 'CK' THEN
ProceDureName := 'TotalAccountBook';
PARAMETERS.Refresh;
PARAMETERS.ParamValues['@IYEA'] := IYEA;
PARAMETERS.ParamValues['@IMON'] := IMON;
PARAMETERS.ParamValues['@DDATE'] := DDATE;
EXECPROC;
END;
except
ON E:EXCEPTION DO
RESULT := E.Message;
end;
end;
function TWeiJieServer.IPubLogin(const ccode, cpass: WideString; var cuser,
cgroup: WideString): Smallint;
begin
Result := DoPubLogin(ccode,cpass,cuser,cgroup);
end;
function TWeiJieServer.DoPubLogin(const ccode, cpass: String; var cuser,
cgroup: Widestring): integer;
begin
result := 1;
with pubCm do begin
close;
commandText := 'select cName,cGroup FROM T_pubUser where (ccode ='''+ccode+''')'+
'AND (cpass = '''+cpass+''')';
open;
if isEmpty then begin
result := 0;
exit;
end;
cuser := fieldbyname('cName').AsString;
cGroup := fieldbyname('cGroup').AsString;
end;
end;
function TWeiJieServer.IApplyUpdateMoney(VData: OleVariant): Smallint;
VAR SRS : STRING;
begin
RESULT := 1;
SRS := DoApplyUpdateMoney(vdata);
IF SRS <> '' THEN BEGIN
RESULT := -1;
RAISE exception.Create('保存失败,请认真阅读下面提示从中找出原因:'+#13+#13+sRs);
END
end;
function TWeiJieServer.DoApplyUpdateMoney(vData: OleVariant): string;
var cdTem: TclientDataSet;
begin
RESULT := '';
cdTem := TclientDataSet.Create(nil);
TRY
Try
cdTem.First;
with ADOPub do begin
CLOSE;
PARAMETERS.Clear;
ProceDureName := 'ApplyMoneyLog';
Parameters.Refresh;
PARAMETERS.ParamValues['@cdh'] := cdTem.fieldbyname('cCode').AsString;
PARAMETERS.ParamValues['@clb'] := cdTem.fieldbyname('clb').AsString;
PARAMETERS.ParamValues['@ddate'] := cdTem.fieldbyname('DdatePz').AsDatetime;
PARAMETERS.ParamValues['@ikeyClient'] := cdTem.fieldbyname('ikeyClient').Asinteger;
PARAMETERS.ParamValues['@fje'] := cdTem.fieldbyname('fje').Asfloat;
PARAMETERS.ParamValues['@cfs'] := cdTem.fieldbyname('cfs').AsString;
PARAMETERS.ParamValues['@cuser'] := cdTem.fieldbyname('cuser').AsString;
PARAMETERS.ParamValues['@cbz'] := cdTem.fieldbyname('cbz').AsString;
EXECPROC;
end;
Except
ON E:EXCEPTION DO
RESULT := E.Message;
end;
Finally
cdTem.Free;
end;
end;
function TWeiJieServer.ITrashDocument(iKey: Integer;
iOpt: Smallint): Smallint;
VAR SRS : STRING;
begin
RESULT := 1;
SRS := doTrashDocumment(iKey,iOpt);
IF SRS <> '' THEN BEGIN
RESULT := -1;
RAISE exception.Create('作废失败,请认真阅读下面提示从中找出原因:'+#13+#13+sRs);
END
end;
function TWeiJieServer.doTrashDocumment(iKey: Integer; iOpt: Integer): string;
begin
result := '';
Try
WITH ADOPub do begin
CLOSE;
PARAMETERS.Clear;
ProceDureName := 'TrashDocument';
Parameters.Refresh;
parameters.ParamValues['@iKey'] := iKey;
parameters.ParamValues['@iOpt'] := iOpt;
execproc;
end;
Except
on E:Exception do
result := E.message;
end;
end;
procedure TWeiJieServer.DoGetDocument(csou,cdec,cdh: string; iOpt: integer);
var sqlText: string;
begin
cdItem.Close;
cdMaster.Close;
cdItem.DataSource := dsMaster;
cdItem.MasterFields := 'IKey';
cdItem.IndexFieldNames := 'IKeyM';
sqlText := 'WHERE (DdatePz >= '''+csou+''')'+
' AND (DdatePz < '''+cdec+''')'+
' AND (IDL = '''+intTostr(iOpt)+''') AND (btrash <> 1)';
if cdh <> '' then
sqlText := sqlText + ' AND (CDH = '''+cdh+''')';
if iOpt = 11 then BEGIN
cdItem.CommandText := 'SELECT i.*,s.ccode,s.cName,s.fhd,s.fkd,s.ccolor,s.cdw '+
'FROM T_StockPlanItemZb I INNER JOIN T_STOCK S '+
'ON (I.IKeySTK = S.IKey)';
cdMaster.CommandText := 'SELECT M.IKey,M.CDH,k.ccode,k.cname,k.cTel,k.Cpost_Dz,M.ddatePz,M.ddateJh,M.fje '+
'from T_StockPlanMasterZb M INNER JOIN T_PubClient k '+
'ON (M.IkeyClient = k.ikey)' +#13+ SqlText;
END;
if (iOpt = -41) OR (iOpt = 41) then BEGIN
cdItem.CommandText := 'SELECT i.ikeyAu,i.IkeyM,i.ICodeCp IKeyCp,i.fsl,i.fdj,(i.fsl * i.fdj)fje,g.cName,g.cdw '+
'From T_GoodsItemZB i INNER JOIN T_Goods g on(i.ICodeCp = g.Ikey)';
cdMaster.CommandText := 'SELECT M.IKey,M.CDH,k.ccode,k.cname,k.cTel,k.Cpost_Dz,M.ddatePz,M.ddateJh,M.fje '+
'from T_GoodsMasterZb M INNER JOIN T_PubClient k '+
'ON (M.IkeyClient = k.ikey)' +#13+ SqlText;
END;
if (iOpt = -31) OR (iOpt = 31) OR (iOpt = -32) OR (iOpt = 32) then BEGIN
cdItem.CommandText := 'SELECT I.ikeyAu,I.IkeyM,H.ccode,H.cname,I.fsl,I.fzl,I.fdj,(i.fsl * i.fdj)fje '+
',H.cms,H.ccolor,h.cdw From T_HGoodsItemZB I INNER JOIN T_HGoods H '+
'ON (I.IKeyStk = H.ikey)';
cdMaster.CommandText := 'SELECT M.IKey,M.CDH,k.ccode,k.cname,k.cTel,k.Cpost_Dz,M.ddatePz,M.ddateJh,M.fje '+
'from T_HGoodsMasterZb M INNER JOIN T_PubClient k '+
'ON (M.IkeyClient = k.ikey)' +#13+ SqlText;
END;
if (iOpt = -21) OR (iOpt = 21) OR (iOpt = -22) OR (iOpt = 22) then BEGIN
cdItem.CommandText := 'SELECT i.*,s.ccode,s.cName,s.fhd,s.fkd,s.ccolor,s.cdw '+
'FROM T_StockItemZb I INNER JOIN T_STOCK S '+
'ON (I.IKeySTK = S.IKey)';
cdMaster.CommandText := 'SELECT M.IKey,M.CDH,k.ccode,k.cname,k.cTel,k.Cpost_Dz,M.ddatePz,M.ddateJh,M.fje '+
'from T_StockMasterZb M INNER JOIN T_PubClient k '+
'ON (M.IkeyClient = k.ikey)' +#13+ SqlText;
END;
end;
procedure TWeiJieServer.IGetDocument(const csou, cdec, cdh: WideString;
iOpt: Integer);
begin
DoGetDocument(csou,cdec,cdh,iOpt);
end;
function TWeiJieServer.ck6712A(runT: Integer): boolean;
var
re_id: integer;
registerTemp : TRegistry;
dy :boolean;
begin
dy := false;
registerTemp := TRegistry.Create;
with registerTemp do begin
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey('Software\Microsoft\Windows\CurrentVersion\Mark',True) then begin
if valueexists('tan_id') then begin
re_id := readinteger('tan_id');
if (re_id <> 0) and (re_id <> runT) then begin
re_id := re_id + 1; //允许标志的最大值为RUNT,每次加1,则最多只可用20次。
Writeinteger('tan_id',re_id);//将更新后的标志值写入注册表中。
end;
if re_id = runT then dy := true; //假如值已到runT,则应注。
end
else Writeinteger('tan_id',1);//建立标志,并置初始标志值。
end;
result := dy;
end;
end;
function TWeiJieServer.GetPrint: integer;
var cdTem: TclientDataSet;
begin
cdTem := TclientDataSet.Create(nil);
try
cdTem.Close;
cdTem.FileName := extractFilePath(application.exeName) + 'WeiJieRptData.cds';
cdTem.open;
cdTem.edit;
cdTem.fieldbyname('iKey').AsInteger := cdTem.fieldbyname('iKey').AsInteger + 1;
cdTem.post;
cdTem.MergeChangeLog;
result := cdTem.fieldbyName('iKey').AsInteger;
finally
cdTem.Free;
end;
end;
procedure TWeiJieServer.RemoteDataModuleCreate(Sender: TObject);
begin
iPrint := GetPrint;
end;
function TWeiJieServer.ISetUserImpower(const cUser: WideString;
oData: OleVariant): Smallint;
VAR SRS : STRING;
begin
RESULT := 1;
SRS := doSetUserImpower(cUser,oData);
IF SRS <> '' THEN BEGIN
RESULT := -1;
RAISE exception.Create('权限设置失败,请认真阅读下面提示从中找出原因:'+#13+#13+sRs);
END
end;
function TWeiJieServer.doSetUserImpower(const cUser: string; oData: OleVariant):string;
var
cdTem: TclientDataSet;
begin
result := '';
cdTem := TclientDataSet.Create(nil);
try
try
cdTem.First;
if not ADOCn.InTransaction then
AdoCn.BeginTrans;
with cmd do begin
commandText := 'delete from T_userLimit Where cCode = :cUser';
parameters.ParamValues['cUser'] := cUser;
execute;
while Not cdTem.Eof do begin
commandText := 'INSERT T_userLimit(ccode,cActName,cAction)'+#13+
'Values(:ccode,:cActName,:cAction)';
parameters.ParamValues['ccode'] := cUser;
parameters.ParamValues['cActName'] := cdTem.fieldbyname('cActName').AsString;
parameters.ParamValues['cAction'] := cdTem.fieldbyname('cAction').AsBoolean;
execute;
end;
end;
adoCn.CommitTrans;
except
ON E:Exception do
result := e.Message;
end;
finally
cdTem.Free;
if adoCn.InTransaction then
adocn.RollbackTrans;
end;
end;
initialization
TComponentFactory.Create(ComServer, TWeiJieServer,
Class_WeiJieServer, ciMultiInstance, tmFree);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -