国庆节连一天假都没得放,很不爽,散分!

ilang 2002-09-27 05:38:20
TMD的那个王八蛋地中海居然还说有项目奖加班费就免了,想马上走人了,散分
同时也把经常会碰到的一些问题贴出来和大家交流一下,这些方法感觉不大理想,我想了解一下大家通常是怎么处理的

{~~~~~~~~~~~~~~~~~~~ 取得下一个单号~~~~~~~~~~~~~~~~~~~~~~~~~ }
{ parameters:iFlag := 0 只读出单号 iFlag := 1 更新下一个单号 }
function TFrmEdit.GetSerialNo(cds: TClientDataSet; iFlag: Integer): OleVariant;
var
sTemp, sTableName: string;
cdsTemp: TClientDataSet;
begin
sTableName := GetTableNameByCds(cds);
sTemp := 'Declare @No varchar(20) ' + #13 + 'Exec GetNo @No output , %s ,%d '
+ #13 + 'select @No as SerialNo';
sTemp := Format(sTemp, [sTableName, iFlag]);
cdsTemp := TClientDataSet.Create(Self);
with cdsTemp do
begin
RemoteServer := (Self.FindComponent('cdsX') as TClientDataSet).RemoteServer;
ProviderName := (Self.FindComponent('cdsX') as TClientDataSet).ProviderName;
SetCdsCmdTxt(cdsTemp, sTemp, 2);
Result := cdsTemp.FieldByName('SerialNo').AsString;
Free;
end;
end;

{ 设置ClientDataSet组件CommandText属性 }
procedure TFrmEdit.SetcdsCmdTxt(cds: TClientDataSet; StrSQL: string;
iFlag: Integer);
begin
with cds do
begin
if Active then Close;
CommandText := StrSQL;
if iFlag = 1 then Execute
else if iFlag = 2 then Open
else
begin
Execute;
Open;
end;
end;
end;

{ 从简单的SQL语句取得数据表名称 }
function TFrmEdit.GetTableNameFromSQLText(SQLTxt: string): string;
var
I: Integer;
sTemp: string;
begin
I := Pos('from', LowerCase(SQLTxt)) + 4;
sTemp := TrimLeft(Copy(SQLTxt, I, StrLen(PChar(SQLTxt))));
I := Pos(' ', sTemp);
if I = 0 then
Result := sTemp
else
Result := Copy(sTemp, 0, I);
end;

{ 从ClientDataSet组件CommandText属性取得连接的数据表名称 }
function TFrmEdit.GetTableNameByCds(cds: TClientDataSet): string;
var
StrSQL: string;
begin
StrSQL := cds.CommandText;
Result := GetTableNameFromSQLText(StrSQL);
end;

{说明:建立附加数据表PutNo,根据数据表名称读取下一个单号
SQL脚本
Create Table PutNo(sNo Varchar(12), sTableName Varchar(20), ab Varchar(20), sExplain Varchar(20))
--参数说明 sNo:日期码 sTableName:数据表名称 ab:区分码 sExplain:中文说明
--例:在数据表写入一条记录:200209010001, EmployeeData,YGZLB,员工资料表
执行存储过程传入表名称参数’EmployeeData’,则返回单号’ YGZLB200209010001’
因考虑到用户处理数据的过程中该表单的最新单号有可能已更改,所以在用户提交数据之前需重新读取一次,若新表单保存完毕,则更新下一个单号,例:
procedure TFrmEdit.GetSerialNoEx(iFlag: Integer);
begin
cdsX.FieldByName('sSerialNo').AsString := GetSerialNo(cdsX, iFlag);
end;

procedure TFrmEdit.cdsXBeforePost(DataSet: TDataSet);
begin
if cdsX.State = dsInsert then GetSerialNoEx(0);
end;

procedure TFrmEdit.cdsXAfterInsert(DataSet: TDataSet);
begin
GetSerialNoEx(0);
end;

procedure TFrmEdit.cdsXAfterApplyUpdates(Sender: TObject;
var OwnerData: OleVariant);
begin
GetSerialNo(cdsX, 1);
end;}

{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}

创建存储过程GetNo SQL脚本

CREATE PROCEDURE GetNo
@No varchar(20) output ,
@TableName varchar(50),
@Flag int

AS
declare @Year Int,
@Month int,
-- @Day int,
@Temp_No varchar(10),
@RandNo varchar(4),
@No1 varchar(10),
@ab Varchar(30)
BEGIN
select @year=Year(GetDate())
select @Month=Month(GetDate())
select @No=Str(@Year,4,0)+
(select
case
when @Month>=10 then Str(@Month,2,0)
when @Month<10 Then '0'+Str(@Month,1,0)
end
)
select @tablename = Rtrim(@tablename)
select @tablename = Ltrim(@tablename)
SELECT @Temp_No = sNo FROM Number where sTableName= @TableName
SELECT @ab = ab FROM Number where sTableName= @TableName

