D7myYunxiang/云翔财务(Money.dll)/U_YSSKListRMBMJ.pas
DESKTOP-E401PHE\Administrator 1011cb7292 1
2025-01-20 13:04:03 +08:00

433 lines
13 KiB
ObjectPascal
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

unit U_YSSKListRMBMJ;
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, cxGridBandedTableView,
cxGridDBBandedTableView,dxCore,ActiveX, cxLookAndFeels,
cxLookAndFeelPainters, dxBarBuiltInMenu, cxNavigator;
type
TfrmYSSKListRMBMJ = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
Panel1: TPanel;
ToolButton2: TToolButton;
ToolButton1: TToolButton;
RM1: TRMGridReport;
RMDB_Main: TRMDBDataSet;
cxGridPopupMenu2: TcxGridPopupMenu;
DS_HZ: TDataSource;
ADOQueryMain: TADOQuery;
CDS_HZ: TClientDataSet;
ToolButton3: TToolButton;
cxTabControl1: TcxTabControl;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
v2Column6: TcxGridDBColumn;
v2SQMoney: TcxGridDBColumn;
v2YFMoney: TcxGridDBColumn;
v2FKMoney: TcxGridDBColumn;
v2BQMoney: TcxGridDBColumn;
v2Column4: TcxGridDBColumn;
v2Column7: TcxGridDBColumn;
v2Column8: TcxGridDBColumn;
v2ZJFKDate: TcxGridDBColumn;
v2ZJFKMoney: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
cxTabControl2: TcxTabControl;
Panel2: TPanel;
Label2: TLabel;
begdate: TDateTimePicker;
Panel3: TPanel;
Label4: TLabel;
FBegDate: TDateTimePicker;
Label5: TLabel;
FEndDate: TDateTimePicker;
Panel4: TPanel;
FactoryNameGYS: TEdit;
Label3: TLabel;
Label1: TLabel;
HuiLv: TEdit;
RadioGroup1: TRadioGroup;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure FactoryNameGYSChange(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure Tv2CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure ToolButton3Click(Sender: TObject);
procedure v2Column6HeaderClick(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
private
{ Private declarations }
procedure InitGrid();
public
fDParameters1:string;
{ Public declarations }
RKFlag,FCYID:String;
end;
var
frmYSSKListRMBMJ: TfrmYSSKListRMBMJ;
implementation
uses
U_DataLink,U_RTFun,U_Fun,U_ZDYHelp,U_YSMXlistMonDay;
{$R *.dfm}
procedure TfrmYSSKListRMBMJ.InitGrid();
var
FYue,FDate:string;
FInt:Integer;
FHuiLv:Double;
begin
if cxTabControl2.TabIndex=2 then
begin
if Trim(HuiLv.Text)='' then
begin
Application.MessageBox('<27><><EFBFBD>ʲ<EFBFBD><CAB2><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if TryStrToFloat(HuiLv.Text,FHuiLv)=False then
begin
Application.MessageBox('<27><><EFBFBD>ʷǷ<CAB7><C7B7><EFBFBD><EFBFBD><EFBFBD>!','<27><>ʾ',0);
Exit;
end;
end;
FInt:=cxTabControl1.TabIndex+1;
FYue:=Trim(IntToStr(FInt));
if FInt<10 then
begin
FYue:='0'+Trim(IntToStr(FInt));
end;
FDate:=Trim(FormatDateTime('yyyy',begdate.Date))+'-'+FYue;
FBegDate.Date:=StrToDate(FDate+'-01');
if FInt=12 then
FEndDate.Date:=StrToDate(Trim(FormatDateTime('yyyy',begdate.Date))+'-12-31')
else
FEndDate.Date:=StrToDate(Trim(FormatDateTime('yyyy',begdate.Date))+'-'+Trim(IntToStr(FInt+1))+'-01')-1;
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
SQL.Clear;
Filtered:=False;
if RadioGroup1.ItemIndex=0 then
begin
if cxTabControl2.TabIndex<>2 then
begin
sql.Add(' exec P_YSSK_Month_BZ :Fdate,:BZType,:HuiLv ') ;
end else
begin
sql.Add(' exec P_YSSK_Month_RMB :Fdate,:HuiLv ') ;
end;
if cxTabControl2.TabIndex=0 then
begin
Parameters.ParamByName('BZType').Value:='<27><>';
Parameters.ParamByName('HuiLv').Value:=1;
end else
if cxTabControl2.TabIndex=1 then
begin
Parameters.ParamByName('BZType').Value:='$';
Parameters.ParamByName('HuiLv').Value:=1;
end else
if cxTabControl2.TabIndex=2 then
begin
Parameters.ParamByName('HuiLv').Value:=HuiLv.Text;
end;
Parameters.ParamByName('Fdate').Value:=FDate;
end else
if RadioGroup1.ItemIndex=1 then
begin
if cxTabControl2.TabIndex<>2 then
begin
sql.Add(' exec P_YSSK_Day_BZ :FBegdate,:FEndDate,:BZType,:HuiLv ') ;
end else
begin
sql.Add(' exec P_YSSK_Day_RMB :FBegdate,:FEndDate,:HuiLv ') ;
end;
if cxTabControl2.TabIndex=0 then
begin
Parameters.ParamByName('BZType').Value:='<27><>';
Parameters.ParamByName('HuiLv').Value:=1;
end else
if cxTabControl2.TabIndex=1 then
begin
Parameters.ParamByName('BZType').Value:='$';
Parameters.ParamByName('HuiLv').Value:=1;
end else
if cxTabControl2.TabIndex=2 then
begin
Parameters.ParamByName('HuiLv').Value:=HuiLv.Text;
end;
Parameters.ParamByName('FBegdate').Value:=Trim(FormatDateTime('yyyy-MM-dd',FBegDate.Date));
Parameters.ParamByName('FEndDate').Value:=Trim(FormatDateTime('yyyy-MM-dd',FEndDate.Date+1));
end;
Open;
end;
SCreateCDS20(ADOQueryMain,CDS_HZ);
SInitCDSData20(ADOQueryMain,CDS_HZ);
finally
ADOQueryMain.EnableControls;
end;
//ToolButton2.Click;
end;
procedure TfrmYSSKListRMBMJ.FormDestroy(Sender: TObject);
begin
frmYSSKListRMBMJ:=nil;
end;
procedure TfrmYSSKListRMBMJ.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmYSSKListRMBMJ.TBCloseClick(Sender: TObject);
begin
WriteCxGrid(<>տ<EFBFBD>ͳ<EFBFBD>Ʊ<EFBFBD><C6B1><EFBFBD>YX',Tv2,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
Close;
end;
procedure TfrmYSSKListRMBMJ.FormShow(Sender: TObject);
var
fstr:string;
begin
ReadCxGrid(<>տ<EFBFBD>ͳ<EFBFBD>Ʊ<EFBFBD><C6B1><EFBFBD>YX',Tv2,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
begdate.DateTime:=SGetServerDateMBeg(ADOQueryTemp);
Fbegdate.DateTime:=SGetServerDate(ADOQueryTemp);
FEndDate.Date:=Fbegdate.DateTime;
fstr:=Trim(FormatDateTime('MM',begdate.Date));
cxTabControl1.TabIndex:=StrToInt(fstr)-1;
Panel3.Visible:=False;
// InitGrid();
end;
procedure TfrmYSSKListRMBMJ.TBRafreshClick(Sender: TObject);
begin
InitGrid();
CDS_HZ.IndexFieldNames:='FactoryName';
with CDS_HZ do
begin
with IndexDefs do
begin
Clear;
with AddIndexDef do
begin
Name := 'Fld1Indx';
Fields := 'FactoryName';
Options := [ixDescending]; //<2F><><EFBFBD><EFBFBD>
end;
end;
end;
end;
procedure TfrmYSSKListRMBMJ.ToolButton2Click(Sender: TObject);
begin
if ADOQueryMain.Active=False then Exit;
SDofilter(ADOQueryMain,SGetFilters(Panel4,1,2));
SCreateCDS20(ADOQueryMain,CDS_HZ);
SInitCDSData20(ADOQueryMain,CDS_HZ);
end;
procedure TfrmYSSKListRMBMJ.FactoryNameGYSChange(Sender: TObject);
begin
ToolButton2.Click;
end;
procedure TfrmYSSKListRMBMJ.ToolButton1Click(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then Exit;
//SelExportData(Tv2,ADOQueryMain,'Ӧ<>տ<EFBFBD><D5BF>տ<EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>б<EFBFBD>');
TcxGridToExcel(<>տ<EFBFBD><D5BF>տ<EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>б<EFBFBD>',cxGrid2);
end;
procedure TfrmYSSKListRMBMJ.Tv2CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
if cxTabControl2.TabIndex>1 then Exit;
try
frmYSMXlistMonDay:=TfrmYSMXlistMonDay.Create(Application);
with frmYSMXlistMonDay do
begin
FMX:='99';
PState:=Self.RadioGroup1.ItemIndex;
if Self.cxTabControl2.TabIndex=0 then
begin
frmYSMXlistMonDay.FBZ:='<27><>'
end else
if Self.cxTabControl2.TabIndex=1 then
begin
frmYSMXlistMonDay.FBZ:='$'
end;
if Self.RadioGroup1.ItemIndex=0 then
begin
frmYSMXlistMonDay.begdate.DateTime:=Self.begdate.DateTime;
frmYSMXlistMonDay.cxTabControl1.TabIndex:=Self.cxTabControl1.TabIndex;
frmYSMXlistMonDay.factoryName.Text:=Self.CDS_HZ.fieldbyname('factoryName').AsString;
frmYSMXlistMonDay.Fbegdate.DateTime:=Self.Fbegdate.DateTime;
frmYSMXlistMonDay.FEnddate.DateTime:=Self.FEnddate.DateTime;
end else
if Self.RadioGroup1.ItemIndex=1 then
begin
frmYSMXlistMonDay.begdate.DateTime:=Self.begdate.DateTime;
frmYSMXlistMonDay.Fbegdate.DateTime:=Self.Fbegdate.DateTime;
frmYSMXlistMonDay.FEnddate.DateTime:=Self.FEnddate.DateTime;
frmYSMXlistMonDay.factoryName.Text:=Self.CDS_HZ.fieldbyname('factoryName').AsString;
end;
frmYSMXlistMonDay.factoryName.TxtCode:=Self.CDS_HZ.fieldbyname('factoryNo').AsString;
frmYSMXlistMonDay.Align:=alClient;
if ShowModal=1 then
begin
end;
end;
finally
frmYSMXlistMonDay.Free;
end;
end;
procedure TfrmYSSKListRMBMJ.ToolButton3Click(Sender: TObject);
var
filepath,fsj:string;
mBegdate,mEnddate:string;
FName,FNameSX,FNameJX:String;
i:Integer;
begin
{for i:=0 to Tv2.ColumnCount-1 do
begin
FName:=Tv2.Columns[i].DataBinding.FilterFieldName;
FNameSX:=Trim(FName)+'-1';
FNameJX:=Trim(FName)+'-2';
CDS_HZ.AddIndex(FNameSX, FName, []); // <20><><EFBFBD><EFBFBD>
CDS_HZ.AddIndex(FNameJX, FName, [ixDescending]); // <20><><EFBFBD><EFBFBD>
if Tv2.Columns[i].SortOrder=soDescending then
begin
CDS_HZ.IndexName:=FNameJX;
end else
if Tv2.Columns[i].SortOrder=soAscending then
begin
CDS_HZ.IndexName:=FNameSX;
end;
end; }
fsj:=cxTabControl1.Tabs[cxTabControl1.TabIndex].Caption;
mbegdate:=FormatDateTime('yyyy',begdate.Date)+'<27><>'+Trim(Copy(fsj,3,Length(fsj)-2))+'<27><>';
if CDS_HZ.IsEmpty then exit;
try
filepath:=ExtractFilePath(Application.ExeName) + 'report\Ӧ<>տ<EFBFBD>ͳ<EFBFBD>Ʊ<EFBFBD><C6B1><EFBFBD>YX.rmf';
if not FileExists(Pchar(filepath)) then
begin
application.MessageBox(pchar('<27>ļ<EFBFBD>['+filepath+']<5D><><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>'),'<27><>ʾ<EFBFBD><CABE>Ϣ',MB_IConError);
exit;
end;
RmVariables['begDate'] :=mbegdate;
RM1.LoadFromFile(filepath);
RM1.ShowReport;
finally
end;
end;
procedure TfrmYSSKListRMBMJ.v2Column6HeaderClick(Sender: TObject);
var
FName,FNameSX,FNameJX:String;
begin
FName:=TcxGridDBColumn(Sender).DataBinding.FilterFieldName;
FNameSX:=Trim(FName)+'-1';
FNameJX:=Trim(FName)+'-2';
CDS_HZ.AddIndex(FNameSX, FName, []); { <20><><EFBFBD><EFBFBD> }
CDS_HZ.AddIndex(FNameJX, FName, [ixDescending]); { <20><><EFBFBD><EFBFBD> }
if TcxGridDBColumn(Sender).SortOrder=soDescending then
begin
CDS_HZ.IndexName:=FNameSX;
end else
if TcxGridDBColumn(Sender).SortOrder=soAscending then
begin
CDS_HZ.IndexName:=FNameJX;
end;
end;
procedure TfrmYSSKListRMBMJ.cxTabControl1Change(Sender: TObject);
begin
if cxTabControl2.TabIndex=2 then
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
SQL.Clear;
Filtered:=False;
sql.Add(' exec P_YSSK_Month_BZ :Fdate,:BZType,:HuiLv ') ;
Parameters.ParamByName('BZType').Value:='<27><>';
Parameters.ParamByName('HuiLv').Value:=1;
Parameters.ParamByName('Fdate').Value:='2000-01';
Open;
end;
SCreateCDS20(ADOQueryMain,CDS_HZ);
SInitCDSData20(ADOQueryMain,CDS_HZ);
finally
ADOQueryMain.EnableControls;
end;
end;
InitGrid();
end;
procedure TfrmYSSKListRMBMJ.RadioGroup1Click(Sender: TObject);
begin
if RadioGroup1.ItemIndex=0 then
begin
Panel2.Visible:=True;
Panel3.Visible:=False;
cxTabControl1.Visible:=True;
v2SQMoney.Caption:=Copy(v2SQMoney.Summary.GroupFormat,1,8);
v2YFMoney.Caption:=Copy(v2YFMoney.Summary.GroupFormat,1,8);
v2FKMoney.Caption:=Copy(v2FKMoney.Summary.GroupFormat,1,8);
v2BQMoney.Caption:=Copy(v2BQMoney.Summary.GroupFormat,1,8);
end else
if RadioGroup1.ItemIndex=1 then
begin
Panel2.Visible:=False;
Panel3.Visible:=True;
cxTabControl1.Visible:=False;
v2SQMoney.Caption:=Copy(v2SQMoney.Summary.GroupFormat,10,8);
v2YFMoney.Caption:=Copy(v2YFMoney.Summary.GroupFormat,10,8);
v2FKMoney.Caption:=Copy(v2FKMoney.Summary.GroupFormat,10,8);
v2BQMoney.Caption:=Copy(v2BQMoney.Summary.GroupFormat,10,8);
end;
InitGrid();
end;
end.