Advertisement
Guest User

Untitled

a guest
Jul 6th, 2018
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.54 KB | None | 0 0
  1. USE [SBODemoCH]
  2. GO
  3. /****** Object:  StoredProcedure [dbo].[CS_Print_TranslationsLD]    Script Date: 06.07.2018 09:15:28 ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8.  
  9. ALTER PROCEDURE [dbo].[CS_Print_TranslationsLD]
  10. -- Add the parameters for the stored procedure here
  11. (@DocKey@ INT, @ObjectId@ INT)
  12.  
  13. AS BEGIN
  14.  
  15. -- SET NOCOUNT ON added to prevent extra result sets from
  16. -- interfering with SELECT statements.
  17. SET NOCOUNT ON;
  18.  
  19. DECLARE @object NVARCHAR(4000)
  20.  
  21. IF (@ObjectId@=13) SET @object = 'INV'
  22. ELSE IF (@ObjectId@=14) SET @object = 'RIN'
  23. ELSE IF (@ObjectId@=15) SET @object = 'DLN'
  24. ELSE IF (@ObjectId@=16) SET @object = 'RDN'
  25. ELSE IF (@ObjectId@=17) SET @object = 'RDR'
  26. ELSE IF (@ObjectId@=18) SET @object = 'PCH'
  27. ELSE IF (@ObjectId@=19) SET @object = 'RPC'
  28. ELSE IF (@ObjectId@=20) SET @object = 'PDN'
  29. ELSE IF (@ObjectId@=21) SET @object = 'RPD'
  30. ELSE IF (@ObjectId@=22) SET @object = 'POR'
  31. ELSE IF (@ObjectId@=23) SET @object = 'QUT'
  32. ELSE IF (@ObjectId@=24) SET @object = 'RCT'
  33. ELSE IF (@ObjectId@=25) SET @object = 'DPS'
  34. ELSE IF (@ObjectId@=46) SET @object = 'VPM'
  35. ELSE IF (@ObjectId@=58) SET @object = 'INM'
  36. ELSE IF (@ObjectId@=59) SET @object = 'IGN'
  37. ELSE IF (@ObjectId@=60) SET @object = 'IGE'
  38. ELSE IF (@ObjectId@=67) SET @object = 'WTR'
  39. ELSE IF (@ObjectId@=68) SET @object = 'WKO'
  40. ELSE IF (@ObjectId@=69) SET @object = 'IPF'
  41. ELSE IF (@ObjectId@=112) SET @object = 'DRF'
  42. ELSE IF (@ObjectId@=132) SET @object = 'CIN'
  43. ELSE IF (@ObjectId@=140) SET @object = 'PDF'
  44. ELSE IF (@ObjectId@=162) SET @object = 'MRV'
  45. ELSE IF (@ObjectId@=163) SET @object = 'CPI'
  46. ELSE IF (@ObjectId@=164) SET @object = 'CPV'
  47. ELSE IF (@ObjectId@=165) SET @object = 'CSI'
  48. ELSE IF (@ObjectId@=166) SET @object = 'CSV'
  49. ELSE IF (@ObjectId@=191) SET @object = 'SCL'
  50. ELSE IF (@ObjectId@=198) SET @object = 'FCT'
  51. ELSE IF (@ObjectId@=199) SET @object = 'MSN'
  52. ELSE IF (@ObjectId@=202) SET @object = 'WOR'
  53. ELSE IF (@ObjectId@=203) SET @object = 'DPI'
  54. ELSE IF (@ObjectId@=204) SET @object = 'DPO'
  55. ELSE IF (@ObjectId@=321) SET @object = 'ITR'
  56. ELSE IF (@ObjectId@=140000009) SET @object = 'OEI'
  57. ELSE IF (@ObjectId@=140000010) SET @object = 'IEI'
  58. ELSE IF (@ObjectId@=540000006) SET @object = 'PQT'
  59.  
  60. CREATE TABLE #Language (LanguageID INT)
  61. INSERT INTO #Language
  62. EXEC
  63. (
  64.     'SELECT LangCode FROM O' + @object + ' WHERE DocEntry = ' + @DocKey@
  65. )
  66.  
  67. DECLARE @LanguageID INT
  68. SELECT @LanguageID = LanguageID FROM #Language
  69. DROP TABLE #Language
  70.  
  71. DECLARE @LKeys VARCHAR(MAX)
  72. SELECT  @LKeys = STUFF
  73. (
  74.     (
  75.         SELECT '],[' + LTRIM(code) FROM [@SWA_LD_TEXT] FOR XML PATH('')
  76.     ), 1, 2, ''
  77. ) + ']'
  78.  
  79. CREATE TABLE #CS_Print_TranslationsLD
  80. (
  81.     DocEntry INT,
  82.     LKey NVARCHAR(100), Translation NVARCHAR(2000)
  83. )
  84. INSERT INTO #CS_Print_TranslationsLD EXEC
  85. (
  86.    /* 'SELECT ' + @DocKey@ + ', T0.Name, ISNULL(T2.Trans, '''')
  87.     FROM OMLT T1 INNER JOIN MLT1 T2
  88.     ON T1.TranEntry = T2.TranEntry
  89.     RIGHT JOIN [@CRTEXT] T0
  90.     ON(T1.PK = T0.Code AND T1.TableName =
  91.     ''@CRTEXT'' AND T1.FieldAlias = ''Name'')
  92.      WHERE T2.LangCode =' + @LanguageID
  93.      */
  94.     'SELECT ' + @DocKey@ + ', T0.code , CONVERT(NVARCHAR(2000), ISNULL(T2.Trans, ISNULL(T0.U_Text, '''')))
  95.    FROM [@SWA_LD_TEXT] T0 LEFT JOIN OMLT T1 ON(T1.PK = T0.code AND T1.TableName =
  96.    ''@SWA_LD_TEXT'' AND T1.FieldAlias = ''U_Text'')
  97.     LEFT JOIN MLT1 T2 ON (T1.TranEntry = T2.TranEntry AND T2.LangCode =  '+ @LanguageID+')'
  98. )
  99.  
  100.  
  101. EXEC
  102. (
  103.     'SELECT * FROM #CS_Print_TranslationsLD
  104.    pivot
  105.    (
  106.  
  107.    MAX(Translation)
  108.    FOR LKey in (' + @LKeys + ')
  109.    ) AS Translations'
  110. )
  111.  
  112. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement