小编arm*_*ive的帖子

更新数据库源后,如何使Visual Studio 2010刷新数据集?

我已将新列添加到MS Access 2010已连接到的现有数据库中Visual Studio 2010。更新数据库后,“数据源”窗口中DataSet没有新列。我查看了这样的答案:Visual Studio DataSet Designer刷新表,但是使用“ SELECT * FROM Reservations”(建议更新查询将导致表刷新)配置默认查询并没有刷新任何内容。而且,“数据源”和“数据库资源管理器”窗口上的内置“刷新”按钮尚未捕获更新(还有一个我想使用的新表)。

如何(非编程方式)更新我的数据集?我有自定义绑定,并且不想通过删除此数据源并“重新添加”来手动重新创建它们。我宁愿为我的新字段添加一些自定义绑定,并继续从事该项目!

c# database ms-access refresh dataset

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

将 Woocommerce 订阅更新并同步到自定义日期

我们有一个客户正在运送订阅产品(实际上是包含四到五个产品捆绑包的复合产品),并且他们每周提供送货服务。他们的交货日期始终是星期四。Woocommerce 订阅允许同步到特定日期,因此我们选择了“对齐订阅续订日”选项,并且在给定产品中,我们将每个选项设置为在星期四进行(“每 4 周”、“每第三周”等)

产品同步设置的屏幕截图

我们的情况需要注意的是,前一天(周三)或周四收到的订单无法在该周履行,需要将其开始日期/交货日期推迟到下周四。为此,我们编写了一个functions.php使用woocommerce_subscriptions_product_first_renewal_payment_time钩子的函数:

<?php
function rem_check_renewal_date( $first_renewal_timestamp, $product_id, $from_date_param, $timezone ) {

  if ( date('D') == 'Wed' || date('D') == 'Thu' ) {

    $from_date_param = strtotime('Thursday next week');
    return $from_date_param;

  } else {

    // Nothing needs to be done, because we must be on a Fri thru Tue
    return;

  }

}

add_filter( 'woocommerce_subscriptions_product_first_renewal_payment_time', 'rem_check_renewal_date', 10, 4);
?>
Run Code Online (Sandbox Code Playgroud)

现在我们已经做到了这一点,我们可以看到结账上的一些字段似乎正在正确更新。例如,在下一次付款日期(我们将其更改为下一次交货)下,它正确显示下周而不是今天(在撰写本文时恰好是星期四)。 购物车截图

但并非订阅仪表板中的所有字段/列值都会更改。例如,实际开始日期列显示收到订单的日期。

订阅概述的屏幕截图

您还可以在 Woocommerce 发送的确认电子邮件中看到,开始日期被列为当前日期,但根据我们的挂钩,“下次付款”已移动一周。

电子邮件订单确认截图

当我们在星期三下测试订单时,开始日期列显示星期三。如果它的真正用途是作为“收到订单”日期,这是有道理的,所以我的问题是这样的:

需要更新哪些(如果有)其他列和/或值,以便将前一天收到的订单或交货日移至下周?我们需要确保后续订单保持在 2 周、3 周、4 周的计划内,并与更改后的首次付款日期保持一致。但我不确定仅使用上面的钩子更改第一个付款日期是否足够,并且文档没有详细说明。

php wordpress woocommerce woocommerce-subscriptions

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

使用XOR绘制JavaScript/HTML5以删除旧的精灵

我正在为一个小游戏构建引擎,现在我刚刚得到一个红色圆圈,两个小眼睛作为主角.我有keyPress检测运动的功能,并且有效,但我想使用很久以前在QBASIC中使用的东西来移除角色并在新位置重绘:XOR

基本上,在按键上会发生这种情况:

if (code == 39) {
    mainChar.drawChar();
    mainChar.x += 1;
    mainChar.leftEye.x += 1;
    mainChar.rightEye.x += 1;
    mainChar.drawChar();
}
Run Code Online (Sandbox Code Playgroud)

我想在相同的空间上绘制角色,然后再次调整位置和绘图将删除第一个实例并绘制一个新实例.这是我的drawChar方法的片段:

  context.beginPath();
  context.arc(mainChar.x, mainChar.y, mainChar.radius, 0, 2 * Math.PI, false);
  context.closePath();
  context.fillStyle = 'red';
  context.fill();
  context.globalCompositeOperation = "xor";
