Предотвращение приложения Flex, кэширующегося в браузере (несколько модулей)

От всех листов до мастер-листа

Версия массива

Sub AllSheetsToMaster()

  Const cMaster As Variant = "Master"   ' Master Worksheet Name/Index
  Const cSearch As String = "2019"      ' Search String
  Const cFirstR As Long = 1             ' Source First Row Number
  Const cFirstC As Variant = 1          ' Source First Column Letter/Number

  Dim vntS As Variant   ' Source Array
  Dim vntC As Variant   ' Count Array
  Dim vntT As Variant   ' Target Array
  Dim LastUR As Long    ' Source Last Used Row Number
  Dim LastUC As Long    ' Source Last Used Column Number
  Dim LastR As Long     ' Target Last Used Row Number
  Dim x As Long         ' Worksheet Counter
  Dim i As Long         ' Source Array Row Counter
  Dim j As Long         ' Source/Target Array Column Counter
  Dim k As Long         ' Target Array Row Counter

  For x = 1 To ThisWorkbook.Worksheets.Count ' Worksheets

    ' From Source Worksheet to Source Array.

    With ThisWorkbook.Worksheets(x)
      ' Check if current worksheet name is th same as Master Worksheet Name.
      If .Name = cMaster Then GoTo NextWorksheet
      ' Check if current worksheet is empty.
      If .Cells.Find("*", .Cells(.Rows.Count, .Columns.Count), -4123, , 1) _
          Is Nothing Then GoTo NextWorksheet
      ' Calculate Last Used Row and Column in current Source Worksheet.
      LastUR = .Cells.Find("*", , , , , 2).Row
      LastUC = .Cells.Find("*", , , , 2, 2).Column
      ' Copy current used range to Source Array.
      vntS = .Range(.Cells(cFirstR, cFirstC), .Cells(LastUR, LastUC))
    End With

    ' From Source Array to Count Array.

    ' Count Array cannot be bigger than Source Array.
    ReDim vntC(1 To UBound(vntS))
    k = 0 ' Reset Target Array Row Counter!!!
    For i = 1 To UBound(vntS) ' Rows
        For j = 1 To UBound(vntS, 2) ' Columns
            If vntS(i, j) = cSearch Then
                k = k + 1 ' Increase Target Array Row Counter.
                vntC(k) = i ' Write Source Array Row number to Count Array.
                Exit For ' Stop checking as soon as found.
            End If
        Next
    Next
    ReDim Preserve vntC(1 To k) ' Resize Count Array (make it smaller).

    ' From Source Array to Target Array.

    ' Resize Target Array to the Count Array rows and Source Array columns.
    ReDim vntT(1 To k, 1 To j)
    For i = 1 To k ' Rows
        For j = 1 To UBound(vntS, 2) ' Columns
            vntT(i, j) = vntS(vntC(i), j) ' Write to Target Array.
        Next
    Next

    ' From Target Array to Target Range.

    With ThisWorkbook.Worksheets(cMaster)
      ' Calculate Target Last Used Row Number.
      If Not .Cells.Find("*", .Cells(.Rows.Count, .Columns.Count), -4123, , 1) _
              Is Nothing Then LastR = .Cells.Find("*", , , , , 2).Row
      ' Copy Target Array to Target Range.
      .Cells(LastR + 1, cFirstC).Resize(UBound(vntT), UBound(vntT, 2)) = vntT
    End With

NextWorksheet:
  Next

End Sub
8
задан Simon_Weaver 19 November 2008 в 01:28
поделиться

5 ответов

Кэширование не сделано Flash player, но браузером, таким образом, это находится вне контроля Adobe. Я думаю, что Вы нашли осуществимое решение. Если я не хочу кэшироваться, я обычно добавляю случайное число на URL.

0
ответ дан 5 December 2019 в 21:23
поделиться

То, что я сделал, является контрольной суммой файл SWF, и затем добавьте это к его URL. Остается таким же, пока файл не восстановлен/повторно развернут. Обработанный автоволшебно несколькими строками Сценария PHP серверной стороны

1
ответ дан 5 December 2019 в 21:23
поделиться

У меня была аналогичная проблема, и в итоге файлы SWF были помещены в подкаталог, названный как номер сборки. Это означало, что URL-адрес SWF-файлов каждый раз указывал на другое место.

В идеале это должно быть обеспечено платформой, но это не приносит радости. Но это прекрасно работает для нас и очень легко интегрируется в наши автоматизированные сборки с Hudson - пока никаких жалоб.

3
ответ дан 5 December 2019 в 21:23
поделиться

вот пример.

  function AC_FL_RunContent(){
    var ret = AC_GetArgs(arguments, ".swf?ts=" + getTS(), "movie", 
              "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000",
              "application/x-shockwave-flash");
    AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);  
  }

  function getTS() {
    var ts = new Date().getTime();
    return ts;
  }

AC_OETags.js - это файл и html-шаблон существует в нескольких местах. но, как сказано в моем сообщении, я столкнулся с проблемой другого типа.

1
ответ дан 5 December 2019 в 21:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: