?? sy_lxqldbl.pas
字號:
{*******************************************************}
{ }
{ 下級零星請領單補錄 }
{ }
{ 中軟金馬公司版權所有。2002.12前 }
{ }
{ 編制:中軟金馬項目開發組 }
{ }
{ }
{*******************************************************}
(*
本模塊在零枚票管理模塊 需求管理部分的下級零星請領單補錄菜單調用。
修改記錄
零枚零星請領出現負數 by jhshao 2003.05.07
*)
unit SY_LXQLDBL;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, Spin, Grids, DBGrids, Buttons, Db, DBTables, Mask,
DBCtrls, RXDBCtrl, RXCtrls, ToolEdit,
ComCtrls, CurrEdit;
type
TFrmY_LXQLDBL = class(TForm)
Panel_Head: TPanel;
Panel_Button: TPanel;
RxLabel_Title: TRxLabel;
bbtAppend: TBitBtn;
bbtDelete: TBitBtn;
bbtModify: TBitBtn;
bbtSave: TBitBtn;
bbtCancel: TBitBtn;
BBt_Exit: TBitBtn;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Label3: TLabel;
cbbDwmc: TComboBox;
sbAdd: TSpeedButton;
sbDelete: TSpeedButton;
Label1: TLabel;
Label2: TLabel;
Panel4: TPanel;
DBE_ZBR: TDBEdit;
Label8: TLabel;
Label12: TLabel;
qryTemp: TQuery;
qryQld: TQuery;
DataSource1: TDataSource;
UpdateSQL1: TUpdateSQL;
qryQldDWDM: TStringField;
qryQldND: TStringField;
qryQldYF: TStringField;
qryQldPPDM: TStringField;
qryQldDWMC: TStringField;
qryQldPPMC: TStringField;
qryQldMZ: TFloatField;
qryQldSL: TFloatField;
qryQldJE: TFloatField;
qryQldBQTPSR: TFloatField;
qryQldJKJE: TFloatField;
qryQldZBR: TStringField;
qryQldSPR: TStringField;
qryQldZBRQ: TDateTimeField;
qryQldBZ: TStringField;
qryQldZT: TStringField;
qryQldSDATE: TDateTimeField;
Label4: TLabel;
Memo1: TMemo;
DBE_ZBRQ: TDBDateEdit;
edHj: TCurrencyEdit;
bbtPrint: TBitBtn;
Label5: TLabel;
cbbQldh: TComboBox;
Label_Year: TLabel;
speYear: TSpinEdit;
Label_Month: TLabel;
speMonth: TSpinEdit;
qryQldQLDH: TStringField;
RG_JB: TRadioGroup;
dgQld: TDBGrid;
Bbt_Send: TBitBtn;
Label6: TLabel;
DWMC: TLabel;
procedure sbAddClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure bbtAppendClick(Sender: TObject);
procedure sbDeleteClick(Sender: TObject);
procedure bbtDeleteClick(Sender: TObject);
procedure bbtModifyClick(Sender: TObject);
procedure bbtSaveClick(Sender: TObject);
procedure bbtCancelClick(Sender: TObject);
procedure qryQldSLSetText(Sender: TField; const Text: string);
procedure qryQldBeforePost(DataSet: TDataSet);
procedure dgQldKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure qryQldAfterPost(DataSet: TDataSet);
procedure cbbQldhChange(Sender: TObject);
procedure cbbDwmcChange(Sender: TObject);
procedure dgQldKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure RG_JBClick(Sender: TObject);
procedure qryQldMZGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
procedure Bbt_SendClick(Sender: TObject);
procedure bbtPrintClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure qryQldBeforeInsert(DataSet: TDataSet);
private
{ Private declarations }
FslDwdm: TStringList;
FCurrQldh: string;
function SumField(Dataset: TDataSet; numField: TField): double;
procedure GetDwmcList(Sender: TObject);
procedure GetQld(Sender: TObject);
procedure GetQldhList(Sender: TObject);
procedure NewQld(Sender: TObject);
procedure SetControlsState(Enabled: bool);
procedure SetButtonState(append, delete, modify, print, save, cancel: bool);
public
{ Public declarations }
end;
var
FrmY_LXQLDBL: TFrmY_LXQLDBL;
implementation
uses datas, pub, SY_DataSend, ZF_Select, Rpt_Lxql;
{$R *.DFM}
const
clsQldh = 'QLDH0000';
procedure TFrmY_LXQLDBL.GetDwmcList(Sender: TObject);
const
csGetFpdDw: string
= ' select dwdm,DWJC dwmc from tgs_gxdwsjb '
+ ' where TXYW=''1'' and FHDX=''1'' order by PXM ';
begin
Bbt_Send.Visible := RG_JB.ItemIndex = 0;
if RG_JB.ItemIndex = 1 then
begin
RxLabel_Title.Caption := '下級零星請領單補錄';
with qryTemp do
begin
Close;
Sql.Clear;
Sql.Add(csGetFpdDw);
open;
FslDwdm.Clear;
cbbDwmc.Items.Clear;
if RecordCount <> 0 then
begin
first;
while not eof do
begin
cbbDwmc.Items.Add(FieldByName('DwMC').AsString);
FslDwdm.Add(FieldByName('Dwdm').AsString);
next;
end;
end;
end;
if cbbDwmc.Items.Count > 0 then
cbbDwmc.ItemIndex := 0;
end
else
begin
RxLabel_Title.Caption := '本級零星請領單制定';
FslDwdm.Clear;
cbbDwmc.Items.Clear;
cbbDwmc.Items.Add(VG_UnitName);
FslDwdm.Add(VG_UnitID);
cbbDwmc.ItemIndex := 0;
end;
end;
procedure TFrmY_LXQLDBL.sbAddClick(Sender: TObject);
var
FrmSelectPp: TFrmSelectPp;
i: integer;
begin
FrmSelectPp := TFrmSelectPp.Create(self);
try
qryQld.DisableControls;
qryQld.BeforeInsert := nil;
with FrmSelectPp do
begin
showmodal;
if dgStamp.SelectedRows.Count <> 0 then
for i := 0 to dgStamp.SelectedRows.Count - 1 do
begin
qryPp.GotoBookmark(pointer(dgStamp.SelectedRows.Items[i]));
if not qryQLD.Locate('qldh;ppdm', VarArrayOf([FCurrQldh, qryPp.FieldByName('tudm').AsString]), []) then
begin
qryQld.Append;
qryQld.FieldByName('qldh').AsString := FCurrQldh;
qryQld.FieldByName('DWDM').AsString := FslDwdm.Strings[cbbDwmc.ItemIndex];
qryQld.FieldByName('DWMC').AsString := cbbDwmc.Text;
qryQld.FieldByName('PPDM').AsString := qryPp.FieldByName('tudm').AsString;
qryQld.FieldByName('PPMC').AsString := qryPp.FieldByName('ppmc').AsString;
qryQld.FieldByName('MZ').AsInteger := qryPp.FieldByName('mz').AsInteger;
qryQld.FieldByName('ND').AsInteger := speYear.Value;
qryQld.FieldByName('YF').AsInteger := speMonth.Value;
qryQld.FieldByName('sl').AsInteger := 0;
qryQld.FieldByName('ZBR').AsString := VG_UserName;
qryQld.FieldByName('ZT').AsString := '0';
qryQld.FieldByName('ZBRQ').AsDateTime := EncodeDate(VG_Year, VG_Month, VG_Day);
qryQld.Post;
end;
end;
end;
finally
FrmSelectPp.Free;
qryQld.BeforeInsert := qryQldBeforeInsert;
qryQld.EnableControls;
end;
end;
procedure TFrmY_LXQLDBL.FormCreate(Sender: TObject);
begin
FCurrQldh := '';
DWMC.Caption := '使用單位:' + VG_UnitName;
FslDwdm := TStringList.Create;
speYear.OnChange := nil;
speMonth.OnChange := nil;
cbbDwmc.OnChange := nil;
speYear.Value := VG_Year;
speMonth.Value := VG_Month;
GetAllColWidth(Self);
speYear.OnChange := cbbDwmcChange;
speMonth.OnChange := cbbDwmcChange;
cbbDwmc.OnChange := cbbDwmcChange;
RG_JBClick(nil);
end;
procedure TFrmY_LXQLDBL.FormDestroy(Sender: TObject);
begin
FslDwdm.Free;
end;
procedure TFrmY_LXQLDBL.GetQld(Sender: TObject);
const
csGetQld: string = ' select * from tys_txpqld where qldh= :Qldh ';
begin
Memo1.Text := '';
if cbbQldh.ItemIndex <> -1 then
FCurrQldh := cbbQldh.Items[cbbQldh.ItemIndex]
else
FCurrQldh := '';
with qryQld do
begin
Close;
Sql.Clear;
Sql.Add(csGetQld);
ParamByName('qldh').AsString := FCurrQldh;
Open;
First;
if not IsEmpty then
begin
memo1.text := FieldByName('bz').AsString;
end;
edHj.Text := formatFloat('#,##0.00##', sumField(qryQld, FieldByName('je')) / 100);
end;
end;
procedure TFrmY_LXQLDBL.bbtAppendClick(Sender: TObject);
begin
if cbbDwmc.ItemIndex <> -1 then
begin
NewQld(self);
SetControlsState(false);
dgQld.Options := dgQld.Options + [dgEditing];
setButtonState(false, false, false, false, true, true);
end;
end;
procedure TFrmY_LXQLDBL.SetButtonState(append, delete, modify, print, save,
cancel: bool);
begin
bbtAppend.Enabled := append;
RG_JB.Enabled := append;
bbtdelete.Enabled := delete;
bbtmodify.Enabled := modify;
bbtPrint.Enabled := print;
bbtsave.Enabled := save;
bbtcancel.Enabled := cancel;
end;
procedure TFrmY_LXQLDBL.sbDeleteClick(Sender: TObject);
begin
with qryQld do
if (not eof) and (FieldByName('zt').AsString = '0') then
delete;
edHj.Text := formatFloat('#,##0.00##', sumField(qryQld, qryQld.FieldByName('je')) / 10000);
end;
procedure TFrmY_LXQLDBL.bbtDeleteClick(Sender: TObject);
begin
if cbbQldh.Text = '' then exit;
if qryQld.IsEmpty then Exit;
if not qryQld.FieldByName('SDate').IsNull then
begin
CHQMsgBox('此數據已發送!');
Exit;
end;
if CHQMsgBox('確實要刪除記錄嗎?', 2) = IDno then Exit;
with qryTemp do
begin
Close;
SQL.Clear;
SQL.Add('Delete tys_txpqld ');
SQL.Add('where QLDH=:QLDH ');
Prepare;
Params[0].AsString := cbbQldh.Text;
ExecSQL;
Close;
end;
cbbDwmcChange(nil);
end;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -