系统里有一个发送短信的窗体
老系统是使用固定的短信格式:
15890914997/编号200910的客户10月份用水20吨,合计税费499.5元,请于2010年1月20之前交费;如有疑问你拨打010-23982981,北京水司。红色部分是程序从数据库获得填充的现在新系统打算做成短信格式用户可配的,也就是说有一个界面配备短信格式;然后生成短信文本时,使用用户配置的格式进行填充数据。哪位做过类似的?或者有什么比较好的创意?
尝试窗体:
左边是TreeView右边是属性框,用户可以通过ContextMenu动态生成树,保存为XML文档,然后解析XML文档作为用户提供的短信格式。这样做出来效果不好。
征求一下各位,是不是有好的创意。

解决方案 »

  1.   

    用类似字符串拼接SQL查询语句的方法来做,应该不复杂,分为固定内容(即你的例句中的黑色部分)和字段内容(红色部分),让用户自己组织它们的顺序
      

  2.   

    以数据库查询为例,将内容分为直接字符(下称黑色)和查询结果(下称红色)。
    由用户生成一个字符串,其中红色部分用字段名称 + 特殊标识符来替代。以你举的例来说:
    【手机号】/编号【编号】的客户【月份】用水【数量】吨,合计税费【金额】元,请于【期限】前交费,如有疑问你拨打010-23982981,北京水司。
    其中【】中的内容即为字段名称,将查询结果中每个字段的内容接照它对应的特殊标识符进行替代,string 的 Replace运算,就可以生成结果字符串。
    加特殊标识符的目的是防止黑色部分中出现字段名,会造成错误的覆盖。
      

  3.   

    模板化...这在MIS系统里是很常见的设计,比如票据类和公文类...3楼的算是一种例子...
      

  4.   

    没看明白..^_^原来是这样实现的
     string msg = "{0}/编号{1}的用户,{2}月用水{3}吨金额{4}元.请于{5}前交费或拨打66200001咨询.感谢支持!自来水公司";
    查询结果填充
    string.Format(msg, sj.Trim(), vip.Trim(), m, sl, je, qx)
      

  5.   

    string msg = "{0}/编号{1}的用户,{2}月用水{3}吨金额{4}元.请于{5}前交费或拨打66200001咨询.感谢支持!自来水公司";把上面这段做成一个ini文件,在文件中配置,每次读取出来后再format.
      

  6.   

    短信文本、格式要实现可以让用户配置;做成ini文件,用户怎么配置呢?
      

  7.   

    弄个模板,动态的添加删除以前在WEB上实现过C/S的话,应该更简单的
      

  8.   

    有例子不,让参考一下。我实现的窗体
    左边是TreeView右边是属性框,用户可以通过ContextMenu动态生成树,保存为XML文档,然后解析XML文档作为用户提供的短信格式。 这样做出来效果不好。一点也不灵活! 
      

  9.   

    再给你说细一点,如果只是一次性输出,就这样,10个Textbox,对应10个选择框,一个ComandButton,Button的事件代码如下。
    假设已经返回了正确的记录
    新建一个 String a = ""; 
    遍历这些 textBox, 如果 textBox.text == "" 则跳过
    如果选择框为 False,则
    a += textbox.text,
    否则,
    a += 记录.textbox.text对应的字段的值
    完成遍历后,a 的值就是你要的结果。可以把这个东东做成可存储的文件,由用户来调用和修改
      

  10.   

    在多条件查询时,经常使用这种形式拼凑SQL。
    一个复选框+一个文本框
    文本框只有的enable属性和复选框的checked属性相关
    if 复选框.checked
    {
    如果文本框值==null
    MessageBox提示
    else
    对应参数=文本框值
    }
    else
    对应参数=""
    在程序中使用数组存储文本框值
    -----------------------
    这种形式在拼SQL时比较好用,在控制打印文本以及格式时,感觉不是太好。^_^
      

  11.   

    打错字啦^_^在多条件查询时,经常使用这种形式拼凑SQL。 
    一个复选框+一个文本框 
    文本框的enable属性和复选框的checked属性相关 
    if 复选框.checked 

    如果文本框值==null 
    MessageBox提示 
    else 
    对应参数=文本框值 

    else 
    对应参数="" 
    在程序中使用数组存储文本框值 
    ----------------------- 
    这种形式在拼SQL时比较好用,在配置短信文本以及格式时,感觉不是太好。^_^
      

  12.   


    是这样的。把各个类似 msg 这样的信息放在资源文件或者数据库中就可以了。
      

  13.   

    使用一个普通界面管理这些标签,然后在一个textbox中,让用户选择标签插入即可,还可以增加预览功能。
      

  14.   

    顶~~~
    目前系统中实现的方法,是预先定义好格式xml,解析xml提取格式字符串。
    没有比较好的创意
    继续顶~~~~~
      

  15.   


    这种办法不错,可以放一个RichTextBox,然后一个带下拉菜单的Button叫插入信息之类的,点击Button时弹出下拉菜单,选择以后在RichTextBox的部分用特殊的颜色,比如蓝色,显示【手机号】,然后再加个TextBox提供实时预览功能.
      

  16.   

    这位仁兄有实现的界面看下不?RichTextBox是怎么一个控件,没用过。
    windows编程都是用DevExpress