Run Code Online (Sandbox Code Playgroud)

这是'有点'的工作,并且通过'排序',我的意思是它并没有完全抹掉第一张图.第一次调用还没有转移(并且在加载时调用了字符)所以我认为XOR会完全擦除图像,因为它们的坐标和一切都是相同的?

我是偏离基础,实施稍微错误的东西,还是有更好的方法来做到这一点?

javascript html5 drawing canvas xor

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

我什么时候应该在 OOP 中创建对象?

我尝试寻找这个问题的答案,但很难用语言表达,而且许多问题要么是关于如何创建类,要么是关于如何做非常具体的事情。我需要更多的实际概述 - 我是自学的,我了解对象是什么(以及如何创建它们),但我从未见过关于何时创建对象的良好解释。

这听起来可能是一个奇怪的问题,其答案是“总是”,但我注意到我的 OOP 代码往往在某些时候开始看起来是程序性的。如何结合我对这两种范式的理解,以便编写结构良好的面向对象代码?在某些时候,有一些主要函数或代码体需要创建变量并实例化对象,然后执行诸如执行条件测试之类的操作,因此我正在努力弄清楚应该将哪些内容作为对象放入代码中。

也许答案是我上面提到的所有这些点都应该由另一个对象封装。我不知道——这就是我努力从理解的角度前进的地方。

oop object

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

使用这个内部对象数组

我有一个使用构造函数创建的对象数组.这是构造函数定义:

function Expander(elem, startingFlipped) {
  this.element = elem;
  this.flipped = startingFlipped;
}
Run Code Online (Sandbox Code Playgroud)

(下面,rawElems只是结果document.getElementsByClassName('foo');)

一旦DOMContentLoaded事件触发,我就会执行此操作来查找,构造新对象并将其推送到数组中:

for (var i = 0; i < rawElems.length; i++) {
  expanders[i] = new Expander(rawElems[i], false);

  expanders[i].this.element.addEventListener("click", function (event) {
    console.log("Clicked " + expanders[i].this.element);
  });
}
Run Code Online (Sandbox Code Playgroud)

问题是,我不知道如何访问该属性的语法this.这当前抛出错误:

未捕获的TypeError:无法读取HTMLSpanElement中未定义的属性"元素".

这在某些方面很棒,因为这些ARE <span>元素(控制台记录对象和数组显示它已正确填充).

但是因为我正在尝试这个构造函数模式,如何使用this?正确引用每个对象内的元素?

javascript arrays javascript-objects

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

如何启动和停止多个JavaScript计时器?

我想在JavaScript中运行一个计时器30秒,播放一个哔哔.WAV文件,然后计数10秒再次播放蜂鸣声.我想要重复此操作,直到达到所需时间或用户介入并单击停止按钮.

这就是我实现它的方式:

function startWorkOut(param) {

        if (param === 1) {
            setTimeout(playBeep, 30000); //30 second workout
        }
        else if (param === 0) {
            setTimeout(playBeep, 10000); //10 second rest
        }
        return;
}

function playBeep() {

        beep.play(); //already loaded above this snippet

        i++; //simple switch for going back and forth between 30 & 10 secs
        if (i % 2 === 1) {
            startWorkOut(0);
        }
        else startWorkOut(1);

        return;     

}
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何阻止它.因为这两个函数来回互相调用,我需要知道如何进行某种手动中断.

javascript timer

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

JavaScript 中的类变量和 setInterval

由于我需要将匿名函数传递给setInterval我是否需要参数,因此我尝试使用以下代码。最初我让它调用this.countUp,但是当它返回时,NaN我做了一些阅读并.call(this)在 SO 上找到了解决方案。然而,当我将它与匿名函数(我承认我有点迷茫)结合起来时,我现在得到了TypeError: this.countUp is undefined了 Firebug。

