D7wmguihua/坯布码单待检(PBMDDJ.dll)/U_WorkDeptFeeList.pas
DESKTOP-E401PHE\Administrator b4b5840f18 1
2025-01-18 16:22:10 +08:00

510 lines
14 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_WorkDeptFeeList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB,
cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses,
cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter,
RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport,
cxTextEdit, cxPC;
type
TfrmWorkDeptFeeList = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBAdd: TToolButton;
TBEdit: TToolButton;
TBDel: TToolButton;
TBClose: TToolButton;
cxGridPopupMenu1: TcxGridPopupMenu;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
TBExport: TToolButton;
Order_Main: TClientDataSet;
RM1: TRMGridReport;
RMDBMain: TRMDBDataSet;
RMXLSExport1: TRMXLSExport;
ToolButton3: TToolButton;
cxGridPopupMenu2: TcxGridPopupMenu;
cxTabControl1: TcxTabControl;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column2: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
v1Column3: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
v1Column7: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
Worker: TEdit;
Label6: TLabel;
v1Column17: TcxGridDBColumn;
v1Column18: TcxGridDBColumn;
v1Column19: TcxGridDBColumn;
ToolButton1: TToolButton;
Label3: TLabel;
WFType: TEdit;
ToolButton2: TToolButton;
v1Column1: TcxGridDBColumn;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
cxGridDBColumn1: TcxGridDBColumn;
cxGridDBColumn2: TcxGridDBColumn;
cxGridDBColumn3: TcxGridDBColumn;
cxGridDBColumn4: TcxGridDBColumn;
cxGridDBColumn5: TcxGridDBColumn;
v1MSMoney: TcxGridDBColumn;
cxGridDBColumn6: TcxGridDBColumn;
cxGridDBColumn7: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
cxSplitter1: TcxSplitter;
ClientDataSet2: TClientDataSet;
DataSource2: TDataSource;
cxGridPopupMenu3: TcxGridPopupMenu;
v1Column8: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
v2Column2: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
Label4: TLabel;
BXNO: TEdit;
v1Column12: TcxGridDBColumn;
v1Column13: TcxGridDBColumn;
Label5: TLabel;
WFTypeSub: TEdit;
Label7: TLabel;
Dept: TEdit;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure TBEditClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure TBAddClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure cxPageControl1Change(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure WorkerChange(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure BXNOKeyPress(Sender: TObject; var Key: Char);
private
FInt,PFInt:Integer;
canshu1,canshu2:string;
procedure InitGrid();
procedure InitForm();
function DelData():Boolean;
procedure InitGridWsql(fsj:string);
function SaveData():Boolean;
{ Private declarations }
public
{ Public declarations }
end;
var
frmWorkDeptFeeList: TfrmWorkDeptFeeList;
implementation
uses
U_DataLink,U_RTFun,U_ModuleNote,U_WorkerDeptFeeInPut;
{$R *.dfm}
procedure TfrmWorkDeptFeeList.FormDestroy(Sender: TObject);
begin
frmWorkDeptFeeList:=nil;
end;
procedure TfrmWorkDeptFeeList.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmWorkDeptFeeList.TBCloseClick(Sender: TObject);
begin
Close;
WriteCxGrid('<27><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD>б<EFBFBD>',Tv1,'<27><><EFBFBD>ù<EFBFBD><C3B9><EFBFBD>');
WriteCxGrid('<27><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD>б<EFBFBD>MX',Tv2,'<27><><EFBFBD>ù<EFBFBD><C3B9><EFBFBD>');
end;
procedure TfrmWorkDeptFeeList.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
sql.Clear;
sql.Add(' select A.* ');
SQL.Add(',BXMoneyHZ=(select Sum(BXMoney) from Worker_Fee_Sub B where B.WFID=A.WFID)');
SQL.Add(',DBXMoneyHZ=(select Sum(isnull(Money,0)-isnull(BXMoney,0)) from Worker_Fee_Sub B where B.WFID=A.WFID)');
SQL.Add(' from Worker_Fee_Main A where');
sql.Add(' A.WFDate>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+'''');
sql.Add(' and A.WFDate<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+'''');
if cxTabControl1.TabIndex=0 then
begin
sql.Add(' and isnull(A.ChkStatus,'''')='''' ');
end else
if cxTabControl1.TabIndex=1 then
begin
sql.Add(' and isnull(A.ChkStatus,'''')<>'''' ');
end;
if Trim(canshu1)<>'<27><>Ȩ<EFBFBD><C8A8>' then
begin
sql.Add(' and A.Filler='''+Trim(DName)+'''');
end;
Open;
end;
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmWorkDeptFeeList.InitForm();
begin
endDate.Date:=SGetServerDate(ADOQueryTemp);
BegDate.Date:=EndDate.Date-7;
cxTabControl1.TabIndex:=0;
InitGrid();
end;
procedure TfrmWorkDeptFeeList.TBEditClick(Sender: TObject);
begin
if cxTabControl1.TabIndex<>0 then Exit;
if Order_Main.IsEmpty then Exit;
if Trim(canshu1)<>'<27><>Ȩ<EFBFBD><C8A8>' then
begin
if Trim(DCode)<>Trim(Order_Main.fieldbyname('FillerCode').AsString) then
begin
Application.MessageBox('<27><><EFBFBD>ܲ<EFBFBD><DCB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD>Ϣ!','<27><>ʾ',0);
Exit;
end;
end;
try
frmWorkerDeptFeeInPut:=TfrmWorkerDeptFeeInPut.Create(Application);
with frmWorkerDeptFeeInPut do
begin
PState:=1;
FMainId:=Trim(Self.Order_Main.fieldbyname('WFID').AsString);
if ShowModal=1 then
begin
end;
end;
finally
frmWorkerDeptFeeInPut.Free;
end;
end;
procedure TfrmWorkDeptFeeList.TBDelClick(Sender: TObject);
begin
if cxTabControl1.TabIndex<>0 then Exit;
if Order_Main.IsEmpty then Exit;
if Trim(canshu1)<>'<27><>Ȩ<EFBFBD><C8A8>' then
begin
if Trim(DCode)<>Trim(Order_Main.fieldbyname('FillerCode').AsString) then
begin
Application.MessageBox('<27><><EFBFBD>ܲ<EFBFBD><DCB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD>Ϣ!','<27><>ʾ',0);
Exit;
end;
end;
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',32+4)<>IDYES then Exit;
if DelData() then
begin
Order_Main.Delete;
end;
end;
function TfrmWorkDeptFeeList.DelData():Boolean;
begin
try
Result:=false;
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete Worker_Fee_Main where WFId='''+Trim(Order_Main.fieldbyname('WFId').AsString)+'''');
sql.Add('delete Worker_Fee_Sub where WFId='''+Trim(Order_Main.fieldbyname('WFId').AsString)+'''');
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
Result:=True;
except
ADOQueryCmd.Connection.RollbackTrans;
Result:=False;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><ECB3A3>','<27><>ʾ',0);
end;
end;
procedure TfrmWorkDeptFeeList.TBExportClick(Sender: TObject);
begin
if Order_Main.IsEmpty then Exit;
TcxGridToExcel('<27><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD>',cxGrid1);
end;
procedure TfrmWorkDeptFeeList.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmWorkDeptFeeList.TBAddClick(Sender: TObject);
begin
try
frmWorkerDeptFeeInPut:=TfrmWorkerDeptFeeInPut.Create(Application);
with frmWorkerDeptFeeInPut do
begin
PState:=0; FMainId:='';
//FYLType:='<27><><EFBFBD><EFBFBD>';
if ShowModal=1 then
begin
end;
end;
finally
frmWorkerDeptFeeInPut.Free;
end;
end;
procedure TfrmWorkDeptFeeList.FormShow(Sender: TObject);
begin
ReadCxGrid('<27><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD>б<EFBFBD>',Tv1,'<27><><EFBFBD>ù<EFBFBD><C3B9><EFBFBD>');
ReadCxGrid('<27><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD>б<EFBFBD>MX',Tv2,'<27><><EFBFBD>ù<EFBFBD><C3B9><EFBFBD>');
InitForm();
end;
procedure TfrmWorkDeptFeeList.cxPageControl1Change(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmWorkDeptFeeList.ToolButton3Click(Sender: TObject);
begin
try
frmModuleNote:=TfrmModuleNote.Create(Application);
with frmModuleNote do
begin
flag:='<27><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD>';
if ShowModal=1 then
begin
end;
end;
finally
frmModuleNote.Free;
end;
end;
procedure TfrmWorkDeptFeeList.FormCreate(Sender: TObject);
begin
canshu1:=Trim(DParameters1);
canshu2:=Trim(DParameters2);
end;
procedure TfrmWorkDeptFeeList.InitGridWsql(fsj:string);
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
sql.Clear;
sql.Add('select A.*,FS.*,HJMoney=FS.YunFee+FS.MaTouFee+FS.YangBanFee+FS.OtherFee ');
SQL.Add(' from JYOrderKP_Fee A inner join JYOrderKP_Fee_Sub FS on A.FMID=FS.FMID');
sql.Add(' where 1=1');
if Trim(canshu1)<>'<27><>Ȩ<EFBFBD><C8A8>' then
begin
sql.Add(' and A.Filler='''+Trim(DName)+'''');
end;
sql.Add(fsj);
sql.Add(' order by A.FPNo');
Open;
end;
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
function TfrmWorkDeptFeeList.SaveData():Boolean;
var
maxno,maxSubNo:String;
begin
try
Result:=False;
ADOQueryCmd.Connection.BeginTrans;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if Trim(Order_Main.fieldbyname('MRID').AsString)='' then
begin
if GetLSNo(ADOQueryCmd,maxno,'MR','Module_Prompt_Result',4,1)=False then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ʧ<EFBFBD><CAA7>!','<27><>ʾ',0);
Exit;
end;
end else
begin
maxno:=Trim(Order_Main.fieldbyname('MRID').AsString);
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add('select * from Module_Prompt_Result where MRId='''+Trim(Order_Main.fieldbyname('MRID').AsString)+'''');
Open;
end;
with ADOQueryCmd do
begin
if Trim(Order_Main.fieldbyname('MRID').AsString)='' then
begin
Append;
end
else begin
Edit;
end;
FieldByName('MPId').Value:=Trim(Order_Main.fieldbyname('MPId').AsString);
FieldByName('MRId').Value:=Trim(maxno);
FieldByName('MRStatus').Value:='<27>Ѵ<EFBFBD><D1B4><EFBFBD>';
FieldByName('MRDate').Value:=SGetServerDateTime(ADOQueryTemp);
if Trim(Order_Main.fieldbyname('MRId').AsString)='' then
begin
FieldByName('Filler').Value:=Trim(DName);
end else
begin
FieldByName('Editer').Value:=Trim(DName);
FieldByName('EditTime').Value:=SGetServerDateTime(ADOQueryTemp);
end;
Post;
end;
ADOQueryCmd.Connection.CommitTrans;
Result:=True;
except
Result:=False;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
end;
end;
procedure TfrmWorkDeptFeeList.cxTabControl1Change(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmWorkDeptFeeList.WorkerChange(Sender: TObject);
begin
if ADOQueryMain.Active=False then Exit;
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
end;
procedure TfrmWorkDeptFeeList.ToolButton1Click(Sender: TObject);
begin
try
frmWorkerDeptFeeInPut:=TfrmWorkerDeptFeeInPut.Create(Application);
with frmWorkerDeptFeeInPut do
begin
PState:=1;
FMainId:=Trim(Self.Order_Main.fieldbyname('WFID').AsString);
TBSave.Visible:=False;
ToolBar2.Visible:=False;
//Button3.Visible:=False;
//Button4.Visible:=False;
if ShowModal=1 then
begin
end;
end;
finally
frmWorkerDeptFeeInPut.Free;
end;
end;
procedure TfrmWorkDeptFeeList.ToolButton2Click(Sender: TObject);
begin
if ADOQueryMain.Active=False then Exit;
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
end;
procedure TfrmWorkDeptFeeList.Tv1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select A.* ');
sql.Add(',DBXMoney=isnull(Money,0)-isnull(BXMoney,0)');
sql.Add(' from Worker_Fee_Sub A where WFID='''+Trim(Order_Main.fieldbyname('WFID').AsString)+'''');
Open;
end;
SCreateCDS20(ADOQueryTemp,ClientDataSet2);
SInitCDSData20(ADOQueryTemp,ClientDataSet2);
end;
procedure TfrmWorkDeptFeeList.BXNOKeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
begin
if Trim(BXNO.Text)<>'' then
begin
if Length(BXNO.Text)<3 then Exit;
with ADOQueryMain do
begin
Filtered:=False;
Close;
sql.Clear;
sql.Add(' select A.* ');
SQL.Add(',BXMoneyHZ=(select Sum(BXMoney) from Worker_Fee_Sub B where B.WFID=A.WFID)');
SQL.Add(',DBXMoneyHZ=(select Sum(isnull(Money,0)-isnull(BXMoney,0)) from Worker_Fee_Sub B where B.WFID=A.WFID)');
SQL.Add(' from Worker_Fee_Main A where 1=1');
if cxTabControl1.TabIndex=0 then
begin
sql.Add(' and isnull(A.ChkStatus,'''')='''' ');
end else
if cxTabControl1.TabIndex=1 then
begin
sql.Add(' and isnull(A.ChkStatus,'''')<>'''' ');
end;
sql.Add(' and BXNO like '''+'%'+Trim(BXNO.Text)+'%'+'''');
Open;
end;
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
end;
end;
end;
end.