?? sy_ckjhdzd.pas
字號:
Filtered := False;
DisableControls;
First;
while not Eof do
begin
Edit;
FieldByName('CKJHDH').AsString := V_CKJHDH;
Next;
end;
First;
EnableControls;
Filtered := True;
end;
end;
try //提交數據庫
Qry_Main.Database.StartTransaction;
Qry_Third.ApplyUpdates; //提交主表
Qry_Main.ApplyUpdates; //題價從表
Qry_Main.Database.Commit;
except
Qry_Main.Database.RollBack;
CHQMsgBox('數據存儲錯誤!');
exit;
end;
Qry_Third.CommitUpdates; //清除緩存的內容
Qry_Main.CommitUpdates;
//刷新出庫計劃單下拉框
if (V_State = 1) then
begin
V_ItemIndex := CB_PPMC.FieldItems.IndexOf(V_DWDM);
if V_ItemIndex = -1 then
begin
CB_PPMC.Items.Insert(0, V_DWMC);
CB_PPMC.FieldItems.Insert(0, V_DWDM);
CB_PPMC.ItemIndex := 0;
end
else if CB_PPMC.ItemIndex <> V_ItemIndex then
begin
CB_PPMC.ItemIndex := V_ItemIndex;
end;
CB_PPMC.OnChange(nil);
end;
//刪除子表為空的主表
if Qry_Main.IsEmpty then
begin
with Qry_Static do
begin
Close;
SQL.Text := 'delete TYS_TXPCKJHDB '
+ ' where CKJHDH=''' + V_CKJHDH + '''';
ExecSQL;
end;
CB_CKJHDH.Items.Delete(CB_CKJHDH.ItemIndex);
if CB_CKJHDH.Items.Count <= 0 then
begin
CB_PPMC.DeleteItems(CB_PPMC.ItemIndex);
CB_PPMC.ItemIndex := 0;
CB_PPMC.OnChange(nil);
end;
CB_CKJHDH.ItemIndex := 0;
CB_CKJHDHChange(nil);
end;
PS_SetStatus();
end;
procedure TFrmY_CKJHDZD.BBt_DeleteFPJHClick(Sender: TObject);
begin
if Qry_Third.IsEmpty then Exit;
if Qry_Third.FieldByName('ZT').Asstring = CG_DG then
begin
CHQMsgBox('此出庫計劃單已簽批!');
Exit;
end;
if CHQMsgBox('確實要刪除嗎?', 2) = IDNO then Exit;
//刪除出庫計劃單
with Qry_Static do
begin
//刪除從表
Close;
SQL.Text := 'delete TYS_GRPCKJHDPPB '
+ ' where CKJHDH=''' + V_CKJHDH + '''';
ExecSQL;
Close;
//刪除主表
SQL.Text := 'delete TYS_GRPCKJHDB '
+ ' where CKJHDH=''' + V_CKJHDH + '''';
ExecSQL;
end;
CB_CKJHDH.Items.Delete(CB_CKJHDH.ItemIndex);
if CB_CKJHDH.Items.Count <= 0 then
begin
CB_PPMC.DeleteItems(CB_PPMC.ItemIndex);
CB_PPMC.ItemIndex := 0;
CB_PPMC.OnChange(nil);
end;
CB_CKJHDH.ItemIndex := 0;
//刷新出庫計劃單
CB_CKJHDHChange(nil);
end;
procedure TFrmY_CKJHDZD.BBt_ModifyClick(Sender: TObject);
begin
if Qry_Third.IsEmpty then Exit;
if Qry_Third.FieldByName('ZT').Asstring = CG_DG then
begin
CHQMsgBox('此出庫計劃單已簽批!');
Exit;
end;
//修改出庫計劃單
Qry_Third.Edit;
Qry_Main.Edit;
DBG_Main.SetFocus;
PS_SetStatus(3);
end;
procedure TFrmY_CKJHDZD.BBt_DGClick(Sender: TObject);
begin
if Qry_Third.IsEmpty then Exit;
if Qry_Third.FieldByName('ZT').Asstring = CG_DG then
begin
CHQMsgBox('此出庫計劃單已簽批!');
Exit;
end;
if CHQMsgBox('確實要簽批嗎?', 2) = IDNO then Exit;
//簽批出庫計劃單
with Qry_Static do
begin
Close;
SQL.Text := 'update TYS_GRPCKJHDB set ZT = ''2'' ,PZR= ''' + VG_UserName + ''''
+ ' where CKJHDH=''' + V_CKJHDH + '''';
ExecSQL;
end;
//刷新出庫計劃單
CB_CKJHDHChange(nil);
end;
procedure TFrmY_CKJHDZD.BBt_CancelClick(Sender: TObject);
begin
//刷新出庫計劃單
CB_PPMC.Text := '';
if (CB_PPMC.ItemIndex <> -1) then
CB_PPMC.Text := CB_PPMC.Items[CB_PPMC.ItemIndex];
if CB_CKJHDH.ItemIndex <> -1 then
CB_CKJHDH.Text := CB_CKJHDH.Items[CB_CKJHDH.ItemIndex];
CB_CKJHDHChange(nil);
PS_SetStatus();
end;
procedure TFrmY_CKJHDZD.BBt_DeleteDWClick(Sender: TObject);
begin
if not Qry_Main.IsEmpty then
Qry_Main.Delete;
end;
procedure TFrmY_CKJHDZD.BBt_AddDWClick(Sender: TObject);
begin
//添加票品
FrmY_CKJHDZD_XZPP := TFrmY_CKJHDZD_XZPP.Create(nil);
with FrmY_CKJHDZD_XZPP do
begin
ShowModal;
if ModalResult <> MrOK then
begin
Free;
Exit;
end;
with FrmY_CKJHDZD_XZPP.Qry_Static do
begin
First;
while not Eof do
begin
if FrmY_CKJHDZD_XZPP.DBG_PP.SelectedRows.CurrentRowSelected then
begin
V_KFDM := FieldByName('KFDM').AsString;
V_PPDM := FieldByName('PPDM').AsString;
V_PPMC := FieldByName('PPMC').AsString;
V_KWH := FieldByName('KWH').AsString;
V_JJ := FieldByName('JJ').AsFloat;
V_XJ := FieldByName('XJ').AsFloat;
V_ZK := FieldByName('ZK').AsFloat;
V_JSJ := FieldByName('JSJ').AsFloat;
V_FPSL := 0;
if not Qry_Main.Locate('PPDM;JJ;KFDM', VarArrayOf([V_PPDM, V_JJ, V_KFDM]), []) then
//添加票品
ps_AddRec();
end;
Next;
end;
end;
Free;
end;
Qry_MainAfterScroll(nil);
DBG_Main.SetFocus;
end;
procedure TFrmY_CKJHDZD.L_CKJHDHDblClick(Sender: TObject);
begin
if Qry_Third.IsEmpty then Exit;
if Qry_Third.FieldByName('ZT').Asstring <> CG_DG then
begin
CHQMsgBox('此出庫計劃單沒有簽批!');
Exit;
end;
if CHQMsgBox('確實要取消簽批嗎?', 2) = IDNO then Exit;
//取消簽批
with Qry_Static do
begin
Close;
SQL.Text := 'update TYS_GRPCKJHDB set ZT = ''0'' ,PZR= '''' '
+ ' where CKJHDH=''' + V_CKJHDH + '''';
ExecSQL;
end;
//刷新出庫計劃單
CB_CKJHDHChange(nil);
end;
procedure TFrmY_CKJHDZD.BBt_PrintClick(Sender: TObject);
var
StrsQl:string;
begin
if CB_CKJHDH.Text = '' then
begin
CHQMsgBox('請選擇分配單號!');
Exit;
end;
if Qry_Third.IsEmpty then Exit;
{CKJHDCX_RPT := TCKJHDCX_RPT.Create(nil);
with CKJHDCX_RPT do
try
Qry_Print.SQL.Text := 'select ROWNUM, A.CKJHDH, A.CKXZ, A.ZBR, A.PZR,A.ZDRQ, A.BZ ,B.DWMC, B.PPMC,B.XJ, B.ZK, B.JSJ, B.FPSL,B.JSJ*B.FPSL JE FROM TYS_GRPCKJHDB A,TYS_GRPCKJHDPPB B where A.CKJHDH = B.CKJHDH and A.CKJHDH =''' + CB_CKJHDH.Text + '''';
Qry_Print.Open;
Preview;
Destroy;
except
Destroy;
end;}
Application.CreateForm(TFrm_RichEdit,Frm_RichEdit);
Application.CreateForm(TCKJHDCX_RPT,CKJHDCX_RPT);
with CKJHDCX_RPT,Frm_RichEdit do
try
StrSQL := 'select ROWNUM, A.CKJHDH, A.CKXZ, A.ZBR, A.PZR,A.ZDRQ, A.BZ ,B.DWMC, B.PPMC,C.ZH,B.XJ/100 XJ, DECODE(B.ZK,0,B.JSJ/100,B.ZK) 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 FROM TYS_GRPCKJHDB A,TYS_GRPCKJHDPPB 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;
QRLabel12.Caption:='購入票';
QRLabel20.Caption :=FormatDateTime('yyyy"年"mm"月"dd"日"',StrToDate(Qry_Print.fieldByName('zdrq').AsString));
if CHQMsgBox('是否采用套打?', 2)=IDYES then
Tao_Print_Flag:=True
else
Tao_Print_Flag:=False;
DetailLines:=0;
Prepare;
try
QRLabel19.Caption :=IntToStr(QRPrinter.PageCount);
finally
QRPrinter.Free;
end;
QRPrinter := nil;
Preview;
finally
CKJHDCX_RPT.Destroy;
Frm_RichEdit.Destroy;
end;
end;
procedure TFrmY_CKJHDZD.Qry_MainFPSLSetText(Sender: TField;
const Text: string);
var
TextValue: Integer;
begin
try
TextValue := StrToInt(Text);
except
CHQMsgBox('輸入有誤,可能輸入數值過大,請重新輸入!');
Exit;
end;
if TextValue < 0 then
begin
CHQMsgBox('輸入有誤,輸入數值為負值,請重新輸入!');
Exit;
end;
if TextValue > 99999999 then
begin
CHQMsgBox('輸入有誤,輸入數值過大,請重新輸入!');
Exit;
end;
Sender.AsInteger := TextValue;
//刷新庫存
Qry_MainAfterScroll(nil);
end;
procedure TFrmY_CKJHDZD.Qry_MainAfterScroll(DataSet: TDataSet);
begin
//刷新庫存
if Qry_Main.IsEmpty then Exit;
with Qry_Main do
CE_KC.Value := PS_GetSYTS(FieldByName('KFDM').AsString, FieldByName('PPDM').AsString, FieldByName('JJ').AsFloat, FieldByName('CKJHDH').AsString) - FieldByName('FPSL').AsInteger;
if CE_KC.Value < 0 then
CE_KC.Font.Color := ClRed
else
CE_KC.Font.Color := ClBlue;
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;
procedure TFrmY_CKJHDZD.Query1YFZLSetText(Sender: TField;
const Text: string);
begin
Sender.AsFloat := strtofloat(Text);
end;
procedure TFrmY_CKJHDZD.Qry_MainJJSetText(Sender: TField;
const Text: string);
begin
CurrSetText(Sender, Text);
end;
procedure TFrmY_CKJHDZD.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
SaveAllColWidth(self);
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.E_CKXZChange(Sender: TObject);
begin
Qry_Third.Close;
Qry_Main.Close;
CE_KC.Text := '';
L_CKJHDH.Font.Color := ClBlack;
CB_PPMC.Text := '';
if E_CKXZ.Text = '' then Exit;
if E_CKXZ.Text = '' then Exit;
case E_CKXZ.ItemIndex of
0: V_CKXZ := '10';
1: V_CKXZ := '14';
end;
//刷新標題
case E_CKXZ.ItemIndex of
0: XttxTitle.Caption := '出庫分配單制定';
1: XttxTitle.Caption := '退繳分配單制定';
end;
//刷新出庫計劃單下拉框
CB_PPMC.ClearAll;
CB_PPMC.OnChange := nil;
with Qry_Static do
begin
Close;
SQL.Clear;
SQL.Add('select distinct B.DWMC,B.DWDM from TYS_GRPCKJHDB A,TYS_GRPCKJHDPPB B, TGS_KFRYDZB C');
SQL.Add('where A.CKJHDH=B.CKJHDH and B.KFDM=C.KFDM and A.CKJHDH LIKE ''GR%''');
SQL.Add('and TO_CHAR(A.ZDRQ,''YYYY'') = ''' + ND.Text + ''' ');
SQL.Add('and (A.ZT = ''' + CG_WCL + ''' or A.ZT = ''' + CG_DG + ''') ');
SQL.Add('and A.CKXZ = ''' + V_CKXZ + ''' ');
SQL.Add('and C.YGDM = ''' + VG_UserID + ''' ');
SQL.Add('order by b.DWDM ');
Open;
while not Eof do
begin
CB_PPMC.Items.Add(Fields[0].AsString);
CB_PPMC.FieldItems.Add(Fields[1].AsString);
Next;
end;
Close;
end;
CB_PPMC.OnChange := CB_PPMCChange;
if CB_PPMC.Items.Count > 0 then
CB_PPMC.ItemIndex := 0;
CB_PPMCChange(nil);
end;
procedure TFrmY_CKJHDZD.CB_PPMCChange(Sender: TObject);
begin
//刷新出庫計劃單
CB_CKJHDH.Text := '';
CB_CKJHDH.Items.Clear;
CB_CKJHDH.OnChange := nil;
with Qry_Static do
begin
Close;
SQL.Clear;
SQL.Add('select distinct A.CKJHDH from TYS_GRPCKJHDB A, TYS_GRPCKJHDPPB B, TGS_KFRYDZB C');
SQL.Add('where A.CKJHDH=B.CKJHDH and B.KFDM=C.KFDM and A.CKJHDH LIKE ''GR%''');
SQL.Add('and B.DWDM = ''' + CB_PPMC.FieldString + ''' ');
SQL.Add('and (A.ZT = ''' + CG_WCL + ''' or A.ZT = ''' + CG_DG + ''') ');
SQL.Add('and C.YGDM = ''' + VG_UserID + ''' ');
SQL.Add('order by A.CKJHDH DESC ');
Open;
while not Eof do
begin
CB_CKJHDH.Items.Add(Fields[0].AsString);
Next;
end;
Close;
end;
CB_CKJHDH.OnChange := CB_CKJHDHChange;
if CB_CKJHDH.Items.Count > 0 then
CB_CKJHDH.ItemIndex := 0;
CB_CKJHDHChange(nil);
end;
procedure TFrmY_CKJHDZD.Qry_MainBeforeInsert(DataSet: TDataSet);
begin
Abort;
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) - FieldByName('FPSL').AsInteger;
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.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.CE_KCEnter(Sender: TObject);
begin
DBG_Main.SetFocus;
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 + -