Сергей (Автор тем)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
futures_client_holding выдает значение nil
 
Всем здравия! Не могу понять, почему значение nil. Функция function PutDataToTable(posNow) передает значение nil. Decoda тоже не особо помогла
Код
 Class = "SPBFUT"
 Emit = "SiU0"
 MyAccount = "SPBFUTJReBr"
Код
function main()
    while is_run==true do
      body()                                                                             --основные вычисления 
    end
end

Код
function body()
        if (Timer > 0) then
          Timer = Timer-1
         PutDataToTableTimer()
         sleep(1000)
         return
        end

       local ServerTime = getInfoParam("SERVERTIME")
            if(ServerTime==nil or ServerTime=="") then
               Problem = "Error!"
          Timer = 3
                return
         else 
                 Problem = ""
            end
           if (IsWindowClosed(TableId)) then
               CreateWindow(TableId)
               PutDataToTableInit()
           end
        
       local SessionStatus = tonumber(getParamEx(Class,Emit,"STATUS").param_value)
                 if (SessionStatus~=1) then
              Problem = "Сессия закрыта"
                   Timer = 3
              return
                 end
   
       local function f12 (TableId, msg, X, Y)
               if (msg==QTABLE_LBUTTONDBLCLK) then
                 if (X==13 and Y==1) then
                     message("Робот работает",1)
                     elseif (X==13 and Y==3) then
                message("Робот остановлен",1)
                     is_run = false
                      end
               end
         end
                    SetTableNotificationCallback (TableId, f12)
                    SetCell(TableId,1,2,ServerTime)
                    SetCell(TableId,1,3,Problem)
               
   Problem = ""

   local PosNow = PosNowFunc(Emit,MyAccount)
      
        PutDataToTable(posNow) 
         
       
      sleep(1000)
end

function PutDataToTable(posNow)
  SetCell(TableId,3,2,tostring(posNow))
end

function PosNowFunc(emit,account) 
    local nSize = getNumberOf("futures_client_holding")
       if (nSize~=nil) then
      for i=0,nSize-1 do
           local row = getItem ("futures_client_holding",i)
                         if (row~=nil and row.sec_code==emit and row.traccid==account) then
                          return tonumber(row.totalnet)
         end
      end
   end
           return 
end 

function PutDataToTableInit()
     Clear(TableId)
     SetWindowPos(TableId,100,200,500,300)
     SetWindowCaption(TableId,"Робот")
---------------------------------------------
    for i=1, 13 do 
      InsertRow(TableId,-1)
    end
  
    SetCell (TableId, 1, 1, "Время сервера =>")
    SetCell (TableId, 2, 1, "Код бумаги =>")
    SetCell (TableId, 3, 1, "Текущая позиция =>")
    SetCell (TableId, 4, 1, "Сигнал ТС =>")
    SetCell (TableId, 5, 1, "ЛОТ =>")
    SetCell (TableId, 7, 1, "Номер счета =>"); SetCell (TableId, 7, 3, "ФОРТС")
    SetCell (TableId, 8, 1, "Код класса =>")
    SetCell (TableId, 13, 1, "Запуск робота")
    SetColor(TableId, 13, 1, RGB(255,255,0), RGB(0,0,0), RGB(0,220,220), RGB(0,0,0))
    SetCell (TableId, 13, 3, "СТОП")
    SetColor(TableId, 13, 3, RGB(255,255,0), RGB(0,0,0), RGB(0,220,220), RGB(0,0,0))
  
  
  local nRow,nCol = GetTableSize(TableId)
    for i=1,nRow do
        if (i%2==0) then
        SetColor(TableId, i, QTABLE_NO_INDEX, RGB(220,220,220), RGB(0,0,0), RGB(0,220,220), RGB(0,0,0))
         else
        SetColor(TableId, i, QTABLE_NO_INDEX, RGB(255,255,255), RGB(0,0,0), RGB(0,220,220), RGB(0,0,0))
   
        end
    end
end

function PutDataToTableTimer()
     SetCell (TableId, 1, 1, "Время сервера =>")
      Highlight(TableId, 1, QTABLE_NO_INDEX, RGB(0,20,255), RGB(255,255,255),500)
end
  
function WriteToEndOfFile(sFile,sDataString)
    local serverTime = getInfoParam("SERVERTIME")
    local serverData = getInfoParam("TRADEDATE")
      sDataString = serverData..";"..serverTime..";"..sDataString.."\n"
        local f = io.open(sFile,"r+")
           if (f == nil) then
             f = io.open(sFile,"w")
      end
        if (f~=nil) then
           f:seek("end",0)
      f:write(sDataString)
      f:flush()
      f:close()
       end
end
Не работает функция обратного вызова
 
Всем здравия! Не могу понять, почему не работает функция. С переменными путаницы нет, локальная объявлена. Что не так?
Код
SetTableNotificationCallback (Tab1, f12)
 local f12 = function(Tab1, msg, X, Y)
      if (msg==QTABLE_LBUTTONDOWN ) then
          if (X==13 and Y==1) then
             message("Робот работает",1)
            elseif (X==13 and Y==3) then
             message("Робот остановлен",1)
             is_run = false
          end
     end
   end
Не пойму, где ошибка.
 
Код
function body()
local ServerTime = getInfoParam("ServerTime")
if(ServerTime==nil or ServerTime=="") then
Problem = "Error!"
end
SetCell(TableID,1,2,ServerTime)
SetCell(TableID,1,3,Problem)
sleep(1000)
end


function PutDataToTableInit()
Clear(TableID)
SetWindowPos(TableID,100,200,500,300)
SetWindowCaption(TableID,"Робот")
---------------------------------------------
InsertRow(TableID,-1)
end

Всем здравия! Задачка простенькая, но я не понимаю, в чем здесь проблема. На выходе Пустая таблица без заглавия окна и серверного времени. Спасибо!
Проблема с кодировкой
 
Всем здравия! Есть проблема, решение, как я понимаю, простое, но я туплю.
Пишу в NP++ с кодировкой UTF-8. При запуске в терминале, все отображается в другой кодировке.
Подскажите как исправить.
Спасибо!
Страницы: 1
Наверх