📄 cp.pas
字号:
sql:='insert into kjcsb(csdm,yf,csmc) values('
+'''1'','''+Trim(Edit1.Text)+''','
+'''出盘标志'')';
//Sql := 'update kjcsb set csdm=''1'' where yf='''+Trim(Edit1.Text)+''''
// +' and csmc=''出盘标志''';
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add(Sql);
Query1.ExecSQL;
if Copy(Trim(Edit1.Text),5,2) = '12' then
NextMonth := IntToStr(StrToInt(Copy(Trim(Edit1.Text),5,2))+1)+'01'
else
NextMonth := IntToStr(StrToInt(Trim(Edit1.Text))+1);
Sql := 'insert into kjcsb(csdm,yf,csmc) values('
+'''0'','''+NextMonth+''','
+'''出盘标志'')';
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add(Sql);
Query1.ExecSQL;
end;
procedure Tfrm_cp.N1Click(Sender: TObject);
begin
Application.CreateForm(Tfrm_yggzjgtz, frm_yggzjgtz);
Frm_yggzjgtz.Button3.Caption := '确认新增(&A)';
end;
procedure Tfrm_cp.N2Click(Sender: TObject);
begin
Application.CreateForm(Tfrm_yggzjgtz, frm_yggzjgtz);
frm_yggzjgtz.Edit1.Text := StringGrid1.Cells[0,SelRowCount];
frm_yggzjgtz.Button2.Click;
frm_yggzjgtz.Button3.Caption := '确认修改(&S)';
end;
procedure Tfrm_cp.Save_Disk(Str: String);
var I,J,Count,Amount,ShiFacol: Integer;
TempStr,sql,sfgz,ygh: String;
begin
for J := 0 to StringGrid1.ColCount - 1 do
begin
if (StringGrid1.Rows[0].Strings[J]='实发工资') then
shifacol:=J;
end;
if Query_gzdx.active then Query_gzdx.Close;
Query_gzdx.sql.clear;
Query_gzdx.sql.add('select * from gzdxb ');
Query_gzdx.open;
if not Query_gzdx.isempty then
begin
Query_gzdx.sql.clear;
Query_gzdx.sql.add('delete from gzdxb ');
Query_gzdx.ExecSQL;
end;
ListBox1.Items.Clear;
for I := 1 to StringGrid1.RowCount - 1 do
begin
if I < StringGrid1.RowCount - 1 then
begin
for J := 0 to StringGrid1.ColCount - 1 do
begin
if J = 0 then
TempStr := ' '+BankShortBit(StringGrid1.Cells[J,I],1);
if J = 1 then
TempStr := TempStr + BankShortBit(StringGrid1.Cells[J,I],0);
if J = shifacol then
//if J = StringGrid1.ColCount - 1 then
TempStr := TempStr + BankBit(FloatToStr(
StrToFloat(StringGrid1.Cells[J,I])*100));
end;
ListBox1.Items.Add(TempStr);
if Query_gzdx.active then Query_gzdx.Close;
Query_gzdx.sql.Clear;
ygh:=stringgrid1.Cells[0,i];
sfgz:=StringGrid1.Cells[shifacol,I];
Sql := 'insert into gzdxb(ygh,sfgz) values('''+ygh+''','''+sfgz+''')';
Query_gzdx.sql.Add(sql);
Query_gzdx.ExecSQL;
end;
end;
ListBox1.Items.Add(BankLongBit(IntToStr(StringGrid1.RowCount - 2),0)+
BankLongBit(FloatToStr(StrToFloat(
//StringGrid1.Cells[StringGrid1.ColCount-1,
StringGrid1.Cells[shifacol,
StringGrid1.RowCount-1])*100),1));
ListBox1.Items.SaveToFile(Str);
end;
function Tfrm_cp.BankBit(Str: String): String;
begin
if Str = '000' then
Result := '000000'
else
begin
if Length (Str) = 6 then
Result := Str;
if Length (Str) = 5 then
Result := ' '+Str;
if Length (Str) = 4 then
Result := ' '+Str;
if Length (Str) = 3 then
Result := ' '+Str;
if Length (Str) = 2 then
Result := ' '+Str;
if Length (Str) = 1 then
Result := ' '+Str;
end;
end;
function Tfrm_cp.BankLongBit(Str: String; Flag: Integer): String;
begin
if Flag = 0 then
begin
if Length(Str) = 1 then
Result := ' '+Str;
if Length(Str) = 2 then
Result := ' '+Str;
if Length(Str) = 3 then
Result := ' '+Str;
if Length(Str) = 4 then
Result := ' '+Str;
if Length(Str) = 5 then
Result := ' '+Str;
if Length(Str) = 6 then
Result := ' '+Str;
if Length(Str) = 7 then
Result := ' '+Str;
if Length(Str) = 8 then
Result := ' '+Str;
if Length(Str) = 9 then
Result := Str;
end;
if Flag = 1 then
begin
if Length(Str) = 1 then
Result := ' '+Str;
if Length(Str) = 2 then
Result := ' '+Str;
if Length(Str) = 3 then
Result := ' '+Str;
if Length(Str) = 4 then
Result := ' '+Str;
if Length(Str) = 5 then
Result := ' '+Str;
if Length(Str) = 6 then
Result := ' '+Str;
if Length(Str) = 7 then
Result := ' '+Str;
if Length(Str) = 8 then
Result := ' '+Str;
if Length(Str) = 9 then
Result := ' '+Str;
if Length(Str) = 10 then
Result := ' '+Str;
if Length(Str) = 11 then
Result := ' '+Str;
if Length(Str) = 12 then
Result := ' '+Str;
if Length(Str) = 13 then
Result := ' '+Str;
if Length(Str) = 14 then
Result := Str;
end;
end;
function Tfrm_cp.BankShortBit(Str: String;Flag: Integer): String;
begin
if Flag = 0 then
begin
if Length(Str) = 4 then
Result := Str + ' ';
if Length(Str) = 6 then
Result := Str + ' ';
if Length(Str) = 8 then
Result := Str;
end;
if Flag = 1 then
begin
if Length (Str) = 6 then
Result := Str;
if Length (Str) = 5 then
Result := ' '+Str;
if Length (Str) = 4 then
Result := ' '+Str;
if Length (Str) = 3 then
Result := ' '+Str;
if Length (Str) = 2 then
Result := ' '+Str;
if Length (Str) = 1 then
Result := ' '+Str;
end;
end;
procedure Tfrm_cp.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
if (CanSelect) and (ARow <> StringGrid1.RowCount - 1) then
if ARow <> 0 then
SelRowCount := ARow;
end;
procedure Tfrm_cp.PopupMenu1Popup(Sender: TObject);
begin
if SelRowCount = -1 then
N2.Enabled := False
else N2.Enabled := True;
end;
procedure Tfrm_cp.Button4Click(Sender: TObject);
begin
if Trim(StringGrid1.Cols[0].Strings[1]) = '' then
begin
Application.MessageBox('没有可打印的数据!','系统提示',mb_IconInformation+mb_OK);
Exit;
end;
if Application.MessageBox('确认要打印吗?','系统提示',mb_IconInformation+mb_OK+mb_OKCancel)=IDCancel then Exit;
PrintStringGrid(StringGrid1,'HX');
end;
procedure Tfrm_cp.Button3Click(Sender: TObject);
var Sql,NextMonth,NowDate: String;
begin
NowDate := FormatDatetime('YYYYMMDDHHMMSS',Date);
if Trim(Edit1.Text) <> Copy(NowDate,1,6) then
begin
Application.MessageBox('只能回滚当月的数据!','系统提示',mb_IconInformation+mb_OK);
Exit;
end;
if Copy(Trim(Edit1.Text),5,2) = '12' then
NextMonth := IntToStr(StrToInt(Copy(Trim(Edit1.Text),5,2))+1)+'01'
else
NextMonth := IntToStr(StrToInt(Trim(Edit1.Text))+1);
if Application.MessageBox(PChar('确认将'+Edit1.Text+'月的数据回滚吗?'),'系统提示',mb_IconInformation+mb_OK+mb_OKCancel)=IDCancel then Exit;
Sql := 'Delete From ygxjjgb Where yf='''+NextMonth+'''';
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add(Sql);
Query1.ExecSQL;
Sql := 'update kjcsb set csdm=''0'' where yf='''+Trim(Edit1.Text)
+''' and csmc=''出盘标志''';
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add(Sql);
Query1.ExecSQL;
Sql := 'delete from kjcsb where yf='''+NextMonth
+''' and csmc=''出盘标志''';
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add(Sql);
Query1.ExecSQL;
Application.MessageBox(PChar('回滚'+Edit1.Text+'月的数据成功!'),'系统提示',mb_IconInformation+mb_OK);
end;
function Tfrm_cp.ReturnNextMonth(Curr: Integer): String;
begin
if StrToInt(Copy(IntToStr(Curr),5,2))+1>12 then
Result := IntToStr(StrToInt(Copy(IntToStr(Curr),1,4))+1)+'01'
else
Result := IntToStr(Curr+1);
end;
procedure Tfrm_cp.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (edit1.text<>'') and (key=#13) then
button5click(sender);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -