D7szYidui/工资管理(Wage.dll)/U_WageList_YG.pas
DESKTOP-E401PHE\Administrator ef99fc8b5e 移交
2025-07-19 09:32:10 +08:00

573 lines
15 KiB
ObjectPascal
Raw Permalink 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_WageList_YG;
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, cxDBLookupComboBox, cxPC, cxDropDownEdit, Menus, cxLookAndFeels,
cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, DateUtils;
type
TfrmWageList_YG = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
Panel1: TPanel;
ToolButton2: TToolButton;
ADOQueryMain: TADOQuery;
ToolButton1: TToolButton;
RM1: TRMGridReport;
RMDB_Main: TRMDBDataSet;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
cxGridLevel1: TcxGridLevel;
cxGridPopupMenu2: TcxGridPopupMenu;
DS_HZ: TDataSource;
CDS_HZ: TClientDataSet;
v2Column2: TcxGridDBColumn;
v2Column5: TcxGridDBColumn;
Label1: TLabel;
CP_Code: TEdit;
Label2: TLabel;
v2Column17: TcxGridDBColumn;
v2Column19: TcxGridDBColumn;
v2Column3: TcxGridDBColumn;
v2Column7: TcxGridDBColumn;
ToolButton6: TToolButton;
Label5: TLabel;
PopupMenu2: TPopupMenu;
ToolButton4: TToolButton;
v2Column8: TcxGridDBColumn;
N1: TMenuItem;
N2: TMenuItem;
v2Column15: TcxGridDBColumn;
v2Column16: TcxGridDBColumn;
v2Column20: TcxGridDBColumn;
v2Column21: TcxGridDBColumn;
ToolButton5: TToolButton;
YGName: TEdit;
YGType: TEdit;
v2Column1: TcxGridDBColumn;
Label3: TLabel;
ComboBox1: TComboBox;
DateTimePicker1: TDateTimePicker;
Label6: TLabel;
Button1: TButton;
Panel2: TPanel;
dtpYear: TDateTimePicker;
Label7: TLabel;
cxTabControl1: TcxTabControl;
v2Column4: TcxGridDBColumn;
Label4: TLabel;
Edit1: TEdit;
Button3: TButton;
Tv2Column1: TcxGridDBColumn;
Label8: TLabel;
isSJ: TComboBox;
Tv2Column2: TcxGridDBColumn;
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 C_CodeNameChange(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure v2Column4PropertiesEditValueChanged(Sender: TObject);
procedure v2Column7PropertiesEditValueChanged(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
procedure v2Column19PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure v2Column5PropertiesEditValueChanged(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure DateTimePicker1Change(Sender: TObject);
private
canshu1: string;
procedure InitGrid();
function SaveData(): Boolean;
{ Private declarations }
public
fkhType: string;
Fmanage: string;
end;
var
frmWageList_YG: TfrmWageList_YG;
implementation
uses
U_DataLink, U_Fun, U_ZDYHelp, U_WageListInput, U_InspectionInfo, U_WorkDetail,
U_JTList;
{$R *.dfm}
function TfrmWageList_YG.SaveData(): Boolean;
var
maxId, CRID, FXHNOPZ, FXHNO: string;
begin
Result := False;
try
if Trim(CDS_HZ.fieldbyname('GZID').AsString) = '' then
begin
if GetLSNo(ADOQueryCmd, maxId, 'GZ', 'DCGMoney', 4, 1) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
end
else
begin
maxId := Trim(CDS_HZ.fieldbyname('GZID').AsString);
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from DCGMoney where GZID=' + Quotedstr(Trim(maxId)));
Open;
end;
with ADOQueryCmd do
begin
if Trim(CDS_HZ.fieldbyname('GZID').AsString) = '' then
begin
Append;
FieldByName('GZID').Value := maxId;
// FieldByName('GZType').Value := 'Ա<><D4B1>';
FieldByName('Filler').Value := Trim(DName);
FieldByName('FillTime').Value := SGetServerDateTime(ADOQueryTemp);
end
else
begin
Edit;
FieldByName('Editer').Value := Trim(DName);
FieldByName('EditTime').Value := SGetServerDateTime(ADOQueryTemp);
end;
RTSetSaveDataCDS(ADOQueryCmd, Tv2, CDS_HZ, 'DCGMoney', 0);
Post;
end;
with CDS_HZ do
begin
Edit;
FieldByName('GZID').Value := Trim(maxId);
Post;
end;
Result := True;
except
Result := Result;
end;
end;
procedure TfrmWageList_YG.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
SQL.Clear;
sql.Add(' select GZDate,YGtype,YGName,SUM(JLMoney) JLMoney,SUM(CFMoney) CFMoney,SUM(GZQty) GZQty,SUM(GZMoney) GZMoney,SUM(CLMoney) CLMoney from DCGMoney ');
if cxTabControl1.TabIndex = 12 then
begin
sql.Add(' where year(GZDate)= ' + quotedstr(trim(FormatDateTime('yyyy', dtpYear.DateTime))));
DateTimePicker1.DateTime := dtpYear.DateTime;
end
else
begin
if cxTabControl1.TabIndex < 9 then
begin
sql.Add(' where GZDate= ' + quotedstr(trim(FormatDateTime('yyyy-', dtpYear.DateTime)) + '0' + inttostr(cxTabControl1.TabIndex + 1)));
DateTimePicker1.DateTime := StrToDate(trim(FormatDateTime('yyyy-', dtpYear.DateTime)) + '0' + inttostr(cxTabControl1.TabIndex + 1) + '-01');
end
else
begin
sql.Add(' where GZDate= ' + quotedstr(trim(FormatDateTime('yyyy-', dtpYear.DateTime)) + inttostr(cxTabControl1.TabIndex + 1)));
DateTimePicker1.DateTime := StrToDate(trim(FormatDateTime('yyyy-', dtpYear.DateTime)) + inttostr(cxTabControl1.TabIndex + 1) + '-01');
end;
end;
sql.Add(' group by GZDate,YGtype,YGName ');
// ShowMessage(SQL.Text);
// sql.Add(' where GZDate>= ' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime))));
// sql.Add(' and GZDate<' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1))));
Open;
end;
SCreateCDS20(ADOQueryMain, CDS_HZ);
SInitCDSData20(ADOQueryMain, CDS_HZ);
CDS_HZ.Last;
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmWageList_YG.FormDestroy(Sender: TObject);
begin
frmWageList_YG := nil;
end;
procedure TfrmWageList_YG.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmWageList_YG.TBCloseClick(Sender: TObject);
begin
WriteCxGrid('<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>23', Tv2, '<27>ͻ<EFBFBD><CDBB>Զ<EFBFBD><D4B6><EFBFBD>');
Close;
end;
procedure TfrmWageList_YG.FormShow(Sender: TObject);
begin
ReadCxGrid('<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>23', Tv2, '<27>ͻ<EFBFBD><CDBB>Զ<EFBFBD><D4B6><EFBFBD>');
InitGrid();
end;
procedure TfrmWageList_YG.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmWageList_YG.ToolButton2Click(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, CDS_HZ);
SInitCDSData20(ADOQueryMain, CDS_HZ);
end;
end;
procedure TfrmWageList_YG.C_CodeNameChange(Sender: TObject);
begin
ToolButton2.Click;
end;
procedure TfrmWageList_YG.ToolButton1Click(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
Exit;
TcxGridToExcel(self.Caption, cxgrid2);
// SelExportData(Tv2,ADOQueryMain,'<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>');
end;
procedure TfrmWageList_YG.FormCreate(Sender: TObject);
begin
dtpYear.DateTime := SGetServerDate10(ADOQueryTemp);
DateTimePicker1.DateTime := SGetServerDate10(ADOQueryTemp);
canshu1 := Trim(DParameters1);
end;
procedure TfrmWageList_YG.v2Column4PropertiesEditValueChanged(Sender: TObject);
var
FFieldName, mvalue: string;
begin
mvalue := TcxTextEdit(Sender).EditingText;
FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName);
with CDS_HZ do
begin
Edit;
FieldByName(FFieldName).Value := mvalue;
Post;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('update DCGMoney set GZMoney=' + mvalue);
sql.Add(' where GZID=' + trim(Self.CDS_HZ.FieldByName('GZID').AsString));
EXECSQL;
end;
tv2.Controller.EditingController.ShowEdit();
end;
procedure TfrmWageList_YG.v2Column7PropertiesEditValueChanged(Sender: TObject);
var
FFieldName, mvalue: string;
begin
mvalue := TcxTextEdit(Sender).EditingText;
FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName);
with CDS_HZ do
begin
Edit;
FieldByName(FFieldName).Value := mvalue;
Post;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('update DCGMoney set ' + FFieldName + '=' + QuotedStr(Trim(mvalue)));
sql.Add(' where GZID=' + trim(Self.CDS_HZ.FieldByName('GZID').AsString));
EXECSQL;
end;
tv2.Controller.EditingController.ShowEdit();
end;
procedure TfrmWageList_YG.ToolButton6Click(Sender: TObject);
begin
with Self.CDS_HZ do
begin
Append;
FieldByName('GZDate').Value := SGetServerDate(ADOQueryTemp);
Post;
end;
end;
procedure TfrmWageList_YG.v2Column19PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'SCPerson';
flagname := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
fnote := True;
V1Name.Caption := '<27><><EFBFBD><EFBFBD>';
V1Note.Caption := '<27><><EFBFBD><EFBFBD>';
// V1Note1.Caption := '<27><><EFBFBD><EFBFBD>';
// fnote1 := True;
TBAdd.Visible := False;
TBDel.Visible := False;
TBEdit.Visible := False;
TBSave.Visible := False;
if ShowModal = 1 then
begin
with CDS_HZ do
begin
Edit;
FieldByName('DName').Value := Trim(ClientDataSet1.FieldByName('ZDYName').AsString);
Post;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('update DCGMoney set DName=' + QuotedStr(Trim(ClientDataSet1.FieldByName('ZDYName').AsString)));
sql.Add(' where GZID=' + trim(Self.CDS_HZ.FieldByName('GZID').AsString));
EXECSQL;
end;
tv2.Controller.EditingController.ShowEdit();
end;
end;
finally
frmZDYHelp.free;
end;
end;
procedure TfrmWageList_YG.N1Click(Sender: TObject);
begin
SelOKNo(CDS_HZ, True);
end;
procedure TfrmWageList_YG.N2Click(Sender: TObject);
begin
SelOKNo(CDS_HZ, false);
end;
procedure TfrmWageList_YG.ToolButton4Click(Sender: TObject);
begin
try
CDS_HZ.DisableControls;
ADOQueryCmd.Connection.BeginTrans;
with CDS_HZ do
begin
while CDS_HZ.Locate('SSel', True, []) do
begin
if Trim(CDS_HZ.fieldbyname('GZID').AsString) <> '' then
begin
with Self.ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete DCGMoney where GZID=' + quotedstr(Trim(CDS_HZ.fieldbyname('GZID').AsString)));
ExecSQL;
end;
end;
CDS_HZ.Delete;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
CDS_HZ.EnableControls;
except
ADOQueryCmd.Connection.RollbackTrans;
CDS_HZ.EnableControls;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmWageList_YG.ToolButton5Click(Sender: TObject);
begin
if CDS_HZ.IsEmpty then
Exit;
ToolBar1.SetFocus;
if not CDS_HZ.Locate('SSel', True, []) then
begin
Application.MessageBox('<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
try
ADOQueryCmd.Connection.BeginTrans;
CDS_HZ.DisableControls;
with CDS_HZ do
begin
while CDS_HZ.Locate('SSel', True, []) do
begin
if not SaveData() then
begin
CDS_HZ.EnableControls;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
with CDS_HZ do
begin
Edit;
FieldByName('SSel').Value := False;
Post;
end;
Next;
end;
end;
CDS_HZ.EnableControls;
ADOQueryCmd.Connection.CommitTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!', '<27><>ʾ', 0);
except
CDS_HZ.EnableControls;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
end;
end;
procedure TfrmWageList_YG.v2Column5PropertiesEditValueChanged(Sender: TObject);
var
mvalue, FFieldName: string;
FGZQty, FGZPrice, FCLMoney, FJLMoney, FCFMoney, FGZMoney: Double;
begin
mvalue := TcxTextEdit(Sender).EditingText;
FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName);
with CDS_HZ do
begin
Edit;
FieldByName(FFieldName).Value := Trim(mvalue);
Post;
FGZQty := CDS_HZ.fieldbyname('GZQty').AsFloat;
FGZPrice := CDS_HZ.fieldbyname('GZPrice').AsFloat;
FJLMoney := CDS_HZ.fieldbyname('JLMoney').AsFloat;
FCFMoney := CDS_HZ.fieldbyname('CFMoney').AsFloat;
FCLMoney := RoundFloat(FGZQty * FGZPrice, 1);
FGZMoney := FCLMoney + FJLMoney - FCFMoney;
end;
with CDS_HZ do
begin
Edit;
FieldByName('GZMoney').Value := FGZMoney;
FieldByName('CLMoney').Value := FCLMoney;
Post;
end;
tv2.Controller.EditingController.ShowEdit();
end;
procedure TfrmWageList_YG.cxTabControl1Change(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmWageList_YG.Button1Click(Sender: TObject);
begin
with ADOQueryMain do
begin
Filtered := False;
Close;
SQL.Clear;
sql.Add(' exec P_GZ_All_HZ ');
sql.Add(' @FGZDate= ' + quotedstr(trim(FormatDateTime('yyyy-MM', DateTimePicker1.DateTime))));
sql.Add(' ,@GZType=' + quotedstr(trim(ComboBox1.Text)));
// ShowMessage(sql.text);
Open;
end;
SCreateCDS20(ADOQueryMain, CDS_HZ);
SInitCDSData20(ADOQueryMain, CDS_HZ);
end;
procedure TfrmWageList_YG.Button3Click(Sender: TObject);
var
mvalue, FFieldName: string;
FGZQty, FGZPrice, FCLMoney, FJLMoney, FCFMoney, FGZMoney: Double;
begin
FGZPrice := StrToFloatDef(Edit1.Text, 0);
with CDS_HZ do
begin
First;
while not Eof do
begin
if CDS_HZ.fieldbyname('SSel').AsBoolean then
begin
FGZQty := CDS_HZ.fieldbyname('GZQty').AsFloat;
FJLMoney := CDS_HZ.fieldbyname('JLMoney').AsFloat;
FCFMoney := CDS_HZ.fieldbyname('CFMoney').AsFloat;
FCLMoney := RoundFloat(FGZQty * FGZPrice, 1);
FGZMoney := FCLMoney + FJLMoney - FCFMoney;
with CDS_HZ do
begin
Edit;
FieldByName('GZPrice').Value := FGZPrice;
FieldByName('GZMoney').Value := FGZMoney;
FieldByName('CLMoney').Value := FCLMoney;
Post;
end;
end;
Next;
end;
end;
tv2.Controller.EditingController.ShowEdit();
end;
procedure TfrmWageList_YG.DateTimePicker1Change(Sender: TObject);
begin
dtpYear.DateTime := DateTimePicker1.DateTime;
cxTabControl1.TabIndex := MonthOf(dtpYear.DateTime) - 1;
end;
end.