会用Activex控件的进来看一下,这个会计凭证控件在VC下能不能用

yang6130 2005-11-07 08:48:32
会计凭证输入ActiveX控件是本人用Delphi 6.0做出来的一个控件,在Delphi下使用一切正常,但本人不会VC,会用Activex控件的进来看一下,这个会计凭证控件在VC下能不能用正常使用:
1)、控件使用了4个自定义事件On_GetAccText(取会计科目代码对应的科目名称),On_GetCy(取科目核算币别),On_GetRate(取科目汇率),On_validCy(验证科目有否核算指定币别),在VC下如何使用,其中On_GetAccText在Delphi 6.0代码如下:
procedure TForm1.CNPZGridPro1_GetAccText(Sender: TObject;
const sAccID: WideString; var sResult: WideString);
begin
sResult:=sAccID+' 会计科目';//作用是在用户输入的科目代码后加上科目名称,这里以' 会计科目'代替;
end;
On_GetAccText在VC6.0代码如下:
void CTest04Dlg::OnGetAccTextCnpzgridpro1(LPCTSTR sAccID, BSTR FAR* sResult)
{
// TODO: Add your control notification handler code here
//sResult:=sAccID+' 会计科目' 用VC怎么写?
}
4个事件的VC代码,能写一个的得25分;
2)、控件DEMO下有用Delphi6.0写的DEMO,能用VC重写的另开贴独得200分。
控件下载地址:http://www.delphifans.com/SoftView/SoftView_610.html
谢谢各位,分数先搞定的先得,绝不食言!!!
...全文
144 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
djfu 2005-11-10
  • 打赏
  • 举报
回复
楼主好像不是搞IT的吧?竟然是注册会计师?日子过的挺悠闲的哦
yang6130 2005-11-10
  • 打赏
  • 举报
回复
问题一搞定了,散分,up有分!
明天开始休假,下星期二准时结贴

yang6130 2005-11-09
  • 打赏
  • 举报
回复
up
smcity 2005-11-08
  • 打赏
  • 举报
回复
偶试一下,先谢了
菜牛 2005-11-08
  • 打赏
  • 举报
回复
我没有搞过会计,只是知道一些编程原理而已。其他几个事件差不多吧。
yang6130 2005-11-08
  • 打赏
  • 举报
回复
谢谢楼上的二位,对VC的字符串操作有点感觉了,同时贴出另三个自定义事件的DELPHI码,以兑现承诺。

procedure TForm1.CNPZGridPro1_GetCy(ASender: TObject;
const sAccID: WideString; var sResult: WideString);//sAccID为会计科目代码
begin
sresult:='RMB';
if upperCase(copy(sAccID,1,1))='W' then //代码首位为W则可以核算外币,否则只能核算人民币
sresult:='USD';
end;

procedure TForm1.CNPZGridPro1_GetRate(ASender: TObject;
const sCy: WideString; var fResult: Double);//sCy为币别
begin
fresult:=1;//RMB VS 记账本位币 为1
if uppercase(sCy)='USD' then fresult:=8.2767;USD VS RMB 为8.2767
end;

procedure TForm1.CNPZGridPro1_ValidCy(ASender: TObject; const sAccID,
sCy: WideString; var bResult: WordBool);
begin
bresult:=false;
if uppercase(sCy)='RMB' then bresult:=true;//所有科目均可核算RMB
if upperCase(copy(sAccID,1,1))='W' then //W开头的科目可核算USD
if uppercase(sCy)='USD' then
bresult:=true
else
bresult:=false;
end;
yang6130 2005-11-08
  • 打赏
  • 举报
回复
to Mackz(在相互)
哇,看来你对会计还挺熟的,我是注册会计师,有会计方面问题可以交流一下^_^
菜牛 2005-11-07
  • 打赏
  • 举报
回复
新建一个对话框工程,在对话框上插入一个ActiveX控件,即你的CNPZGRID控件,在控件上点鼠标右键,选择“添加事件处理程序”,利用VC类向导添加事件处理,“消息类型”选择“_GetAccText”,默认的函数处理程序名称为“_GetAccTextCnpzgrid1”,“类列表”中选择你的对话框类,然后点击“添加编辑”,在代码中

void CA...lg::_GetAccTextCnpzgrid1(LPCTSTR sAccID, BSTR* sResult)
{
// TODO: 在此处添加消息处理程序代码
CString strResult;
CString strAccID(sAccID);
if (strAccID == "1001")
strResult = _T("1001 现金");
else if (strAccID == "1002")
strResult = _T("1002 转帐");
else
strResult = _T("错误");

*sResult = strResult.AllocSysString();
}
吹泡泡的小猫 2005-11-07
  • 打赏
  • 举报
回复
CString strTmp;
strTmp = sAccID;
strTmp += "会计科目";
*sResult = strTmp.AllocSysString(这个函数具体名字忘了)


C语言的字符串操作比较麻烦

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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