IF @No <> SUBSTRING( @Temp_No,1,6)
begin
SELECT @No1 = @No+'0001'
SELECT @No = @ab+@No+'0001'
end
ELSE
BEGIN
SELECT @RandNo = STR( CONVERT(int,(SUBSTRING( @Temp_No ,7,4) )+1) , 4, 0 )
SELECT @RandNo = REPLACE( @RandNo,' ','0')
SELECT @No = @No + @RandNo
SELECT @No1 = @No
SELECT @No =@ab + @No
END

if @Flag=1
UPDATE Number SET sNo = @No1 where sTableName = @TableName
END
GO

{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
...全文
51 68 打赏 收藏 转发到动态 举报
写回复
用AI写文章
68 条回复
切换为时间正序
请发表友善的回复…
发表回复
mars_han 2002-09-28
  • 打赏
  • 举报
回复
不是散分吗, 我来接分的 十一放七天,事儿都排满了
--------------------------------------------
              ,%%%%%%%,
             ,%%/\%%%%/\%,
            ,%%%\c "" J/%%,
  %.          %%%%/ D L \%%%
  `%%.     __   %%%%  _ |%%%
  `%%   .-' `"~--"`%%%%(=_Y_=)%%' ~~~
   //  .'   `.   `%%%%`\7/%%%'____
  ((  /     ;   `%%%%%%%'____)))
  `.`--'     ,'  _,`-._____`-,

热爱生活 不爱美女 关注大众 无视权贵 一奋青
mikehs 2002-09-28
  • 打赏
  • 举报
回复
很同情啊~~~~~~
我可能出去旅游,爽啊。
ilang 2002-09-28
  • 打赏
  • 举报
回复
怎么没人给我提建议,我更关心这些,没放假就没放假没加班费也无所谓,都没什么大不了的,只是一时不快,反正要离开这家公司了,就当作是晚上睡觉的时候被蚊子叮了几口吧。另外请大家帮我看一下一个Delphi的很讨厌的继承问题:
我把父窗体的一个Panel组件删除,改用Label组件,程序调式时出现class TPanel not found 错误,在出错的地方打开那个窗体,出来‘ancestor component not found’提示框,按照默认的选项删除在父窗体中已被删掉的组件,再运行程序,一切正常,保存后关闭所有,再打开时居然同样的问题又出来了!!而且很奇怪有很多个子窗体,就那一个会出错,按理说删除父窗体的组件子窗体的该组件也会自动完全删除掉,不知道是不是Delphi自己的原因,这个问题实在是很讨厌,大家快帮我看一下,解决了我另外贴个帖子给分
youngwhz 2002-09-28
  • 打赏
  • 举报
回复
靠,项目奖要拿,加班费也不能少!!!
TNND,真是TLLD的剥削!!
North_beggar 2002-09-28
  • 打赏
  • 举报
回复
你的代码不错,我好好学习。有什么问题还向你请教。
North_beggar 2002-09-28
  • 打赏
  • 举报
回复
同情,没办法,是不是干程序员的都这样,希望我的命好点儿,焦急的等待中。同时也挺同情你。
zdcnow 2002-09-28
  • 打赏
  • 举报
回复
同情
cnnjvirus 2002-09-28
  • 打赏
  • 举报
回复
同情
cnnjyeziyin 2002-09-28
  • 打赏
  • 举报
回复
这么惨!我们放七天,真的很不错!
ruyunluck 2002-09-28
  • 打赏
  • 举报
回复
没关系兄弟还年轻,我正想好好的用它呢,你的文章我收藏了
jixinfa 2002-09-28
  • 打赏
  • 举报
回复
同样命苦!
qybao 2002-09-28
  • 打赏
  • 举报
回复
国庆加班的不只你一个,还有许多同一战线的兄弟
fongming 2002-09-28
  • 打赏
  • 举报
回复
我也差不多,只比你好一点,只有一天假,啊啊!!!!!!!!!!!!!!!!!!!!!
rwdx 2002-09-28
  • 打赏
  • 举报
回复
up
xiachedan 2002-09-28
  • 打赏
  • 举报
回复
up
mengxianbao1521 2002-09-28
  • 打赏
  • 举报
回复
我也的加班、
hyh128 2002-09-28
  • 打赏
  • 举报
回复
我更惨,国庆放假后走人,公司不做开发了,只做代理,你比我好点,不过国庆没放假,不爽,祝你节日加班也开心,
shishi99 2002-09-28
  • 打赏
  • 举报
回复
同感同感,去年老子国庆节就放一天假期(那哪能叫放假啊,惨),听说今年也如此。私营单位啊,干得不爽就GO AWAY。
careerist 2002-09-28
  • 打赏
  • 举报
回复
同情
tangss 2002-09-28
  • 打赏
  • 举报
回复
同情中.....
加载更多回复(47)

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