我想我不需要使count可访问性,也不需要playBeep方法,但让我们假装我想要这样我就可以理解我在这段代码中做错了什么。

    function workout() {
        var beep = new Audio("beep1.wav");
        this.timerWorkout; //three timers in object scope so I can clear later from a different method
        this.timerCounter; 
        this.timerCoolDown;
        this.count = 0;

        this.startWorkout = function() {
            alert(this.count);
            this.timerWorkout = setTimeout(this.playBeep, 30 * 1000); //workout beep - 30 seconds
            this.timerCounter = setInterval(function() {this.countUp.call(this)}, 1000); //on screen timer - every second

        }

        this.startCoolDown = …
Run Code Online (Sandbox Code Playgroud)

javascript timer object anonymous-function setinterval

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

在For循环中更改变量名称以反映迭代器的值?

我试图从不同的文本文件加载到内存中的文本.它们都是单词,它们都按各自文本文件中单词的长度分组(例如words3.txt,words4.txt ...)

我正在使用StreamReader文件,并且由于语法,我相当肯定我可以迭代它正在使用哪个文件,如果我在for循环内执行它.我不明白为什么我应该有12个不同的using陈述.

String[] words3 = new String[2000];

for (int i = 0; i < 12; i++)
{
    using (StreamReader sr = new StreamReader(path + "words" + (i+3) + ".txt"))
        {
            String strTemp = sr.ReadLine();
            words3 = strTemp.Split(' '); //My current logic fails here
        }
}
Run Code Online (Sandbox Code Playgroud)

我想迭代我的不同单词数组(单词3,单词4 ......单词15),但我自然而然地遇到了一个问题,我正在存储这些数组的名称.它保持不变,所以我只是覆盖它12次.在VB.NET我可以将迭代器变量连接到数组名称,就像这样(或类似于此的东西):

words & (i+3) = strTemp.Split(' ');
Run Code Online (Sandbox Code Playgroud)

这显然不会像我描述的那样在C#中起作用.解决这个问题的最佳方法是什么?我可以将数组放入一个更大的数组中并以某种方式迭代它们吗?在文本文件中,单词不存储在单独的行上,它们由单个空格分隔.为了节省时间,当我去查看用户的单词是否包含在我的"词典"中时,我只想在包含具有适当字母数的单词的数组中搜索匹配项.

c# for-loop streamreader

0
推荐指数
2
解决办法
1708
查看次数

ACCPAC和Excel电子表格

有没有办法在VBA for Excel 2010中引用ACCPAC?

我想知道是否可以通过在Excel中运行宏来以编程方式将电子表格中的信息输入到我们的会计数据库中.我刚刚在ACCPAC的测试数据库中输入新客户时,一直在研究我记录的宏.我们的运营中心将信息存储在电子表格中,我希望能够在不重新输入数据的情况下进入数据库.

我也是开放式的解决方案,看到ACCPAC从电子表格中获取数据,而不是创建ACCPAC连接和对象的电子表格宏.

这不是一个超级参与的项目 - 我们只是想要减少冗余.

excel vba accpac

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

擦除/清除textarea后,我再也无法附加文本了

我正在构建一个工具来帮助我为AdWords组合不同的关键字组合.我有一个简单的表单,有三个复选框,一个输入框(用于起始关键字),一个提交按钮和一个结果的textarea(输入的变体).

第一次围绕它工作很好,我的条件都工作,我可以运行一系列关键字,每个关键字.submit()将填充textarea.擦除内容时出现问题.以下是填充方式的示例:

if($("#phrase").is(":checked")) {
    //Get keywords from input
    var text = $("#keyword").val();

    //Prepend and append double-quotes
    text = "\"" + text + "\"";

    //Output
    var val = $("#output").val();
    $("#output").append(text + "\r\n");
} 
Run Code Online (Sandbox Code Playgroud)

当我提交时,我知道它仍然在我的.submit()函数中的某个位置执行,因为如果我取消选中所有框,我的alert(未显示)会被抛出.

认为这是我在重置逻辑中遗漏的东西,我完全删除了重置并将其发布到我的个人网站,以便我可以开始工作.我跑掉了一些关键字,然后手动删除了文本框的内容.奇怪的是,同样的事情仍在发生:擦除/清除文本框后,我无法接受关键字并创建更多变体!

我在这里创造了一个小提琴:关键词变奏小提琴 - 我能够重新创造这个问题并且不知道它为什么会发生.在生成几个关键字后尝试删除文本,然后再尝试生成一些关键字.

html javascript jquery

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