📄 sy_ckjhdzd.pas
字号:
TextValue := Trunc(StrToInt(Text) * 100);
except
CHQMsgBox('输入有误,可能输入数值过大,请重新输入!');
Exit;
end;
if TextValue < 0 then
begin
CHQMsgBox('输入有误,输入数值为负值,请重新输入!');
Exit;
end;
if TextValue > 99999 then
begin
CHQMsgBox('输入有误,输入数值过大,请重新输入!');
Exit;
end;
with Qry_Main do
FieldByName('JSJ').AsFloat := FieldByName('ZK').AsFloat * TextValue / 100;
Sender.AsInteger := TextValue;
end;
procedure TFrmY_CKJHDZD.Qry_MainZKSetText(Sender: TField;
const Text: string);
var
TextValue: Double;
begin
try
TextValue := StrToFloat(Text);
except
CHQMsgBox('输入有误,可能输入数值过大,请重新输入!');
Exit;
end;
if TextValue < 0 then
begin
CHQMsgBox('输入有误,输入数值为负值,请重新输入!');
Exit;
end;
if TextValue > 100 then
begin
CHQMsgBox('输入有误,输入数值过大,请重新输入!');
Exit;
end;
Sender.AsFloat := TextValue;
end;
procedure TFrmY_CKJHDZD.Qry_MainFPSLSetText(Sender: TField;
const Text: string);
var
TextValue, old_Value: Integer;
begin
try
TextValue := StrToInt(Text);
Old_Value := Sender.AsInteger;
except
CHQMsgBox('输入有误,可能输入数值过大,请重新输入!');
Exit;
end;
if TextValue < 0 then
begin
CHQMsgBox('输入有误,输入数值为负值,请重新输入!');
Exit;
end;
if TextValue > 99999999 then
begin
CHQMsgBox('输入有误,输入数值过大,请重新输入!');
Exit;
end;
Sender.AsInteger := TextValue;
//刷新库存
CE_KC.Value := CE_KC.Value + Old_Value - TextValue;
if CE_KC.Value < 0 then
CE_KC.Font.Color := ClRed
else
CE_KC.Font.Color := ClBlue;
end;
procedure TFrmY_CKJHDZD.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if BBt_Save.Enabled then
begin
case CHQMsgBox('数据已修改,是否保存?', 3) of
IDYES:
begin
BBt_SaveClick(nil);
Action := caFree;
end;
IDNO:
begin
BBt_CancelClick(nil);
Action := caFree;
end;
IDCANCEL:
begin
Action := caNone;
end;
end;
end
else
Action := caFree;
SaveAllColWidth(self);
end;
procedure TFrmY_CKJHDZD.Qry_MainJSJSetText(Sender: TField;
const Text: string);
var
TextValue: Double;
begin
try
TextValue := Round(StrToFloat(Text) * 100);
except
CHQMsgBox('输入有误,可能输入数值过大,请重新输入!');
Exit;
end;
if TextValue < 0 then
begin
CHQMsgBox('输入有误,输入数值为负值,请重新输入!');
Exit;
end;
if TextValue > 9999999 then
begin
CHQMsgBox('输入有误,输入数值过大,请重新输入!');
Exit;
end;
Sender.AsFloat := TextValue;
end;
procedure TFrmY_CKJHDZD.L_CKJHDHDblClick(Sender: TObject);
begin
if Qry_Third.IsEmpty then Exit;
if Qry_Third.FieldByName('ZT').Asstring <> CG_DG then Exit;
if CHQMsgBox('确实要取消签批吗?', 2) = IDNO then Exit;
//签批数据
with Qry_Static do
begin
Close;
SQL.Text := 'update TYS_YPCKJHDB set ZT = ''0'' ,PZR= '''' '
+ ' where CKJHDH=''' + V_CKJHDH + '''';
ExecSQL;
end;
CB_CKJHDHChange(nil);
end;
procedure TFrmY_CKJHDZD.BBt_PrintClick(Sender: TObject);
var
StrSQL: string;
Qry_SumDw: TQuery;
Count_DW, Count_PP: Integer;
begin
if CB_CKJHDH.Text = '' then
begin
CHQMsgBox('请选择分配单号!');
Exit;
end;
if Qry_Main.IsEmpty then Exit;
Qry_SumDw := TQuery.Create(nil);
try
with Qry_SumDw do
begin
Close;
DatabaseName := 'yzpp';
SQL.Clear;
SQl.Add('select sum(fpsl),dwmc from tys_ypckjhdppb where CKJHDH =''' + CB_CKJHDH.Text + ''' group by dwmc');
Open;
end;
Count_DW := Qry_SumDw.RecordCount;
with Qry_SumDw do
begin
Close;
DatabaseName := 'yzpp';
SQL.Clear;
SQl.Add('select sum(fpsl),ppdm from tys_ypckjhdppb where CKJHDH =''' + CB_CKJHDH.Text + ''' group by ppdm');
Open;
end;
Count_PP := Qry_SumDw.RecordCount;
finally
Qry_SumDw.Free;
Qry_SumDw := nil;
end;
if (Count_DW >= 1) and (Count_PP = 1) then //单品种多去向
begin
Frm_One_More_RPT := TFrm_One_More_RPT.Create(nil);
with Frm_One_More_RPT do
try
Qry_Print.Close;
StrSQL := 'select ROWNUM, A.CKJHDH, A.CKXZ, A.ZBR, A.PZR, A.ZDRQ, A.BZ, B.DWMC, B.PPMC, B.XJ/100 XJ,B.JJ/100 JJ, B.ZK, B.JSJ/100 JSJ, ';
StrSQL := StrSQL + ' B.FPSL, decode(JSJ,0,B.ZK*B.XJ*B.FPSL/10000, B.JSJ*B.FPSL/100) JE,C.ZH FROM TYS_YPCKJHDB A,TYS_YPCKJHDPPB B,TB_YZPPXXB C where A.CKJHDH = B.CKJHDH AND B.PPDM=C.TDM and A.CKJHDH =' + '''' + CB_CKJHDH.Text + '''';
Qry_Print.SQL.Text := StrSQL;
Qry_Print.Open;
QRLabel2.Caption := '集邮品';
QRLabel4.Caption := Qry_Print.fieldByName('ckjhdh').AsString;
QRlabel14.Caption := FormatDateTime('YYYY"年"MM"月"DD"日"', StrToDate(Qry_Print.FieldByName('zdrq').AsString));
QRLabel6.Caption := Qry_Print.fieldbyname('zh').AsString;
QRLabel8.Caption := Qry_Print.FieldByName('ppmc').AsString;
{修改,进价和销价显示小数点后3位 原来的#,##0.00替换为#,##0.000 jhshao 2003.05.08}
QRLabel12.Caption := FormatFloat('#,##0.000', QRy_Print.FieldByName('xj').AsFloat);
QRLabel10.Caption := FormatFloat('#,##0.000', Qry_Print.fieldbyName('jj').AsFloat);
Prepare;
QRLabel24.Caption := IntToStr(QRPrinter.PageCount);
if CHQMsgBox('是否采用套打?', 2) = IDYES then
Tao_Print_Flag := True
else
Tao_Print_Flag := False;
DetailLines := 0;
Qry_Print.First;
Preview;
Destroy;
except
Free;
end;
end;
if (Count_Dw >= 1) and (Count_PP > 1) then
begin //多品种多去向
Frm_More_More_RPT := TFrm_More_More_RPT.Create(nil);
with Frm_More_More_RPT do
try
Qry_Print.Close;
StrSQL := 'select ROWNUM, A.CKJHDH, A.CKXZ, A.ZBR, A.PZR, A.ZDRQ, A.BZ, B.DWMC, B.PPMC, B.XJ/100 XJ,B.JJ/100 JJ, B.ZK, Decode(B.JSJ,0,b.zk,B.JSJ/100) JSJ, ';
StrSQL := StrSQL + ' B.FPSL, decode(JSJ,0,B.ZK*B.XJ*B.FPSL/10000, B.JSJ*B.FPSL/100) JE,C.ZH FROM TYS_YpCKJHDB A,TYS_YpCKJHDPPB B,TB_YZPPXXB C where A.CKJHDH = B.CKJHDH AND B.PPDM=C.TDM and A.CKJHDH =' + '''' + CB_CKJHDH.Text + ''' order by dwmc';
Qry_Print.SQL.Text := StrSQL;
Qry_Print.Open;
QRLabel1.Caption := '集邮品';
QRLabel4.Caption := Qry_Print.fieldByName('ckjhdh').AsString;
QRlabel5.Caption := FormatDateTime('YYYY"年"MM"月"DD"日"', StrToDate(Qry_Print.FieldByName('zdrq').AsString));
{QRLabel6.Caption :=Qry_Print.fieldbyname('zh').AsString;
QRLabel8.Caption :=Qry_Print.FieldByName('ppmc').AsString;
QRLabel12.Caption :=FormatFloat('#,##0.00',QRy_Print.FieldByName('xj').AsFloat);
QRLabel10.Caption :=FormatFloat('#,##0.00',Qry_Print.fieldbyName('jj').AsFloat);}
Prepare;
QRLabel21.Caption := IntToStr(QRPrinter.PageCount);
if CHQMsgBox('是否采用套打?', 2) = IDYES then
Tao_Print_Flag := True
else
Tao_Print_Flag := False;
DetailLines := 0;
Qry_Print.First;
Preview;
Destroy;
except
Free;
end;
end;
end;
procedure TFrmY_CKJHDZD.Qry_MainJJGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
{修改,销价进价结算价显示小数点后3位 原来调用的CurrGetText替换为CurrGetText3 jhshao 2003.05.08}
CurrGetText3(Sender, Text, DisplayText);
end;
procedure TFrmY_CKJHDZD.DBG_MainKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
DBGridAutoChangeCursor(Sender, key);
end;
function TFrmY_CKJHDZD.SumField(Dataset: TDataSet; Field: TField): Double;
var
vBookmark: TBookmark;
begin
Result := 0;
with Dataset do
if (not IsEmpty) and Active then
begin
vBookmark := GetBookmark;
try
DisableControls;
First;
while not eof do
begin
Result := Result + Field.AsFloat;
Next;
end;
GotoBookmark(vBookmark);
finally
FreeBookmark(vBookmark);
EnableControls;
end;
end;
end;
procedure TFrmY_CKJHDZD.Qry_MainBeforeInsert(DataSet: TDataSet);
begin
//不插入
Abort;
end;
function TFrmY_CKJHDZD.GetExistField(FQuery: TQuery; FieldName,
SnapStr: string): string;
var
FBookMark: TBookMark;
begin
Result := 'ZRJM';
if not FQuery.Active then Exit;
if FQuery.FindField(FieldName) = nil then Exit;
if FQuery.IsEmpty then Exit;
try
with FQuery do
begin
FBookMark := GetBookmark;
DisableControls;
First;
while not Eof do
begin
Result := Result + SnapStr + FindField(FieldName).AsString;
Next;
end;
EnableControls;
GotoBookMark(FBookMark);
end;
except
FQuery.EnableControls;
end;
end;
procedure TFrmY_CKJHDZD.Qry_MainJSJChange(Sender: TField);
begin
//折扣和结算价互斥
if Sender.FieldName = 'JSJ' then
begin
if Sender.AsFloat <> 0 then
Sender.DataSet.FieldByName('ZK').AsFloat := 0;
end;
if Sender.FieldName = 'ZK' then
begin
if Sender.AsFloat <> 0 then
Sender.DataSet.FieldByName('JSJ').AsFloat := 0;
end;
end;
procedure TFrmY_CKJHDZD.CE_KCEnter(Sender: TObject);
begin
DBG_Main.SetFocus;
end;
procedure TFrmY_CKJHDZD.CE_KCDblClick(Sender: TObject);
begin
if Qry_Main.IsEmpty then Exit;
//显示当前选定票品的库存情况
FrmY_KC := TFrmY_KC.Create(nil);
FrmY_KC.E_PPMC.Text := Qry_MainPPMC.AsString;
FrmY_KC.E_JJ.Text := Qry_MainJJ.AsString;
with Qry_Main do
begin
FrmY_KC.E_KCTS.Value := PS_GetKC(FieldByName('KFDM').AsString, FieldByName('PPDM').AsString, FieldByName('JJ').AsFloat);
FrmY_KC.E_SYTS.Value := PS_GetSYTS(FieldByName('KFDM').AsString, FieldByName('PPDM').AsString, FieldByName('JJ').AsFloat, FieldByName('CKJHDH').AsString) - SumField(Qry_Main, Qry_Main.FieldByName('FPSL'));
end;
FrmY_KC.E_FPTS.Value := FrmY_KC.E_KCTS.Value - FrmY_KC.E_SYTS.Value;
FrmY_KC.ShowModal;
FrmY_KC.Free;
end;
procedure TFrmY_CKJHDZD.N_SDLClick(Sender: TObject);
var
FFiexedCols: Integer;
begin
Sender := PM_Main.PopupComponent;
if Sender is TDBGrid then
begin
FFiexedCols := TRxDBGrid(Sender).FixedCols + 1;
if FFiexedCols > TRxDBGrid(Sender).Col then Exit;
TRxDBGrid(Sender).FixedCols := FFiexedCols;
end;
end;
procedure TFrmY_CKJHDZD.N_JSLClick(Sender: TObject);
var
FFiexedCols: Integer;
begin
Sender := PM_Main.PopupComponent;
if Sender is TDBGrid then
begin
FFiexedCols := TRxDBGrid(Sender).FixedCols - 1;
if FFiexedCols < 0 then Exit;
TRxDBGrid(Sender).FixedCols := FFiexedCols;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -