📄 frmmain.~pas
字号:
end;
if UpperCase(aSelectMenu) = UpperCase('TaxWxzc') then
begin
CurrentFP := 'FP05';
SpeedButton4.Click;
end;
if UpperCase(aSelectMenu) = UpperCase('UserManager') then
begin
SpeedButton10.Click;
end;
if UpperCase(aSelectMenu) = UpperCase('GenManager') then
begin
SpeedButton1.Click;
end;
if UpperCase(aSelectMenu) = UpperCase('CompactDB') then
begin
Backup.AdvTabSheet3.Show;
Backup.ShowModal;
end;
if UpperCase(aSelectMenu) = UpperCase('DataBackup') then
begin
Backup.AdvTabSheet1.Show;
Backup.ShowModal;
end;
if UpperCase(aSelectMenu) = UpperCase('DataRestore') then
begin
Backup.AdvTabSheet2.Show;
Backup.ShowModal;
end;
end;
procedure TMain.FormShow(Sender: TObject);
begin
ShowInitialization;
end;
procedure TMain.InVoiceTableClickCell(Sender: TObject; ARow,
ACol: Integer);
begin
// Main.Caption := ' ACol:' + Inttostr(ACol) + ' ARow:' + Inttostr(ARow);
end;
procedure TMain.SpeedButton11Click(Sender: TObject);
begin
Close;
end;
procedure TMain.InVoiceTableCanEditCell(Sender: TObject; ARow,
ACol: Integer; var CanEdit: Boolean);
begin
if TaxPubReadOnly then
CanEdit := False;
if CurrentFP = 'FP01' then
begin
if (ARow <= 2) and (ACol <= 12) then
begin
CanEdit := False;
end;
if (ARow = 6) then
CanEdit := False;
if (ARow = 7) and (ACol = 0) then
CanEdit := False;
if (ARow = 9) and ((ACol = 0) or (ACol = 4) or (ACol = 8)) then
CanEdit := False;
if (ARow = 10) then
CanEdit := False;
end;
if CurrentFP = 'FP02' then
begin
if (ARow = 0) and ((ACol = 0) or (ACol = 4) or (ACol = 8)) then
CanEdit := False;
if (ARow = 1) then
CanEdit := False;
if (ARow = 7) and ((ACol = 0) or (ACol = 8)) then
CanEdit := False;
if (ARow = 8) and ((ACol = 0) or (ACol = 3) or (ACol = 8)) then
CanEdit := False;
if (ARow = 9) then
CanEdit := False;
end;
if CurrentFP = 'FP03' then
begin
if (ARow = 0) and ((ACol = 0) or (ACol = 7)) then
CanEdit := False;
if (ARow = 1) or ((ACol = 7) and (ARow = 2)) then
CanEdit := False;
if (ARow = 6) then
CanEdit := False;
if (ARow = 7) and ((ACol = 3) or (ACol = 0) or (ACol = 8)) then
CanEdit := False;
if (ARow = 8) then
CanEdit := False;
end;
if CurrentFP='FP04' then
begin
if (ARow=0) or (ARow=5) or (ARow=9) then
CanEdit:=False;
if (ARow=1) and (ACol=9) then
CanEdit:=False;
if (ARow=6) and (ACol=0) then
CanEdit:=False;
if (ARow=8) and ((ACol=0) or (ACol=3) or (ACol=8)) then
CanEdit:=False;
end;
if CurrentFP='FP05' then
begin
if (ACol=0) and (ARow=0) then
CanEdit:=False;
if (ACol=0) and (ARow=2) then
CanEdit:=False;
if (ARow=4) or ((ACol=9) and (ARow=5)) then
CanEdit:=False;
if (ARow=9) or ((ARow=10) and (ACol=0)) then
CanEdit:=False;
if (ARow=11) and ((ACol=0) or (ACol=3) or (ACol=8)) then
CanEdit:=False;
end;
end;
procedure TMain.InVoiceTableDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
DrawMoney, DrawOne: string;
i, CurrentIndex, MoneyDiv: Integer;
MoneyWidth, MoneyLeft, MoneyTop, aLineTop: Integer;
DrawMoneyCp: string;
begin
PubRect := InVoiceTable.ClientRect; ;
PubCanvas := InVoiceTable.Canvas;
if CurrentFP = 'FP01' then
begin
if (ARow = 1) and (ACol = 9) then
begin
with InVoiceTable do
begin
MoneyDiv := Length(MoneyCaStr) div 2;
for i := 1 to MoneyDiv do
begin
CurrentIndex := (MoneyDiv - i + 1);
DrawMoneyCp := Copy(MoneyCaStr, CurrentIndex * 2 - 1, 2);
MoneyWidth := Canvas.TextWidth('4') + 8;
if I = 3 then
Canvas.Pen.Color := 3637448
else
Canvas.Pen.Color := 8684164;
aLineTop := Rect.Right - (MoneyWidth * i) + 12;
MoneyLeft := aLineTop - (MoneyWidth);
MoneyTop := Rect.Top + (Rect.Bottom - Rect.Top - MoneyWidth) div 2;
Canvas.TextOut(MoneyLeft, MoneyTop, DrawMoneyCp);
if i <> 1 then
begin
Canvas.MoveTo(aLineTop - 2, Rect.Top);
Canvas.LineTo(aLineTop - 2, Rect.Bottom);
end;
end;
end;
end;
if (ACol >= 9) and ((ARow >= 3) and (ARow <= 7)) then
begin
with InVoiceTable do
begin
DrawMoney := InVoiceTable.Cells[ACol, ARow];
if DrawMoney <> '' then
DrawMoney := FormatFloat('0.00', StrToFloat(DrawMoney));
DrawMoney := StringReplace(DrawMoney, '.', '', []);
Canvas.FillRect(Rect);
for i := 1 to 12 do
begin
case i of
3:
Canvas.Pen.Color := clGreen;
1, 5, 9:
Canvas.Pen.Color := clGreen;
else
Canvas.Pen.Color := 8684164;
end;
MoneyWidth := Canvas.TextWidth('4') + 8;
if i > Length(DrawMoney) then
DrawOne := ''
else
DrawOne := Copy(DrawMoney, Length(DrawMoney) - i + 1, 1);
if I = 3 then
Canvas.Pen.Color := 3637448
else
Canvas.Pen.Color := 8684164;
aLineTop := Rect.Right - MoneyWidth * (i - 1);
MoneyLeft := aLineTop - MoneyWidth + 6;
MoneyTop := Rect.Top + (Rect.Bottom - Rect.Top - MoneyWidth) div 2;
Canvas.TextOut(MoneyLeft - 5, MoneyTop, DrawOne);
if i <> 1 then
begin
Canvas.MoveTo(aLineTop - 4, Rect.Top);
Canvas.LineTo(aLineTop - 4, Rect.Bottom);
end;
end;
end;
end;
end;
if CurrentFP = 'FP02' then
begin
if (ARow = 2) and (ACol = 8) then
begin
with InVoiceTable do
begin
MoneyDiv := Length(MoneyCaStr) div 2;
for i := 1 to MoneyDiv do
begin
CurrentIndex := (MoneyDiv - i + 1);
DrawMoneyCp := Copy(MoneyCaStr, CurrentIndex * 2 - 1, 2);
MoneyWidth := Canvas.TextWidth('4') + 8;
if I = 3 then
Canvas.Pen.Color := 3637448
else
Canvas.Pen.Color := 8684164;
aLineTop := Rect.Right - (MoneyWidth * i) + 12;
MoneyLeft := aLineTop - (MoneyWidth);
MoneyTop := Rect.Top + (Rect.Bottom - Rect.Top - MoneyWidth) div 2;
Canvas.TextOut(MoneyLeft, MoneyTop, DrawMoneyCp);
if i <> 1 then
begin
Canvas.MoveTo(aLineTop - 2, Rect.Top);
Canvas.LineTo(aLineTop - 2, Rect.Bottom);
end;
end;
end;
end;
if (ACol >= 8) and ((ARow >= 3) and (ARow <= 7)) then
begin
with InVoiceTable do
begin
DrawMoney := InVoiceTable.Cells[ACol, ARow];
if DrawMoney <> '' then
DrawMoney := FormatFloat('0.00', StrToFloat(DrawMoney));
DrawMoney := StringReplace(DrawMoney, '.', '', []);
Canvas.FillRect(Rect);
for i := 1 to 12 do
begin
case i of
3:
Canvas.Pen.Color := clGreen;
1, 5, 9:
Canvas.Pen.Color := clGreen;
else
Canvas.Pen.Color := 8684164;
end;
MoneyWidth := Canvas.TextWidth('4') + 8;
if i > Length(DrawMoney) then
DrawOne := ''
else
DrawOne := Copy(DrawMoney, Length(DrawMoney) - i + 1, 1);
if I = 3 then
Canvas.Pen.Color := 3637448
else
Canvas.Pen.Color := 8684164;
aLineTop := Rect.Right - MoneyWidth * (i - 1);
MoneyLeft := aLineTop - MoneyWidth + 6;
MoneyTop := Rect.Top + (Rect.Bottom - Rect.Top - MoneyWidth) div 2;
Canvas.TextOut(MoneyLeft - 5, MoneyTop, DrawOne);
if i <> 1 then
begin
Canvas.MoveTo(aLineTop - 4, Rect.Top);
Canvas.LineTo(aLineTop - 4, Rect.Bottom);
end;
end;
end;
end;
end;
if CurrentFP = 'FP03' then
begin
if (ARow = 2) and (ACol = 7) then
begin
with InVoiceTable do
begin
MoneyDiv := Length(MoneyCaStr) div 2;
for i := 1 to MoneyDiv do
begin
CurrentIndex := (MoneyDiv - i + 1);
DrawMoneyCp := Copy(MoneyCaStr, CurrentIndex * 2 - 1, 2);
MoneyWidth := Canvas.TextWidth('4') + 8;
if I = 3 then
Canvas.Pen.Color := 3637448
else
Canvas.Pen.Color := 8684164;
aLineTop := Rect.Right - (MoneyWidth * i) + 12;
MoneyLeft := aLineTop - (MoneyWidth);
MoneyTop := Rect.Top + (Rect.Bottom - Rect.Top - MoneyWidth) div 2;
Canvas.TextOut(MoneyLeft, MoneyTop, DrawMoneyCp);
if i <> 1 then
begin
Canvas.MoveTo(aLineTop - 2, Rect.Top);
Canvas.LineTo(aLineTop - 2, Rect.Bottom);
end;
end;
end;
end;
if (ACol >= 7) and (ACol < 11) and ((ARow >= 3) and (ARow <= 6)) then
begin
with InVoiceTable do
begin
DrawMoney := InVoiceTable.Cells[ACol, ARow];
if DrawMoney <> '' then
DrawMoney := FormatFloat('0.00', StrToFloat(DrawMoney));
DrawMoney := StringReplace(DrawMoney, '.', '', []);
Canvas.FillRect(Rect);
for i := 1 to 12 do
begin
case i of
3:
Canvas.Pen.Color := clGreen;
1, 5, 9:
Canvas.Pen.Color := clGreen;
else
Canvas.Pen.Color := 8684164;
end;
MoneyWidth := Canvas.TextWidth('4') + 8;
if i > Length(DrawMoney) then
DrawOne := ''
else
DrawOne := Copy(DrawMoney, Length(DrawMoney) - i + 1, 1);
if I = 3 then
Canvas.Pen.Color := 3637448
else
Canvas.Pen.Color := 8684164;
aLineTop := Rect.Right - MoneyWidth * (i - 1);
MoneyLeft := aLineTop - MoneyWidth + 6;
MoneyTop := Rect.Top + (Rect.Bottom - Rect.Top - MoneyWidth) div 2;
Canvas.TextOut(MoneyLeft - 5, MoneyTop, DrawOne);
if i <> 1 then
begin
Canvas.MoveTo(aLineTop - 4, Rect.Top);
Canvas.LineTo(aLineTop - 4, Rect.Bottom);
end;
end;
end;
end;
end;
if CurrentFP = 'FP04' then
begin
if (ARow = 1) and (ACol = 9) then
begin
with InVoiceTable do
begin
MoneyDiv := Length(MoneyCaStr) div 2;
for i := 1 to MoneyDiv do
begin
CurrentIndex := (MoneyDiv - i + 1);
DrawMoneyCp := Copy(MoneyCaStr, CurrentIndex * 2 - 1, 2);
MoneyWidth := Canvas.TextWidth('4') + 8;
if I = 3 then
Canvas.Pen.Color := 3637448
else
Canvas.Pen.Color := 8684164;
aLineTop := Rect.Right - (MoneyWidth * i) + 12;
MoneyLeft := aLineTop - (MoneyWidth);
MoneyTop := Rect.Top + (Rect.Bottom - Rect.Top - MoneyWidth) div 2;
Canvas.TextOut(MoneyLeft, MoneyTop, DrawMoneyCp);
if i <> 1 then
begin
Canvas.MoveTo(aLineTop - 2, Rect.Top);
Canvas.LineTo(aLineTop - 2, Rect.Bottom);
end;
end;
end;
end;
if (ACol >= 9) and (ACol <= 12) and ((ARow >= 2) and (ARow <= 5)) then
begin
with InVoiceTable do
begin
DrawMoney := InVoiceTable.Cells[ACol, ARow];
if DrawMoney <> '' then
DrawMoney := FormatFloat('0.00', StrToFloat(DrawMoney));
DrawMoney := StringReplace(DrawMoney, '.', '', []);
Canvas.FillRect(Rect);
for i := 1 to 12 do
begin
case i of
3:
Canvas.Pen.Color := clGreen;
1, 5, 9:
Canvas.Pen.Color := clGreen;
else
Canvas.Pen.Color := 8684164;
end;
MoneyWidth := Canvas.TextWidth('4') + 8;
if i > Length(DrawMoney) then
DrawOne := ''
else
DrawOne := Copy(DrawMoney, Length(DrawMoney) - i + 1, 1);
if I = 3 then
Canvas.Pen.Color := 3637448
else
Canvas.Pen.Color := 8684164;
aLineTop := Rect.Right - MoneyWidth * (i - 1);
MoneyLeft := aLineTop - MoneyWidth + 6;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -