D7myYunxiang/云翔财务(Money.dll)/U_CaiWuHuilV.pas

293 lines
7.3 KiB
ObjectPascal
Raw Permalink Normal View History

2025-01-20 13:04:03 +08:00
unit U_CaiWuHuilV;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB,
cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin,
StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls,
cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid,
cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common,
RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdFTP,ShellAPI,IniFiles, cxCheckBox, cxCalendar,
cxButtonEdit, cxTextEdit, cxPC, cxCurrencyEdit, cxDropDownEdit, Menus;
type
TfrmCaiWuHuiLV = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
Panel1: TPanel;
ToolButton2: TToolButton;
ADOQueryMain: TADOQuery;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
V1BegDate: TcxGridDBColumn;
V1HuiLv: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
Label2: TLabel;
begdate: TDateTimePicker;
cxGridPopupMenu2: TcxGridPopupMenu;
DS_HZ: TDataSource;
CDS_HZ: TClientDataSet;
Edit1: TEdit;
Label7: TLabel;
Button1: TButton;
TADD: TToolButton;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
TSave: TToolButton;
ADOQuery1: TADOQuery;
Label4: TLabel;
v2Column1: TcxGridDBColumn;
Panel2: TPanel;
Label1: TLabel;
HuiLv: TEdit;
Panel3: TPanel;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure cxTabControl2Change(Sender: TObject);
procedure TSaveClick(Sender: TObject);
procedure begdateChange(Sender: TObject);
procedure TADDClick(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
{ Private declarations }
procedure InitGrid();
public
fFlag:integer;
{ Public declarations }
RKFlag,FCYID,fmanage:String;
end;
var
frmCaiWuHuiLV: TfrmCaiWuHuiLV;
implementation
uses
U_DataLink,U_Fun;
{$R *.dfm}
procedure TfrmCaiWuHuiLV.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
SQL.Clear;
sql.Add(' select A.*,BegDateStr=Substring(Convert(varchar(7),BegDate,120),6,2)');
sql.Add(' from HuiLV A');
sql.Add(' where Convert(varchar(4),BegDate,120)='''+Trim(FormatDateTime('yyyy',begdate.Date))+'''');
Open;
end;
SCreateCDS20(ADOQueryMain,CDS_HZ);
SInitCDSData20(ADOQueryMain,CDS_HZ);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmCaiWuHuiLV.FormDestroy(Sender: TObject);
begin
frmCaiWuHuiLV:=nil;
end;
procedure TfrmCaiWuHuiLV.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmCaiWuHuiLV.TBCloseClick(Sender: TObject);
begin
WriteCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ',Tv2,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
Close;
end;
procedure TfrmCaiWuHuiLV.FormShow(Sender: TObject);
begin
ReadCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ',Tv2,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
begdate.DateTime:=SGetServerDate(ADOQueryTemp);
InitGrid();
end;
procedure TfrmCaiWuHuiLV.TBRafreshClick(Sender: TObject);
begin
toolbar1.SetFocus;
InitGrid();
end;
procedure TfrmCaiWuHuiLV.cxTabControl2Change(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmCaiWuHuiLV.TSaveClick(Sender: TObject);
var
maxid:string;
FReal:Double;
begin
IF CDS_HZ.IsEmpty then exit;
if TryStrToFloat(HuiLv.Text,FReal)=False then
begin
Application.MessageBox('<27><><EFBFBD>ʷǷ<CAB7><C7B7><EFBFBD><EFBFBD><EFBFBD>!','<27><>ʾ',0);
Exit;
end;
if CDS_HZ.Locate('ssel',true,[])=false then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!','<27><>ʾ',0);
Exit;
end;
if Application.MessageBox(<><C8B7>Ҫ<EFBFBD><EFBFBD><E8B6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',32+4)<>IDYES then Exit;
Panel3.Visible:=True;
Panel3.Refresh;
try
ADOQueryCmd.Connection.BeginTrans;
CDS_HZ.DisableControls;
with CDS_HZ do
begin
while Locate('SSel',True,[]) do
begin
maxid:=trim(fieldbyname('HLID').AsString);
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from HuiLV ');
sql.add('where HLID='''+Trim(maxid)+'''');
open;
end;
with ADOQueryCmd do
begin
Edit;
fieldbyname('Edittime').AsDateTime:=SGetServerDate(ADOQueryTemp);
fieldbyname('Editer').Value:=Trim(DName);
fieldbyname('HuilV').Value:=HuiLv.Text;
post;
end;
Edit;
FieldByName('SSel').Value:=False;
Post;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
Panel3.Visible:=False;
CDS_HZ.EnableControls;
except
Panel3.Visible:=False;
ADOQueryCmd.Connection.RollbackTrans;
CDS_HZ.EnableControls;
Application.MessageBox('<27><><EFBFBD>û<EFBFBD><C3BB><EFBFBD>ʧ<EFBFBD><CAA7>!','<27><>ʾ',0);
Exit;
end;
initgrid();
end;
procedure TfrmCaiWuHuiLV.begdateChange(Sender: TObject);
begin
initgrid();
end;
procedure TfrmCaiWuHuiLV.TADDClick(Sender: TObject);
var
i:Integer;
maxid,FBegDate,FEndDate:string;
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from HuiLv where Convert(varchar(4),BegDate,120)='''+Trim(FormatDateTime('yyyy',begdate.Date))+'''');
Open;
end;
SCreateCDS20(ADOQueryTemp,CDS_HZ);
SInitCDSData20(ADOQueryTemp,CDS_HZ);
if ADOQueryTemp.IsEmpty=False then Exit;
Panel3.Visible:=True;
Panel3.Refresh;
try
ADOQueryCmd.Connection.BeginTrans;
for i:=1 to 12 do
begin
if i<10 then
begin
FBegDate:=Trim(FormatDateTime('yyyy',begdate.Date))+'-0'+Inttostr(i)+'-01'
end else
begin
FBegDate:=Trim(FormatDateTime('yyyy',begdate.Date))+'-'+Inttostr(i)+'-01'
end;
if i in[1,3,5,7,8,10,12] then
begin
FEndDate:=Copy(FBegDate,1,7)+'-31'
end else
if i=2 then
begin
FEndDate:=FormatDateTime('yyyy-MM-dd',(strtodate(Copy(FBegDate,1,4)+'-03-01')-1));
end else
begin
FEndDate:=Copy(FBegDate,1,7)+'-30'
end;
if GetLSNo(ADOQueryCmd,maxId,'HL','JYOrder_HuiLV',4,1)=False then
begin
ADOQueryCmd.Connection.RollbackTrans;
Panel3.Visible:=False;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from HuiLV ');
sql.add('where HLID='''+Trim(maxid)+'''');
open;
end;
with ADOQueryCmd do
begin
Append;
Fieldbyname('HLID').AsString:=trim(maxID);
Fieldbyname('BegDate').Value:=FBegDate;
Fieldbyname('EndDate').Value:=FEndDate;
Post;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
Panel3.Visible:=False;
InitGrid();
except
Panel3.Visible:=False;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD>ʧ<EFBFBD><CAA7>!','<27><>ʾ',0);
Exit;
end;
end;
procedure TfrmCaiWuHuiLV.N1Click(Sender: TObject);
begin
SelOKNo(CDS_HZ,True);
end;
procedure TfrmCaiWuHuiLV.N2Click(Sender: TObject);
begin
SelOKNo(CDS_HZ,False);
end;
end.