小编e4r*_*dog的帖子

业务层(BLL)数据访问层(DAL)和UI之间的通用结构?

我希望我的所有图层BLL,DAL和UI共享类(具体或接口).

这真的是一种不好的做法吗?

我不想从我的DAL方法返回数据表,而是返回BLL可以直接使用的对象.

我希望有一个单独的VS项目,其中包含所有层应该知道的类.

示例:我想定义一个所有层都应该知道的批次类.UI应该能够接收批次类,以便显示或使用户能够提交要处理的批次.此外,DAL应该能够使用批次类查询数据库并返回它们.另一方面,BLL应该获得这些批次并将业务规则应用到它们上.

如果这是完全错误的替代品有哪些?

.net c# user-interface data-access-layer business-layer

4
推荐指数
1
解决办法
3165
查看次数

如何在c#中动态获取类元素

我可能在这里缺少基本知识,但我会去找它并问它.

让我们说我们有一个字符串数组:

ItemCode
ItemDescription
Run Code Online (Sandbox Code Playgroud)

我们有一个班级:

public class InventoryItem
    {
        public string ItemCode { get; set; }
        public string ItemDescription { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

我希望能够根据数组的值动态引用InventoryItem的属性.

我需要遍历数组并通过数组的当前字符串成员获取类的属性值.

我该怎么做?

c# type-conversion visual-studio-2010

3
推荐指数
1
解决办法
1843
查看次数

Typeahead js打破bootstrap内联形式

我有这样的形式:

<form role="form" class="form-inline" name="frmUserData" id="frmUserData">
    <div class="form-group">
        <label for="txtlitm">Item Code:</label>
        <input type="text" class="form-control" id="txtlitm" name="txtlitm" autocomplete="off">
    </div>
    <div class="form-group">
        <label for="txtmcu">Branch Plant (filter):</label>
        <input type="text" class="form-control" id="txtmcu" name="txtmcu">
    </div>
    <div class="form-group">
        <label for="txtlocn">Location (filter):</label>
        <input type="text" class="form-control" id="txtlocn" name='txtlocn'>
    </div>
    <div class="form-group">
        <button type="button" class="pull-left btn btn-default" id="btnGO">
            Search
        </button>
    </div>
</form>
Run Code Online (Sandbox Code Playgroud)

在我启用typeahead.js之后看起来像这样:

PIC链接

截图

项目代码标签未与文本框对齐,与其他字段对齐.

我该怎么办才能解决这个问题?

typeahead.js twitter-bootstrap-3

3
推荐指数
1
解决办法
1092
查看次数

通过自定义报告使用SUBMIT时出现运行时错误“ SYSTEM_ABAP_ACCESS_DENIED”

我正在尝试使用cl_salv_bs_runtime_info以在标准报告中使用SUBMIT后在内存中获取ALV数据。

上面的代码是:

REPORT ztest1.

FIELD-SYMBOLS <lt_pay_data>   TYPE ANY TABLE.
DATA lr_pay_data              TYPE REF TO data.

cl_salv_bs_runtime_info=>set(
   EXPORTING display  = abap_false
             metadata = abap_false
             data     = abap_true ).

SUBMIT rfts7000
 AND RETURN.

TRY.
    cl_salv_bs_runtime_info=>get_data_ref(
      IMPORTING r_data = lr_pay_data ).
    ASSIGN lr_pay_data->* TO <lt_pay_data>.
  CATCH cx_salv_bs_sc_runtime_info.
    MESSAGE `Unable to retrieve ALV data` TYPE 'E'.
ENDTRY.

cl_salv_bs_runtime_info=>clear_all( ).
Run Code Online (Sandbox Code Playgroud)

运行时,程序rfts7000会运行并提示您选择数据。

提交选择屏幕后,我得到:

错误

ST22提取物: ST22文字 有任何想法吗?

sap abap

3
推荐指数
1
解决办法
89
查看次数

这是状态信息显示的最佳方式吗?

这是使用显示一段时间的状态消息的最佳方式吗?

private void SetStatus(Color _color, string _msg)
{
    System.Threading.Thread t = new System.Threading.Thread(() =>
    {
        stsStatusMsg.ForeColor = _color;
        stsStatusMsg.Text = _msg;
        System.Threading.Thread.Sleep(2000);
        stsStatusMsg.Text = "";
    });
    t.Start();
}
Run Code Online (Sandbox Code Playgroud)

调用它的示例:

SetStatus(Color.Red, AppMessages["msgALREADYIN"]);
Run Code Online (Sandbox Code Playgroud)

stsStatusMsgToolStripStatusLabel在整个应用程序操作期间,只能通过此方法访问(即a ).

上面的代码实际上有效.消息显示在控件上2秒钟然后消失......

c# multithreading winforms

1
推荐指数
1
解决办法
2072
查看次数

一次写一条记录,使用一个静态类?

每次按下按钮,我都会在文件中写入一行文本.

我已经定义了一个这样的静态类:

public static class PalletRecord
{
    public static string MachineName { get; set; }
    public static DateTime TimeStamp { get; set; }
    public static string BranchPlant { get; set; }
    public static string Location { get; set; }
    public static string Data { get; set; }
    public static string ItemCode { get; set; }
    public static string ItemDescription { get; set; }
    public static decimal Quantity { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

每次我需要写入文件时,我填充静态类属性,我使用File.AppendAllLines写入文本文件.

我应该用非静态类做到吗?

.net c# class

1
推荐指数
1
解决办法
97
查看次数

Task.StartNew 在运行时持有主线程

在此代码运行时,我无法在 UI 中移动或执行任何操作:

var a = txtLot.Text;
var b = cmbMcu.SelectedItem.ToString();
var c = cmbLocn.SelectedItem.ToString();

var itm = Task<JDEItemLotAvailability>
.Factory.StartNew(() =>
{
        btnCheck.BackColor = Color.Red;
        var ret = Dal.GetLotAvailabilityF41021(a, b, c);
        btnCheck.BackColor = Color.Transparent;
        return ret;
}
    );
lblDescriptionValue.Text = itm.Result.Description;
lblItemCodeValue.Text = itm.Result.Code;
lblQuantityValue.Text = itm.Result.AvailableQuantity.ToString();
Run Code Online (Sandbox Code Playgroud)

我尝试评论对 Dal 方法的调用并改为使用 thread.sleep(5000) 但我仍然无法移动表单。

编辑:也许我使用错误的方法来取回结果?

更新:

在第一个回复(约翰的)之后,我尝试了这个:

var a = txtLot.Text;
var b = cmbMcu.SelectedItem.ToString();
var c = cmbLocn.SelectedItem.ToString();

var itm = Task<JDEItemLotAvailability>
.Factory.StartNew(() =>
{
        btnCheck.BackColor = Color.Red;
        var ret = …
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading winforms

1
推荐指数
1
解决办法
2012
查看次数

遍历一系列powershell自定义对象并输出到html

我有一个数组:

$results =@()
Run Code Online (Sandbox Code Playgroud)

然后我通过wmi循环自定义逻辑并创建我添加到数组的自定义对象,如下所示:

$item= @{}
$item.freePercent = $freePercent
$item.freeGB = $freeGB
$item.system = $system
$item.disk = $disk
$results += $item
Run Code Online (Sandbox Code Playgroud)

我知道想要对结果数组中的一些东西,比如转换为html.

我可以用foreach和自定义html写作,但我想使用convertto-html ...

PS我可以打印出这样的数据,但只有这样:

foreach($result in $results) {
    $result.freeGB
}
Run Code Online (Sandbox Code Playgroud)

powershell custom-object

0
推荐指数
1
解决办法
5520
查看次数